Modify the logic to get input entry_schema. 15/84615/1
authordyh <dengyuanhong@chinamobile.com>
Tue, 9 Apr 2019 07:03:32 +0000 (15:03 +0800)
committerdyh <dengyuanhong@chinamobile.com>
Tue, 9 Apr 2019 07:08:28 +0000 (15:08 +0800)
Change-Id: I9b477731cff7e07a859b3f85b0c66499a2235776
Issue-ID: VFC-1344
Signed-off-by: dyh <dengyuanhong@chinamobile.com>
catalog/packages/tests/test_servicepackage.py
catalog/pub/utils/toscaparser/sdmodel.py

index dc6f357..8030d92 100644 (file)
@@ -18,6 +18,7 @@ from mock import mock
 from rest_framework import status
 
 from catalog.packages.biz.sdc_service_package import ServicePackage
+from catalog.packages.const import PKG_STATUS
 from catalog.pub.database.models import ServicePackageModel, VnfPackageModel, PnfPackageModel
 from catalog.pub.exceptions import PackageNotFoundException, PackageHasExistsException, CatalogException
 from catalog.pub.msapi import sdc
@@ -319,6 +320,13 @@ class TestServicePackage(TestCase):
         PnfPackageModel(pnfPackageId="1", pnfdId="m6000_s").save()
         ServicePackage().on_distribute(csar_id="1")
 
+        service_package = ServicePackageModel.objects.filter(servicePackageId="1").first()
+        self.assertEqual("5de07996-7ff0-4ec1-b93c-e3a00bb3f207", service_package.invariantId)
+        self.assertEqual("Enhance_Service", service_package.servicedName)
+        self.assertEqual(PKG_STATUS.ONBOARDED, service_package.onboardingState)
+        self.assertEqual(PKG_STATUS.ENABLED, service_package.operationalState)
+        self.assertEqual(PKG_STATUS.NOT_IN_USE, service_package.usageState)
+
     def test_api_service_pkg_distribute_when_pkg_exists(self):
         ServicePackageModel(servicePackageId="1", servicedId="2").save()
         resp = self.client.post(
index ac49d44..d7e1c3a 100644 (file)
@@ -48,7 +48,7 @@ class SdInfoModel(BaseInfoModel):
             type = input.schema.type
             if type.__eq__('list') or type.__eq__('map'):
                 complex_input = []
-                entry_schema = input.schema.schema['entry_schema']
+                entry_schema = self.get_entry_schema(input.schema.schema['entry_schema'])
                 self.get_child_input_repeat(complex_input, entry_schema, input)
                 result_inputs[input.schema.name] = complex_input
 
@@ -67,7 +67,7 @@ class SdInfoModel(BaseInfoModel):
         for key, value in properties.iteritems():
             if value['type'].__eq__('list'):
                 child_complex_input = []
-                child_entry_schema = value['entry_schema']
+                child_entry_schema = self.get_entry_schema(value['entry_schema'])
                 self.get_child_input_repeat(child_complex_input, child_entry_schema, input)
                 complex_input.append({key: child_complex_input})
             else:
@@ -85,3 +85,9 @@ class SdInfoModel(BaseInfoModel):
                         "required": value['required'],
                     }
                 complex_input.append(simple_input)
+
+    def get_entry_schema(self, entry_schema):
+        if isinstance(entry_schema, dict):
+            if 'type' in entry_schema.keys():
+                entry_schema = entry_schema['type']
+        return entry_schema