Delete Ocata plugin HPA's registration flow 41/63041/3
authorHuang Haibin <haibin.huang@intel.com>
Mon, 27 Aug 2018 10:51:27 +0000 (18:51 +0800)
committerHuang Haibin <haibin.huang@intel.com>
Mon, 27 Aug 2018 11:02:48 +0000 (19:02 +0800)
Use Newton_base HPA's registration flow

Change-Id: I7010cf0175112ac30f575589add14d0ab3c172df
Issue-ID: MULTICLOUD-251
Signed-off-by: Huang Haibin <haibin.huang@intel.com>
ocata/ocata/registration/views/registration.py

index 4f8180b..1e4ec4c 100644 (file)
@@ -35,346 +35,6 @@ class Registry(newton_registration.Registry):
         self.aai_base_url = settings.AAI_BASE_URL
         self._logger = logger
 
-    def _discover_flavors(self, vimid="", session=None, viminfo=None):
-        try:
-            cloud_owner, cloud_region_id = extsys.decode_vim_id(vimid)
-
-            for flavor in self._get_list_resources(
-                    "/flavors/detail", "compute", session, viminfo, vimid,
-                    "flavors"):
-                flavor_info = {
-                    'flavor-id': flavor['id'],
-                    'flavor-name': flavor['name'],
-                    'flavor-vcpus': flavor['vcpus'],
-                    'flavor-ram': flavor['ram'],
-                    'flavor-disk': flavor['disk'],
-                    'flavor-ephemeral': flavor['OS-FLV-EXT-DATA:ephemeral'],
-                    'flavor-swap': flavor['swap'],
-                    'flavor-is-public': flavor['os-flavor-access:is_public'],
-                    'flavor-disabled': flavor['OS-FLV-DISABLED:disabled'],
-                }
-
-                if flavor.get('links') and len(flavor['links']) > 0:
-                    flavor_info['flavor-selflink'] = flavor['links'][0]['href'] or 'http://0.0.0.0'
-                else:
-                    flavor_info['flavor-selflink'] = 'http://0.0.0.0'
-
-                # add hpa capabilities
-                if (flavor['name'].find('onap.') == 0):
-                    req_resouce = "/flavors/%s/os-extra_specs" % flavor['id']
-                    extraResp = self._get_list_resources(req_resouce, "compute", session, viminfo, vimid, "extra_specs")
-
-                    hpa_capabilities = self._get_hpa_capabilities(flavor, extraResp, viminfo)
-                    flavor_info['hpa-capabilities'] = {'hpa-capability': hpa_capabilities}
-
-                self._update_resoure(
-                    cloud_owner, cloud_region_id, flavor['id'],
-                    flavor_info, "flavor")
-
-        except VimDriverNewtonException as e:
-            self._logger.error("VimDriverNewtonException: status:%s, response:%s" % (e.http_status, e.content))
-            return
-        except HttpError as e:
-            self._logger.error("HttpError: status:%s, response:%s" % (e.http_status, e.response.json()))
-            return
-        except Exception as e:
-            self._logger.error(traceback.format_exc())
-            return
-
-    def _get_hpa_capabilities(self, flavor, extra_specs, viminfo):
-        hpa_caps = []
-
-        # Basic capabilties
-        caps_dict = self._get_hpa_basic_capabilities(flavor)
-        if len(caps_dict) > 0:
-            self._logger.debug("basic_capabilities_info: %s" % caps_dict)
-            hpa_caps.append(caps_dict)
-
-        # cpupining capabilities
-        caps_dict = self._get_cpupinning_capabilities(extra_specs)
-        if len(caps_dict) > 0:
-            self._logger.debug("cpupining_capabilities_info: %s" % caps_dict)
-            hpa_caps.append(caps_dict)
-
-        # cputopology capabilities
-        caps_dict = self._get_cputopology_capabilities(extra_specs)
-        if len(caps_dict) > 0:
-            self._logger.debug("cputopology_capabilities_info: %s" % caps_dict)
-            hpa_caps.append(caps_dict)
-
-        # hugepages capabilities
-        caps_dict = self._get_hugepages_capabilities(extra_specs)
-        if len(caps_dict) > 0:
-            self._logger.debug("hugepages_capabilities_info: %s" % caps_dict)
-            hpa_caps.append(caps_dict)
-
-        # numa capabilities
-        caps_dict = self._get_numa_capabilities(extra_specs)
-        if len(caps_dict) > 0:
-            self._logger.debug("numa_capabilities_info: %s" % caps_dict)
-            hpa_caps.append(caps_dict)
-
-        # storage capabilities
-        caps_dict = self._get_storage_capabilities(flavor)
-        if len(caps_dict) > 0:
-            self._logger.debug("storage_capabilities_info: %s" % caps_dict)
-            hpa_caps.append(caps_dict)
-
-        # CPU instruction set extension capabilities
-        caps_dict = self._get_instruction_set_capabilities(extra_specs)
-        if len(caps_dict) > 0:
-            self._logger.debug("instruction_set_capabilities_info: %s" % caps_dict)
-            hpa_caps.append(caps_dict)
-
-        # PCI passthrough capabilities
-        caps_dict = self._get_pci_passthrough_capabilities(extra_specs)
-        if len(caps_dict) > 0:
-            self._logger.debug("pci_passthrough_capabilities_info: %s" % caps_dict)
-            hpa_caps.append(caps_dict)
-
-        # ovsdpdk capabilities
-        caps_dict = self._get_ovsdpdk_capabilities(viminfo)
-        if len(caps_dict) > 0:
-            self._logger.debug("ovsdpdk_capabilities_info: %s" % caps_dict)
-            hpa_caps.append(caps_dict)
-
-        return hpa_caps
-
-    def _get_hpa_basic_capabilities(self, flavor):
-        basic_capability = {}
-        feature_uuid = uuid.uuid4()
-
-        basic_capability['hpa-capability-id'] = str(feature_uuid)
-        basic_capability['hpa-feature'] = 'basicCapabilities'
-        basic_capability['architecture'] = 'generic'
-        basic_capability['hpa-version'] = 'v1'
-
-        basic_capability['hpa-feature-attributes'] = []
-        basic_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'numVirtualCpu',
-                                               'hpa-attribute-value':
-                                                   '{{\"value\":\"{0}\"}}'.format(flavor['vcpus'])
-                                                           })
-        basic_capability['hpa-feature-attributes'].append({'hpa-attribute-key':'virtualMemSize',
-                                               'hpa-attribute-value':
-                                                   '{{\"value\":\"{0}\",\"unit\":\"{1}\"}}'.format(flavor['ram'],"MB")
-                                                           })
-
-        return basic_capability
-
-    def _get_cpupinning_capabilities(self, extra_specs):
-        cpupining_capability = {}
-        feature_uuid = uuid.uuid4()
-
-        if extra_specs.has_key('hw:cpu_policy') or extra_specs.has_key('hw:cpu_thread_policy'):
-            cpupining_capability['hpa-capability-id'] = str(feature_uuid)
-            cpupining_capability['hpa-feature'] = 'cpuPinning'
-            cpupining_capability['architecture'] = 'generic'
-            cpupining_capability['hpa-version'] = 'v1'
-
-            cpupining_capability['hpa-feature-attributes'] = []
-            if extra_specs.has_key('hw:cpu_thread_policy'):
-                cpupining_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'logicalCpuThreadPinningPolicy',
-                                                           'hpa-attribute-value':
-                                                               '{{\"value\":\"{0}\"}}'.format(extra_specs['hw:cpu_thread_policy'])
-                                                                       })
-            if extra_specs.has_key('hw:cpu_policy'):
-                cpupining_capability['hpa-feature-attributes'].append({'hpa-attribute-key':'logicalCpuPinningPolicy',
-                                                           'hpa-attribute-value':
-                                                               '{{\"value\":\"{0}\"}}'.format(extra_specs['hw:cpu_policy'])
-                                                                       })
-
-        return cpupining_capability
-
-    def _get_cputopology_capabilities(self, extra_specs):
-        cputopology_capability = {}
-        feature_uuid = uuid.uuid4()
-
-        if extra_specs.has_key('hw:cpu_sockets') or extra_specs.has_key('hw:cpu_cores') or extra_specs.has_key('hw:cpu_threads'):
-            cputopology_capability['hpa-capability-id'] = str(feature_uuid)
-            cputopology_capability['hpa-feature'] = 'cpuTopology'
-            cputopology_capability['architecture'] = 'generic'
-            cputopology_capability['hpa-version'] = 'v1'
-
-            cputopology_capability['hpa-feature-attributes'] = []
-            if extra_specs.has_key('hw:cpu_sockets'):
-                cputopology_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'numCpuSockets',
-                                                             'hpa-attribute-value':
-                                                               '{{\"value\":\"{0}\"}}'.format(extra_specs['hw:cpu_sockets'])
-                                                                         })
-            if extra_specs.has_key('hw:cpu_cores'):
-                cputopology_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'numCpuCores',
-                                                             'hpa-attribute-value':
-                                                               '{{\"value\":\"{0}\"}}'.format(extra_specs['hw:cpu_cores'])
-                                                                         })
-            if extra_specs.has_key('hw:cpu_threads'):
-                cputopology_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'numCpuThreads',
-                                                             'hpa-attribute-value':
-                                                               '{{\"value\":\"{0}\"}}'.format(extra_specs['hw:cpu_threads'])
-                                                                         })
-
-        return cputopology_capability
-
-    def _get_hugepages_capabilities(self, extra_specs):
-        hugepages_capability = {}
-        feature_uuid = uuid.uuid4()
-
-        if extra_specs.has_key('hw:mem_page_size'):
-            hugepages_capability['hpa-capability-id'] = str(feature_uuid)
-            hugepages_capability['hpa-feature'] = 'hugePages'
-            hugepages_capability['architecture'] = 'generic'
-            hugepages_capability['hpa-version'] = 'v1'
-
-            hugepages_capability['hpa-feature-attributes'] = []
-            if extra_specs['hw:mem_page_size'] == 'large':
-                hugepages_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'memoryPageSize',
-                                                           'hpa-attribute-value':
-                                                   '{{\"value\":\"{0}\",\"unit\":\"{1}\"}}'.format(2,"MB")
-                                                                       })
-            elif extra_specs['hw:mem_page_size'] == 'small':
-                hugepages_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'memoryPageSize',
-                                                           'hpa-attribute-value':
-                                                   '{{\"value\":\"{0}\",\"unit\":\"{1}\"}}'.format(4,"KB")
-                                                                       })
-            elif extra_specs['hw:mem_page_size'] == 'any':
-                self._logger.info("Currently HPA feature memoryPageSize did not support 'any' page!!")
-            else :
-                hugepages_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'memoryPageSize',
-                                                           'hpa-attribute-value':
-                                                   '{{\"value\":\"{0}\",\"unit\":\"{1}\"}}'.format(extra_specs['hw:mem_page_size'],"KB")
-                                                                       })
-
-        return hugepages_capability
-
-    def _get_numa_capabilities(self, extra_specs):
-        numa_capability = {}
-        feature_uuid = uuid.uuid4()
-
-        if extra_specs.has_key('hw:numa_nodes'):
-            numa_capability['hpa-capability-id'] = str(feature_uuid)
-            numa_capability['hpa-feature'] = 'numa'
-            numa_capability['architecture'] = 'generic'
-            numa_capability['hpa-version'] = 'v1'
-
-            numa_capability['hpa-feature-attributes'] = []
-            numa_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'numaNodes',
-                                                  'hpa-attribute-value':
-                                                      '{{\"value\":\"{0}\"}}'.format(extra_specs['hw:numa_nodes'] or 0)
-                                                              })
-
-            for num in range(0, int(extra_specs['hw:numa_nodes'])):
-                numa_cpu_node = "hw:numa_cpus.%s" % num
-                numa_mem_node = "hw:numa_mem.%s" % num
-                numacpu_key = "numaCpu-%s" % num
-                numamem_key = "numaMem-%s" % num
-
-                if extra_specs.has_key(numa_cpu_node) and extra_specs.has_key(numa_mem_node):
-                    numa_capability['hpa-feature-attributes'].append({'hpa-attribute-key': numacpu_key,
-                                                          'hpa-attribute-value':
-                                                               '{{\"value\":\"{0}\"}}'.format(extra_specs[numa_cpu_node])
-                                                                      })
-                    numa_capability['hpa-feature-attributes'].append({'hpa-attribute-key': numamem_key,
-                                                          'hpa-attribute-value':
-                                                   '{{\"value\":\"{0}\",\"unit\":\"{1}\"}}'.format(extra_specs[numa_mem_node],"MB")
-                                                                      })
-
-        return numa_capability
-
-    def _get_storage_capabilities(self, flavor):
-        storage_capability = {}
-        feature_uuid = uuid.uuid4()
-
-        storage_capability['hpa-capability-id'] = str(feature_uuid)
-        storage_capability['hpa-feature'] = 'localStorage'
-        storage_capability['architecture'] = 'generic'
-        storage_capability['hpa-version'] = 'v1'
-
-        storage_capability['hpa-feature-attributes'] = []
-        storage_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'diskSize',
-                                                       'hpa-attribute-value':
-                                                   '{{\"value\":\"{0}\",\"unit\":\"{1}\"}}'.format(flavor['disk'] or 0,"GB")
-                                                             })
-        storage_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'swapMemSize',
-                                                       'hpa-attribute-value':
-                                                   '{{\"value\":\"{0}\",\"unit\":\"{1}\"}}'.format(flavor['swap'] or 0,"MB")
-                                                             })
-        storage_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'ephemeralDiskSize',
-                                                       'hpa-attribute-value':
-                                                   '{{\"value\":\"{0}\",\"unit\":\"{1}\"}}'.format(flavor['OS-FLV-EXT-DATA:ephemeral'] or 0,"GB")
-                                                             })
-        return storage_capability
-
-    def _get_instruction_set_capabilities(self, extra_specs):
-        instruction_capability = {}
-        feature_uuid = uuid.uuid4()
-
-        if extra_specs.has_key('hw:capabilities:cpu_info:features'):
-            instruction_capability['hpa-capability-id'] = str(feature_uuid)
-            instruction_capability['hpa-feature'] = 'instructionSetExtensions'
-            instruction_capability['architecture'] = 'Intel64'
-            instruction_capability['hpa-version'] = 'v1'
-
-            instruction_capability['hpa-feature-attributes'] = []
-            instruction_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'instructionSetExtensions',
-                                                       'hpa-attribute-value':
-                                                      '{{\"value\":\"{0}\"}}'.format(extra_specs['hw:capabilities:cpu_info:features'])
-                                                                     })
-        return instruction_capability
-
-    def _get_pci_passthrough_capabilities(self, extra_specs):
-        instruction_capability = {}
-        feature_uuid = uuid.uuid4()
-
-        if extra_specs.has_key('pci_passthrough:alias'):
-            value1 = extra_specs['pci_passthrough:alias'].split(':')
-            value2 = value1[0].split('-')
-
-            instruction_capability['hpa-capability-id'] = str(feature_uuid)
-            instruction_capability['hpa-feature'] = 'pciePassthrough'
-            instruction_capability['architecture'] = str(value2[2])
-            instruction_capability['hpa-version'] = 'v1'
-
-
-            instruction_capability['hpa-feature-attributes'] = []
-            instruction_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'pciCount',
-                                                       'hpa-attribute-value':
-                                                      '{{\"value\":\"{0}\"}}'.format(value1[1])
-                                                                     })
-            instruction_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'pciVendorId',
-                                                       'hpa-attribute-value':
-                                                      '{{\"value\":\"{0}\"}}'.format(value2[3])
-                                                                     })
-            instruction_capability['hpa-feature-attributes'].append({'hpa-attribute-key': 'pciDeviceId',
-                                                       'hpa-attribute-value':
-                                                      '{{\"value\":\"{0}\"}}'.format(value2[4])
-                                                                     })
-        return instruction_capability
-
-    def _get_ovsdpdk_capabilities(self, viminfo):
-        ovsdpdk_capability = {}
-        feature_uuid = uuid.uuid4()
-
-        cloud_extra_info_str = viminfo.get('cloud_extra_info')
-        if not isinstance(cloud_extra_info_str, dict):
-            try:
-                cloud_extra_info_str = json.loads(cloud_extra_info_str)
-            except Exception as ex:
-                logger.error("Can not convert cloud extra info %s %s" % (
-                             str(ex), cloud_extra_info_str))
-                return {}
-        if cloud_extra_info_str :
-            cloud_dpdk_info = cloud_extra_info_str.get("ovsDpdk")
-            if cloud_dpdk_info :
-                ovsdpdk_capability['hpa-capability-id'] = str(feature_uuid)
-                ovsdpdk_capability['hpa-feature'] = 'ovsDpdk'
-                ovsdpdk_capability['architecture'] = 'Intel64'
-                ovsdpdk_capability['hpa-version'] = 'v1'
-
-                ovsdpdk_capability['hpa-feature-attributes'] = []
-                ovsdpdk_capability['hpa-feature-attributes'].append({'hpa-attribute-key': str(cloud_dpdk_info.get("libname")),
-                                                         'hpa-attribute-value':
-                                                      '{{\"value\":\"{0}\"}}'.format(cloud_dpdk_info.get("libversion"))                                                                                                                 })
-        return ovsdpdk_capability
-
 class RegistryV1(Registry):
     def __init__(self):
         self.proxy_prefix = settings.MULTICLOUD_API_V1_PREFIX