+ ResourceTypeEnum.PSERVER_LABEL,
+ self._labelconverter(label)) for label in labels if label]
+
+ def getK8sList(self, **filters) -> List[ocloudModel.StxGenericModel]:
+ systems = self.stxclient.isystem.list()
+ logger.debug('system controller distributed_cloud_role:' +
+ str(systems[0].distributed_cloud_role))
+
+ if systems[0].distributed_cloud_role is None or \
+ systems[0].distributed_cloud_role != 'systemcontroller':
+ k8sclusters = self.stxclient.kube_cluster.list()
+ setattr(k8sclusters[0], 'cloud_name', systems[0].name)
+ k8sclusters[0] = self._setK8sCapabilities(k8sclusters[0])
+ # logger.debug('k8sresources[0]:' + str(k8sclusters[0].to_dict()))
+ logger.debug('k8sresources[0] cluster_api_endpoint: ' +
+ str(k8sclusters[0].cluster_api_endpoint))
+ return [ocloudModel.StxGenericModel(
+ ResourceTypeEnum.DMS,
+ self._k8sconverter(k8sres), self._k8shasher(k8sres))
+ for k8sres in k8sclusters if k8sres]
+
+ k8s_list = []
+ if config.get_system_controller_as_respool():
+ k8sclusters = self.stxclient.kube_cluster.list()
+ setattr(k8sclusters[0], 'cloud_name', systems[0].name)
+ k8sclusters[0] = self._setK8sCapabilities(k8sclusters[0])
+ # logger.debug('k8sresources[0]:' + str(k8sclusters[0].to_dict()))
+ logger.debug('k8sresources[0] cluster_api_endpoint: ' +
+ str(k8sclusters[0].cluster_api_endpoint))
+ k8s_list.append(k8sclusters[0])
+
+ subclouds = self.getSubcloudList()
+ logger.debug('subclouds numbers: %s' % 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()
+ setattr(k8sclusters[0], 'cloud_name', systems[0].name)
+ k8sclusters[0] = self._setK8sCapabilities(k8sclusters[0])
+ logger.debug('k8sresources[0]:' +
+ str(k8sclusters[0].to_dict()))
+ # logger.debug('k8sresources[0] cluster_api_endpoint: ' +
+ # str(k8sclusters[0].cluster_api_endpoint))
+ k8s_list.append(k8sclusters[0])
+ except Exception as ex:
+ logger.warning('Failed get cgstclient of subcloud %s: %s' %
+ (subcloud.name, ex))
+ continue
+
+ return [ocloudModel.StxGenericModel(ResourceTypeEnum.DMS,
+ self._k8sconverter(k8sres), self._k8shasher(k8sres))
+ for k8sres in k8s_list if k8sres]