Add NSSI and slice profile in shared NSI response 68/106968/1
authorkrishnaa96 <krishna.moorthy6@wipro.com>
Fri, 1 May 2020 08:04:50 +0000 (13:34 +0530)
committerkrishnaa96 <krishna.moorthy6@wipro.com>
Fri, 1 May 2020 08:06:38 +0000 (13:36 +0530)
Issue-ID: OPTFRA-749
Signed-off-by: krishnaa96 <krishna.moorthy6@wipro.com>
Change-Id: Ie41f07881dad20e54bc13e5c1d7a6be094972a35

apps/slice_selection/models/api/nsi_selection_response.py
apps/slice_selection/optimizers/conductor/response_processor.py
test/apps/slice_selection/shared_solution_nsi_response.json

index 9547200..a927efa 100644 (file)
@@ -22,12 +22,21 @@ from schematics.types.compound import ModelType, ListType, DictType
 
 
 # TODO: update osdf.models
+class NSSI(OSDFModel):
+    NSSIId = StringType(required=True)
+    NSSIName = StringType(required=True)
+    UUID = StringType(required=True)
+    invariantUUID = StringType(required=True)
+    sliceProfile = ListType(DictType(BaseType))
+
+
 class SharedNSISolution(OSDFModel):
     invariantUUID = StringType(required=True)
     UUID = StringType(required=True)
     NSIName = StringType(required=True)
     NSIId = StringType(required=True)
     matchLevel = StringType(required=True)
+    NSSIs = ListType(ModelType(NSSI))
 
 
 class NSSTInfo(OSDFModel):
index a841cb5..c175c1a 100644 (file)
@@ -54,6 +54,19 @@ def conductor_response_processor(overall_recommendations, nst_info_map, request_
                 shared_nsi_solution["NSIName"] = candidate.get('nsi_name')
                 shared_nsi_solution["UUID"] = candidate.get('nsi_model_version_id')
                 shared_nsi_solution["invariantUUID"] = candidate.get('nsi_model_invariant_id')
+
+                nssi_info_list = get_nssi_solutions(recommendation)
+                nssis = list()
+                for nssi_info in nssi_info_list:
+                    nssi = dict()
+                    nssi["NSSIId"] = nssi_info.get("NSSISolution").get("NSSIId")
+                    nssi["NSSIName"] = nssi_info.get("NSSISolution").get("NSSIName")
+                    nssi["UUID"] = ""
+                    nssi["invariantUUID"] = ""
+                    nssi["sliceProfile"] = [nssi_info.get("sliceProfile")]
+                    nssis.append(nssi)
+
+                shared_nsi_solution["NSSIs"] = nssis
                 shared_nsi_solutions.append(shared_nsi_solution)
             else:
                 nssi_solutions = get_nssi_solutions(recommendation)
index 5c94914..2c74196 100644 (file)
@@ -1,19 +1,51 @@
 {
-   "requestId":"d290f1ee-6c54-4b01-90e6-d701748f0851",
-   "transactionId":"d290f1ee-6c54-4b01-90e6-d701748f0851",
-   "requestStatus":"completed",
-   "statusMessage":"",
-   "solutions":{
-      "sharedNSISolutions":[
-         {
-            "NSIName":"nsi_test_0212",
-            "NSIId":"7ecdfb7a-bc38-4abd-9cb3-6677d71e892f",
-            "UUID":"c3d8a690-f138-4554-89af-9349aeb9b19a",
-            "invariantUUID":"590b9fcf-6927-495e-a898-a1418dd4820c"
-         }
-      ],
-      "newNSISolutions":[
-
-      ]
-   }
+    "requestId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
+    "requestStatus": "completed",
+    "solutions": {
+        "newNSISolutions": [],
+        "sharedNSISolutions": [
+            {
+                "NSIId": "7ecdfb7a-bc38-4abd-9cb3-6677d71e892f",
+                "NSIName": "nsi_test_0212",
+                "NSSIs": [
+                    {
+                        "NSSIId": "1a636c4d-5e76-427e-bfd6-241a947224b0",
+                        "NSSIName": "nssi_test_0211",
+                        "UUID": "",
+                        "invariantUUID": "",
+                        "sliceProfile": [
+                            {
+                                "coverage_area_ta_list": "[{\"province\":\"??\",\"city\":\"???\",\"county\":\"???\",\"street\":\"?????\"}]",
+                                "exp_data_rate_dl": 100,
+                                "exp_data_rate_ul": 100,
+                                "latency": 20,
+                                "resource_sharing_level": "0",
+                                "ue_mobility_level": "stationary"
+                            }
+                        ]
+                    },
+                    {
+                        "NSSIId": "490c68b0-639c-11ea-bc55-0242ac130003",
+                        "NSSIName": "nssi_test_ran_0211",
+                        "UUID": "",
+                        "invariantUUID": "",
+                        "sliceProfile": [
+                            {
+                                "coverage_area_ta_list": "[{\"province\":\"??\",\"city\":\"???\",\"county\":\"???\",\"street\":\"?????\"}]",
+                                "exp_data_rate_dl": 100,
+                                "exp_data_rate_ul": 100,
+                                "latency": 15,
+                                "resource_sharing_level": "0",
+                                "ue_mobility_level": "stationary"
+                            }
+                        ]
+                    }
+                ],
+                "UUID": "c3d8a690-f138-4554-89af-9349aeb9b19a",
+                "invariantUUID": "590b9fcf-6927-495e-a898-a1418dd4820c"
+            }
+        ]
+    },
+    "statusMessage": "",
+    "transactionId": "d290f1ee-6c54-4b01-90e6-d701748f0851"
 }