From 181c53c3dc4d7ec3c603e60d78358d9ba16deccc Mon Sep 17 00:00:00 2001 From: Nate Potter Date: Fri, 30 Mar 2018 04:11:52 -0700 Subject: Fix SRIOV count fetching Update the logic for SRIOV HPA fetching to get a count value from the true or false that is provided. Change-Id: I314a491a3b33bcfb445a85df8213203a436e03d1 Signed-off-by: Nathaniel Potter Issue-ID: MULTICLOUD-208 --- newton/newton/registration/tests/test_registration.py | 2 +- newton/newton/registration/views/registration.py | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/newton/newton/registration/tests/test_registration.py b/newton/newton/registration/tests/test_registration.py index e603e4e8..d5be81de 100644 --- a/newton/newton/registration/tests/test_registration.py +++ b/newton/newton/registration/tests/test_registration.py @@ -56,7 +56,7 @@ MOCK_GET_EXTRA_SPECS_RESPONSE = { "hw:numa_cpus.1": [0, 1], "hw:numa_mem.1": 2, "pci_passthrough:alias": "mycrypto-8086-0443:4", - "aggregate_instance_extra_spec:sriov-device-intel": "1832-9475", + "aggregate_instance_extra_spec:sriov-device-intel-1832-9475": "true", "hw:mem_page_size": "1GB" } } diff --git a/newton/newton/registration/views/registration.py b/newton/newton/registration/views/registration.py index 3a9c5acd..cc97e048 100644 --- a/newton/newton/registration/views/registration.py +++ b/newton/newton/registration/views/registration.py @@ -205,16 +205,22 @@ class Registry(newton_registration.Registry): capabilities.append(capability) # SRIOV Devices - sriov_devices = [spec for spec in extra_specs if spec.startswith("aggregate_instance_extra_spec:sriov-device")] + sriov_devices = [spec for spec in extra_specs if spec.startswith("aggregate_instance_extra_spec:sriov")] for device in sriov_devices: capability = hpa_dict['pciePassthrough']['info'] capability['hpa-capability-id'] = str(uuid.uuid4()) - # device will be in the form aggregate_instance_extra_specs:sriov-device-="-", - device_info = extra_specs[device] - vendor_id = device_info.split("-")[0] - device_id = device_info.split("-")[1] + # device will be in the form aggregate_instance_extra_specs:sriov-device-=, + # NAME is expected to be in the form -- + enabled = extra_specs[device] + count = 1 if enabled == "true" else 0 + vendor_id = device.split(":")[1].split("-")[3] + device_id = device.split(":")[1].split("-")[4] attributes = [ + { + 'hpa-attribute-key': 'pciCount', + 'hpa-attribute-value': '{{\"value\":\"{0}\"}}'.format(count) + }, { 'hpa-attribute-key': 'pciVendorId', 'hpa-attribute-value': '{{\"value\":\"{0}\"}}'.format(vendor_id) -- cgit 1.2.3-korg