remove FLAG_1810_CR_SOFT_DELETE_ALACARTE_VF_MODULE
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / controller / InstantiationController.js
index f1dc384..12dd779 100755 (executable)
@@ -2,7 +2,8 @@
  * ============LICENSE_START=======================================================\r
  * VID\r
  * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
+ * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.\r
+ * Modifications Copyright (C) 2019 IBM.\r
  * ================================================================================\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
  * you may not use this file except in compliance with the License.\r
  * deployable objects (Services, VNFs, VF-Modules, Networks, and Volume-Groups)\r
  */\r
 (function () {\r
-       "use strict";\r
+    "use strict";\r
 \r
-       appDS2.requires.push('ui.tree');\r
+    appDS2.requires.push('ui.tree');\r
 \r
-       appDS2.controller("InstantiationController", function ($scope, $route, $location, $timeout, COMPONENT, VIDCONFIGURATION, FIELD, DataService, PropertyService, UtilityService, VnfService, $http, vidService, AaiService,PnfService, $q) {\r
-\r
-               $scope.popup = new Object();\r
-               $scope.defaultBaseUrl = "";\r
-               $scope.responseTimeoutMsec = 60000;\r
-               $scope.properties = UtilityService.getProperties();\r
+    appDS2.controller("InstantiationController", function ($scope, $route, $location, $timeout, $uibModal, COMPONENT, VIDCONFIGURATION, FIELD, DataService, PropertyService, UtilityService, VnfService, $http, vidService, AaiService, PnfService, CrService, AsdcService, $q, featureFlags, _, CreationService, $window, DeleteResumeService) {\r
+        $scope.popup = new Object();\r
+        $scope.defaultBaseUrl = "";\r
+        $scope.responseTimeoutMsec = 60000;\r
+        $scope.properties = UtilityService.getProperties();\r
         $scope.resumeStatus = COMPONENT.RESUME_STATUS;\r
         //isPermitted - returned as string from url and converted into boolean\r
-               $scope.isPermitted = $location.search().isPermitted == "true";\r
-               $scope.STATUS_CONSTANTS = FIELD.STATUS;\r
+        $scope.isPermitted = $location.search().isPermitted === "true";\r
+        $scope.STATUS_CONSTANTS = FIELD.STATUS;\r
         $scope.pnfs = [];// PNF data init;\r
-\r
-        $scope.init = function() {\r
+        $scope.collectionResource = {};\r
+        $scope.collections = [];\r
+        $scope.networks = [];\r
+        $scope.isCR = false;\r
+        $scope.isVFC = false;\r
+        $scope.init = function () {\r
             /*\r
              * These 2 statements should be included in non-test code.\r
              */\r
-               // takes a default value, retrieves the prop value from the file system and sets it\r
-               var msecs = PropertyService.retrieveMsoMaxPollingIntervalMsec();\r
-               PropertyService.setMsoMaxPollingIntervalMsec(msecs);\r
-               \r
-               // takes a default value, retrieves the prop value from the file system and sets it\r
-               var polls = PropertyService.retrieveMsoMaxPolls();\r
-               PropertyService.setMsoMaxPolls(polls);\r
-               \r
-               PropertyService.setServerResponseTimeoutMsec(30000);\r
+            // takes a default value, retrieves the prop value from the file system and sets it\r
+            var msecs = PropertyService.retrieveMsoMaxPollingIntervalMsec();\r
+            PropertyService.setMsoMaxPollingIntervalMsec(msecs);\r
 \r
-            /*\r
-             * Common parameters that shows an example of how the view edit screen\r
-             * is expected to pass some common service instance values to the\r
-             * popups.\r
-             */\r
+            // takes a default value, retrieves the prop value from the file system and sets it\r
+            var polls = PropertyService.retrieveMsoMaxPolls();\r
+            PropertyService.setMsoMaxPolls(polls);\r
+        };\r
 \r
-//            DataService.setSubscriberName("Mobility");\r
-//            DataService.setGlobalCustomerId("CUSTID12345")\r
-//            DataService.setServiceType("Mobility Type 1");\r
-//            DataService.setServiceInstanceName("Example Service Instance Name");\r
-//            DataService.setServiceName("Mobility Service 1");\r
-//            DataService.setServiceInstanceId("mmsc-test-service-instance");\r
-//            DataService.setServiceUuid("XXXX-YYYY-ZZZZ");\r
-//            DataService.setUserServiceInstanceName("USER_SERVICE_INSTANCE_NAME");\r
 \r
-        }\r
+        $scope.convertModel = function (asdcModel) {\r
+            if (!asdcModel) return undefined;\r
+            var convertedAsdcModel = UtilityService.convertModel(asdcModel);\r
+            return convertedAsdcModel;\r
+        };\r
 \r
-        //PropertyService.setMsoBaseUrl("testmso");\r
+        $scope.prepareScopeWithModel = function () {\r
+            // skip if no model\r
+            if (!vidService.getModel()) return;\r
 \r
-               $scope.convertModel = function(asdcModel) {\r
-                       if (!asdcModel) return undefined;\r
-                       var convertedAsdcModel = UtilityService.convertModel(asdcModel);\r
-                       return convertedAsdcModel;\r
-               };\r
-               \r
-               $scope.service = {\r
-                       "model": vidService.getModel(),\r
-                       "convertedModel": $scope.convertModel(vidService.getModel()),\r
-                       "instance": vidService.getInstance()\r
-               };\r
+            $scope.service = {\r
+                "model": vidService.getModel(),\r
+                "convertedModel": $scope.convertModel(vidService.getModel()),\r
+                "instance": vidService.getInstance()\r
+            };\r
 \r
-               preparePnfs();\r
 \r
+            $scope.isCR = !_.isEmpty($scope.service.model.collectionResources);\r
+            if ($scope.isCR)\r
+                prepareCr();\r
+            else\r
+                preparePnfs();\r
+        };\r
 \r
-        function preparePnfs(){\r
-               var serviceInstance = {\r
+        function preparePnfs() {\r
+            var serviceInstance = {\r
                 globalCustomerId: $location.search().subscriberId,\r
                 serviceType: $location.search().serviceType,\r
                 serviceInstanceId: $location.search().serviceInstanceId\r
-               };\r
+            };\r
 \r
-            _setPnf(serviceInstance).then(function(data){\r
+            _setPnf(serviceInstance).then(function (data) {\r
                 $scope.pnfs = data;\r
             });\r
-               }\r
-\r
-\r
-               $scope.returnVfModules = function (vnfInstance) {\r
-                       \r
-                       var svcModel = $scope.service.convertedModel;\r
-                       //var vnfModelInvariantUuid = vnfInstance[FIELD.ID.MODEL_INVAR_ID];\r
-                       var vnfModelVersionId = vnfInstance[FIELD.ID.MODEL_VERSION_ID]; // model uuid\r
-                       var vnfModelCustomizationUuid = vnfInstance[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-       \r
-                       var vnfModel = null;\r
-                       \r
-                       if ( (!($scope.isObjectEmpty(svcModel))) && ( !($scope.isObjectEmpty(svcModel.vnfs) ) ) ) {\r
-                               if ( (svcModel.isNewFlow) && (vnfModelCustomizationUuid != null ) ) {\r
-                                       vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
-                                       if ( !($scope.isObjectEmpty(vnfModel.vfModules) ) )  {\r
-                                               //console.log ("vnfModel.vfModules: "); console.log (JSON.stringify(vnfModel.vfModules, null, 4));\r
-                                               return (vnfModel.vfModules);\r
-                                       }\r
-                               }\r
-                               else {\r
-                                       // old flow\r
-                                       if ( vnfModelVersionId != null ) {\r
-                                               vnfModel = svcModel.vnfs[vnfModelVersionId];\r
-                                               if ( !($scope.isObjectEmpty(vnfModel.vfModules) ) )  {\r
-                                                       //console.log ("vnfModel.vfModules: "); console.log (JSON.stringify(vnfModel.vfModules, null, 4));\r
-                                                       return (vnfModel.vfModules);\r
-                                               }\r
-                                       }\r
-                               }\r
-                               \r
-                       }\r
-                       return null;\r
-               }\r
-               $scope.hasVfModules = function (vnfInstance) {\r
-                       if ($scope.returnVfModules(vnfInstance) != null ){\r
-                               return true;\r
-                       }\r
-                       return false;\r
-               }\r
-               $scope.returnVolumeGroups = function (vnfInstance) {\r
-                       \r
-                       var svcModel = $scope.service.convertedModel;\r
-\r
-                       //var vnfModelInvariantUuid = vnfInstance[FIELD.ID.MODEL_INVAR_ID];\r
-                       var vnfModelVersionId = vnfInstance[FIELD.ID.MODEL_VERSION_ID];\r
-                       var vnfModelCustomizationUuid = vnfInstance[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-\r
-                       var vnfModel = null;\r
-                       \r
-                       if ( (!($scope.isObjectEmpty(svcModel))) && ( !($scope.isObjectEmpty(svcModel.vnfs) ) ) ) {\r
-                               if ( (svcModel.isNewFlow) && (vnfModelCustomizationUuid != null ) ) {\r
-                                       vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
-                                       if ( !($scope.isObjectEmpty(vnfModel.volumeGroups) ) )  {\r
-                                               //console.log ("vnfModel.volumeGroups: "); console.log (JSON.stringify(vnfModel.volumeGroups, null, 4));\r
-                                               return (vnfModel.volumeGroups);\r
-                                       }\r
-                               }\r
-                               else {\r
-                                       // old flow\r
-                                       if ( vnfModelVersionId != null ) {\r
-                                               vnfModel = svcModel.vnfs[vnfModelVersionId];\r
-                                               if ( !($scope.isObjectEmpty(vnfModel.volumeGroups) ) )  {\r
-                                                       //console.log ("vnfModel.vfModules: "); console.log (JSON.stringify(vnfModel.volumeGroups, null, 4));\r
-                                                       return (vnfModel.volumeGroups);\r
-                                               }\r
-                                       }\r
-                               }\r
-                               \r
-                       }\r
-                       return null;\r
-               }\r
-               $scope.hasVolumeGroups = function (vnfInstance) {\r
-                       if ($scope.returnVolumeGroups(vnfInstance) != null ){\r
-                               return true;\r
-                       }\r
-                       return false;\r
-               }\r
-               $scope.deleteNetwork = function(serviceObject, network) {\r
-\r
-                       console.log("Removing Network " + network.name);\r
-\r
-                       //Send delete network request to MSO\r
-\r
-                       //var networks = this.service.instance.networks;\r
-\r
-                       //networks.splice(networks.indexOf(network), 1);\r
-\r
-                       //Retrieve updated data from A&AI\r
-            var serviceInstance = serviceObject.object;\r
-            var svcModel = $scope.service.convertedModel;\r
-                       var netModel;\r
-                       DataService.setInventoryItem(network.object);\r
-                       // set model default and override later if found\r
-                       DataService.setModelInfo(COMPONENT.NETWORK, {});\r
-                       \r
-                       if ( network.object != null ) {\r
-                               \r
-                               //var netModelInvariantUuid = network.object[FIELD.ID.MODEL_INVAR_ID];\r
-                               var netModelVersionId = network.object[FIELD.ID.MODEL_VERSION_ID]; // model uuid\r
-                               var netModelCustomizationUuid = network.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-                       \r
-                               if ( (!($scope.isObjectEmpty(svcModel))) && ( !($scope.isObjectEmpty(svcModel.networks) ) ) ) {\r
-                                       if ( (svcModel.isNewFlow) && (UtilityService.hasContents(netModelCustomizationUuid) ) ) {\r
-                                               netModel = svcModel.networks[netModelCustomizationUuid];\r
-                                       }\r
-                                       else {\r
-                                               \r
-                                               if ( UtilityService.hasContents(netModelVersionId) ) {\r
-                                                       netModel = svcModel.networks[netModelVersionId];\r
-                                               }\r
-                               \r
-                                       }\r
-                               }\r
-                       }\r
-                       if (!($scope.isObjectEmpty(netModel) ) ) {\r
-                               DataService.setModelInfo(COMPONENT.NETWORK, {\r
-                                       "modelInvariantId": netModel.invariantUuid,\r
-                                       "modelVersion": netModel.version,\r
-                                       "modelNameVersionId": netModel.uuid,\r
-                                       "modelCustomizationName": netModel.modelCustomizationName,\r
-                                       "customizationUuid": netModel.customizationUuid,\r
-                                       "modelName": netModel.name,\r
-                                       "inputs": ""\r
-                               });\r
-                       }\r
-                       \r
-                       DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
-                       DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-                       DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
-       \r
-                       DataService.setGlobalCustomerId(serviceObject[FIELD.ID.GLOBAL_CUST_ID]);\r
-                       DataService.setServiceInstanceName($scope.service.instance.name);\r
-                       DataService.setServiceName($scope.service.model.service.name);\r
-                       DataService.setServiceUuid($scope.service.model.service.uuid);\r
-                       DataService.setNetworkInstanceId(network.object[FIELD.ID.NETWORK_ID]);\r
-                       \r
-                       $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
-                           componentId : COMPONENT.NETWORK,\r
-                           callbackFunction : deleteOrResumeCallback,\r
-                               dialogMethod: COMPONENT.DELETE\r
-                       });\r
-               };\r
-\r
-               $scope.deleteService = function(serviceObject) {\r
-\r
-                       var serviceInstance = serviceObject.object;\r
-                       \r
-                       console.log("Removing Service " + $scope.service.instance.name);\r
-\r
-                       if ( $scope.isMacro() ) {\r
-                               DataService.setALaCarte (false);\r
-                               }\r
-                               else {\r
-                               DataService.setALaCarte (true);\r
-                               }\r
-                       DataService.setMacro($scope.isMacro());\r
-                       DataService.setInventoryItem(serviceInstance);\r
-                       setCurrentServiceModelInfoFromScope();\r
-\r
-                       \r
-                       DataService.setSubscriberName(serviceObject[FIELD.ID.SUBSCRIBER_NAME]);\r
-                       DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-                       DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
-       \r
-                       DataService.setGlobalCustomerId(serviceObject[COMPONENT.GLOBAL_CUSTOMER_ID]);\r
-                       DataService.setServiceInstanceName($scope.service.instance.name);\r
-                       \r
-                       DataService.setServiceName($scope.service.model.service.name);\r
-                       \r
-                       DataService.setServiceUuid($scope.service.model.service.uuid);\r
-                       \r
-                       $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
-                           componentId : COMPONENT.SERVICE,\r
-                           callbackFunction : deleteServiceInstanceCallbackFunction,\r
-                dialogMethod: COMPONENT.DELETE\r
-                       });\r
-               \r
-               };\r
+        }\r
 \r
-               function populate_popup_vfModule(serviceObject, vfModule, vnf){\r
-            var serviceInstance = serviceObject.object;\r
 \r
-            DataService.setInventoryItem(vfModule.object);\r
+        function prepareCr() {\r
+            var serviceInstance = {\r
+                globalCustomerId: $location.search().subscriberId,\r
+                serviceType: $location.search().serviceType,\r
+                serviceInstanceId: $location.search().serviceInstanceId\r
+            };\r
 \r
-            var svcModel = $scope.service.convertedModel;\r
+            _setCr(serviceInstance).then(function (data) {\r
+                $scope.collectionResource = data;\r
+                $scope.collections.push($scope.collectionResource.collection);\r
+                $scope.networks.push($scope.collectionResource.networks[0]);\r
+            });\r
+        }\r
 \r
-            //var vnfModelInvariantUuid = vnf.object[FIELD.ID.MODEL_INVAR_ID];\r
-            var vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];\r
-            var vnfModelCustomizationUuid = vnf.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];;\r
-            var vfModuleInstanceID = vfModule.object[FIELD.ID.VF_MODULE_ID];\r
-            if (vfModuleInstanceID == null) {\r
-                vfModuleInstanceID = "";\r
-            }\r
+        $scope.returnVfModules = function (vnfInstance) {\r
 \r
-            var vnfModel = null;\r
-            var vfModuleModel = null;\r
+            var svcModel = $scope.service.convertedModel;\r
+            //var vnfModelInvariantUuid = vnfInstance[FIELD.ID.MODEL_INVAR_ID];\r
+            var vnfModelVersionId = vnfInstance[FIELD.ID.MODEL_VERSION_ID]; // model uuid\r
+            var vnfModelCustomizationUuid = vnfInstance[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
 \r
-            DataService.setModelInfo(COMPONENT.VF_MODULE, {\r
-                "modelInvariantId": "",\r
-                "modelVersion": "",\r
-                "modelNameVersionId": "",\r
-                "modelCustomizationName": "",\r
-                "customizationUuid": "",\r
-                "modelName": "",\r
-                "inputs": ""\r
-            });\r
+            var vnfModel = null;\r
 \r
-            if ( (!($scope.isObjectEmpty(svcModel))) && ( !($scope.isObjectEmpty(svcModel.vnfs) ) ) ) {\r
-                if ( (svcModel.isNewFlow) && (vnfModelCustomizationUuid != null ) ) {\r
+            if ((!($scope.isObjectEmpty(svcModel))) && (!($scope.isObjectEmpty(svcModel.vnfs)))) {\r
+                if ((svcModel.isNewFlow) && (vnfModelCustomizationUuid != null)) {\r
                     vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
+                    if (vnfModel !== undefined) {\r
+                        if (!($scope.isObjectEmpty(vnfModel.vfModules))) {\r
+                            //console.log ("vnfModel.vfModules: "); console.log (JSON.stringify(vnfModel.vfModules, null, 4));\r
+                            return (vnfModel.vfModules);\r
+                        }\r
+                    }\r
+                }\r
+                else {\r
+                    // old flow\r
+                    if (vnfModelVersionId != null) {\r
+                        vnfModel = svcModel.vnfs[vnfModelVersionId];\r
+                        if (vnfModel !== undefined) {\r
+                            if (!($scope.isObjectEmpty(vnfModel.vfModules))) {\r
+                                //console.log ("vnfModel.vfModules: "); console.log (JSON.stringify(vnfModel.vfModules, null, 4));\r
+                                return (vnfModel.vfModules);\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
 \r
-                    var vfModuleCustomizationUuid = vfModule.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-                    if ( !($scope.isObjectEmpty(vnfModel.vfModules) ) && UtilityService.hasContents(vfModuleCustomizationUuid) ) {\r
+            }\r
+            return null;\r
+        };\r
+        $scope.hasVfModules = function (vnfInstance) {\r
+            if ($scope.returnVfModules(vnfInstance) != null) {\r
+                return true;\r
+            }\r
+            return false;\r
+        };\r
+        $scope.returnVolumeGroups = function (vnfInstance) {\r
 \r
-                        vfModuleModel = vnfModel.vfModules[vfModuleCustomizationUuid];\r
+            var svcModel = $scope.service.convertedModel;\r
+\r
+            //var vnfModelInvariantUuid = vnfInstance[FIELD.ID.MODEL_INVAR_ID];\r
+            var vnfModelVersionId = vnfInstance[FIELD.ID.MODEL_VERSION_ID];\r
+            var vnfModelCustomizationUuid = vnfInstance[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
 \r
+            var vnfModel = null;\r
+\r
+            if ((!($scope.isObjectEmpty(svcModel))) && (!($scope.isObjectEmpty(svcModel.vnfs)))) {\r
+                if ((svcModel.isNewFlow) && (vnfModelCustomizationUuid != null)) {\r
+                    vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
+                    if (vnfModel !== undefined) {\r
+\r
+                        if (!($scope.isObjectEmpty(vnfModel.volumeGroups))) {\r
+                            //console.log ("vnfModel.volumeGroups: "); console.log (JSON.stringify(vnfModel.volumeGroups, null, 4));\r
+                            return (vnfModel.volumeGroups);\r
+                        }\r
                     }\r
                 }\r
                 else {\r
                     // old flow\r
-                    if (vnfModelVersionId != null ) {\r
+                    if (vnfModelVersionId != null) {\r
                         vnfModel = svcModel.vnfs[vnfModelVersionId];\r
+                        if (!($scope.isObjectEmpty(vnfModel.volumeGroups))) {\r
+                            //console.log ("vnfModel.vfModules: "); console.log (JSON.stringify(vnfModel.volumeGroups, null, 4));\r
+                            return (vnfModel.volumeGroups);\r
+                        }\r
                     }\r
-                    //var vfModuleInvariantUuid = vfModule.object[FIELD.ID.MODEL_INVAR_ID];\r
-                    var vfModuleModelVersionId = vfModule.object[FIELD.ID.MODEL_VERSION_ID];\r
-                    if ( (!($scope.isObjectEmpty(vnfModel))) && (!($scope.isObjectEmpty(vnfModel.vfModules))) &&\r
-                        UtilityService.hasContents(vfModuleModelVersionId) ) {\r
-                        vfModuleModel = vnfModel.vfModules[vfModuleModelVersionId];\r
-                    }\r
-                }\r
-                if ( !($scope.isObjectEmpty(vfModuleModel)) ) {\r
-                    DataService.setModelInfo(COMPONENT.VF_MODULE, {\r
-                        "modelInvariantId": vfModuleModel.invariantUuid,\r
-                        "modelVersion": vfModuleModel.version,\r
-                        "modelNameVersionId": vfModuleModel.uuid,\r
-                        "modelCustomizationName": vfModuleModel.modelCustomizationName,\r
-                        "customizationUuid": vfModuleModel.customizationUuid,\r
-                        "modelName": vfModuleModel.name,\r
-                        "inputs": ""\r
-                    });\r
                 }\r
+\r
+            }\r
+            return null;\r
+        };\r
+        $scope.hasVolumeGroups = function (vnfInstance) {\r
+            if ($scope.returnVolumeGroups(vnfInstance) != null) {\r
+                return true;\r
+            }\r
+            return false;\r
+        };\r
+        $scope.deleteNetwork = function (serviceObject, network) {\r
+\r
+            console.log("Removing Network " + network.name);\r
+\r
+            //Send delete network request to MSO\r
+\r
+            //var networks = this.service.instance.networks;\r
+\r
+            //networks.splice(networks.indexOf(network), 1);\r
+\r
+            //Retrieve updated data from A&AI\r
+            var serviceInstance = serviceObject.object;\r
+\r
+            setCurrentNetworkModelInfoFromScope(network);\r
+\r
+            DataService.setInventoryItem(network.object);\r
+\r
+            DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+\r
+            DataService.setGlobalCustomerId(serviceObject[FIELD.ID.GLOBAL_CUST_ID]);\r
+            DataService.setServiceInstanceName($scope.service.instance.name);\r
+            DataService.setServiceName($scope.service.model.service.name);\r
+            DataService.setServiceUuid($scope.service.model.service.uuid);\r
+            DataService.setNetworkInstanceId(network.object[FIELD.ID.NETWORK_ID]);\r
+\r
+            $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
+                componentId: COMPONENT.NETWORK,\r
+                callbackFunction: deleteOrResumeCallback,\r
+                dialogMethod: COMPONENT.DELETE\r
+            });\r
+        };\r
+\r
+        $scope.allowTransferToNewScreenAndShowButton = function (){\r
+          if(featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_FLASH_MORE_ACTIONS_BUTTON_IN_OLD_VIEW_EDIT)) {\r
+              return $scope.isPermitted;\r
+          }\r
+          return false;\r
+        };\r
+\r
+        $scope.navigateToNewEditViewScreen = function(){\r
+                window.location.href = 'serviceModels.htm#/servicePlanning/EDIT?' +\r
+                    'serviceModelId=' +     _.get($scope, 'service.model.service.uuid') +\r
+                    '&subscriberId=' +      $location.search().subscriberId  +\r
+                    '&serviceType=' +       $location.search().serviceType      +\r
+                    '&serviceInstanceId=' + $location.search().serviceInstanceId;\r
+        };\r
+\r
+        $scope.deleteService = function (serviceObject, serviceOrchestrationStatus) {\r
+\r
+            var serviceInstance = serviceObject.object;\r
+\r
+            console.log("Removing Service " + $scope.service.instance.name);\r
+\r
+            if ($scope.isMacro()) {\r
+                DataService.setALaCarte(false);\r
+            }\r
+            else {\r
+                DataService.setALaCarte(true);\r
+            }\r
+            DataService.setMacro($scope.isMacro());\r
+            DataService.setInventoryItem(serviceInstance);\r
+            setCurrentServiceModelInfoFromScope();\r
+\r
+\r
+            DataService.setSubscriberName(serviceObject[FIELD.ID.SUBSCRIBER_NAME]);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+\r
+            DataService.setGlobalCustomerId(serviceObject[COMPONENT.GLOBAL_CUSTOMER_ID]);\r
+            DataService.setServiceInstanceName($scope.service.instance.name);\r
+\r
+            DataService.setServiceName($scope.service.model.service.name);\r
+\r
+            DataService.setServiceUuid($scope.service.model.service.uuid);\r
+\r
+            $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
+                componentId: COMPONENT.SERVICE,\r
+                callbackFunction: deleteServiceInstanceCallbackFunction,\r
+                dialogMethod: COMPONENT.DELETE,\r
+                serviceStatus: serviceOrchestrationStatus\r
+            });\r
+\r
+        };\r
+\r
+        function populate_popup_vfModule(serviceObject, vfModule, vnf) {\r
+            var serviceInstance = serviceObject.object;\r
+\r
+            DataService.setInventoryItem(vfModule.object);\r
+\r
+            setCurrentVfModuleModelInfoFromScope(vnf, vfModule);\r
+            var vfModuleInstanceID = vfModule.object[FIELD.ID.VF_MODULE_ID];\r
+            if (vfModuleInstanceID == null) {\r
+                vfModuleInstanceID = "";\r
             }\r
 \r
             DataService.setVnfInstanceId(vnf.object[FIELD.ID.VNF_ID]);\r
             DataService.setServiceName($scope.service.model.service.name);\r
 \r
             DataService.setServiceUuid($scope.service.model.service.uuid);\r
-               }\r
+        }\r
+\r
+        var modalInstance;\r
+\r
+        var openMsoModal = function (msoType, requestParams, callbackFunction, configuration) {\r
+             modalInstance = $uibModal.open({\r
+                templateUrl: 'app/vid/scripts/modals/mso-commit/mso-commit.html',\r
+                controller: "msoCommitModalController",\r
+                backdrop: false,\r
+                resolve: {\r
+                    msoType: function () {\r
+                        return msoType;\r
+                    },\r
+                    requestParams: function () {\r
+                        requestParams.callbackFunction = callbackFunction;\r
+                        return requestParams;\r
+                    },\r
+                    configuration: function () {\r
+                        return configuration;\r
+                    }\r
+                }\r
+            });\r
+        };\r
+\r
+        var openVfModuleWithHomingDataModal = function(action, vfModule)  {\r
+            modalInstance = $uibModal.open({\r
+                controller: 'vfModuleActionModalController',\r
+                templateUrl: 'app/vid/scripts/modals/vf-module-homing-data-action/vf-module-homing-data-action.html',\r
+                backdrop: false,\r
+                resolve: {\r
+                    action: function () {\r
+                        return action;\r
+                    },\r
+                    vfModule: function() {\r
+                        return vfModule;\r
+                    }\r
+                }\r
+            });\r
+\r
+            modalInstance.result.then(function (data) {\r
+                if (data.msoType && data.requestParams) {\r
+                    openMsoModal(data.msoType, data.requestParams, deleteOrResumeCallback, null);\r
+                }\r
+            });\r
+        };\r
 \r
-               $scope.deleteVfModule = function(serviceObject, vfModule, vnf) {\r
+        function getLcpCloudRegionTenantList() {\r
+            AaiService.getLcpCloudRegionTenantList(DataService\r
+                .getGlobalCustomerId(), DataService.getServiceType(), function(\r
+                response) {\r
+                $scope.lcpAndTenant = response;\r
+                $scope.isFeatureFlagCloudOwner = featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST);\r
+                $scope.lcpRegionList = _.uniqBy(response, 'cloudRegionId');\r
+            });\r
+        }\r
 \r
-                       console.log("Removing VF-Module " + vfModule.name);\r
+        $scope.deleteVfModule = function (serviceObject, vfModule, vnf) {\r
+            $scope.isSoftDeleteEnabled = true;\r
 \r
             populate_popup_vfModule(serviceObject, vfModule, vnf);\r
-                       \r
-                       $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
-                           componentId : COMPONENT.VF_MODULE,\r
-                           callbackFunction : deleteOrResumeCallback,\r
-                dialogMethod: COMPONENT.DELETE\r
-                       });\r
-                       \r
-                       return;\r
 \r
-               };\r
+            if (DataService.getLoggedInUserId())  {\r
+                openVfModuleWithHomingDataModal(COMPONENT.DELETE, vfModule);\r
+            }\r
+            else {\r
+                AaiService.getLoggedInUserID(function (response) {\r
+                    var userID = response.data;\r
+                    DataService.setLoggedInUserId(userID);\r
+                    openVfModuleWithHomingDataModal(COMPONENT.DELETE, vfModule);\r
+                });\r
+            }\r
+            console.log("Removing VF-Module", vfModule);\r
+        };\r
 \r
-               function setCurrentServiceModelInfoFromScope(){\r
+        function setCurrentServiceModelInfoFromScope() {\r
             DataService.setModelInfo(COMPONENT.SERVICE, {\r
                 "modelInvariantId": $scope.service.model.service.invariantUuid,\r
                 "modelVersion": $scope.service.model.service.version,\r
                 "modelName": $scope.service.model.service.name,\r
                 "inputs": ""\r
             });\r
-               };\r
+        };\r
 \r
-               function setCurrentVNFModelInfo(vnf){\r
+        function setCurrentVNFModelInfo(vnf) {\r
             var svcModel = $scope.service.convertedModel;\r
             var vnfModel;\r
             var vnfModelCustomizationUuid = vnf.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
             var vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];\r
-            if ( (!($scope.isObjectEmpty(svcModel))) && ( !($scope.isObjectEmpty(svcModel.vnfs) ) ) ) {\r
-                if ( (svcModel.isNewFlow) && (vnfModelCustomizationUuid != null ) ) {\r
-                     vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
+            if ((!($scope.isObjectEmpty(svcModel))) && (!($scope.isObjectEmpty(svcModel.vnfs)))) {\r
+                if ((svcModel.isNewFlow) && (vnfModelCustomizationUuid != null)) {\r
+                    vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
                 }\r
                 else {\r
-                     vnfModel = svcModel.vnfs[vnfModelVersionId];\r
+                    vnfModel = svcModel.vnfs[vnfModelVersionId];\r
                 }\r
-                if ( !($scope.isObjectEmpty(vnfModel) ) ) {\r
+                if (!($scope.isObjectEmpty(vnfModel))) {\r
 \r
                     DataService.setModelInfo(COMPONENT.VNF, {\r
                         "modelInvariantId": vnfModel.invariantUuid,\r
             }\r
 \r
 \r
+        }\r
 \r
-               }\r
-\r
-               $scope.deleteVnf = function(serviceObject, vnf) {\r
-                       console.log("Removing VNF " + vnf.name);\r
-                       \r
-                       var serviceInstance = serviceObject.object;\r
-                       var svcModel = $scope.service.convertedModel;\r
-                       DataService.setInventoryItem(vnf.object);\r
-                       \r
-                       /*var vnftype = vnf.object['vnf-type'];\r
-                       if (vnftype == null)\r
-                               vnftype = "";\r
-                       else\r
-                       {\r
-                               var n = vnftype.search("/");\r
-                               if (n >= 0)\r
-                                       vnftype = vnftype.substring(n+1);\r
-                       }*/\r
-               \r
-                       var svcModel = $scope.service.convertedModel;\r
-                       var vnfModelInvariantUuid = null;\r
-                       var vnfModelVersion = null;\r
-                       var vnfModelCustomizationUuid = null;\r
-                       var vnfModel = null;\r
-                       var vnfModelVersionId = null;\r
-                       \r
-                       vnfModelInvariantUuid = vnf.object[FIELD.ID.MODEL_INVAR_ID];\r
-                       vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];\r
-                       vnfModelCustomizationUuid = vnf.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-                       \r
-                       DataService.setModelInfo(COMPONENT.VNF, {\r
-                               "modelInvariantId": vnfModelInvariantUuid,\r
-                               "modelVersion": "",\r
-                               "modelNameVersionId": vnfModelVersionId,\r
-                               "modelCustomizationName": "",\r
-                               "customizationUuid": vnfModelCustomizationUuid,\r
-                               "modelName": "",\r
-                               "inputs": ""\r
-                       });\r
-                       \r
-                       if ( (!($scope.isObjectEmpty(svcModel))) && ( !($scope.isObjectEmpty(svcModel.vnfs) ) ) ) {\r
-                               if ( (svcModel.isNewFlow) && (vnfModelCustomizationUuid != null ) ) {\r
-                                       vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
-                               }\r
-                               else {\r
-                                       vnfModel = svcModel.vnfs[vnfModelVersionId];\r
-                               }\r
-                               //console.log ( "vnf models: "); console.log ( JSON.stringify ($scope.service.convertedModel.vnfs, null, 4) );\r
-                               if ( !($scope.isObjectEmpty(vnfModel) ) ) {\r
-                                               \r
-                                       DataService.setModelInfo(COMPONENT.VNF, {\r
-                                               "modelInvariantId": vnfModel.invariantUuid,\r
-                                               "modelVersion": vnfModel.version,\r
-                                               "modelNameVersionId": vnfModel.uuid,\r
-                                               "modelCustomizationName": vnfModel.modelCustomizationName,\r
-                                               "customizationUuid": vnfModel.customizationUuid,\r
-                                               "modelName": vnfModel.name,\r
-                                               "inputs": ""\r
-                                       });\r
-                               }\r
-                   } \r
-                               \r
-                       DataService.setVnfInstanceId(vnf.object[FIELD.ID.VNF_ID]);\r
-       \r
-                       DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
-                       DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-                       DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
-       \r
-                       DataService.setGlobalCustomerId(serviceObject[FIELD.ID.GLOBAL_CUST_ID]);\r
-                       DataService.setServiceInstanceName($scope.service.instance.name);\r
-                       \r
-                       DataService.setServiceName($scope.service.model.service.name);\r
-                       \r
-                       DataService.setServiceUuid($scope.service.model.service.uuid);\r
-                       \r
-                       $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
-                           componentId : COMPONENT.VNF,\r
-                           callbackFunction : deleteOrResumeCallback,\r
-                dialogMethod: COMPONENT.DELETE\r
-                       });\r
-               \r
-               };\r
-               \r
-               \r
-\r
-               $scope.deleteVolumeGroup = function(serviceObject, vnf, vfModule, volumeGroup) {\r
-\r
-                       console.log("Removing Volume Group " + volumeGroup.name);\r
-                       var haveModel = false;\r
-                       var svcModel = $scope.service.convertedModel;\r
-                       \r
-                       var vnfModelInvariantUuid = null;\r
-                       var vnfModelVersion = null;\r
-                       var vnfModelCustomizationUuid = null;\r
-                       var vnfModel = null;\r
-                       var vnfModelVersionId = null;\r
-                       \r
-                       vnfModelInvariantUuid = vnf.object[FIELD.ID.MODEL_INVAR_ID];\r
-                       vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];\r
-                       vnfModelCustomizationUuid = vnf.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-               \r
-                       DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {\r
-                               "modelInvariantId": "",\r
-                               "modelVersion": "",\r
-                               "modelNameVersionId": "",\r
-                               "modelCustomizationName": "",\r
-                               "customizationUuid": "",\r
-                               "modelName": "",\r
-                               "inputs": ""\r
-                       });\r
-       \r
-                       if ( (!($scope.isObjectEmpty(svcModel))) && ( !($scope.isObjectEmpty(svcModel.vnfs) ) ) ) {\r
-                               if ( (svcModel.isNewFlow) && (vnfModelCustomizationUuid != null ) ) {\r
-                                       vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
-                               }\r
-                               else {\r
-                                       vnfModel = svcModel.vnfs[vnfModelVersionId];\r
-                               }\r
-                       }\r
-                       \r
-                                               \r
-                       // volume groups don't have model-invariant-id/version in a&ai.\r
-                       // Their model-invariant-id/version is the one for the associated vfModule\r
-                       \r
-                       var vfModuleInvariantUuid = vfModule.object[FIELD.ID.MODEL_INVAR_ID];\r
-                       var vfModuleModelVersionId = vfModule.object[FIELD.ID.MODEL_VERSION_ID];\r
-                       var vfModuleCustomizationUuid = vfModule.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-                       var volGroupModel = null;\r
-                               \r
-                       if ( !($scope.isObjectEmpty(vnfModel.volumeGroups) ) ) {\r
-                               if ( ( !($scope.isObjectEmpty(vnfModel) ) ) && ( !($scope.isObjectEmpty(vnfModel.volumeGroups) ) ) ) {\r
-                                       if ( (svcModel.isNewFlow) && (UtilityService.hasContents(vfModuleCustomizationUuid) ) ){\r
-                                               volGroupModel = vnfModel.volumeGroups[vfModuleCustomizationUuid];\r
-                                       }\r
-                                       else {\r
-                                               volGroupModel = vnfModel.volumeGroups[vfModuleModelVersionId];\r
-                                       }\r
-                                       if ( !($scope.isObjectEmpty(volGroupModel) ) ) {\r
-                                               DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {\r
-                                                       "modelInvariantId": volGroupModel.invariantUuid,\r
-                                                       "modelVersion": volGroupModel.version,\r
-                                                       "modelNameVersionId": volGroupModel.uuid,\r
-                                                       "modelCustomizationName": volGroupModel.modelCustomizationName,\r
-                                                       "customizationUuid": volGroupModel.customizationUuid,\r
-                                                       "modelName": volGroupModel.name,\r
-                                                       "inputs": ""\r
-                                               });\r
-               \r
-                                       }\r
-                               }\r
-                       }\r
-\r
-                       var serviceInstance = serviceObject.object;\r
-                       \r
-            DataService.setInventoryItem(volumeGroup.object);\r
-               \r
-                       DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
-                       DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-                       DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
-                       \r
-                       DataService.setGlobalCustomerId(serviceObject[FIELD.ID.GLOBAL_CUST_ID]);\r
-                       DataService.setServiceInstanceName($scope.service.instance.name);\r
-                       \r
-                       DataService.setServiceName($scope.service.model.service.name);\r
-                       \r
-                       DataService.setServiceUuid($scope.service.model.service.uuid);\r
-                       DataService.setVnfInstanceId(vnf.nodeId);\r
-                       DataService.setVolumeGroupInstanceId(volumeGroup.nodeId);\r
-                       \r
-                       $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
-                           componentId : COMPONENT.VOLUME_GROUP,\r
-                dialogMethod: COMPONENT.DELETE\r
-                       });\r
-               };\r
-               \r
-               $scope.deleteVnfVolumeGroup = function(serviceObject, vnf, volumeGroup) {\r
-\r
-                       console.log("Removing Volume Group " + volumeGroup.name);\r
-            var serviceInstance = serviceObject.object;\r
-                       \r
-            DataService.setInventoryItem(volumeGroup.object);\r
-        \r
-                       var svcModel = $scope.service.convertedModel;\r
-                       \r
-                       var vnfModelInvariantUuid = vnf.object[FIELD.ID.MODEL_INVAR_ID];\r
-                       var vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];\r
-                       var vnfModelCustomizationUuid = vnf.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-                       \r
-                       var volGroupModelInvariantUuid = volumeGroup.object[FIELD.ID.MODEL_INVAR_ID];\r
-                       var volGroupModelVersionId = volumeGroup.object[FIELD.ID.MODEL_VERSION_ID];\r
-                       var volGroupModelCustomizationUuid = volumeGroup.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-                       \r
-                       var vnfModel = null;\r
-                       var volGroupModel = null;\r
-                       \r
-                       // send an empty model by default since model is not required for deletes\r
-                       DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {});\r
-\r
-                       if ( svcModel.isNewFlow ) {\r
-                               vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
-                               if ( UtilityService.hasContents (volGroupModelCustomizationUuid) ) {\r
-                                       volGroupModel = vnfModel.volumeGroups[volGroupModelCustomizationUuid];\r
-                               }\r
-                       }\r
-                       else {\r
-                               \r
-                               vnfModel = svcModel.vnfs[vnfModelVersionId];\r
-                               if (  UtilityService.hasContents (volGroupModelVersionId) ) {\r
-                                       volGroupModel = vnfModel.volumeGroups[volGroupModelVersionId];\r
-                               }\r
-                       }\r
-                       if ( !($scope.isObjectEmpty(volGroupModel) ) ) {\r
-                               DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {              \r
-                                       "modelInvariantId": volGroupModel.invariantUuid,\r
-                                       "modelVersion": volGroupModel.version,\r
-                                       "modelNameVersionId": volGroupModel.uuid,\r
-                                       "modelName": volGroupModel.name,\r
-                                       "modelCustomizationName": volGroupModel.modelCustomizationName,\r
-                                       "customizationUuid": volGroupModel.customizationUuid,\r
-                                       "inputs": ""\r
-                               });\r
-                       }\r
-                               \r
-                       DataService.setVnfInstanceId(vnf.object[FIELD.ID.VNF_ID]);\r
-               \r
-                       DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
-                       DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-                       DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
-       \r
-                       DataService.setGlobalCustomerId(serviceObject[FIELD.ID.GLOBAL_CUST_ID]);\r
-                       DataService.setServiceInstanceName($scope.service.instance.name);\r
-                       \r
-                       DataService.setServiceName($scope.service.model.service.name);\r
-                       \r
-                       DataService.setServiceUuid($scope.service.model.service.uuid);\r
-                       DataService.setVnfInstanceId(vnf.nodeId);\r
-                       DataService.setVolumeGroupInstanceId(volumeGroup.nodeId);\r
-               \r
-                       $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
-                componentId : COMPONENT.VOLUME_GROUP,\r
-                callbackFunction : deleteOrResumeCallback,\r
-                dialogMethod: COMPONENT.DELETE\r
-            });\r
-               };\r
-\r
-               $scope.describeNetwork = function(serviceObject, networkObject) {\r
-                       var serviceInstance = serviceObject.object;\r
-                       var network = networkObject.object;\r
-                       //console.log ("networkObject="); console.log (JSON.stringify(networkObject, null, 4));\r
-                       \r
-                       DataService.setResCustomizationUuid(" ");\r
-                       \r
-                       var svcModel = $scope.service.convertedModel;\r
-                       var netModel = null;\r
-                       \r
-                       if ( !($scope.isObjectEmpty(network) ) ) {\r
-                               \r
-                               var netModelInvariantUuid = network[FIELD.ID.MODEL_INVAR_ID];\r
-                               var netModelVersionId = network[FIELD.ID.MODEL_VERSION_ID];\r
-                               var netModelCustomizationUuid = network[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-                               \r
-                               if ( UtilityService.hasContents (netModelCustomizationUuid) ) {\r
-                                       // set it to what came from a&ai \r
-                                       DataService.setResCustomizationUuid(netModelCustomizationUuid);\r
-                               }\r
-                               \r
-                               if ( (!($scope.isObjectEmpty(svcModel))) && (!($scope.isObjectEmpty(svcModel.networks))) ) {\r
-                                       if ( svcModel.isNewFlow ) {\r
-                                               netModel = svcModel.networks[netModelCustomizationUuid];\r
-                                       }\r
-                                       else {\r
-                                               netModel = svcModel.networks[netModelVersionId];\r
-                                       }\r
-                                       /*\r
-                                        * The details pop-up should use a&ai info\r
-                                        * if ( !($scope.isObjectEmpty(netModel) ) ) {\r
-                                               if (UtilityService.hasContents(netModel.customizationUuid)) {\r
-                                                       DataService.setResCustomizationUuid(netModel.customizationUuid);\r
-                                               }\r
-                                       }*/\r
-                               }\r
-                       }\r
-                       \r
-                       DataService.setNetworkInstanceId(network[FIELD.ID.NETWORK_ID]);\r
-                       DataService.setInventoryItem(networkObject);\r
-                       DataService.setSubscriberName(serviceObject.subscriberName);\r
-                       DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-                       DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
-                       \r
-                       $scope.$broadcast(COMPONENT.SHOW_COMPONENT_DETAILS, {\r
-                           componentId : COMPONENT.NETWORK\r
-                       });\r
-               };\r
-\r
-               // for service instance id - no need for this!\r
-               $scope.describeService = function(serviceObject) {\r
-                       var serviceInstance = serviceObject.object;\r
-               \r
-                       DataService.setInventoryItem(serviceInstance);\r
-                       //DataService.setModelInfo(serviceInstance['service-instance-id'], serviceInstance);\r
-                       \r
-                       DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
-                       DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-                       DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
-                       \r
-                       //Display popup with additional service information\r
-                       $scope.$broadcast(COMPONENT.SHOW_COMPONENT_DETAILS, {\r
-                           componentId : COMPONENT.SERVICE\r
-                       });\r
-                       \r
-               };\r
-\r
-               $scope.describeVfModule = function(serviceObject, vfModuleObject, vnf) {\r
-                       var serviceInstance = serviceObject.object;\r
-                       var vfModule = vfModuleObject.object;\r
-                       \r
-                       /*var vfModuleInvariantUuid = vfModule[FIELD.ID.MODEL_INVAR_ID];\r
-                       var vfModuleModelVersionId = vfModule[FIELD.ID.MODEL_VERSION_ID];*/\r
-                       var vfModuleCustomizationUuid = vfModule[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-\r
-                       DataService.setCustomizationUuid(" ");\r
-                       if ( UtilityService.hasContents (vfModuleCustomizationUuid) ) {\r
-                               DataService.setCustomizationUuid(vfModuleCustomizationUuid);\r
-                       }\r
-               \r
-                       //Display popup with additional VF-Module information\r
-                       DataService.setVfModuleInstanceId(vfModule[FIELD.ID.VF_MODULE_ID]);\r
-                       DataService.setInventoryItem(vfModule)\r
-                       \r
-                       DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
-                       DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-                       DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
-                       \r
-                       $scope.$broadcast(COMPONENT.SHOW_COMPONENT_DETAILS, {\r
-                           componentId : COMPONENT.VF_MODULE\r
-                       });\r
-               };\r
-\r
-               $scope.getStatusOfVnf = function(serviceObject, vnfObject) {\r
-                       var serviceInstance = serviceObject.object;\r
-                       var vnf = vnfObject.object;\r
-                 \r
-                       DataService.setVnfInstanceId(vnf[FIELD.ID.VNF_ID]);\r
-                       DataService.setInventoryItem(vnf);\r
-                       \r
-                       DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
-                       DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-                       DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
-                       DataService.setServiceInstanceName(serviceInstance[FIELD.ID.SERVICE_INSTANCE_NAME]);\r
-                       \r
-                       $scope.$broadcast(COMPONENT.COMPONENT_STATUS, {\r
-                           componentId : COMPONENT.VNF,\r
-                           callbackFunction : updateProvStatusVnfCallbackFunction\r
-                       });\r
-               };\r
-\r
-               $scope.describeVnf = function(serviceObject, vnfObject) {\r
-                       var serviceInstance = serviceObject.object;\r
-                       var vnf = vnfObject.object;\r
-                       DataService.setResCustomizationUuid(" ");\r
-                       \r
-                       //var vnfInvariantUuid = vnf[FIELD.ID.MODEL_INVAR_ID];\r
-                       //var vnfVersionId = vnf[FIELD.ID.MODEL_VERSION_ID];\r
-                       var vnfCustomizationUuid = vnf[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-       \r
-                       if ( UtilityService.hasContents (vnfCustomizationUuid) ) {\r
-                               DataService.setResCustomizationUuid(vnfCustomizationUuid);\r
-                   }\r
-                       //Display popup with additional VNF information\r
-                       DataService.setVnfInstanceId(vnf[FIELD.ID.VNF_ID]);\r
-                       DataService.setInventoryItem(vnf);\r
-                       \r
-                       DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
-                       DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-                       DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
-                       \r
-                       $scope.$broadcast(COMPONENT.SHOW_COMPONENT_DETAILS, {\r
-                           componentId : COMPONENT.VNF\r
-                       });\r
-               };\r
-\r
-               $scope.describeVolumeGroup = function(serviceObject, vnf, volumeGroupObject) {\r
-                       \r
-                       var serviceInstance = serviceObject.object;\r
-                       var volumeGroup = volumeGroupObject.object;\r
-                       \r
-                       //var volGroupInvariantUuid = volumeGroup[FIELD.ID.MODEL_INVAR_ID];\r
-                       //var volGroupVersionId = volumeGroup[FIELD.ID.MODEL_VERSION_ID];\r
-                       var volGroupCustomizationUuid = volumeGroup[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-\r
-                       DataService.setCustomizationUuid(" ");  \r
-                       if ( UtilityService.hasContents(volGroupCustomizationUuid) ) {\r
-                               DataService.setCustomizationUuid(volGroupCustomizationUuid);     \r
-                   }\r
-                       DataService.setVolumeGroupInstanceId(volumeGroup[FIELD.ID.VOLUME_GROUP_ID]);\r
-                       DataService.setInventoryItem(volumeGroup);\r
-               \r
-                       DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
-                       DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-                       DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
-                       \r
-                       \r
-                       $scope.$broadcast(COMPONENT.SHOW_COMPONENT_DETAILS, {\r
-                           componentId : COMPONENT.VOLUME_GROUP\r
-                       });\r
-               };\r
-\r
-               $scope.addNetworkInstance = function(netModel, existingVnfs) {\r
-                       \r
-                       // For networks we assume that we always follow the new flow\r
-                       console.log("Adding network to service instance" + this.service.instance.name);\r
-                       if ( VIDCONFIGURATION.VNF_STATUS_CHECK_ENABLED && (UtilityService.hasContents(existingVnfs)) && (existingVnfs.length > 0) ) {\r
-                               var msg = VnfService.isVnfListStatusValid (existingVnfs);\r
-                               if ( msg != "" ) {\r
-                                       alert ( msg );\r
-                                       return;\r
-                               }\r
-                       }\r
-                       \r
-                       DataService.setSubscriberName($scope.service.instance.subscriberName);\r
-                       DataService.setGlobalCustomerId($scope.service.instance.globalCustomerId);\r
-                       DataService.setServiceType($scope.service.instance.serviceType);\r
-                       DataService.setServiceInstanceName($scope.service.instance.name);\r
-                       DataService.setServiceInstanceId($scope.service.instance.id);\r
-                       DataService.setServiceName($scope.service.model.service.name);\r
-                       \r
-                       DataService.setModelInfo(COMPONENT.NETWORK, {\r
-                               "modelType": "network",\r
-                               "modelInvariantId": netModel.invariantUuid,\r
-                               "modelVersion": netModel.version,\r
-                               "modelNameVersionId": netModel.uuid,\r
-                               "modelName": netModel.name,\r
-                               "modelCustomizationName": netModel.modelCustomizationName,\r
-                               "customizationUuid": netModel.customizationUuid,\r
-                               "inputs": "",\r
-                               "displayInputs": netModel.displayInputs\r
-                       });\r
-                       setCurrentServiceModelInfoFromScope();\r
-\r
-                       \r
-                       $scope.$broadcast(COMPONENT.CREATE_COMPONENT, {\r
-                           componentId : COMPONENT.NETWORK,\r
-                           callbackFunction : createVnfCallbackFunction\r
-                       });             \r
-               };\r
-\r
-               $scope.addVnfInstance = function(vnf, existingVnfs) {\r
-                               \r
-                       if ( VIDCONFIGURATION.VNF_STATUS_CHECK_ENABLED && (UtilityService.hasContents(existingVnfs)) && (existingVnfs.length > 0) ) {\r
-                               var msg = VnfService.isVnfListStatusValid (existingVnfs);\r
-                               if ( msg != "" ) {\r
-                                       alert ( msg );\r
-                                       return;\r
-                               }\r
-                       }\r
-                       DataService.setSubscriberName($scope.service.instance.subscriberName);\r
-                       DataService.setGlobalCustomerId($scope.service.instance.globalCustomerId);\r
-                       DataService.setServiceType($scope.service.instance.serviceType);\r
-                       DataService.setServiceInstanceName($scope.service.instance.name);\r
-                       DataService.setServiceInstanceId($scope.service.instance.id);\r
-                       DataService.setServiceName($scope.service.model.service.name);\r
-                       \r
-                       console.log ( "existingVnfs: " );\r
-                       console.log (JSON.stringify ( existingVnfs, null, 4));\r
-                       console.log ( "existingVnfs: " ); console.log (JSON.stringify ( existingVnfs, null, 4));\r
-                       var vnf_type = "";\r
-                       var vnf_role = "";\r
-                       var vnf_function = "";\r
-                       var vnf_code = "";\r
-                       \r
-                       if (UtilityService.hasContents (vnf.nfType) ) {\r
-                               vnf_type = vnf.nfType;\r
-                       }\r
-                       if (UtilityService.hasContents (vnf.nfRole) ) {\r
-                               vnf_role = vnf.nfRole;\r
-                       }\r
-                       if (UtilityService.hasContents (vnf.nfFunction) ) {\r
-                               vnf_function = vnf.nfFunction;\r
-                       }\r
-                       if (UtilityService.hasContents (vnf.nfCode) ) {\r
-                               vnf_code = vnf.nfCode;\r
-                       }\r
-                       DataService.setModelInfo(COMPONENT.VNF, {\r
-                               "modelType": vnf.isPnf ? "pnf" : "vnf",\r
-                               "modelInvariantId": vnf.invariantUuid,\r
-                               "modelVersion": vnf.version,\r
-                               "modelNameVersionId": vnf.uuid,\r
-                               "modelName": vnf.name,\r
-                               "modelCustomizationName": vnf.modelCustomizationName,\r
-                               "customizationUuid": vnf.customizationUuid,\r
-                               "inputs": "",\r
-                               "displayInputs": vnf.displayInputs,\r
-                               "vnfType": vnf_type,\r
-                               "vnfRole": vnf_role,\r
-                               "vnfFunction": vnf_function,\r
-                               "vnfCode": vnf_code,\r
-                               "properties": vnf.properties\r
-                       });\r
-                       \r
-                       DataService.setModelInstanceName($scope.service.model.service.name);\r
-                       setCurrentServiceModelInfoFromScope();\r
-\r
-                       if (vnf.isConfig) {\r
-                DataService.setServiceProxies($scope.service.model.serviceProxies);\r
-                DataService.setSourceServiceProxies(vnf.sourceNodes);\r
-                DataService.setCollectorServiceProxies(vnf.collectorNodes);\r
-                DataService.setConfigurationByPolicy(vnf.isConfigurationByPolicy);\r
-                $location.path("/addNetworkNode");\r
-            } else if(vnf.isPnf){\r
-                $location.path("/pnfSearchAssociation");\r
-            } else {\r
-                $scope.$broadcast(COMPONENT.CREATE_COMPONENT, {\r
-                    componentId: COMPONENT.VNF,\r
-                    callbackFunction: createVnfCallbackFunction\r
-                });\r
-            }\r
-               };\r
-\r
-               $scope.addVfModuleInstance = function(vnfInstance, vfModuleModel) {\r
-                       \r
-                       if ( VIDCONFIGURATION.VNF_STATUS_CHECK_ENABLED ) {\r
-                               var msg = VnfService.isVnfStatusValid (vnfInstance);\r
-                               if ( msg != "" ) {\r
-                                       alert ( msg );\r
-                                       return;\r
-                               }\r
-                               \r
-                       }\r
-                       var svcModel = $scope.service.convertedModel;\r
-                       DataService.setSubscriberName($scope.service.instance.subscriberName);\r
-                       DataService.setGlobalCustomerId($scope.service.instance.globalCustomerId);\r
-                       DataService.setServiceType($scope.service.instance.serviceType);\r
-                       DataService.setServiceInstanceName($scope.service.instance.name);\r
-                       DataService.setServiceInstanceId($scope.service.instance.id);\r
-                       DataService.setServiceName($scope.service.model.service.name);\r
-\r
-                       var vnfModelInvariantUuid = vnfInstance.object[FIELD.ID.MODEL_INVAR_ID];\r
-                       var vnfModelVersionId = vnfInstance.object[FIELD.ID.MODEL_VERSION_ID];\r
-                       var vnfModelCustomizationUuid = vnfInstance.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-                       var vnfModel = null;\r
-                       if ( svcModel.isNewFlow ) {\r
-                               vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
-                       }\r
-                       else {\r
-                               vnfModel = svcModel.vnfs[vnfModelVersionId];\r
-                       }\r
-                       \r
-                       var availableVolumeGroupList = [];\r
-                       angular.forEach(vnfInstance[FIELD.ID.AVAILABLEVOLUMEGROUPS], function(volumeGroupInstance, key) {\r
-                               availableVolumeGroupList.push({"instance": volumeGroupInstance});\r
-                       });\r
-                       \r
-                       DataService.setAvailableVolumeGroupList(availableVolumeGroupList);\r
-                       setCurrentServiceModelInfoFromScope();\r
-\r
-                       DataService.setVnfInstanceId(vnfInstance.object[FIELD.ID.VNF_ID]);\r
-\r
-                       DataService.setModelInfo(COMPONENT.VNF, {\r
-                               "modelInvariantId": vnfModel.invariantUuid,\r
-                               "modelVersion": vnfModel.version,\r
-                               "modelNameVersionId": vnfModel.uuid,\r
-                               "modelName": vnfModel.name,\r
-                               "modelCustomizationName": vnfModel.modelCustomizationName,\r
-                               "customizationUuid": vnfModel.customizationUuid,\r
-                               "inputs": ""\r
-                       });\r
-                       \r
-                       DataService.setModelInfo(COMPONENT.VF_MODULE, {\r
-                               "modelInvariantId": vfModuleModel.invariantUuid,\r
-                               "modelVersion": vfModuleModel.version,\r
-                               "modelNameVersionId": vfModuleModel.uuid,\r
-                               "customizationUuid": vfModuleModel.customizationUuid,\r
-                               "modelCustomizationName": vfModuleModel.modelCustomizationName,\r
-                               "modelName": vfModuleModel.name,\r
-                               "inputs": ""\r
-                       });\r
-                       \r
-                       $scope.$broadcast(COMPONENT.CREATE_COMPONENT, {\r
-                           componentId : COMPONENT.VF_MODULE,\r
-                           callbackFunction : createVfModuleCallbackFunction\r
-                       });\r
-               \r
-               };\r
-\r
-               $scope.addVolumeGroupInstance = function(vnfInstance, volumeGroupModel) {\r
-                       if ( VIDCONFIGURATION.VNF_STATUS_CHECK_ENABLED ) {\r
-                               var msg = VnfService.isVnfStatusValid (vnfInstance);\r
-                               if ( msg != "" ) {\r
-                                       alert ( msg );\r
-                                       return;\r
-                               }\r
-                       }\r
-                       var svcModel = $scope.service.convertedModel;\r
-                       DataService.setSubscriberName($scope.service.instance.subscriberName);\r
-                       DataService.setGlobalCustomerId($scope.service.instance.globalCustomerId);\r
-                       DataService.setServiceType($scope.service.instance.serviceType);\r
-                       DataService.setServiceInstanceName($scope.service.instance.name);\r
-                       DataService.setServiceInstanceId($scope.service.instance.id);\r
-                       DataService.setServiceName($scope.service.model.service.name);\r
-                       setCurrentServiceModelInfoFromScope();\r
-\r
-                       DataService.setModelInfo(COMPONENT.SERVICE, {\r
-                               "modelInvariantId": $scope.service.model.service.invariantUuid,\r
-                               "modelVersion": $scope.service.model.service.version,\r
-                               "modelNameVersionId": $scope.service.model.service.uuid,\r
-                               "modelName": $scope.service.model.service.name,\r
-                               "inputs": ""\r
-                       });\r
-\r
-                       DataService.setVnfInstanceId(vnfInstance.object[FIELD.ID.VNF_ID]);\r
-\r
-                       var vnfModelInvariantUuid = vnfInstance.object[FIELD.ID.MODEL_INVAR_ID];\r
-                       var vnfModelVersionId = vnfInstance.object[FIELD.ID.MODEL_VERSION_ID];\r
-                       var vnfCustomizationUuid = vnfInstance.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
-                       var vnfModel = null;\r
-                       \r
-                       if ( svcModel.isNewFlow ) {\r
-                               vnfModel = svcModel.vnfs[vnfCustomizationUuid];\r
-                       }\r
-                       else {\r
-                               vnfModel = svcModel.vnfs[vnfModelVersionId];\r
-                       }\r
-\r
-                       DataService.setModelInfo(COMPONENT.VNF, {\r
-                               "modelInvariantId": vnfModel.invariantUuid,\r
-                               "modelVersion": vnfModel.version,\r
-                               "modelNameVersionId": vnfModel.uuid,\r
-                               "modelName": vnfModel.name,\r
-                               "modelCustomizationName": vnfModel.modelCustomizationName,\r
-                               "customizationUuid": vnfModel.customizationUuid,\r
-                               "inputs": ""\r
-                       });\r
-                       \r
-                       DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {\r
-                               "modelInvariantId": volumeGroupModel.invariantUuid,\r
-                               "modelVersion": volumeGroupModel.version,\r
-                               "modelNameVersionId": volumeGroupModel.uuid,\r
-                               "modelName": volumeGroupModel.name,\r
-                               "modelCustomizationName": volumeGroupModel.modelCustomizationName,\r
-                               "customizationUuid": volumeGroupModel.customizationUuid,\r
-                               "inputs": ""\r
-                       });\r
-                       \r
-                       $scope.$broadcast(COMPONENT.CREATE_COMPONENT, {\r
-                           componentId : COMPONENT.VOLUME_GROUP,\r
-                           callbackFunction : createVolumeGroupCallbackFunction\r
-                       });\r
-               };\r
-\r
-        $scope.resume = function(serviceObject, vfModule, vnfModel) {\r
-            populate_popup_vfModule(serviceObject, vfModule, vnfModel);\r
-                       setCurrentVNFModelInfo(vnfModel);\r
-                       DataService.setVfModuleInstanceName(vfModule.object[FIELD.ID.VF_MODULE_NAME]);\r
-                       setCurrentServiceModelInfoFromScope();\r
-            $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
-                componentId : COMPONENT.VF_MODULE,\r
-                callbackFunction : deleteOrResumeCallback,\r
-                dialogMethod: COMPONENT.RESUME\r
-            });\r
-        };\r
-\r
-               $scope.deleteConfiguration = function (serviceObject, configuration) {\r
-            console.log("Deleting Configuration " + configuration.name);\r
-\r
-            var serviceInstance = serviceObject.object;\r
+        function setCurrentNetworkModelInfoFromScope(network) {\r
             var svcModel = $scope.service.convertedModel;\r
-            var configModel;\r
-            DataService.setInventoryItem(configuration.object);\r
+            var netModel;\r
             // set model default and override later if found\r
-            DataService.setModelInfo(COMPONENT.CONFIGURATION, {});\r
+            DataService.setModelInfo(COMPONENT.NETWORK, {});\r
 \r
-            if ( configuration.object != null ) {\r
+            if (network.object != null) {\r
 \r
                 //var netModelInvariantUuid = network.object[FIELD.ID.MODEL_INVAR_ID];\r
-                var configModelVersionId = configuration.object[FIELD.ID.MODEL_VERSION_ID]; // model uuid\r
-                var configModelCustomizationUuid = configuration.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+                var netModelVersionId = network.object[FIELD.ID.MODEL_VERSION_ID]; // model uuid\r
+                var netModelCustomizationUuid = network.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
 \r
-                //configurations added to vnfs list, in order to be part of the "Add VNF" drop-down list\r
-                if ( (!($scope.isObjectEmpty(svcModel))) && ( !($scope.isObjectEmpty(svcModel.vnfs) ) ) ) {\r
-                    if ( (svcModel.isNewFlow) && (UtilityService.hasContents(configModelCustomizationUuid) ) ) {\r
-                        configModel = svcModel.vnfs[configModelCustomizationUuid];\r
+                if (UtilityService.hasContents(netModelCustomizationUuid)) {\r
+                    // set it to what came from a&ai\r
+                    DataService.setResCustomizationUuid(netModelCustomizationUuid);\r
+                }\r
+\r
+                if ((!($scope.isObjectEmpty(svcModel))) && (!($scope.isObjectEmpty(svcModel.networks)))) {\r
+                    if ((svcModel.isNewFlow) && (UtilityService.hasContents(netModelCustomizationUuid))) {\r
+                        netModel = svcModel.networks[netModelCustomizationUuid];\r
                     }\r
                     else {\r
 \r
-                        if ( UtilityService.hasContents(configModelVersionId) ) {\r
-                            configModel = svcModel.vnfs[configModelVersionId];\r
+                        if (UtilityService.hasContents(netModelVersionId)) {\r
+                            netModel = svcModel.networks[netModelVersionId];\r
                         }\r
 \r
                     }\r
                 }\r
             }\r
-            if (!($scope.isObjectEmpty(configModel) ) ) {\r
-                DataService.setModelInfo(COMPONENT.CONFIGURATION, {\r
-                    "modelInvariantId": configModel.invariantUuid,\r
-                    "modelVersion": configModel.version,\r
-                    "modelNameVersionId": configModel.uuid,\r
-                    "modelCustomizationName": configModel.modelCustomizationName,\r
-                    "customizationUuid": configModel.customizationUuid,\r
-                    "modelName": configModel.name,\r
+            if (!($scope.isObjectEmpty(netModel))) {\r
+                DataService.setModelInfo(COMPONENT.NETWORK, {\r
+                    "modelInvariantId": netModel.invariantUuid,\r
+                    "modelVersion": netModel.version,\r
+                    "modelNameVersionId": netModel.uuid,\r
+                    "modelCustomizationName": netModel.modelCustomizationName,\r
+                    "customizationUuid": netModel.customizationUuid,\r
+                    "modelName": netModel.name,\r
                     "inputs": ""\r
                 });\r
             }\r
+        }\r
 \r
-            DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
-            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
-            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+        function setCurrentVfModuleModelInfoFromScope(vnf, vfModule) {\r
 \r
-            DataService.setGlobalCustomerId(serviceObject[FIELD.ID.GLOBAL_CUST_ID]);\r
-            DataService.setServiceInstanceName($scope.service.instance.name);\r
-            DataService.setServiceName($scope.service.model.service.name);\r
-            DataService.setServiceUuid($scope.service.model.service.uuid);\r
-            DataService.setConfigurationInstanceId(configuration.object[FIELD.ID.CONFIGURATION_ID]);\r
+            var svcModel = $scope.service.convertedModel;\r
 \r
-            $scope.$broadcast(COMPONENT.DELETE_COMPONENT, {\r
-                componentId : COMPONENT.CONFIGURATION,\r
-                callbackFunction : deleteCallbackFunction\r
+            //var vnfModelInvariantUuid = vnf.object[FIELD.ID.MODEL_INVAR_ID];\r
+            var vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];\r
+            var vnfModelCustomizationUuid = vnf.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+            var vnfModel = null;\r
+            var vfModuleModel = null;\r
+\r
+            DataService.setModelInfo(COMPONENT.VF_MODULE, {\r
+                "modelInvariantId": "",\r
+                "modelVersion": "",\r
+                "modelNameVersionId": "",\r
+                "modelCustomizationName": "",\r
+                "customizationUuid": "",\r
+                "modelName": "",\r
+                "inputs": ""\r
             });\r
-        };\r
 \r
-               $scope.resetProgress = function() {\r
-                       $scope.percentProgress = 0;\r
-                       $scope.progressClass = FIELD.STYLE.PROGRESS_BAR_INFO;\r
-               };\r
-\r
-               $scope.setProgress = function(percentProgress) {\r
-                       percentProgress = parseInt(percentProgress);\r
-                       if (percentProgress >= 100) {\r
-                               $scope.progressClass = FIELD.STYLE.PROGRESS_BAR_SUCCESS;                                        \r
-                       }\r
-\r
-                       if (percentProgress < $scope.percentProgress) {\r
-                               return;\r
-                       }\r
-\r
-                       $scope.percentProgress = percentProgress;\r
-                       $scope.progressWidth = {width: percentProgress + "%"};\r
-                       if (percentProgress >= 5) {\r
-                               $scope.progressText =  percentProgress + " %";\r
-                       } else {\r
-                               // Hidden since color combination is barely visible when progress portion is narrow.\r
-                               $scope.progressText = "";\r
-                       }\r
-               };\r
-               $scope.isObjectEmpty = function(o) {\r
-                       var len = 0;\r
-                       if (UtilityService.hasContents(o)){\r
-                               var keys = Object.keys(o);\r
-                               len = keys.length;\r
-                               if ( len == 0 ) {\r
-                                       return true;\r
-                               }\r
-                               else {\r
-                                       return false;\r
-                               }\r
-                       }\r
-                       else {\r
-                               return true;\r
-                       }\r
-               }\r
-               $scope.isMacro = function() {\r
-                       if (UtilityService.arrayContains (VIDCONFIGURATION.MACRO_SERVICES, $scope.service.model.service.invariantUuid )) {\r
-                               return(true);\r
-                               \r
-                       }\r
-                       else {\r
-                               return (false);\r
-                       }\r
-               }\r
-               $scope.reloadRoute = function() {\r
-                       $route.reload();\r
-               }\r
-\r
-\r
-\r
-                       /*\r
-               Private metthods\r
-                */\r
-\r
-               /*\r
-               setPnf\r
-               * set the controller pnf param using api call\r
-               * return: void\r
-                */\r
-        function _setPnf(data){ // data is the $scope.service.instance object\r
-                return PnfService.getPnfs(data)\r
-                .then(\r
-                                       function success(response){\r
-                                               return response.data;\r
-                                               // * can add here changes on the data that are needed to the view ( filter, ect..)\r
-                                       },\r
-                                       function error(error){\r
-                                               console.error(error);\r
-                                       }\r
-               );\r
-        }\r
+            if ((!($scope.isObjectEmpty(svcModel))) && (!($scope.isObjectEmpty(svcModel.vnfs)))) {\r
+                if ((svcModel.isNewFlow) && (vnfModelCustomizationUuid != null)) {\r
+                    vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
 \r
-        /*\r
-        Callbaks functions\r
+                    var vfModuleCustomizationUuid = vfModule.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+                    if (!($scope.isObjectEmpty(vnfModel)) && !($scope.isObjectEmpty(vnfModel.vfModules)) && UtilityService.hasContents(vfModuleCustomizationUuid)) {\r
 \r
-         */\r
-               var updateProvStatusVnfCallbackFunction = function(response) {\r
-                       $scope.callbackResults = "";\r
-                       var color = FIELD.ID.COLOR_NONE;\r
-                       $scope.callbackStyle = {\r
-                                       "background-color" : color\r
-                       };\r
-                       $scope.reloadRoute();\r
-                       /*\r
-                        * This 1/2 delay was only added to visually highlight the status\r
-                        * change. Probably not needed in the real application code.\r
-                        */\r
-                       $timeout(function() {\r
-                               $scope.callbackResults = UtilityService.getCurrentTime()\r
-                               + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
-                               if (response.isSuccessful) {\r
-                                       color = FIELD.ID.COLOR_8F8;\r
-                                       \r
-                               } else {\r
-                                       color = FIELD.ID.COLOR_F88;\r
-                               }\r
-                               $scope.callbackStyle = {\r
-                                               "background-color" : color\r
-                               };\r
-                       }, 500);\r
-               \r
-               };\r
-\r
-               var createVnfCallbackFunction = function(response) {\r
-                       $scope.callbackResults = "";\r
-                       var color = FIELD.ID.COLOR_NONE;\r
-                       $scope.callbackStyle = {\r
-                                       "background-color" : color\r
-                       };\r
-                       \r
-                       /*\r
-                        * This 1/2 delay was only added to visually highlight the status\r
-                        * change. Probably not needed in the real application code.\r
-                        */\r
-                       $timeout(function() {\r
-                               $scope.callbackResults = UtilityService.getCurrentTime()\r
-                               + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
-                               if (response.isSuccessful) {\r
-                                       color = FIELD.ID.COLOR_8F8;\r
-                                       $scope.reloadRoute();\r
-                               } else {\r
-                                       color = FIELD.ID.COLOR_F88;\r
-                               }\r
-                               $scope.callbackStyle = {\r
-                                               "background-color" : color\r
-                               };\r
-                       }, 500);\r
-                       \r
-               \r
-                       \r
-               };\r
-               \r
-               var deleteOrResumeCallback = function(response) {\r
-                       $scope.callbackResults = "";\r
-                       var color = FIELD.ID.COLOR_NONE;\r
-                       $scope.callbackStyle = {\r
-                                       "background-color" : color\r
-                       };\r
-                       \r
-                       /*\r
-                        * This 1/2 delay was only added to visually highlight the status\r
-                        * change. Probably not needed in the real application code.\r
-                        */\r
-                       $timeout(function() {\r
-                               $scope.callbackResults = UtilityService.getCurrentTime()\r
-                               + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
-                               if (response.isSuccessful) {\r
-                                       color = FIELD.ID.COLOR_8F8;\r
-                                       $scope.reloadRoute();\r
-                               } else {\r
-                                       color = FIELD.ID.COLOR_F88;\r
-                               }\r
-                               $scope.callbackStyle = {\r
-                                               "background-color" : color\r
-                               };\r
-                       }, 500);\r
-                       \r
-               };\r
-               \r
-               var createVfModuleCallbackFunction = function(response) {\r
-                       $scope.callbackResults = "";\r
-                       var color = FIELD.ID.COLOR_NONE;\r
-                       $scope.callbackStyle = {\r
-                                       "background-color" : color\r
-                       };\r
-                       \r
-                       /*\r
-                        * This 1/2 delay was only added to visually highlight the status\r
-                        * change. Probably not needed in the real application code.\r
-                        */\r
-                       $timeout(function() {\r
-                               $scope.callbackResults = UtilityService.getCurrentTime()\r
-                               + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
-                               if (response.isSuccessful) {\r
-                                       color = FIELD.ID.COLOR_8F8;\r
-                                       $scope.reloadRoute();\r
-                               } else {\r
-                                       color = FIELD.ID.COLOR_F88;\r
-                               }\r
-                               $scope.callbackStyle = {\r
-                                               "background-color" : color\r
-                               };\r
-                       }, 500);\r
-\r
-               };\r
-                       \r
-               var deleteServiceInstanceCallbackFunction = function(response) {\r
-                       $scope.callbackResults = "";\r
-                       var color = FIELD.ID.COLOR_NONE;\r
-                       $scope.callbackStyle = {\r
-                                       "background-color" : color\r
-                       };\r
-                       \r
-                       /*\r
-                        * This 1/2 delay was only added to visually highlight the status\r
-                        * change. Probably not needed in the real application code.\r
-                        */\r
-                       $timeout(function() {\r
-                               $scope.callbackResults = UtilityService.getCurrentTime()\r
-                               + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
-                               if (response.isSuccessful) {\r
-                                       color = FIELD.ID.COLOR_8F8;\r
-                                       $location.path(COMPONENT.SERVICEMODELS_MODELS_SERVICES_PATH)\r
-                               } else {\r
-                                       color = FIELD.ID.COLOR_F88;\r
-                               }\r
-                               $scope.callbackStyle = {\r
-                                               "background-color" : color\r
-                               };\r
-                       }, 500);\r
-\r
-               };\r
-       \r
-               var createVolumeGroupCallbackFunction = function(response) {\r
-                       $scope.callbackResults = "";\r
-                       var color = FIELD.ID.COLOR_NONE;\r
-                       $scope.callbackStyle = {\r
-                                       "background-color" : color\r
-                       };\r
-                       \r
-                       /*\r
-                        * This 1/2 delay was only added to visually highlight the status\r
-                        * change. Probably not needed in the real application code.\r
-                        */\r
-                       $timeout(function() {\r
-                               $scope.callbackResults = UtilityService.getCurrentTime()\r
-                               + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
-                               if (response.isSuccessful) {\r
-                                       color = FIELD.ID.COLOR_8F8;\r
-                                       $scope.reloadRoute();\r
-                               } else {\r
-                                       color = FIELD.ID.COLOR_F88;\r
-                               }\r
-                               $scope.callbackStyle = {\r
-                                               "background-color" : color\r
-                               };\r
-                       }, 500);\r
-                       \r
-                       \r
-               \r
-               };\r
-                       \r
-       });\r
+                        vfModuleModel = vnfModel.vfModules[vfModuleCustomizationUuid];\r
+\r
+                    }\r
+                }\r
+                else {\r
+                    // old flow\r
+                    if (vnfModelVersionId != null) {\r
+                        vnfModel = svcModel.vnfs[vnfModelVersionId];\r
+                    }\r
+                    //var vfModuleInvariantUuid = vfModule.object[FIELD.ID.MODEL_INVAR_ID];\r
+                    var vfModuleModelVersionId = vfModule.object[FIELD.ID.MODEL_VERSION_ID];\r
+                    if ((!($scope.isObjectEmpty(vnfModel))) && (!($scope.isObjectEmpty(vnfModel.vfModules))) &&\r
+                        UtilityService.hasContents(vfModuleModelVersionId)) {\r
+                        vfModuleModel = vnfModel.vfModules[vfModuleModelVersionId];\r
+                    }\r
+                }\r
+                if (!($scope.isObjectEmpty(vfModuleModel))) {\r
+                    DataService.setModelInfo(COMPONENT.VF_MODULE, {\r
+                        "modelInvariantId": vfModuleModel.invariantUuid,\r
+                        "modelVersion": vfModuleModel.version,\r
+                        "modelNameVersionId": vfModuleModel.uuid,\r
+                        "modelCustomizationName": vfModuleModel.modelCustomizationName,\r
+                        "customizationUuid": vfModuleModel.customizationUuid,\r
+                        "modelName": vfModuleModel.name,\r
+                        "inputs": ""\r
+                    });\r
+                }\r
+            }\r
+        }\r
+\r
+        function setCurrentVolumeGroupModelInfoFromScope(vnf, vfModule) {\r
+            var svcModel = $scope.service.convertedModel;\r
+\r
+            var vnfModelCustomizationUuid = null;\r
+            var vnfModel = null;\r
+            var vnfModelVersionId = null;\r
+\r
+            vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];\r
+            vnfModelCustomizationUuid = vnf.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+\r
+            DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {\r
+                "modelInvariantId": "",\r
+                "modelVersion": "",\r
+                "modelNameVersionId": "",\r
+                "modelCustomizationName": "",\r
+                "customizationUuid": "",\r
+                "modelName": "",\r
+                "inputs": ""\r
+            });\r
+\r
+            if ((!($scope.isObjectEmpty(svcModel))) && (!($scope.isObjectEmpty(svcModel.vnfs)))) {\r
+                if ((svcModel.isNewFlow) && (vnfModelCustomizationUuid != null)) {\r
+                    vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
+                }\r
+                else {\r
+                    vnfModel = svcModel.vnfs[vnfModelVersionId];\r
+                }\r
+            }\r
+\r
+\r
+            // volume groups don't have model-invariant-id/version in a&ai.\r
+            // Their model-invariant-id/version is the one for the associated vfModule\r
+\r
+            var vfModuleModelVersionId = vfModule.object[FIELD.ID.MODEL_VERSION_ID];\r
+            var vfModuleCustomizationUuid = vfModule.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+            var volGroupModel = null;\r
+\r
+            if (!($scope.isObjectEmpty(vnfModel)) && !($scope.isObjectEmpty(vnfModel.volumeGroups))) {\r
+                if ((svcModel.isNewFlow) && (UtilityService.hasContents(vfModuleCustomizationUuid))) {\r
+                    volGroupModel = vnfModel.volumeGroups[vfModuleCustomizationUuid];\r
+                }\r
+                else {\r
+                    volGroupModel = vnfModel.volumeGroups[vfModuleModelVersionId];\r
+                }\r
+                if (!($scope.isObjectEmpty(volGroupModel))) {\r
+                    DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {\r
+                        "modelInvariantId": volGroupModel.invariantUuid,\r
+                        "modelVersion": volGroupModel.version,\r
+                        "modelNameVersionId": volGroupModel.uuid,\r
+                        "modelCustomizationName": volGroupModel.modelCustomizationName,\r
+                        "customizationUuid": volGroupModel.customizationUuid,\r
+                        "modelName": volGroupModel.name,\r
+                        "inputs": ""\r
+                    });\r
+\r
+                }\r
+            }\r
+        }\r
+\r
+        function setCurrentVolumeGroupModelInfoByVfModuleFromScope(vnf, volumeGroup) {\r
+            var svcModel = $scope.service.convertedModel;\r
+\r
+            var vnfModelCustomizationUuid = null;\r
+            var vnfModel = null;\r
+            var vnfModelVersionId = null;\r
+\r
+            vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];\r
+            vnfModelCustomizationUuid = vnf.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+\r
+            DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {\r
+                "modelInvariantId": "",\r
+                "modelVersion": "",\r
+                "modelNameVersionId": "",\r
+                "modelCustomizationName": "",\r
+                "customizationUuid": "",\r
+                "modelName": "",\r
+                "inputs": ""\r
+            });\r
+\r
+            if ((!($scope.isObjectEmpty(svcModel))) && (!($scope.isObjectEmpty(svcModel.vnfs)))) {\r
+                if ((svcModel.isNewFlow) && (vnfModelCustomizationUuid != null)) {\r
+                    vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
+                }\r
+                else {\r
+                    vnfModel = svcModel.vnfs[vnfModelVersionId];\r
+                }\r
+            }\r
+\r
+\r
+            // volume groups don't have model-invariant-id/version in a&ai.\r
+            // Their model-invariant-id/version is the one for the associated vfModule\r
+\r
+            var vfModuleModelVersionId = volumeGroup.object[FIELD.ID.VF_MODULE_MODEL_VERSION_ID];\r
+            var vfModuleCustomizationUuid = volumeGroup.object[FIELD.ID.VF_MODULE_MODEL_CUSTOMIZATION_ID];\r
+            var volGroupModel = null;\r
+            if ((!($scope.isObjectEmpty(vnfModel))) && (!($scope.isObjectEmpty(vnfModel.volumeGroups)))) {\r
+                if ((svcModel.isNewFlow) && (UtilityService.hasContents(vfModuleCustomizationUuid))) {\r
+                    volGroupModel = vnfModel.volumeGroups[vfModuleCustomizationUuid];\r
+                }\r
+                else {\r
+                    volGroupModel = vnfModel.volumeGroups[vfModuleModelVersionId];\r
+                }\r
+                if (!($scope.isObjectEmpty(volGroupModel))) {\r
+                    DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {\r
+                        "modelInvariantId": volGroupModel.invariantUuid,\r
+                        "modelVersion": volGroupModel.version,\r
+                        "modelNameVersionId": volGroupModel.uuid,\r
+                        "modelCustomizationName": volGroupModel.modelCustomizationName,\r
+                        "customizationUuid": volGroupModel.customizationUuid,\r
+                        "modelName": volGroupModel.name,\r
+                        "inputs": ""\r
+                    });\r
+\r
+                }\r
+            }\r
+        }\r
+\r
+        $scope.deleteVnf = function (serviceObject, vnf) {\r
+            console.log("Removing VNF " + vnf.name);\r
+\r
+            var serviceInstance = serviceObject.object;\r
+            var svcModel = $scope.service.convertedModel;\r
+            DataService.setInventoryItem(vnf.object);\r
+\r
+            /*var vnftype = vnf.object['vnf-type'];\r
+            if (vnftype == null)\r
+                vnftype = "";\r
+            else\r
+            {\r
+                var n = vnftype.search("/");\r
+                if (n >= 0)\r
+                    vnftype = vnftype.substring(n+1);\r
+            }*/\r
+\r
+            var svcModel = $scope.service.convertedModel;\r
+            var vnfModelInvariantUuid = null;\r
+            var vnfModelVersion = null;\r
+            var vnfModelCustomizationUuid = null;\r
+            var vnfModel = null;\r
+            var vnfModelVersionId = null;\r
+\r
+            vnfModelInvariantUuid = vnf.object[FIELD.ID.MODEL_INVAR_ID];\r
+            vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];\r
+            vnfModelCustomizationUuid = vnf.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+\r
+            DataService.setModelInfo(COMPONENT.VNF, {\r
+                "modelInvariantId": vnfModelInvariantUuid,\r
+                "modelVersion": "",\r
+                "modelNameVersionId": vnfModelVersionId,\r
+                "modelCustomizationName": "",\r
+                "customizationUuid": vnfModelCustomizationUuid,\r
+                "modelName": "",\r
+                "inputs": ""\r
+            });\r
+\r
+            if ((!($scope.isObjectEmpty(svcModel))) && (!($scope.isObjectEmpty(svcModel.vnfs)))) {\r
+                if ((svcModel.isNewFlow) && (vnfModelCustomizationUuid != null)) {\r
+                    vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
+                }\r
+                else {\r
+                    vnfModel = svcModel.vnfs[vnfModelVersionId];\r
+                }\r
+                //console.log ( "vnf models: "); console.log ( JSON.stringify ($scope.service.convertedModel.vnfs, null, 4) );\r
+                if (!($scope.isObjectEmpty(vnfModel))) {\r
+\r
+                    DataService.setModelInfo(COMPONENT.VNF, {\r
+                        "modelInvariantId": vnfModel.invariantUuid,\r
+                        "modelVersion": vnfModel.version,\r
+                        "modelNameVersionId": vnfModel.uuid,\r
+                        "modelCustomizationName": vnfModel.modelCustomizationName,\r
+                        "customizationUuid": vnfModel.customizationUuid,\r
+                        "modelName": vnfModel.name,\r
+                        "inputs": ""\r
+                    });\r
+                }\r
+            }\r
+\r
+            DataService.setVnfInstanceId(vnf.object[FIELD.ID.VNF_ID]);\r
+\r
+            DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+\r
+            DataService.setGlobalCustomerId(serviceObject[FIELD.ID.GLOBAL_CUST_ID]);\r
+            DataService.setServiceInstanceName($scope.service.instance.name);\r
+\r
+            DataService.setServiceName($scope.service.model.service.name);\r
+\r
+            DataService.setServiceUuid($scope.service.model.service.uuid);\r
+\r
+            $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
+                componentId: COMPONENT.VNF,\r
+                callbackFunction: deleteOrResumeCallback,\r
+                dialogMethod: COMPONENT.DELETE\r
+            });\r
+\r
+        };\r
+\r
+        $scope.deleteVolumeGroup = function (serviceObject, vnf, vfModule, volumeGroup) {\r
+\r
+            console.log("Removing Volume Group " + volumeGroup.name);\r
+            var haveModel = false;\r
+\r
+            var serviceInstance = serviceObject.object;\r
+\r
+            setCurrentVolumeGroupModelInfoFromScope(vnf, vfModule);\r
+\r
+            DataService.setInventoryItem(volumeGroup.object);\r
+\r
+            DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+\r
+            DataService.setGlobalCustomerId(serviceObject[FIELD.ID.GLOBAL_CUST_ID]);\r
+            DataService.setServiceInstanceName($scope.service.instance.name);\r
+\r
+            DataService.setServiceName($scope.service.model.service.name);\r
+\r
+            DataService.setServiceUuid($scope.service.model.service.uuid);\r
+            DataService.setVnfInstanceId(vnf.nodeId);\r
+            DataService.setVolumeGroupInstanceId(volumeGroup.nodeId);\r
+\r
+            $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
+                componentId: COMPONENT.VOLUME_GROUP,\r
+                dialogMethod: COMPONENT.DELETE\r
+            });\r
+        };\r
+\r
+        $scope.deleteVnfVolumeGroup = function (serviceObject, vnf, volumeGroup) {\r
+\r
+            console.log("Removing Volume Group " + volumeGroup.name);\r
+            var serviceInstance = serviceObject.object;\r
+\r
+            DataService.setInventoryItem(volumeGroup.object);\r
+\r
+            var svcModel = $scope.service.convertedModel;\r
+\r
+            var vnfModelInvariantUuid = vnf.object[FIELD.ID.MODEL_INVAR_ID];\r
+            var vnfModelVersionId = vnf.object[FIELD.ID.MODEL_VERSION_ID];\r
+            var vnfModelCustomizationUuid = vnf.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+\r
+            var volGroupModelInvariantUuid = volumeGroup.object[FIELD.ID.MODEL_INVAR_ID];\r
+            var volGroupModelVersionId = volumeGroup.object[FIELD.ID.MODEL_VERSION_ID];\r
+            var volGroupModelCustomizationUuid = volumeGroup.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+\r
+            var vnfModel = null;\r
+            var volGroupModel = null;\r
+\r
+            // send an empty model by default since model is not required for deletes\r
+            DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {});\r
+\r
+            if (svcModel.isNewFlow) {\r
+                vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
+                if (UtilityService.hasContents(volGroupModelCustomizationUuid)) {\r
+                    volGroupModel = vnfModel.volumeGroups[volGroupModelCustomizationUuid];\r
+                }\r
+            }\r
+            else {\r
+\r
+                vnfModel = svcModel.vnfs[vnfModelVersionId];\r
+                if (UtilityService.hasContents(volGroupModelVersionId)) {\r
+                    volGroupModel = vnfModel.volumeGroups[volGroupModelVersionId];\r
+                }\r
+            }\r
+            if (!($scope.isObjectEmpty(volGroupModel))) {\r
+                DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {\r
+                    "modelInvariantId": volGroupModel.invariantUuid,\r
+                    "modelVersion": volGroupModel.version,\r
+                    "modelNameVersionId": volGroupModel.uuid,\r
+                    "modelName": volGroupModel.name,\r
+                    "modelCustomizationName": volGroupModel.modelCustomizationName,\r
+                    "customizationUuid": volGroupModel.customizationUuid,\r
+                    "inputs": ""\r
+                });\r
+            }\r
+\r
+            DataService.setVnfInstanceId(vnf.object[FIELD.ID.VNF_ID]);\r
+\r
+            DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+\r
+            DataService.setGlobalCustomerId(serviceObject[FIELD.ID.GLOBAL_CUST_ID]);\r
+            DataService.setServiceInstanceName($scope.service.instance.name);\r
+\r
+            DataService.setServiceName($scope.service.model.service.name);\r
+\r
+            DataService.setServiceUuid($scope.service.model.service.uuid);\r
+            DataService.setVnfInstanceId(vnf.nodeId);\r
+            DataService.setVolumeGroupInstanceId(volumeGroup.nodeId);\r
+\r
+            $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
+                componentId: COMPONENT.VOLUME_GROUP,\r
+                callbackFunction: deleteOrResumeCallback,\r
+                dialogMethod: COMPONENT.DELETE\r
+            });\r
+        };\r
+\r
+        $scope.describeNetwork = function (serviceObject, networkObject) {\r
+            var serviceInstance = serviceObject.object;\r
+            var network = networkObject.object;\r
+            //console.log ("networkObject="); console.log (JSON.stringify(networkObject, null, 4));\r
+\r
+            DataService.setResCustomizationUuid(" ");\r
+\r
+            setCurrentServiceModelInfoFromScope();\r
+            setCurrentNetworkModelInfoFromScope(networkObject);\r
+\r
+            DataService.setNetworkInstanceId(network[FIELD.ID.NETWORK_ID]);\r
+            DataService.setInventoryItem(networkObject);\r
+            DataService.setSubscriberName(serviceObject.subscriberName);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+\r
+            $scope.$broadcast(COMPONENT.SHOW_COMPONENT_DETAILS, {\r
+                componentId: COMPONENT.NETWORK\r
+            });\r
+        };\r
+\r
+        // for service instance id - no need for this!\r
+        $scope.describeService = function (serviceObject) {\r
+            var serviceInstance = serviceObject.object;\r
+            setCurrentServiceModelInfoFromScope();\r
+\r
+            DataService.setInventoryItem(serviceInstance);\r
+            //DataService.setModelInfo(serviceInstance['service-instance-id'], serviceInstance);\r
+\r
+            DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+\r
+            //Display popup with additional service information\r
+            $scope.$broadcast(COMPONENT.SHOW_COMPONENT_DETAILS, {\r
+                componentId: COMPONENT.SERVICE\r
+            });\r
+\r
+        };\r
+\r
+        $scope.describeVfModule = function (serviceObject, vfModuleObject, vnf) {\r
+            var serviceInstance = serviceObject.object;\r
+            var vfModule = vfModuleObject.object;\r
+\r
+            /*var vfModuleInvariantUuid = vfModule[FIELD.ID.MODEL_INVAR_ID];\r
+            var vfModuleModelVersionId = vfModule[FIELD.ID.MODEL_VERSION_ID];*/\r
+            var vfModuleCustomizationUuid = vfModule[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+\r
+            setCurrentServiceModelInfoFromScope();\r
+            setCurrentVfModuleModelInfoFromScope(vnf, vfModuleObject);\r
+\r
+            DataService.setCustomizationUuid(" ");\r
+            if (UtilityService.hasContents(vfModuleCustomizationUuid)) {\r
+                DataService.setCustomizationUuid(vfModuleCustomizationUuid);\r
+            }\r
+\r
+            //Display popup with additional VF-Module information\r
+            DataService.setVfModuleInstanceId(vfModule[FIELD.ID.VF_MODULE_ID]);\r
+            DataService.setInventoryItem(vfModule);\r
+\r
+            DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+\r
+            $scope.$broadcast(COMPONENT.SHOW_COMPONENT_DETAILS, {\r
+                componentId: COMPONENT.VF_MODULE\r
+            });\r
+        };\r
+\r
+        $scope.getStatusOfVnf = function (serviceObject, vnfObject) {\r
+            var serviceInstance = serviceObject.object;\r
+            var vnf = vnfObject.object;\r
+\r
+            DataService.setVnfInstanceId(vnf[FIELD.ID.VNF_ID]);\r
+            DataService.setInventoryItem(vnf);\r
+\r
+            DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+            DataService.setServiceInstanceName(serviceInstance[FIELD.ID.SERVICE_INSTANCE_NAME]);\r
+\r
+            $scope.$broadcast(COMPONENT.COMPONENT_STATUS, {\r
+                componentId: COMPONENT.VNF,\r
+                callbackFunction: updateProvStatusVnfCallbackFunction\r
+            });\r
+        };\r
+\r
+        $scope.describeVnf = function (serviceObject, vnfObject) {\r
+            var serviceInstance = serviceObject.object;\r
+            var vnf = vnfObject.object;\r
+            DataService.setResCustomizationUuid(" ");\r
+\r
+            //var vnfInvariantUuid = vnf[FIELD.ID.MODEL_INVAR_ID];\r
+            //var vnfVersionId = vnf[FIELD.ID.MODEL_VERSION_ID];\r
+            var vnfCustomizationUuid = vnf[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+\r
+            if (UtilityService.hasContents(vnfCustomizationUuid)) {\r
+                DataService.setResCustomizationUuid(vnfCustomizationUuid);\r
+            }\r
+\r
+            setCurrentServiceModelInfoFromScope();\r
+            setCurrentVNFModelInfo(vnfObject);\r
+\r
+            //Display popup with additional VNF information\r
+            DataService.setVnfInstanceId(vnf[FIELD.ID.VNF_ID]);\r
+            DataService.setInventoryItem(vnf);\r
+\r
+            DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+\r
+            $scope.$broadcast(COMPONENT.SHOW_COMPONENT_DETAILS, {\r
+                componentId: COMPONENT.VNF\r
+            });\r
+        };\r
+\r
+        $scope.describeVolumeGroup = function (serviceObject, vnf, volumeGroupObject) {\r
+\r
+            var serviceInstance = serviceObject.object;\r
+            var volumeGroup = volumeGroupObject.object;\r
+\r
+            var volGroupCustomizationUuid = volumeGroup[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+\r
+            setCurrentServiceModelInfoFromScope();\r
+            setCurrentVolumeGroupModelInfoByVfModuleFromScope(vnf, volumeGroupObject);\r
+\r
+            DataService.setCustomizationUuid(" ");\r
+            if (UtilityService.hasContents(volGroupCustomizationUuid)) {\r
+                DataService.setCustomizationUuid(volGroupCustomizationUuid);\r
+            }\r
+            DataService.setVolumeGroupInstanceId(volumeGroup[FIELD.ID.VOLUME_GROUP_ID]);\r
+            DataService.setInventoryItem(volumeGroup);\r
+\r
+            DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+\r
+\r
+            $scope.$broadcast(COMPONENT.SHOW_COMPONENT_DETAILS, {\r
+                componentId: COMPONENT.VOLUME_GROUP\r
+            });\r
+        };\r
+\r
+        $scope.addNetworkInstance = function (netModel, existingVnfs) {\r
+\r
+            // For networks we assume that we always follow the new flow\r
+            console.log("Adding network to service instance" + this.service.instance.name);\r
+            if (VIDCONFIGURATION.VNF_STATUS_CHECK_ENABLED && (UtilityService.hasContents(existingVnfs)) && (existingVnfs.length > 0)) {\r
+                var msg = VnfService.isVnfListStatusValid(existingVnfs);\r
+                if (msg != "") {\r
+                    alert(msg);\r
+                    return;\r
+                }\r
+            }\r
+\r
+            DataService.setSubscriberName($scope.service.instance.subscriberName);\r
+            DataService.setGlobalCustomerId($scope.service.instance.globalCustomerId);\r
+            DataService.setServiceType($scope.service.instance.serviceType);\r
+            DataService.setServiceInstanceName($scope.service.instance.name);\r
+            DataService.setServiceInstanceId($scope.service.instance.id);\r
+            DataService.setServiceName($scope.service.model.service.name);\r
+\r
+            DataService.setModelInfo(COMPONENT.NETWORK, {\r
+                "modelType": "network",\r
+                "modelInvariantId": netModel.invariantUuid,\r
+                "modelVersion": netModel.version,\r
+                "modelNameVersionId": netModel.uuid,\r
+                "modelName": netModel.name,\r
+                "modelCustomizationName": netModel.modelCustomizationName,\r
+                "customizationUuid": netModel.customizationUuid,\r
+                "inputs": "",\r
+                "displayInputs": netModel.displayInputs\r
+            });\r
+            setCurrentServiceModelInfoFromScope();\r
+\r
+\r
+            $scope.$broadcast(COMPONENT.CREATE_COMPONENT, {\r
+                componentId: COMPONENT.NETWORK,\r
+                callbackFunction: createVnfCallbackFunction\r
+            });\r
+        };\r
+\r
+        $scope.addVnfInstance = function (vnf, existingVnfs) {\r
+\r
+            if (VIDCONFIGURATION.VNF_STATUS_CHECK_ENABLED && (UtilityService.hasContents(existingVnfs)) && (existingVnfs.length > 0)) {\r
+                var msg = VnfService.isVnfListStatusValid(existingVnfs);\r
+                if (msg != "") {\r
+                    alert(msg);\r
+                    return;\r
+                }\r
+            }\r
+\r
+            var isVfc = false;\r
+\r
+            _.map($scope.service.model.vnfs, function (value, key) {\r
+                if (value.uuid == vnf.uuid && !_.isEmpty(value.vfcInstanceGroups)) {\r
+                        isVfc = true;\r
+                        var queryData = {\r
+                            serviceModelId: $scope.service.model.service.uuid,\r
+                            serviceInstanceID: $scope.service.instance.id,\r
+                            globalCustomerId: $scope.service.instance.globalCustomerId,\r
+                            serviceType: $scope.service.instance.serviceType,\r
+                            serviceInstanceName: $scope.service.instance.name,\r
+                            modelCustomizationName: value.modelCustomizationName,\r
+                            modelCustomizationId: value.customizationUuid,\r
+                            subscriberName: $scope.service.instance.subscriberName\r
+                        };\r
+\r
+                        $scope.$broadcast(COMPONENT.IFRAME_DIALOG, queryData);\r
+                        return;\r
+                    }\r
+            });\r
+\r
+            DataService.setSubscriberName($scope.service.instance.subscriberName);\r
+            DataService.setGlobalCustomerId($scope.service.instance.globalCustomerId);\r
+            DataService.setServiceType($scope.service.instance.serviceType);\r
+            DataService.setServiceInstanceName($scope.service.instance.name);\r
+            DataService.setServiceInstanceId($scope.service.instance.id);\r
+            DataService.setServiceName($scope.service.model.service.name);\r
+\r
+            console.log("existingVnfs: ");\r
+            console.log(JSON.stringify(existingVnfs, null, 4));\r
+            console.log("existingVnfs: ");\r
+            console.log(JSON.stringify(existingVnfs, null, 4));\r
+            var vnf_type = "";\r
+            var vnf_role = "";\r
+            var vnf_function = "";\r
+            var vnf_code = "";\r
+\r
+            if (UtilityService.hasContents(vnf.nfType)) {\r
+                vnf_type = vnf.nfType;\r
+            }\r
+            if (UtilityService.hasContents(vnf.nfRole)) {\r
+                vnf_role = vnf.nfRole;\r
+            }\r
+            if (UtilityService.hasContents(vnf.nfFunction)) {\r
+                vnf_function = vnf.nfFunction;\r
+            }\r
+            if (UtilityService.hasContents(vnf.nfCode)) {\r
+                vnf_code = vnf.nfCode;\r
+            }\r
+            DataService.setModelInfo(COMPONENT.VNF, {\r
+                "modelType": vnf.isPnf ? "pnf" : "vnf",\r
+                "modelInvariantId": vnf.invariantUuid,\r
+                "modelVersion": vnf.version,\r
+                "modelNameVersionId": vnf.uuid,\r
+                "modelName": vnf.name,\r
+                "modelCustomizationName": vnf.modelCustomizationName,\r
+                "customizationUuid": vnf.customizationUuid,\r
+                "inputs": "",\r
+                "displayInputs": vnf.displayInputs,\r
+                "vnfType": vnf_type,\r
+                "vnfRole": vnf_role,\r
+                "vnfFunction": vnf_function,\r
+                "vnfCode": vnf_code,\r
+                "properties": vnf.properties\r
+            });\r
+\r
+            DataService.setModelInstanceName($scope.service.model.service.name);\r
+            setCurrentServiceModelInfoFromScope();\r
+\r
+            if (vnf.isConfig) {\r
+                DataService.setServiceProxies($scope.service.model.serviceProxies);\r
+                DataService.setSourceServiceProxies(vnf.sourceNodes);\r
+                DataService.setCollectorServiceProxies(vnf.collectorNodes);\r
+                DataService.setConfigurationByPolicy(vnf.isConfigurationByPolicy);\r
+                $location.path("/addNetworkNode");\r
+            } else if (vnf.isPnf) {\r
+                $location.path("/pnfSearchAssociation");\r
+            } else if (isVfc) {\r
+                //do nothing\r
+            } else {\r
+                $scope.$broadcast(COMPONENT.CREATE_COMPONENT, {\r
+                    componentId: COMPONENT.VNF,\r
+                    callbackFunction: createVnfCallbackFunction\r
+                });\r
+            }\r
+        };\r
+\r
+        $scope.addVfModuleInstance = function (vnfInstance, vfModuleModel) {\r
+\r
+            if (VIDCONFIGURATION.VNF_STATUS_CHECK_ENABLED) {\r
+                var msg = VnfService.isVnfStatusValid(vnfInstance);\r
+                if (msg != "") {\r
+                    alert(msg);\r
+                    return;\r
+                }\r
+\r
+            }\r
+            var svcModel = $scope.service.convertedModel;\r
+            DataService.setSubscriberName($scope.service.instance.subscriberName);\r
+            DataService.setGlobalCustomerId($scope.service.instance.globalCustomerId);\r
+            DataService.setServiceType($scope.service.instance.serviceType);\r
+            DataService.setServiceInstanceName($scope.service.instance.name);\r
+            DataService.setServiceInstanceId($scope.service.instance.id);\r
+            DataService.setServiceName($scope.service.model.service.name);\r
+\r
+            var vnfModelInvariantUuid = vnfInstance.object[FIELD.ID.MODEL_INVAR_ID];\r
+            var vnfModelVersionId = vnfInstance.object[FIELD.ID.MODEL_VERSION_ID];\r
+            var vnfModelCustomizationUuid = vnfInstance.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+            var vnfModel = null;\r
+            if (svcModel.isNewFlow) {\r
+                vnfModel = svcModel.vnfs[vnfModelCustomizationUuid];\r
+            }\r
+            else {\r
+                vnfModel = svcModel.vnfs[vnfModelVersionId];\r
+            }\r
+\r
+            var availableVolumeGroupList = [];\r
+            angular.forEach(vnfInstance[FIELD.ID.AVAILABLEVOLUMEGROUPS], function (volumeGroupInstance, key) {\r
+                availableVolumeGroupList.push({"instance": volumeGroupInstance});\r
+            });\r
+\r
+            DataService.setAvailableVolumeGroupList(availableVolumeGroupList);\r
+            setCurrentServiceModelInfoFromScope();\r
+\r
+            DataService.setVnfInstanceId(vnfInstance.object[FIELD.ID.VNF_ID]);\r
+\r
+            DataService.setModelInfo(COMPONENT.VNF, {\r
+                "modelInvariantId": vnfModel.invariantUuid,\r
+                "modelVersion": vnfModel.version,\r
+                "modelNameVersionId": vnfModel.uuid,\r
+                "modelName": vnfModel.name,\r
+                "modelCustomizationName": vnfModel.modelCustomizationName,\r
+                "customizationUuid": vnfModel.customizationUuid,\r
+                "inputs": ""\r
+            });\r
+\r
+            DataService.setModelInfo(COMPONENT.VF_MODULE, {\r
+                "modelInvariantId": vfModuleModel.invariantUuid,\r
+                "modelVersion": vfModuleModel.version,\r
+                "modelNameVersionId": vfModuleModel.uuid,\r
+                "customizationUuid": vfModuleModel.customizationUuid,\r
+                "modelCustomizationName": vfModuleModel.modelCustomizationName,\r
+                "modelName": vfModuleModel.name,\r
+                "inputs": ""\r
+            });\r
+\r
+            $scope.$broadcast(COMPONENT.CREATE_COMPONENT, {\r
+                componentId: COMPONENT.VF_MODULE,\r
+                callbackFunction: createVfModuleCallbackFunction\r
+            });\r
+\r
+        };\r
+\r
+        $scope.addVolumeGroupInstance = function (vnfInstance, volumeGroupModel) {\r
+            if (VIDCONFIGURATION.VNF_STATUS_CHECK_ENABLED) {\r
+                var msg = VnfService.isVnfStatusValid(vnfInstance);\r
+                if (msg != "") {\r
+                    alert(msg);\r
+                    return;\r
+                }\r
+            }\r
+            var svcModel = $scope.service.convertedModel;\r
+            DataService.setSubscriberName($scope.service.instance.subscriberName);\r
+            DataService.setGlobalCustomerId($scope.service.instance.globalCustomerId);\r
+            DataService.setServiceType($scope.service.instance.serviceType);\r
+            DataService.setServiceInstanceName($scope.service.instance.name);\r
+            DataService.setServiceInstanceId($scope.service.instance.id);\r
+            DataService.setServiceName($scope.service.model.service.name);\r
+            setCurrentServiceModelInfoFromScope();\r
+\r
+            DataService.setModelInfo(COMPONENT.SERVICE, {\r
+                "modelInvariantId": $scope.service.model.service.invariantUuid,\r
+                "modelVersion": $scope.service.model.service.version,\r
+                "modelNameVersionId": $scope.service.model.service.uuid,\r
+                "modelName": $scope.service.model.service.name,\r
+                "inputs": ""\r
+            });\r
+\r
+            DataService.setVnfInstanceId(vnfInstance.object[FIELD.ID.VNF_ID]);\r
+\r
+            var vnfModelInvariantUuid = vnfInstance.object[FIELD.ID.MODEL_INVAR_ID];\r
+            var vnfModelVersionId = vnfInstance.object[FIELD.ID.MODEL_VERSION_ID];\r
+            var vnfCustomizationUuid = vnfInstance.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+            var vnfModel = null;\r
+\r
+            if (svcModel.isNewFlow) {\r
+                vnfModel = svcModel.vnfs[vnfCustomizationUuid];\r
+            }\r
+            else {\r
+                vnfModel = svcModel.vnfs[vnfModelVersionId];\r
+            }\r
+\r
+            DataService.setModelInfo(COMPONENT.VNF, {\r
+                "modelInvariantId": vnfModel.invariantUuid,\r
+                "modelVersion": vnfModel.version,\r
+                "modelNameVersionId": vnfModel.uuid,\r
+                "modelName": vnfModel.name,\r
+                "modelCustomizationName": vnfModel.modelCustomizationName,\r
+                "customizationUuid": vnfModel.customizationUuid,\r
+                "inputs": ""\r
+            });\r
+\r
+            DataService.setModelInfo(COMPONENT.VOLUME_GROUP, {\r
+                "modelInvariantId": volumeGroupModel.invariantUuid,\r
+                "modelVersion": volumeGroupModel.version,\r
+                "modelNameVersionId": volumeGroupModel.uuid,\r
+                "modelName": volumeGroupModel.name,\r
+                "modelCustomizationName": volumeGroupModel.modelCustomizationName,\r
+                "customizationUuid": volumeGroupModel.customizationUuid,\r
+                "inputs": ""\r
+            });\r
+\r
+            $scope.$broadcast(COMPONENT.CREATE_COMPONENT, {\r
+                componentId: COMPONENT.VOLUME_GROUP,\r
+                callbackFunction: createVolumeGroupCallbackFunction\r
+            });\r
+        };\r
+\r
+        $scope.resume = function (serviceObject, vfModule, vnfModel) {\r
+            populate_popup_vfModule(serviceObject, vfModule, vnfModel);\r
+            setCurrentVNFModelInfo(vnfModel);\r
+\r
+            var availableVolumeGroupList = [];\r
+            angular.forEach(vfModule.volumeGroups, function (volumeGroupInstance, key) {\r
+                availableVolumeGroupList.push({"instance": volumeGroupInstance});\r
+            });\r
+\r
+            DataService.setAvailableVolumeGroupList(availableVolumeGroupList);\r
+\r
+            DataService.setVfModuleInstanceName(vfModule.object[FIELD.ID.VF_MODULE_NAME]);\r
+            setCurrentServiceModelInfoFromScope();\r
+\r
+            if (DataService.getLoggedInUserId())  {\r
+                openVfModuleWithHomingDataModal(COMPONENT.RESUME, vfModule);\r
+            }\r
+            else {\r
+                AaiService.getLoggedInUserID(function (response) {\r
+                    var userID = response.data;\r
+                    DataService.setLoggedInUserId(userID);\r
+                    openVfModuleWithHomingDataModal(COMPONENT.RESUME, vfModule);\r
+                });\r
+            }\r
+        };\r
+\r
+        $scope.deleteConfiguration = function (serviceObject, configuration) {\r
+            console.log("Deleting Configuration " + configuration.name);\r
+\r
+            var serviceInstance = serviceObject.object;\r
+            var svcModel = $scope.service.convertedModel;\r
+            var configModel;\r
+            DataService.setInventoryItem(configuration.object);\r
+            // set model default and override later if found\r
+            DataService.setModelInfo(COMPONENT.CONFIGURATION, {});\r
+\r
+            if (configuration.object != null) {\r
+\r
+                //var netModelInvariantUuid = network.object[FIELD.ID.MODEL_INVAR_ID];\r
+                var configModelVersionId = configuration.object[FIELD.ID.MODEL_VERSION_ID]; // model uuid\r
+                var configModelCustomizationUuid = configuration.object[FIELD.ID.MODEL_CUSTOMIZATION_ID];\r
+\r
+                //configurations added to vnfs list, in order to be part of the "Add VNF" drop-down list\r
+                if ((!($scope.isObjectEmpty(svcModel))) && (!($scope.isObjectEmpty(svcModel.vnfs)))) {\r
+                    if ((svcModel.isNewFlow) && (UtilityService.hasContents(configModelCustomizationUuid))) {\r
+                        configModel = svcModel.vnfs[configModelCustomizationUuid];\r
+                    }\r
+                    else {\r
+\r
+                        if (UtilityService.hasContents(configModelVersionId)) {\r
+                            configModel = svcModel.vnfs[configModelVersionId];\r
+                        }\r
+\r
+                    }\r
+                }\r
+            }\r
+            if (!($scope.isObjectEmpty(configModel))) {\r
+                DataService.setModelInfo(COMPONENT.CONFIGURATION, {\r
+                    "modelInvariantId": configModel.invariantUuid,\r
+                    "modelVersion": configModel.version,\r
+                    "modelNameVersionId": configModel.uuid,\r
+                    "modelCustomizationName": configModel.modelCustomizationName,\r
+                    "customizationUuid": configModel.customizationUuid,\r
+                    "modelName": configModel.name,\r
+                    "inputs": ""\r
+                });\r
+            }\r
+\r
+            DataService.setSubscriberName(serviceObject[COMPONENT.SUBSCRIBER_NAME]);\r
+            DataService.setServiceType(serviceObject[COMPONENT.SERVICE_TYPE]);\r
+            DataService.setServiceInstanceId(serviceInstance[FIELD.ID.SERVICE_INSTANCE_ID]);\r
+\r
+            DataService.setGlobalCustomerId(serviceObject[FIELD.ID.GLOBAL_CUST_ID]);\r
+            DataService.setServiceInstanceName($scope.service.instance.name);\r
+            DataService.setServiceName($scope.service.model.service.name);\r
+            DataService.setServiceUuid($scope.service.model.service.uuid);\r
+            DataService.setConfigurationInstanceId(configuration.object[FIELD.ID.CONFIGURATION_ID]);\r
+\r
+            $scope.$broadcast(COMPONENT.DELETE_RESUME_COMPONENT, {\r
+                componentId: COMPONENT.CONFIGURATION,\r
+                dialogMethod: COMPONENT.DELETE,\r
+                callbackFunction: deleteCallbackFunction\r
+            });\r
+        };\r
+\r
+        var deleteCallbackFunction = function () {\r
+            console.log('hi')\r
+        };\r
+\r
+        $scope.resetProgress = function () {\r
+            $scope.percentProgress = 0;\r
+            $scope.progressClass = FIELD.STYLE.PROGRESS_BAR_INFO;\r
+        };\r
+\r
+        $scope.setProgress = function (percentProgress) {\r
+            percentProgress = parseInt(percentProgress);\r
+            if (percentProgress >= 100) {\r
+                $scope.progressClass = FIELD.STYLE.PROGRESS_BAR_SUCCESS;\r
+            }\r
+\r
+            if (percentProgress < $scope.percentProgress) {\r
+                return;\r
+            }\r
+\r
+            $scope.percentProgress = percentProgress;\r
+            $scope.progressWidth = {width: percentProgress + "%"};\r
+            if (percentProgress >= 5) {\r
+                $scope.progressText = percentProgress + " %";\r
+            } else {\r
+                // Hidden since color combination is barely visible when progress portion is narrow.\r
+                $scope.progressText = "";\r
+            }\r
+        };\r
+        $scope.isObjectEmpty = function (o) {\r
+            var len = 0;\r
+            if (UtilityService.hasContents(o)) {\r
+                var keys = Object.keys(o);\r
+                len = keys.length;\r
+                if (len == 0) {\r
+                    return true;\r
+                }\r
+                else {\r
+                    return false;\r
+                }\r
+            }\r
+            else {\r
+                return true;\r
+            }\r
+        };\r
+        $scope.isMacro = function () {\r
+            return $scope.service && AsdcService.isMacro($scope.service.model);\r
+        };\r
+        $scope.reloadRoute = function () {\r
+            $route.reload();\r
+        };\r
+\r
+\r
+        /*\r
+Private metthods\r
+*/\r
+\r
+        /*\r
+        setPnf\r
+        * set the controller pnf param using api call\r
+        * return: void\r
+         */\r
+        function _setPnf(data) { // data is the $scope.service.instance object\r
+            return PnfService.getPnfs(data)\r
+                .then(\r
+                    function (response) {\r
+                        return response.data;\r
+                        // * can add here changes on the data that are needed to the view ( filter, ect..)\r
+                    },\r
+                    function (error) {\r
+                        console.error(error);\r
+                    }\r
+                );\r
+        }\r
+\r
+\r
+        function _setCr(data) { // data is the $scope.service.instance object\r
+            return CrService.getCr(data)\r
+                .then(\r
+                    function (response) {\r
+                        return response.data.results;\r
+                        // * can add here changes on the data that are needed to the view ( filter, ect..)\r
+                    },\r
+                    function (error) {\r
+                        console.error(error);\r
+                    }\r
+                );\r
+        }\r
+\r
+\r
+        /*\r
+        Callbaks functions\r
+\r
+         */\r
+        var updateProvStatusVnfCallbackFunction = function (response) {\r
+            $scope.callbackResults = "";\r
+            var color = FIELD.ID.COLOR_NONE;\r
+            $scope.callbackStyle = {\r
+                "background-color": color\r
+            };\r
+            $scope.reloadRoute();\r
+            /*\r
+             * This 1/2 delay was only added to visually highlight the status\r
+             * change. Probably not needed in the real application code.\r
+             */\r
+            $timeout(function () {\r
+                $scope.callbackResults = UtilityService.getCurrentTime()\r
+                    + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
+                if (response.isSuccessful) {\r
+                    color = FIELD.ID.COLOR_8F8;\r
+\r
+                } else {\r
+                    color = FIELD.ID.COLOR_F88;\r
+                }\r
+                $scope.callbackStyle = {\r
+                    "background-color": color\r
+                };\r
+            }, 500);\r
+\r
+        };\r
+\r
+        var createVnfCallbackFunction = function (response) {\r
+            $scope.callbackResults = "";\r
+            var color = FIELD.ID.COLOR_NONE;\r
+            $scope.callbackStyle = {\r
+                "background-color": color\r
+            };\r
+\r
+            /*\r
+             * This 1/2 delay was only added to visually highlight the status\r
+             * change. Probably not needed in the real application code.\r
+             */\r
+            $timeout(function () {\r
+                $scope.callbackResults = UtilityService.getCurrentTime()\r
+                    + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
+                if (response.isSuccessful) {\r
+                    color = FIELD.ID.COLOR_8F8;\r
+                    $scope.reloadRoute();\r
+                } else {\r
+                    color = FIELD.ID.COLOR_F88;\r
+                }\r
+                $scope.callbackStyle = {\r
+                    "background-color": color\r
+                };\r
+            }, 500);\r
+\r
+\r
+        };\r
+\r
+        var deleteOrResumeCallback = function (response) {\r
+            $scope.callbackResults = "";\r
+            var color = FIELD.ID.COLOR_NONE;\r
+            $scope.callbackStyle = {\r
+                "background-color": color\r
+            };\r
+\r
+            /*\r
+             * This 1/2 delay was only added to visually highlight the status\r
+             * change. Probably not needed in the real application code.\r
+             */\r
+            $timeout(function () {\r
+                $scope.callbackResults = UtilityService.getCurrentTime()\r
+                    + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
+                if (response.isSuccessful) {\r
+                    color = FIELD.ID.COLOR_8F8;\r
+                    $scope.reloadRoute();\r
+                } else {\r
+                    color = FIELD.ID.COLOR_F88;\r
+                }\r
+                $scope.callbackStyle = {\r
+                    "background-color": color\r
+                };\r
+            }, 500);\r
+\r
+        };\r
+\r
+        var createVfModuleCallbackFunction = function (response) {\r
+            $scope.callbackResults = "";\r
+            var color = FIELD.ID.COLOR_NONE;\r
+            $scope.callbackStyle = {\r
+                "background-color": color\r
+            };\r
+\r
+            /*\r
+             * This 1/2 delay was only added to visually highlight the status\r
+             * change. Probably not needed in the real application code.\r
+             */\r
+            $timeout(function () {\r
+                $scope.callbackResults = UtilityService.getCurrentTime()\r
+                    + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
+                if (response.isSuccessful) {\r
+                    color = FIELD.ID.COLOR_8F8;\r
+                    $scope.reloadRoute();\r
+                } else {\r
+                    color = FIELD.ID.COLOR_F88;\r
+                }\r
+                $scope.callbackStyle = {\r
+                    "background-color": color\r
+                };\r
+            }, 500);\r
+\r
+        };\r
+\r
+        var deleteServiceInstanceCallbackFunction = function (response) {\r
+            $scope.callbackResults = "";\r
+            var color = FIELD.ID.COLOR_NONE;\r
+            $scope.callbackStyle = {\r
+                "background-color": color\r
+            };\r
+\r
+            /*\r
+             * This 1/2 delay was only added to visually highlight the status\r
+             * change. Probably not needed in the real application code.\r
+             */\r
+            $timeout(function () {\r
+                $scope.callbackResults = UtilityService.getCurrentTime()\r
+                    + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
+                if (response.isSuccessful) {\r
+                    color = FIELD.ID.COLOR_8F8;\r
+                    $location.path(COMPONENT.SERVICEMODELS_MODELS_SERVICES_PATH);\r
+                } else {\r
+                    color = FIELD.ID.COLOR_F88;\r
+                }\r
+                $scope.callbackStyle = {\r
+                    "background-color": color\r
+                };\r
+            }, 500);\r
+\r
+        };\r
+\r
+        var createVolumeGroupCallbackFunction = function (response) {\r
+            $scope.callbackResults = "";\r
+            var color = FIELD.ID.COLOR_NONE;\r
+            $scope.callbackStyle = {\r
+                "background-color": color\r
+            };\r
+\r
+            /*\r
+             * This 1/2 delay was only added to visually highlight the status\r
+             * change. Probably not needed in the real application code.\r
+             */\r
+            $timeout(function () {\r
+                $scope.callbackResults = UtilityService.getCurrentTime()\r
+                    + FIELD.STATUS.IS_SUCCESSFUL + response.isSuccessful;\r
+                if (response.isSuccessful) {\r
+                    color = FIELD.ID.COLOR_8F8;\r
+                    $scope.reloadRoute();\r
+                } else {\r
+                    color = FIELD.ID.COLOR_F88;\r
+                }\r
+                $scope.callbackStyle = {\r
+                    "background-color": color\r
+                };\r
+            }, 500);\r
+\r
+\r
+        };\r
+\r
+    });\r
 })();\r