# client talking to Stx standalone
import uuid
-from o2common.service.client.base_client import BaseClient
from typing import List
# Optional, Set
-from o2ims.domain import stx_object as ocloudModel
-from o2common.config import config
-from o2ims.domain.resource_type import ResourceTypeEnum
-# from dcmanagerclient.api import client
from cgtsclient.client import get_client as get_stx_client
from cgtsclient.exc import EndpointException
from dcmanagerclient.api.client import client as get_dc_client
+from o2common.config import config
+from o2common.service.client.base_client import BaseClient
+from o2ims.domain import stx_object as ocloudModel
+from o2ims.domain.resource_type import ResourceTypeEnum
+
from o2common.helper import o2logging
logger = o2logging.get_logger(__name__)
return self.driver.getPserver(id)
def _list(self, **filters) -> List[ocloudModel.StxGenericModel]:
- filters['resourcepoolid']
return self.driver.getPserverList(**filters)
def _set_stx_client(self):
os_client_args = config.get_stx_access_info(
region_name=subcloud[0].name,
subcloud_hostname=subcloud[0].oam_floating_ip)
- logger.warning(os_client_args)
+ # logger.info(os_client_args)
config_client = get_stx_client(**os_client_args)
except EndpointException as e:
msg = e.format_message()
os_client_args = config.get_stx_access_info(
region_name=subcloud[0].name, sub_is_https=True,
subcloud_hostname=subcloud[0].oam_floating_ip)
- logger.warning(os_client_args)
+ # logger.info(os_client_args)
config_client = get_stx_client(**os_client_args)
else:
raise ValueError('Stx endpoint exception: %s' % msg)
- else:
+ except Exception:
raise ValueError('cgtsclient get subcloud client failed')
+
return config_client
def setStxClient(self, resource_pool_id):
ResourceTypeEnum.OCLOUD, systems[0]) if systems else None
def getSubcloudList(self):
+ self.dcclient = self.getDcmanagerClient()
subs = self.dcclient.subcloud_manager.list_subclouds()
known_subs = [sub for sub in subs if sub.sync_status != 'unknown']
return known_subs
if systems[0].distributed_cloud_role is None or \
systems[0].distributed_cloud_role != 'systemcontroller':
return [ocloudModel.StxGenericModel(
- ResourceTypeEnum.RESOURCE_POOL, systems[0])]
+ ResourceTypeEnum.RESOURCE_POOL,
+ self._respoolconverter(systems[0]))]
pools = []
if config.get_system_controller_as_respool():
return [ocloudModel.StxGenericModel(
ResourceTypeEnum.RESOURCE_POOL,
- respool) for respool in pools if respool]
+ self._respoolconverter(
+ respool)) for respool in pools if respool]
def getResourcePoolDetail(self, id):
self.setStxClient(id)
systems = self.stxclient.isystem.list()
logger.debug('systems:' + str(systems[0].to_dict()))
return ocloudModel.StxGenericModel(
- ResourceTypeEnum.RESOURCE_POOL, systems[0]) if systems else None
+ ResourceTypeEnum.RESOURCE_POOL,
+ self._respoolconverter(systems[0])) if systems else None
def getPserverList(self, **filters) -> List[ocloudModel.StxGenericModel]:
hosts = self.stxclient.ihost.list()
return [ocloudModel.StxGenericModel(
ResourceTypeEnum.PSERVER, self._hostconverter(host))
for host in hosts if host and (host.availability == 'available'
+ or host.availability == 'online'
or host.availability == 'degraded')]
def getPserver(self, id) -> ocloudModel.StxGenericModel:
'more than one system exists in the account.')
return isystems[0]
+ @ staticmethod
+ def _respoolconverter(res_pool):
+ setattr(res_pool, 'name', res_pool.region_name)
+ return res_pool
+
@ staticmethod
def _hostconverter(host):
setattr(host, 'name', host.hostname)