Add get detail of a resource to API; remove the dependency of the domain in the view...
[pti/o2.git] / o2ims / adapter / clients / ocloud_sa_client.py
index 31c9069..97592d3 100644 (file)
@@ -93,7 +93,6 @@ class StxCpuClient(BaseClient):
 class StxMemClient(BaseClient):\r
     def __init__(self):\r
         super().__init__()\r
-        # self._pserver_id = pserver_id\r
         self.driver = StxSaClientImp()\r
 \r
     def _get(self, id) -> ocloudModel.StxGenericModel:\r
@@ -103,23 +102,21 @@ class StxMemClient(BaseClient):
         return self.driver.getMemList(**filters)\r
 \r
 \r
-class StxPortClient(BaseClient):\r
+class StxEthClient(BaseClient):\r
     def __init__(self):\r
         super().__init__()\r
-        # self._pserver_id = pserver_id\r
         self.driver = StxSaClientImp()\r
 \r
     def _get(self, id) -> ocloudModel.StxGenericModel:\r
-        return self.driver.getPort(id)\r
+        return self.driver.getEthernet(id)\r
 \r
     def _list(self, **filters) -> List[ocloudModel.StxGenericModel]:\r
-        return self.driver.getPortList(**filters)\r
+        return self.driver.getEthernetList(**filters)\r
 \r
 \r
 class StxIfClient(BaseClient):\r
     def __init__(self):\r
         super().__init__()\r
-        # self._pserver_id = pserver_id\r
         self.driver = StxSaClientImp()\r
 \r
     def _get(self, id) -> ocloudModel.StxGenericModel:\r
@@ -129,6 +126,18 @@ class StxIfClient(BaseClient):
         return self.driver.getIfList(**filters)\r
 \r
 \r
+class StxIfPortClient(BaseClient):\r
+    def __init__(self):\r
+        super().__init__()\r
+        self.driver = StxSaClientImp()\r
+\r
+    def _get(self, id) -> ocloudModel.StxGenericModel:\r
+        return self.driver.getPort(id)\r
+\r
+    def _list(self, **filters) -> List[ocloudModel.StxGenericModel]:\r
+        return self.driver.getPortList(**filters)\r
+\r
+\r
 # internal driver which implement client call to Stx Standalone instance\r
 class StxSaClientImp(object):\r
     def __init__(self, stx_client=None):\r
@@ -142,27 +151,27 @@ class StxSaClientImp(object):
 \r
     def getInstanceInfo(self) -> ocloudModel.StxGenericModel:\r
         systems = self.stxclient.isystem.list()\r
-        logger.debug("systems:" + str(systems[0].to_dict()))\r
+        logger.debug('systems:' + str(systems[0].to_dict()))\r
         return ocloudModel.StxGenericModel(\r
             ResourceTypeEnum.OCLOUD, systems[0]) if systems else None\r
 \r
     def getPserverList(self, **filters) -> List[ocloudModel.StxGenericModel]:\r
         # resourcepoolid = filters.get("resourcepoolid", None)\r
         hosts = self.stxclient.ihost.list()\r
-        logger.debug("host 1:" + str(hosts[0].to_dict()))\r
+        logger.debug('host 1:' + str(hosts[0].to_dict()))\r
         return [ocloudModel.StxGenericModel(\r
             ResourceTypeEnum.PSERVER, self._hostconverter(host))\r
             for host in hosts if host]\r
 \r
     def getPserver(self, id) -> ocloudModel.StxGenericModel:\r
         host = self.stxclient.ihost.get(id)\r
-        logger.debug("host:" + str(host.to_dict()))\r
+        logger.debug('host:' + str(host.to_dict()))\r
         return ocloudModel.StxGenericModel(\r
             ResourceTypeEnum.PSERVER, self._hostconverter(host))\r
 \r
     def getK8sList(self, **filters) -> List[ocloudModel.StxGenericModel]:\r
         k8sclusters = self.stxclient.kube_cluster.list()\r
-        logger.debug("k8sresources[0]:" + str(k8sclusters[0].to_dict()))\r
+        logger.debug('k8sresources[0]:' + str(k8sclusters[0].to_dict()))\r
         return [ocloudModel.StxGenericModel(\r
             ResourceTypeEnum.DMS,\r
             self._k8sconverter(k8sres), self._k8shasher(k8sres))\r
@@ -178,14 +187,14 @@ class StxSaClientImp(object):
 \r
         if not k8scluster:\r
             return None\r
-        logger.debug("k8sresource:" + str(k8scluster.to_dict()))\r
+        logger.debug('k8sresource:' + str(k8scluster.to_dict()))\r
         return ocloudModel.StxGenericModel(\r
             ResourceTypeEnum.DMS,\r
             self._k8sconverter(k8scluster), self._k8shasher(k8scluster))\r
 \r
     def getCpuList(self, **filters) -> List[ocloudModel.StxGenericModel]:\r
-        hostid = filters.get("hostid", None)\r
-        assert (hostid is not None), "missing hostid to query icpu list"\r
+        hostid = filters.get('hostid', None)\r
+        assert (hostid is not None), 'missing hostid to query icpu list'\r
         cpulist = self.stxclient.icpu.list(hostid)\r
         return [ocloudModel.StxGenericModel(\r
             ResourceTypeEnum.PSERVER_CPU,\r
@@ -197,8 +206,8 @@ class StxSaClientImp(object):
             ResourceTypeEnum.PSERVER_CPU, self._cpuconverter(cpuinfo))\r
 \r
     def getMemList(self, **filters) -> List[ocloudModel.StxGenericModel]:\r
-        hostid = filters.get("hostid", None)\r
-        assert (hostid is not None), "missing hostid to query imem list"\r
+        hostid = filters.get('hostid', None)\r
+        assert (hostid is not None), 'missing hostid to query imem list'\r
         memlist = self.stxclient.imemory.list(hostid)\r
         return [ocloudModel.StxGenericModel(\r
             ResourceTypeEnum.PSERVER_RAM,\r
@@ -209,22 +218,22 @@ class StxSaClientImp(object):
         return ocloudModel.StxGenericModel(\r
             ResourceTypeEnum.PSERVER_RAM, self._memconverter(meminfo))\r
 \r
-    def getPortList(self, **filters) -> List[ocloudModel.StxGenericModel]:\r
-        hostid = filters.get("hostid", None)\r
-        assert (hostid is not None), "missing hostid to query port list"\r
-        portlist = self.stxclient.port.list(hostid)\r
+    def getEthernetList(self, **filters) -> List[ocloudModel.StxGenericModel]:\r
+        hostid = filters.get('hostid', None)\r
+        assert (hostid is not None), 'missing hostid to query port list'\r
+        ethlist = self.stxclient.ethernet_port.list(hostid)\r
         return [ocloudModel.StxGenericModel(\r
-            ResourceTypeEnum.PSERVER_PORT,\r
-            port) for port in portlist if port]\r
+            ResourceTypeEnum.PSERVER_ETH,\r
+            self._ethconverter(eth)) for eth in ethlist if eth]\r
 \r
-    def getPort(self, id) -> ocloudModel.StxGenericModel:\r
-        portinfo = self.stxclient.port.get(id)\r
+    def getEthernet(self, id) -> ocloudModel.StxGenericModel:\r
+        ethinfo = self.stxclient.ethernet_port.get(id)\r
         return ocloudModel.StxGenericModel(\r
-            ResourceTypeEnum.PSERVER_PORT, portinfo)\r
+            ResourceTypeEnum.PSERVER_ETH, self._ethconverter(ethinfo))\r
 \r
     def getIfList(self, **filters) -> List[ocloudModel.StxGenericModel]:\r
-        hostid = filters.get("hostid", None)\r
-        assert (hostid is not None), "missing hostid to query iinterface list"\r
+        hostid = filters.get('hostid', None)\r
+        assert (hostid is not None), 'missing hostid to query iinterface list'\r
         iflist = self.stxclient.iinterface.list(hostid)\r
         return [ocloudModel.StxGenericModel(\r
             ResourceTypeEnum.PSERVER_IF,\r
@@ -235,6 +244,19 @@ class StxSaClientImp(object):
         return ocloudModel.StxGenericModel(\r
             ResourceTypeEnum.PSERVER_IF, self._ifconverter(ifinfo))\r
 \r
+    def getPortList(self, **filters) -> List[ocloudModel.StxGenericModel]:\r
+        ifid = filters.get('interfaceid', None)\r
+        assert (ifid is not None), 'missing interface id to query port list'\r
+        portlist = self.stxclient.iinterface.list_ports(ifid)\r
+        return [ocloudModel.StxGenericModel(\r
+            ResourceTypeEnum.PSERVER_IF_PORT,\r
+            port) for port in portlist if port]\r
+\r
+    def getPort(self, id) -> ocloudModel.StxGenericModel:\r
+        portinfo = self.stxclient.port.get(id)\r
+        return ocloudModel.StxGenericModel(\r
+            ResourceTypeEnum.PSERVER_IF_PORT, portinfo)\r
+\r
     def _getIsystems(self):\r
         return self.stxclient.isystem.list()\r
 \r
@@ -250,36 +272,45 @@ class StxSaClientImp(object):
 \r
     @ staticmethod\r
     def _hostconverter(host):\r
-        setattr(host, "name", host.hostname)\r
+        setattr(host, 'name', host.hostname)\r
         return host\r
 \r
     @ staticmethod\r
     def _cpuconverter(cpu):\r
-        setattr(cpu, "name", "cpu-"+str(cpu.cpu))\r
+        setattr(cpu, 'name', cpu.ihost_uuid.split(\r
+            '-', 1)[0] + '-cpu-'+str(cpu.cpu))\r
         return cpu\r
 \r
     @ staticmethod\r
     def _memconverter(mem):\r
-        setattr(mem, "name", "mem-node-"+str(mem.numa_node))\r
+        setattr(mem, 'name', mem.ihost_uuid.split('-', 1)[0] +\r
+                '-mem-node-'+str(mem.numa_node))\r
         return mem\r
 \r
+    @ staticmethod\r
+    def _ethconverter(eth):\r
+        setattr(eth, 'name', eth.host_uuid.split('-', 1)[0] + '-'+eth.name)\r
+        setattr(eth, 'updated_at', None)\r
+        setattr(eth, 'created_at', None)\r
+        return eth\r
+\r
     @ staticmethod\r
     def _ifconverter(ifs):\r
-        setattr(ifs, "name", ifs.ifname)\r
+        setattr(ifs, 'name', ifs.ihost_uuid.split('-', 1)[0] + '-'+ifs.ifname)\r
         setattr(ifs, 'updated_at', None)\r
         setattr(ifs, 'created_at', None)\r
         return ifs\r
 \r
     @ staticmethod\r
     def _k8sconverter(cluster):\r
-        setattr(cluster, "name", cluster.cluster_name)\r
-        setattr(cluster, "uuid",\r
+        setattr(cluster, 'name', cluster.cluster_name)\r
+        setattr(cluster, 'uuid',\r
                 uuid.uuid3(uuid.NAMESPACE_URL, cluster.cluster_name))\r
         setattr(cluster, 'updated_at', None)\r
         setattr(cluster, 'created_at', None)\r
         setattr(cluster, 'events', [])\r
-        logger.debug("k8s cluster name/uuid:" +\r
-                     cluster.name + "/" + str(cluster.uuid))\r
+        logger.debug('k8s cluster name/uuid:' +\r
+                     cluster.name + '/' + str(cluster.uuid))\r
         return cluster\r
 \r
     @ staticmethod\r