summaryrefslogtreecommitdiff
path: root/tests/unittests/test_distros/test_generic.py
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2015-06-10 12:30:02 -0400
committerScott Moser <smoser@ubuntu.com>2015-06-10 12:30:02 -0400
commit162ce6a5635574e8dba0be3e06d313a18b46adc6 (patch)
treebdbd06e2ddee5c539ff826488a082d6d5f574a62 /tests/unittests/test_distros/test_generic.py
parent0f3736ab501ceebaa3c9f5c7543b6218637cb6c7 (diff)
parent8db399f9149a81de5d65f0759792766ecd509ab3 (diff)
downloadvyos-cloud-init-162ce6a5635574e8dba0be3e06d313a18b46adc6.tar.gz
vyos-cloud-init-162ce6a5635574e8dba0be3e06d313a18b46adc6.zip
check for systemd using sd_booted() semantics
The existing code determines if systemd is in use by looking at the distribution name and version. This is prone to error because: - RHEL derivatives other than CentOS (e.g., Scientific Linux) will fail this test - Distributions that are not derived from RHEL also use systemd This patch makes cloud-init use the same logic that is used in systemd's sd_booted() method http://www.freedesktop.org/software/systemd/man/sd_booted.html LP: #1461201
Diffstat (limited to 'tests/unittests/test_distros/test_generic.py')
-rw-r--r--tests/unittests/test_distros/test_generic.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/unittests/test_distros/test_generic.py b/tests/unittests/test_distros/test_generic.py
index 35153f0d..8e3bd78a 100644
--- a/tests/unittests/test_distros/test_generic.py
+++ b/tests/unittests/test_distros/test_generic.py
@@ -194,6 +194,29 @@ class TestGenericDistro(helpers.FilesystemMockingTestCase):
{'primary': 'http://fs-primary-intel',
'security': 'http://security-mirror2-intel'})
+ def test_systemd_in_use(self):
+ cls = distros.fetch("ubuntu")
+ d = cls("ubuntu", {}, None)
+ self.patchOS(self.tmp)
+ self.patchUtils(self.tmp)
+ os.makedirs('/run/systemd/system')
+ self.assertTrue(d.uses_systemd())
+
+ def test_systemd_not_in_use(self):
+ cls = distros.fetch("ubuntu")
+ d = cls("ubuntu", {}, None)
+ self.patchOS(self.tmp)
+ self.patchUtils(self.tmp)
+ self.assertFalse(d.uses_systemd())
+
+ def test_systemd_symlink(self):
+ cls = distros.fetch("ubuntu")
+ d = cls("ubuntu", {}, None)
+ self.patchOS(self.tmp)
+ self.patchUtils(self.tmp)
+ os.makedirs('/run/systemd')
+ os.symlink('/', '/run/systemd/system')
+ self.assertFalse(d.uses_systemd())
# def _get_package_mirror_info(mirror_info, availability_zone=None,
# mirror_filter=util.search_for_mirror):