Fixed SRIOV-NIC extra-specs format 70/72270/1 1.2.1 3.0.0-ONAP
authorHaibin Huang <haibin.huang@intel.com>
Fri, 9 Nov 2018 05:13:46 +0000 (13:13 +0800)
committerHaibin Huang <haibin.huang@intel.com>
Fri, 9 Nov 2018 05:28:18 +0000 (13:28 +0800)
Change-Id: I479a30ca663dd9c23fab6556dc32e8dc06400489
Issue-ID: MULTICLOUD-400
Signed-off-by: Haibin Huang <haibin.huang@intel.com>
share/newton_base/registration/registration.py
windriver/titanium_cloud/registration/tests/test_registration.py

index d2f0a2b..54b1d48 100644 (file)
@@ -269,6 +269,7 @@ class Registry(APIView):
             self._logger.debug("ovsdpdk_capabilities_info: %s" % caps_dict)
             hpa_caps.append(caps_dict)
 
+        logger.debug("hpa_caps:%s" % hpa_caps)
         return hpa_caps
 
     def _get_hpa_basic_capabilities(self, flavor):
@@ -512,9 +513,9 @@ class Registry(APIView):
         feature_uuid = uuid.uuid4()
 
         try:
-            if extra_specs.has_key('sriov_nic'):
-                value1 = extra_specs['sriov_nic'].split(':')
-                value2 = value1[0].split('-')
+            if extra_specs.has_key('aggregate_instance_extra_specs:sriov_nic'):
+                value1 = extra_specs['aggregate_instance_extra_specs:sriov_nic'].split(':')
+                value2 = value1[0].split('-', 5)
 
                 sriov_capability['hpa-capability-id'] = str(feature_uuid)
                 sriov_capability['hpa-feature'] = 'sriovNICNetwork'
index 375ce29..38a6bee 100644 (file)
@@ -196,6 +196,15 @@ MOCK_GET_HPA_FLAVOR_onap_mini_EXTRA_SPECS6_RESPONSE = {
     }
 }
 
+# HPA UT7: sriov-nic
+MOCK_GET_HPA_FLAVOR_onap_mini_EXTRA_SPECS7_RESPONSE = {
+    "extra_specs": {
+        "aggregate_instance_extra_specs:sriov_nic": "sriov-nic-intel-8086-15b3-physnet-1:1",
+        "capabilities:cpu_info:model": "Haswell"
+    }
+}
+
+
 class TestRegistration(test_base.TestRequest):
 
     def setUp(self):
@@ -449,3 +458,33 @@ class TestRegistration(test_base.TestRequest):
         self.assertEquals(status.HTTP_202_ACCEPTED,
                       response.status_code)
 
+    @mock.patch.object(VimDriverUtils, 'get_session')
+    @mock.patch.object(VimDriverUtils, 'get_vim_info')
+    def test_register_sriovnic_successfully(
+            self, mock_get_vim_info, mock_get_session):
+        restcall.req_to_aai = mock.Mock()
+        restcall.req_to_aai.return_value = (0, {}, status.HTTP_200_OK)
+        mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO
+        mock_get_session.return_value = test_base.get_mock_session(
+            ["get"], {
+                "side_effect": [
+                    self._get_mock_response(MOCK_GET_TENANT_RESPONSE),
+                    self._get_mock_response(MOCK_GET_HPA_FLAVOR_LIST1_RESPONSE),
+                    self._get_mock_response(MOCK_GET_HPA_FLAVOR_onap_mini_EXTRA_SPECS7_RESPONSE),
+                    self._get_mock_response(MOCK_GET_IMAGE_RESPONSE),
+                    self._get_mock_response(),
+                    self._get_mock_response(MOCK_GET_AZ_RESPONSE),
+                    self._get_mock_response(MOCK_HYPERVISOR_RESPONSE),
+                    self._get_mock_response(MOCK_GET_SNAPSHOT_RESPONSE),
+                    self._get_mock_response(MOCK_GET_HYPERVISOR_RESPONSE)
+                ]
+            })
+
+        response = self.client.post((
+            "/api/multicloud-titanium_cloud/v0/windriver-hudson-dc_RegionOne/"
+            "registry"), TEST_REGISTER_ENDPOINT_REQUEST,
+            HTTP_X_AUTH_TOKEN=mock_info.MOCK_TOKEN_ID)
+
+        self.assertEquals(status.HTTP_202_ACCEPTED,
+                      response.status_code)
+