From c7b8baaffc5c630b4b9a50ba6b078c6b1dc2719f Mon Sep 17 00:00:00 2001 From: Huang Haibin Date: Tue, 27 Mar 2018 04:36:17 +0800 Subject: Modify hpa json format Change-Id: I9ab7f08b04811d6f7d00f008a1ea0e04aea33f4d Issue-ID: MULTICLOUD-194 Signed-off-by: Huang Haibin --- ocata/ocata/registration/views/registration.py | 231 ++++++++++++------------- 1 file changed, 115 insertions(+), 116 deletions(-) (limited to 'ocata') diff --git a/ocata/ocata/registration/views/registration.py b/ocata/ocata/registration/views/registration.py index ddd856b5..3e2d1e43 100644 --- a/ocata/ocata/registration/views/registration.py +++ b/ocata/ocata/registration/views/registration.py @@ -65,164 +65,163 @@ class Registry(newton_registration.Registry): if (flavor['name'].find('onap.') == -1): continue - properties = flavor['properties'].split(', ') - uuid4 = uuid.uuid4() - # add hpa capability cpu pinning - if (flavor['name'].find('onap.cpu_pinning') != -1): - hpa_caps.append("{'hpaCapabilityID': '" + str(uuid4) + "', ") - hpa_caps.append("'hpaFeature': 'cpuPinning', ") - hpa_caps.append("'hardwareArchitecture': 'generic', ") - hpa_caps.append("'version': 'v1', ") - - if len(properties): - flavor_info['flavor-properties'] = flavor['properties'] - hpa_caps.append("[") - for p in range(len(properties)): - value = properties[p].split('=')[1] - if (properties[p].find("hw:cpu_policy") != -1) : - hpa_caps.append("{'hpa-attribute-key':'logicalCpuThreadPinningPolicy', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") - if (properties[p].find("hw:cpu_thread_policy") != -1) : - hpa_caps.append("{'hpa-attribute-key':'logicalCpuPinningPolicy', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") - hpa_caps.append("]") - hpa_caps.append("},") + if (flavor['extra_specs'] == ""): + continue - elif (flavor['name'].find('onap.cpu_topology') != -1): - hpa_caps.append("{'hpaCapabilityID': '" + str(uuid4) + "', ") - hpa_caps.append("'hpaFeature': 'cpuTopology', ") - hpa_caps.append("'hardwareArchitecture': 'generic', ") - hpa_caps.append("'version': 'v1', ") + flavor_info['extra_specs'] = flavor['extra_specs'] + extra_specs = flavor['extra_specs'] + extra_arr = extra_specs.split(', ') + uuid4 = uuid.uuid4() - if len(properties): - flavor_info['flavor-properties'] = flavor['properties'] - hpa_caps.append("[") - for p in range(len(properties)): - value = properties[p].split('=')[1] - if (properties[p].find("hw:cpu_sockets") != -1) : - hpa_caps.append("{'hpa-attribute-key':'numCpuSockets', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") - if (properties[p].find("hw:cpu_cores") != -1) : - hpa_caps.append("{'hpa-attribute-key':'numCpuCores', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") - if (properties[p].find("hw:cpu_threads") != -1) : - hpa_caps.append("{'hpa-attribute-key':'numCpuThreads', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") - hpa_caps.append("]") - hpa_caps.append("},") + # add basic Capabilities + hpa_caps.append("{'hpaCapabilityID': '" + str(uuid4) + "', ") + hpa_caps.append("'hpaFeature': 'baseCapabilities', ") + hpa_caps.append("'hardwareArchitecture': 'generic', ") + hpa_caps.append("'version': 'v1', ") + hpa_caps.append("[") + hpa_caps.append("{'hpa-attribute-key':'numVirtualCpu', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + str(flavor_info['vcpus']) + "'}}, ") + hpa_caps.append("{'hpa-attribute-key':'virtualMemSize', ") + hpa_caps.append("'hpa-attribute-value': {'value':" + str(flavor_info['mem']) + ", unit:'MB'}}, ") + hpa_caps.append("]") + hpa_caps.append("},") + + # add local storage + hpa_caps.append("{'hpaCapabilityID': '" + str(uuid4) + "', ") + hpa_caps.append("'hpaFeature': 'localStorage', ") + hpa_caps.append("'hardwareArchitecture': 'generic', ") + hpa_caps.append("'version': 'v1', ") + hpa_caps.append("[") + hpa_caps.append("{'hpa-attribute-key':'diskSize', ") + hpa_caps.append("'hpa-attribute-value': {'value':" + str(flavor_info['disk']) + ", unit:'MB'}}, ") + hpa_caps.append("{'hpa-attribute-key':'ephemeralDiskSize', ") + hpa_caps.append("'hpa-attribute-value': {'value':" + str(flavor_info['OS-FLV-EXT-DATA:ephemeral']) + ", unit:'MB'}}, ") + hpa_caps.append("{'hpa-attribute-key':'swapMemSize', ") + hpa_caps.append("'hpa-attribute-value': {'value':" + str(flavor_info['swap']) + ", unit:'MB'}}, ") + hpa_caps.append("]") + hpa_caps.append("},") - elif (flavor['name'].find('onap.base_capabilities') != -1): + # add hpa capability cpu pinning + if (extra_specs.find('hw:cpu_policy') != -1): hpa_caps.append("{'hpaCapabilityID': '" + str(uuid4) + "', ") - hpa_caps.append("'hpaFeature': 'baseCapabilities', ") + hpa_caps.append("'hpaFeature': 'cpuPinning', ") hpa_caps.append("'hardwareArchitecture': 'generic', ") hpa_caps.append("'version': 'v1', ") - hpa_caps.append("[") - hpa_caps.append("{'hpa-attribute-key':'numVirtualCpu', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + str(flavor_info['vcpus']) + "'}}, ") - hpa_caps.append("{'hpa-attribute-key':'virtualMemSize', ") - hpa_caps.append("'hpa-attribute-value': {'value':" + str(flavor_info['mem']) + ", unit:'MB'}}, ") + for p in range(len(extra_arr)): + if (extra_arr[p].find("hw:cpu_policy") != -1) : + value = extra_arr[p].split('=')[1] + hpa_caps.append("{'hpa-attribute-key':'logicalCpuThreadPinningPolicy', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") + if (extra_arr[p].find("hw:cpu_thread_policy") != -1) : + value = extra_arr[p].split('=')[1] + hpa_caps.append("{'hpa-attribute-key':'logicalCpuPinningPolicy', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") hpa_caps.append("]") hpa_caps.append("},") - elif (flavor['name'].find('onap.local_storage') != -1): + # add cpu topology + if (extra_specs.find('hw:cpu_sockets') != -1): hpa_caps.append("{'hpaCapabilityID': '" + str(uuid4) + "', ") - hpa_caps.append("'hpaFeature': 'localStorage', ") + hpa_caps.append("'hpaFeature': 'cpuTopology', ") hpa_caps.append("'hardwareArchitecture': 'generic', ") hpa_caps.append("'version': 'v1', ") - hpa_caps.append("[") - hpa_caps.append("{'hpa-attribute-key':'diskSize', ") - hpa_caps.append("'hpa-attribute-value': {'value':" + str(flavor_info['disk']) + ", unit:'MB'}}, ") - hpa_caps.append("{'hpa-attribute-key':'ephemeralDiskSize', ") - hpa_caps.append("'hpa-attribute-value': {'value':" + str(flavor_info['OS-FLV-EXT-DATA:ephemeral']) + ", unit:'MB'}}, ") - hpa_caps.append("{'hpa-attribute-key':'swapMemSize', ") - hpa_caps.append("'hpa-attribute-value': {'value':" + str(flavor_info['swap']) + ", unit:'MB'}}, ") + for p in range(len(extra_arr)): + if (extra_arr[p].find("hw:cpu_sockets") != -1) : + value = extra_specs[p].split('=')[1] + hpa_caps.append("{'hpa-attribute-key':'numCpuSockets', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") + if (extra_arr[p].find("hw:cpu_cores") != -1) : + value = extra_specs[p].split('=')[1] + hpa_caps.append("{'hpa-attribute-key':'numCpuCores', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") + if (extra_arr[p].find("hw:cpu_threads") != -1) : + value = extra_specs[p].split('=')[1] + hpa_caps.append("{'hpa-attribute-key':'numCpuThreads', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") hpa_caps.append("]") hpa_caps.append("},") - elif (flavor['name'].find('onap.numa') != -1): + # add numa + if (extra_specs.find('hw:numa_nodes') != -1): hpa_caps.append("{'hpaCapabilityID': '" + str(uuid4) + "', ") hpa_caps.append("'hpaFeature': 'numa', ") hpa_caps.append("'hardwareArchitecture': 'generic', ") hpa_caps.append("'version': 'v1', ") - - if len(properties): - flavor_info['flavor-properties'] = flavor['properties'] - hpa_caps.append("[") - for p in range(len(properties)): - p_arr = properties[p].split('=') + hpa_caps.append("[") + for p in range(len(extra_arr)): + if (extra_arr[p].find("hw:numa_nodes") != -1) : + p_arr = extra_arr[p].split('=') + value = p_arr[1] + hpa_caps.append("{'hpa-attribute-key':'numNodes', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") + if (extra_arr[p].find("hw:numa_cpus") != -1) : + p_arr = extra_arr[p].split('=') + value = p_arr[1] + index = p_arr[0].split('.')[1] + hpa_caps.append("{'hpa-attribute-key':'numaCpus-" + index + "', ") + hpa_caps.append("'hpa-attribute-value': {'value':'[" + value + "]'}}, ") + if (extra_arr[p] == ("hw:numa_mem") != -1) : + p_arr = extra_arr[p].split('=') value = p_arr[1] index = p_arr[0].split('.')[1] - if (properties[p].find("hw:numa_nodes") != -1) : - hpa_caps.append("{'hpa-attribute-key':'numNodes', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") - if (properties[p].find("hw:numa_cpus") != -1) : - hpa_caps.append("{'hpa-attribute-key':'numaCpus-" + index + "', ") - hpa_caps.append("'hpa-attribute-value': {'value':'[" + value + "]'}}, ") - if (properties[p] == ("hw:numa_mem") != -1) : - hpa_caps.append("{'hpa-attribute-key':'numaMem-"+ index +"', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + value + ", unit:'MB'}}, ") - hpa_caps.append("]") + hpa_caps.append("{'hpa-attribute-key':'numaMem-"+ index +"', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + value + ", unit:'MB'}}, ") + hpa_caps.append("]") hpa_caps.append("},") - elif (flavor['name'].find('onap.huge_page') != -1): + # add huge page + if (extra_specs.find('hw:mem_page_size') != -1): hpa_caps.append("{'hpaCapabilityId': '" + str(uuid4) + "', ") hpa_caps.append("'hpaFeature': 'hugePages', ") hpa_caps.append("'hardwareArchitecture': 'generic', ") hpa_caps.append("'version': 'v1', ") - - if len(properties): - flavor_info['flavor-properties'] = flavor['properties'] - hpa_caps.append("[") - values = flavor['name'].split('_') - for p in range(len(properties)): - if (properties[p] == "hw:mem_page_size") : - hpa_caps.append("{'hpa-attribute-key':'memoryPageSize', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + values[2] + "'}}, ") - hpa_caps.append("]") + hpa_caps.append("[") + for p in range(len(extra_arr)): + if (extra_arr[p] == "hw:mem_page_size") : + value = extra_specs[p].split('=')[1] + hpa_caps.append("{'hpa-attribute-key':'memoryPageSize', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + value + "'}}, ") + hpa_caps.append("]") hpa_caps.append("},") - elif (flavor['name'].find('onap.iax') != -1): + # add instruction set externsions + if (extra_specs.find('w:capabilities:cpu_info:features') != -1): hpa_caps.append("{'hpaCapabilityId': '" + str(uuid4) + "', ") hpa_caps.append("'hpaFeature': 'instructionSetExtensions', ") hpa_caps.append("'hardwareArchitecture': 'Intel64', ") hpa_caps.append("'version': 'v1', ") - - if len(properties): - flavor_info['flavor-properties'] = flavor['properties'] - hpa_caps.append("[") - value = flavor['properties'].split('=')[1] - for p in range(len(properties)): - if (properties[p].find("hw:capabilities:cpu_info:features") != -1) : - hpa_caps.append("{'hpa-attribute-key':'instructionSetExtensions', ") - hpa_caps.append("'hpa-attribute-value': {'value':[" + value + "]}}, ") - hpa_caps.append("]") + hpa_caps.append("[") + for p in range(len(extra_arr)): + if (extra_arr[p].find("hw:capabilities:cpu_info:features") != -1) : + value = extra_arr.split('=')[1] + hpa_caps.append("{'hpa-attribute-key':'instructionSetExtensions', ") + hpa_caps.append("'hpa-attribute-value': {'value':[" + value + "]}}, ") + hpa_caps.append("]") hpa_caps.append("},") - elif (flavor['name'].find('onap.pci_passthrough') != -1) : + # add pci device passthrough + if (extra_specs.find('pci_passthrough:alias') != -1) : hpa_caps.append("{'hpaCapabilityId': '" + str(uuid4) + "', ") hpa_caps.append("'hpaFeature': 'pciPassthrough', ") hpa_caps.append("'version': 'v1', ") - if len(properties): - values = properties[0].split('-') - hpa_caps.append("'hardwareArchitecture': '" + values[2] + "', ") - - flavor_info['flavor-properties'] = flavor['properties'] - hpa_caps.append("[") - value = values[4].split(':') - hpa_caps.append("{'hpa-attribute-key':'pciCount', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + value[1] + "'}}, ") - hpa_caps.append("{'hpa-attribute-key':'pciVendorId', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + values[3] + "'}}, ") - hpa_caps.append("{'hpa-attribute-key':'pciDeviceId', ") - hpa_caps.append("'hpa-attribute-value': {'value':'" + value[0] + "'}}, ") - hpa_caps.append("]") + hpa_caps.append("[") + for p in range(len(extra_arr)): + if (extra_arr[p] == "pci_passthrough:alias") : + values = extra_arr[0].split('-') + value = values[4].split(':') + hpa_caps.append("{'hpa-attribute-key':'pciCount', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + value[1] + "'}}, ") + hpa_caps.append("{'hpa-attribute-key':'pciVendorId', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + values[3] + "'}}, ") + hpa_caps.append("{'hpa-attribute-key':'pciDeviceId', ") + hpa_caps.append("'hpa-attribute-value': {'value':'" + value[0] + "'}}, ") + hpa_caps.append("]") hpa_caps.append("},") + hpa_caps.append("]") + hpa_caps.append("'hardwareArchitecture': '" + values[2] + "', ") - else: - self._logger.info("can not support this flavor type") - hpa_caps.append("]") str_hpa_caps = '' flavor_info['hpa_capabilities'] = str_hpa_caps.join(hpa_caps) self._logger.debug("flavor_info: %s" % flavor_info) -- cgit 1.2.3-korg