cidr = netconf.get_network_cidr(hwmgmtnet, domain)
utils.validate_ip_in_network(ip, cidr)
+ def get_hwmgmt_priv_level(self, hostname):
+ """get the hwmgmt IPMI privilege level. Defaults to ADMINISTRATOR
+
+ Arguments:
+
+ hostname: The name of the node
+
+ Return:
+
+ The prvilege level, or ADMINISTRATOR if unspecified
+
+ Raise:
+
+ ConfigError in-case of an error
+ """
+ self._validate_hostname(hostname)
+
+ if 'hwmgmt' not in self.config[self.ROOT][hostname]:
+ raise configerror.ConfigError('No hwmgmt info defined for host')
+
+ return self.config[self.ROOT][hostname]['hwmgmt'].get('priv_level', 'ADMINISTRATOR')
+
def _validate_service_profiles(self, hostname):
node_profiles = self.get_service_profiles(hostname)
utils.validate_list_items_unique(node_profiles)
return service_profiles[0]
+ def set_nodeindex(self):
+ hostsconf = self.confman.get_hosts_config_handler()
+ install_host = utils.get_installation_host_name(hostsconf)
+ self.config[self.ROOT][install_host]['caas_nodeindex'] = 1
+
+ masters = self.get_service_profile_hosts('caas_master')
+ masters.remove(install_host)
+ self._set_nodeindexes(masters, 2)
+ self._set_nodeindexes(self.get_service_profile_hosts('caas_worker'), 1)
+
+ def _set_nodeindexes(self, hosts, base_index):
+ index = base_index
+ for host in hosts:
+ self.config[self.ROOT][host]['caas_nodeindex'] = index
+ index += 1
+
def get_nodeindex(self, hostname):
- return re.search(r'[-_](\d+)$', hostname).group(1)
+ return self.config[self.ROOT][hostname]['caas_nodeindex']
def get_nodename(self, hostname):
return "{}{}".format(self.get_nodetype(hostname), self.get_nodeindex(hostname))