summaryrefslogtreecommitdiff
path: root/tests/unittests
diff options
context:
space:
mode:
authorEduardo Otubo <otubo@redhat.com>2020-01-23 17:41:48 +0100
committerChad Smith <chad.smith@canonical.com>2020-01-23 09:41:48 -0700
commit6603706eec1c39d9d591c8ffa0ef7171b74d84d6 (patch)
tree077ae8f72347fb93c5afbb2b96af9b8b9fc1c4e5 /tests/unittests
parent18e601ada64b50e10532811e43b34cd00b6de7da (diff)
downloadvyos-cloud-init-6603706eec1c39d9d591c8ffa0ef7171b74d84d6.tar.gz
vyos-cloud-init-6603706eec1c39d9d591c8ffa0ef7171b74d84d6.zip
Do not use fallocate in swap file creation on xfs. (#70)
When creating a swap file on an xfs filesystem, fallocate cannot be used. Doing so results in failure of swapon and a message like: swapon: swapfile has holes The solution here is to maintain a list (currently containing only XFS) of filesystems where fallocate cannot be used. The, on those fileystems use the slower but functional 'dd' method. Signed-off-by: Eduardo Otubo <otubo@redhat.com> Co-authored-by: Adam Dobrawy <naczelnik@jawnosc.tk> Co-authored-by: Scott Moser <smoser@brickies.net> Co-authored-by: Daniel Watkins <daniel@daniel-watkins.co.uk> LP: #1781781
Diffstat (limited to 'tests/unittests')
-rw-r--r--tests/unittests/test_handler/test_handler_mounts.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/unittests/test_handler/test_handler_mounts.py b/tests/unittests/test_handler/test_handler_mounts.py
index 0fb160be..7bcefa0a 100644
--- a/tests/unittests/test_handler/test_handler_mounts.py
+++ b/tests/unittests/test_handler/test_handler_mounts.py
@@ -181,6 +181,18 @@ class TestFstabHandling(test_helpers.FilesystemMockingTestCase):
return dev
+ def test_swap_integrity(self):
+ '''Ensure that the swap file is correctly created and can
+ swapon successfully. Fixing the corner case of:
+ kernel: swapon: swapfile has holes'''
+
+ fstab = '/swap.img swap swap defaults 0 0\n'
+
+ with open(cc_mounts.FSTAB_PATH, 'w') as fd:
+ fd.write(fstab)
+ cc = {'swap': ['filename: /swap.img', 'size: 512', 'maxsize: 512']}
+ cc_mounts.handle(None, cc, self.mock_cloud, self.mock_log, [])
+
def test_fstab_no_swap_device(self):
'''Ensure that cloud-init adds a discovered swap partition
to /etc/fstab.'''