def _desc(self): hosts_info = self._get_short_hosts_info() for host_info in hosts_info: connected_hosts_names = list() short_hostname = host_info['name'].replace('.' + host_info['domain_name'], '') compute_resource_info = self._fapi.compute_resources.index(per_page=sys.maxsize, search={self._form_search_string(["name={short_hostname}". format(short_hostname=short_hostname)])} )['results'] if compute_resource_info: compute_resource_id = compute_resource_info[0]['id'] connected_hosts_info = self._fapi.hosts.index(per_page=sys.maxsize, search={self._form_search_string(["compute_resource_id={id}". format(id=compute_resource_id)])} )['results'] connected_hosts_names = [x['name'] for x in connected_hosts_info] SWKHelperFunctions.print_line_with_host_prefix("", host_info['name']) print("Hostgroup:\t{hg}\nOS:\t\t{os}\nIP:\t\t{ip}\nResource:\t{res}\nEnv:\t\t{env}\nComment:\t{cmnt}".format( hg=host_info['hostgroup_name'], os=host_info['operatingsystem_name'], ip=host_info['ip'], cmnt=host_info['comment'], res=host_info['compute_resource_name'], env=host_info['environment_name'] )) if connected_hosts_names: print("Cnctd hosts:\t{cnctd_hosts}".format(cnctd_hosts=' '.join(connected_hosts_names)))
def _add_classes_to_groups(self, classes_short_info): hostgroups_short_info = self._get_hostgroups_short_info() class_ids_list = self._form_class_ids_list(classes_short_info) for hostgroup_info in hostgroups_short_info: logging.debug("hostgroup_clasess_create args: {0}".format(inspect.getargspec(self._fapi.hostgroups.hostgroup_classes_create))) for class_id in class_ids_list: self._fapi.hostgroups.hostgroup_classes_create(hostgroup_id=hostgroup_info['id'], puppetclass_id=class_id) SWKHelperFunctions.print_line_with_host_prefix("done", hostgroup_info['name'])
def _rm_classes_from_groups(self, classes_short_info): hostgroups_short_info = self._get_hostgroups_short_info() class_ids_list = self._form_class_ids_list(classes_short_info) for hostgroup_info in hostgroups_short_info: for class_id in class_ids_list: self._fapi.hostgroups.hostgroup_classes_hostgroup_id_puppetclass_destroyids(hostgroup_id=hostgroup_info['id'], id=class_id) SWKHelperFunctions.print_line_with_host_prefix("done", hostgroup_info['name'])
def _add_classes_to_hosts(self, classes_short_info): class_ids_list = self._form_class_ids_list(classes_short_info) for host in self._hostlist_def_domain: logging.debug("hosts methods: {0}".format(dir(self._fapi.hosts))) logging.debug("host_clasess_create args: {0}".format(inspect.getargspec(self._fapi.hosts.host_classes_create))) for class_id in class_ids_list: self._fapi.hosts.host_classes_create(host_id=host, puppetclass_id=class_id) SWKHelperFunctions.print_line_with_host_prefix("done", host)
def _set_hosts_environment(self, environment_id): try: for host in self._hostlist_def_domain: self._fapi.hosts.update(host={'environment_id': environment_id}, id=host) SWKHelperFunctions.print_line_with_host_prefix("done", host) self._kill_cache() except Exception as e: raise ForemanError(str(e))
def _getcls(self): hosts_info = self._get_verbose_hosts_info() for host_info in hosts_info: try: SWKHelperFunctions.print_line_with_host_prefix("", host_info['name']) for puppet_class in host_info['all_puppetclasses']: print(puppet_class['name']) except KeyError: raise ForemanError("Foreman info about host says it has no 'all_puppetclasses' field") except TypeError: raise ForemanError("Foreman returned nonsense. Most probably one of hosts provided doesn't exist.")
def _getgcls(self): logging.debug("hostgroups methods: {0}".format(dir(self._fapi.hostgroups))) hostgroups_info = self._get_verbose_hostgroups_info() for hostgroup_info in hostgroups_info: try: SWKHelperFunctions.print_line_with_host_prefix("", hostgroup_info['name']) for puppet_class in hostgroup_info['puppetclasses']: print(puppet_class['name']) except KeyError: raise ForemanError("Foreman info about group says it has no 'puppetclasses' field") except TypeError: raise ForemanError("Foreman returned nonsense. Most probably one of hostgroups provided doesn't exist.")
def _rm_classes_from_hosts(self, classes_short_info): class_ids_list = self._form_class_ids_list(classes_short_info) for host in self._hostlist_def_domain: for class_id in class_ids_list: self._fapi.hosts.host_classes_host_id_puppetclass_destroyids(host_id=host, id=class_id) SWKHelperFunctions.print_line_with_host_prefix("done", host)
def _getenv(self): hosts_info = self._get_short_hosts_info() for host_info in hosts_info: SWKHelperFunctions.print_line_with_host_prefix(host_info['environment_name'], host_info['name'])