Переглянути джерело

Fix `cloud-init` systemd service enablement
Ensured `cloud-init` configuration and service enabling
only occur if it's in the package list.

Signed-off-by: Mihaela Balutoiu <mbalutoiu@cloudbasesolutions.com>

Mihaela Balutoiu 5 місяців тому
батько
коміт
200ca0c3d7

+ 6 - 0
coriolis/osmorphing/base.py

@@ -443,6 +443,9 @@ class BaseLinuxOSMorphingTools(BaseOSMorphingTools):
         if not self._check_user_exists(cloud_user):
             self._exec_cmd_chroot("useradd %s" % cloud_user)
 
+    def _has_systemd_chroot(self):
+        return self._test_path("/lib/systemd/system")
+
     def _configure_cloud_init(self):
         cloud_cfg_mods = {}
         if "cloud-init" not in self.get_packages()[0]:
@@ -468,6 +471,9 @@ class BaseLinuxOSMorphingTools(BaseOSMorphingTools):
 
         self._write_cloud_init_mods_config(cloud_cfg_mods)
 
+        if self._has_systemd_chroot():
+            self._enable_systemd_service("cloud-init")
+
     def _test_path_chroot(self, path):
         # This method uses _exec_cmd_chroot() instead of SFTP stat()
         # because in some situations, the SSH user used may not have

+ 0 - 8
coriolis/osmorphing/debian.py

@@ -97,9 +97,6 @@ class BaseDebianMorphingTools(base.BaseLinuxOSMorphingTools):
             }
         return yaml.dump(cfg, default_flow_style=False)
 
-    def _has_systemd_chroot(self):
-        return self._test_path("/lib/systemd/system")
-
     def set_net_config(self, nics_info, dhcp):
         if not dhcp:
             LOG.info("Setting static IP configuration")
@@ -127,11 +124,6 @@ class BaseDebianMorphingTools(base.BaseLinuxOSMorphingTools):
             cfg_name = "%s/coriolis_netplan.yaml" % self.netplan_base
             self._write_file_sudo(cfg_name, new_cfg)
 
-    def _configure_cloud_init(self):
-        super(BaseDebianMorphingTools, self)._configure_cloud_init()
-        if self._has_systemd_chroot():
-            self._enable_systemd_service("cloud-init")
-
     def get_installed_packages(self):
         cmd = "dpkg-query -f '${binary:Package}\\n' -W"
         try:

+ 0 - 5
coriolis/osmorphing/redhat.py

@@ -288,11 +288,6 @@ class BaseRedHatMorphingTools(base.BaseLinuxOSMorphingTools):
         network_cfg["NOZEROCONF"] = "yes"
         self._write_config_file(network_cfg_file, network_cfg)
 
-    def _configure_cloud_init(self):
-        super(BaseRedHatMorphingTools, self)._configure_cloud_init()
-        if self._has_systemd():
-            self._enable_systemd_service("cloud-init")
-
     def _write_config_file(self, chroot_path, config_data):
         content = self._get_config_file_content(config_data)
         self._write_file_sudo(chroot_path, content)

+ 0 - 5
coriolis/osmorphing/suse.py

@@ -127,11 +127,6 @@ class BaseSUSEMorphingTools(base.BaseLinuxOSMorphingTools):
         except Exception:
             return False
 
-    def _configure_cloud_init(self):
-        super(BaseSUSEMorphingTools, self)._configure_cloud_init()
-        if self._has_systemd():
-            self._enable_systemd_service("cloud-init")
-
     def post_packages_install(self, package_names):
         self._configure_cloud_init()
         self._run_dracut()