+ ResourceTypeEnum.PSERVER_LABEL,
+ self._labelconverter(label)) for label in labels if label]
+
+ 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 ocloudModel.StxGenericModel(ResourceTypeEnum.DMS,
+ self._k8sconverter(cluster),
+ self._k8shasher(cluster))
+
+ systems = self.stxclient.isystem.list()
+ distributed_cloud_role = systems[0].distributed_cloud_role
+ logger.debug((
+ f'system controller distributed_cloud_role: '
+ f'{distributed_cloud_role}'))
+
+ k8s_list = []
+
+ if distributed_cloud_role is None or distributed_cloud_role != \
+ 'systemcontroller':
+ k8s_list.extend(
+ [process_cluster(self.stxclient, k8s)
+ for k8s in self.stxclient.kube_cluster.list() if k8s])
+ return k8s_list
+
+ if config.get_system_controller_as_respool():
+ k8s_list.extend(
+ [process_cluster(self.stxclient, k8s)
+ for k8s in self.stxclient.kube_cluster.list() if k8s])
+
+ subclouds = self.getSubcloudList()
+ logger.debug(f'subclouds numbers: {len(subclouds)}')
+
+ for subcloud in subclouds:
+ try:
+ subcloud_stxclient = self.getSubcloudClient(
+ subcloud.subcloud_id)
+ systems = subcloud_stxclient.isystem.list()
+ k8sclusters = subcloud_stxclient.kube_cluster.list()
+ k8s_list.extend([process_cluster(subcloud_stxclient, k8s)
+ for k8s in k8sclusters if k8s])
+ except Exception as ex:
+ logger.warning((
+ f'Failed to get cgstclient of subcloud '
+ f'{subcloud.name}: {ex}'))
+ continue
+
+ return k8s_list