subcloud_additional_details(subcloud_id)
logger.debug('subcloud name: %s, oam_floating_ip: %s' %
(subcloud[0].name, subcloud[0].oam_floating_ip))
+ if subcloud[0].oam_floating_ip == 'unavailable':
+ raise EnvironmentError(f"{subcloud[0].name} was unavailable")
try:
os_client_args = config.get_stx_access_info(
- region_name=subcloud[0].name,
+ region_name=subcloud[0].region_name,
subcloud_hostname=subcloud[0].oam_floating_ip)
# logger.info(os_client_args)
config_client = get_stx_client(**os_client_args)
msg = e.format_message()
if CGTSCLIENT_ENDPOINT_ERROR_MSG in msg:
os_client_args = config.get_stx_access_info(
- region_name=subcloud[0].name, sub_is_https=True,
+ region_name=subcloud[0].region_name, sub_is_https=True,
subcloud_hostname=subcloud[0].oam_floating_ip)
# logger.info(os_client_args)
config_client = get_stx_client(**os_client_args)
subcloud_stxclient = self.getSubcloudClient(
subcloud.subcloud_id)
systems = subcloud_stxclient.isystem.list()
- logger.debug('systems:' + str(systems[0].to_dict()))
+ logger.debug('subcloud system:' + str(systems[0].to_dict()))
pools.append(systems[0])
except Exception as ex:
logger.warning('Failed get cgstclient of subcloud %s: %s' %
def getK8sList(self, **filters) -> List[ocloudModel.StxGenericModel]:
def process_cluster(client, cluster):
setattr(cluster, 'cloud_name', systems[0].name)
+ setattr(cluster, 'cloud_uuid', systems[0].uuid)
cluster = self._setK8sCapabilities(client, cluster)
logger.debug('k8sresources cluster_api_endpoint: ' +
str(cluster.cluster_api_endpoint))
return k8s_list
def getK8sDetail(self, name) -> ocloudModel.StxGenericModel:
- def process_k8s_cluster(client, k8s_cluster, cloud_name):
+ def process_k8s_cluster(client, k8s_cluster, cloud_name, cloud_uuid):
setattr(k8s_cluster, 'cloud_name', cloud_name)
+ setattr(k8s_cluster, 'cloud_uuid', cloud_uuid)
k8s_cluster = self._setK8sCapabilities(client, k8s_cluster)
return k8s_cluster
systems = self.stxclient.isystem.list()
system_name = systems[0].name
+ system_uuid = systems[0].uuid
if not name:
k8s_clusters = self.stxclient.kube_cluster.list()
if cloud_name == system_name:
k8s_cluster = process_k8s_cluster(
self.stxclient,
- self.stxclient.kube_cluster.get(k8s_name), cloud_name)
+ self.stxclient.kube_cluster.get(k8s_name), cloud_name,
+ system_uuid)
else:
subclouds = self.getSubcloudList()
subcloud_id = next(
sub.subcloud_id for sub in subclouds
if sub.name == cloud_name)
subcloud_stxclient = self.getSubcloudClient(subcloud_id)
+ systems = subcloud_stxclient.isystem.list()
+ system_uuid = systems[0].uuid
k8s_cluster = process_k8s_cluster(
subcloud_stxclient,
- subcloud_stxclient.kube_cluster.get(k8s_name), cloud_name)
+ subcloud_stxclient.kube_cluster.get(k8s_name), cloud_name,
+ system_uuid)
if not k8s_cluster:
return None
'more than one system exists in the account.')
return isystems[0]
- @ staticmethod
+ @staticmethod
def _respoolconverter(res_pool):
setattr(res_pool, 'name', res_pool.region_name)
return res_pool
- @ staticmethod
+ @staticmethod
def _hostconverter(host):
selected_keys = [
"hostname", "personality", "id", "mgmt_ip", "mgmt_mac",
setattr(host, 'name', host.hostname)
return host
- @ staticmethod
+ @staticmethod
def _labelconverter(label):
selected_keys = [
"uuid", "label_key", "label_value", "host_uuid"
setattr(label, 'created_at', None)
return label
- @ staticmethod
+ @staticmethod
def _cpuconverter(cpu):
selected_keys = [
"cpu", "core", "thread", "allocated_function", "numa_node",
'-', 1)[0] + '-cpu-'+str(cpu.cpu))
return cpu
- @ staticmethod
+ @staticmethod
def _memconverter(mem):
selected_keys = [
"memtotal_mib", "memavail_mib", "vm_hugepages_use_1G",
'-mem-node-'+str(mem.numa_node))
return mem
- @ staticmethod
+ @staticmethod
def _ethconverter(eth):
selected_keys = [
"name", "namedisplay", "dev_id", "pdevice", "capabilities",
setattr(eth, 'created_at', None)
return eth
- @ staticmethod
+ @staticmethod
def _ifconverter(ifs):
selected_keys = [
"ifname", "iftype", "imac", "vlan_id", "imtu",
setattr(ifs, 'created_at', None)
return ifs
- @ staticmethod
+ @staticmethod
def _devconverter(dev):
selected_keys = [
"name", "pdevice", "pciaddr", "pvendor_id", "pvendor",
setattr(dev, 'name', dev.host_uuid.split('-', 1)[0] + '-'+dev.name)
return dev
- @ staticmethod
+ @staticmethod
def _k8sconverter(cluster):
setattr(cluster, 'name', cluster.cloud_name +
'.' + cluster.cluster_name)
setattr(cluster, 'uuid',
- uuid.uuid3(uuid.NAMESPACE_URL, cluster.name))
+ uuid.uuid3(uuid.NAMESPACE_URL, cluster.cloud_uuid))
setattr(cluster, 'updated_at', None)
setattr(cluster, 'created_at', None)
setattr(cluster, 'events', [])
cluster.name + '/' + str(cluster.uuid))
return cluster
- @ staticmethod
+ @staticmethod
def _k8shasher(cluster):
return str(hash((cluster.cluster_name, cluster.cloud_name,
cluster.cluster_api_endpoint, cluster.admin_user,