diff options
author | Harry Huang <huangxiangyu5@huawei.com> | 2018-10-11 11:05:02 +0800 |
---|---|---|
committer | Harry Huang <huangxiangyu5@huawei.com> | 2018-10-30 15:06:10 +0800 |
commit | f89ef9a9ee968c778af3444c7f9d2a39489fcf2b (patch) | |
tree | b5d3894a076ac2aca47b2c5f3dcf83160375a463 /compass-tasks-base/deployment/installers/os_installers/cobbler/cobbler.py | |
parent | c5a7aaf83d500ec7c4b02d4cfddaf86b85182b2c (diff) |
Manage host power from cobbler
JIRA: COMPASS-616
1. Use fence_ipmilan to control power of baremetal
servers. Add fence_libvirt to control power of
virtual servers.
2. Use power_manage field instead of ipmi field
3. Add power_type to specify machine's power manage
tool
4. Store power manage information in db and update
to cobbler
5. Manage power from cobbler for both virtual and
baremetal machines
Change-Id: Ic36ae640dc0aa1703566b5b0b549880a71be36e4
Signed-off-by: Harry Huang <huangxiangyu5@huawei.com>
Diffstat (limited to 'compass-tasks-base/deployment/installers/os_installers/cobbler/cobbler.py')
-rw-r--r-- | compass-tasks-base/deployment/installers/os_installers/cobbler/cobbler.py | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/compass-tasks-base/deployment/installers/os_installers/cobbler/cobbler.py b/compass-tasks-base/deployment/installers/os_installers/cobbler/cobbler.py index 9c2a935..aa74f68 100644 --- a/compass-tasks-base/deployment/installers/os_installers/cobbler/cobbler.py +++ b/compass-tasks-base/deployment/installers/os_installers/cobbler/cobbler.py @@ -397,25 +397,25 @@ class CobblerInstaller(OSInstaller): return cluster_vas_dict - def _check_and_set_system_impi(self, host_id, sys_id): + def _check_and_set_system_power(self, host_id, sys_id): if not sys_id: logging.info("System is None!") return False system = self.dump_system_info(host_id) - if system[self.POWER_TYPE] != 'ipmilan' or not system[self.POWER_USER]: + if not system.get(self.POWER_TYPE): # Set sytem power type to ipmilan if needs and set IPMI info - ipmi_info = self.config_manager.get_host_ipmi_info(host_id) - if not ipmi_info: + power_info = self.config_manager.get_host_power_info(host_id) + if not power_info: logging.info('No IPMI information found! Failed power on.') return False - ipmi_ip, ipmi_user, ipmi_pass = ipmi_info + ip, username, password = power_info power_opts = {} power_opts[self.POWER_TYPE] = 'ipmilan' - power_opts[self.POWER_ADDR] = ipmi_ip - power_opts[self.POWER_USER] = ipmi_user - power_opts[self.POWER_PASS] = ipmi_pass + power_opts[self.POWER_ADDR] = ip + power_opts[self.POWER_USER] = username + power_opts[self.POWER_PASS] = password self._update_system_config(sys_id, power_opts) @@ -424,26 +424,26 @@ class CobblerInstaller(OSInstaller): def poweron(self, host_id): hostname = self.config_manager.get_hostname(host_id) sys_id = self._get_create_system(hostname) - if not self._check_and_set_system_impi(sys_id): + if not self._check_and_set_system_power(host_id, sys_id): return - self.remote.power_system(sys_id, self.token, power='on') + self.remote.power_system(sys_id, 'on', self.token) logging.info("Host with ID=%d starts to power on!" % host_id) def poweroff(self, host_id): hostname = self.config_manager.get_hostname(host_id) sys_id = self._get_create_system(hostname) - if not self._check_and_set_system_impi(sys_id): + if not self._check_and_set_system_power(host_id, sys_id): return - self.remote.power_system(sys_id, self.token, power='off') + self.remote.power_system(sys_id, 'off', self.token) logging.info("Host with ID=%d starts to power off!" % host_id) def reset(self, host_id): hostname = self.config_manager.get_hostname(host_id) sys_id = self._get_create_system(hostname) - if not self._check_and_set_system_impi(sys_id): + if not self._check_and_set_system_power(host_id, sys_id): return - self.remote.power_system(sys_id, self.token, power='reboot') + self.remote.power_system(sys_id, 'reboot', self.token) logging.info("Host with ID=%d starts to reboot!" % host_id) |