fetch parameters for native workflows 33/88733/1
authorWojciech Sliwka <wojciech.sliwka@nokia.com>
Mon, 27 May 2019 15:39:44 +0000 (17:39 +0200)
committerWojciech Sliwka <wojciech.sliwka@nokia.com>
Wed, 29 May 2019 06:09:11 +0000 (06:09 +0000)
SO api for retrieving workflows won't return parameters for
workflow marked as native due to high impact on existing code.
In that case VID will fetch parameters from internal API

Issue-ID: VID-484

Change-Id: I7577afa3832c96b523daae01895a249d6ea86e65
Signed-off-by: Wojciech Sliwka <wojciech.sliwka@nokia.com>
(cherry picked from commit 8140332ee31a1cde9cd60d7ffe6ddb01af8f6037)

vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.js
vid-app-common/src/main/webapp/app/vid/scripts/modals/new-change-management/new-change-management.controller.test.js

index c6a5b31..9709e8f 100644 (file)
         vm.loadRemoteWorkFlowsParameters = function () {
           vm.remoteWorkflowsParameters = new Map();
           vm.remoteWorkflows.forEach(function(workflow) {
-            vm.loadRemoteWorkFlowParameters(workflow);
+              if (workflow.source ==='SDC' || workflow.source === 'sdc' ){
+                  vm.loadRemoteWorkFlowParameters(workflow);
+              } else {
+                  vm.localWorkflowsParameters = new Map();
+                  vm.loadLocalWorkFlowParameters(workflow.name);
+              }
           });
         };
 
index afc6439..709e8ca 100644 (file)
@@ -357,4 +357,51 @@ describe('Testing workFlows from SO', () => {
       expect(internalWorkFlowParameters).toEqual(result);
     });
   });
+
+  test('Verify get remote workflow should call internal service for params when workflow is native', () =>{
+      let getWorkflowsStub = Promise.resolve({"data": {"workflows": ["workflow 0"]}})
+      let getLocalWorkflowsParametersStub = Promise.resolve({"data":{
+              "parameterDefinitions": [
+                  {
+                      "id": 1,
+                      "name": "Configuration Parameters",
+                      "required": true,
+                      "type": "text",
+                      "pattern": ".*",
+                      "msgOnPatternError": null,
+                      "msgOnContentError": null,
+                      "acceptableFileType": null
+                  }
+              ],
+          }});
+      let getSOWorkflowsPromiseStub = Promise.resolve({"data":[{
+
+        "id": "ab6478e4-ea33-3346-ac12-ab121484a333",
+        "workflowName": "inPlaceSoftwareUpdate",
+        "name": "inPlaceSoftwareUpdate",
+        "source": "native",
+        "workflowInputParameters": [
+        ]
+    }]
+  });
+
+  $controller.changeManagement.vnfNames = [{modelVersionId: 'test1', name:'test'}];
+  $changeManagementService.getWorkflows = () => getWorkflowsStub;
+  $changeManagementService.getLocalWorkflowParameter = () => getLocalWorkflowsParametersStub;
+  $changeManagementService.getSOWorkflows = () =>  getSOWorkflowsPromiseStub;
+
+  return $controller.loadWorkFlows().then(() => {
+    expect($controller.workflows).toContain('inPlaceSoftwareUpdate');
+    expect($controller.localWorkflowsParameters.get('inPlaceSoftwareUpdate')).toEqual([{
+        "id": 1,
+        "name": "Configuration Parameters",
+        "required": true,
+        "type": "text",
+        "pattern": ".*",
+        "msgOnPatternError": null,
+        "msgOnContentError": null,
+        "acceptableFileType": null
+    }]);
+  });
+});
 });