-/*-\r
- * ============LICENSE_START=======================================================\r
- * VID\r
- * ================================================================================\r
- * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.\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
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- */\r
-\r
-"use strict";\r
-\r
-/*\r
- * "CreationService" isolates the "component-specific" logic required by the\r
- * "CreationDialog" controller.\r
- *\r
- * "Components" are defined as the 5 element types managed by the dialogs: A)\r
- * Service B) VNF C) VF Module D) Volume Group and E) Network.\r
- * \r
- */\r
-\r
-var CreationService = function($log, AaiService, AsdcService, DataService,VIDCONFIGURATION,\r
- ComponentService, COMPONENT, FIELD, PARAMETER, UtilityService, OwningEntityService,featureFlags) {\r
-\r
- var _this = this;\r
- var getAsyncOperationList = function() {\r
- if (DataService.getLoggedInUserId() == null) {\r
- getLoggedInUserID();\r
- } else {\r
- UtilityService.startNextAsyncOperation();\r
- }\r
- switch (_this.componentId) {\r
- case COMPONENT.SERVICE:\r
- return [ getSubscribers, getServices, getAicZones, getOwningEntityProperties ];\r
- case COMPONENT.NETWORK:\r
- return [ getLcpCloudRegionTenantList, getOwningEntityProperties ];\r
- case COMPONENT.VNF:\r
- return [ getLcpCloudRegionTenantList, getOwningEntityProperties ];\r
- case COMPONENT.VF_MODULE:\r
- return [ getLcpCloudRegionTenantList ];\r
- case COMPONENT.VOLUME_GROUP:\r
- return [ getLcpCloudRegionTenantList ];\r
- }\r
- };\r
-\r
- /*\r
- * "getSummaryList" and "getUserProvidedList" return parameters that should\r
- * be displayed in the summary and user provided sections, respectively. The\r
- * functions are expected to return lists that are in the format needed by\r
- * the parameter-block directive.\r
- */\r
-\r
- var getSummaryList = function() {\r
-\r
- /*\r
- * These placeholders should be removed and their usage in\r
- * "getSummaryList" should be replaced by appropriate code as the\r
- * requirements and interfaces firm up.\r
- */\r
-\r
- var PLACEHOLDER_RESOURCE_DESCRIPTION = "Resource Description (PLACEHOLDER)";\r
- var PLACEHOLDER_SERVICE_CATEGORY = "Service Category (PLACEHOLDER)";\r
- var PLACEHOLDER_VF_MODULE_DESCRIPTION = "VF Module Description (PLACEHOLDER)";\r
- var PLACEHOLDER_VF_MODULE_LABEL = "VF Module Label (PLACEHOLDER)";\r
- var PLACEHOLDER_VF_MODULE_TYPE = "VF Module Type (PLACEHOLDER)";\r
-\r
- _this.parameterList = new Array();\r
-\r
- /*\r
- * Common fields displayed at the top of all create instance screens.\r
- */\r
- if(DataService.getModelInfo(_this.componentId)["serviceTypeName"]==null\r
- || DataService.getModelInfo(_this.componentId)["serviceTypeName"]==undefined\r
- || DataService.getModelInfo(_this.componentId)["serviceTypeName"]==''){\r
- addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());\r
- }\r
-\r
- switch (_this.componentId) {\r
- case COMPONENT.SERVICE:\r
- if ( !DataService.getALaCarte() ) {\r
- // for macro instantiation need to add the resource names under the node template list\r
- // this field is called modelCustomizationName in the asdc client code\r
- var p;\r
- var rlist = DataService.getResources();\r
- var res;\r
- if ( rlist != null ) {\r
- for (var i = 0; i < rlist.length; i++) {\r
- res = rlist[i];\r
-\r
- p = FIELD.NAME.RESOURCE_NAME.concat(" " + (i+1));\r
- addToList(p, res.name );\r
- p = FIELD.NAME.RESOURCE_DESCRIPTION.concat(" " + (i+1));\r
- addToList(p, res.description );\r
- }\r
- }\r
- }\r
- if(DataService.getModelInfo(_this.componentId)["createSubscriberName"]!=null && DataService.getModelInfo(_this.componentId)["createSubscriberName"]!=''){\r
- addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
- .getModelInfo(_this.componentId)["createSubscriberName"]);\r
- }\r
- if(DataService.getModelInfo(_this.componentId)["serviceTypeName"]!=null && DataService.getModelInfo(_this.componentId)["serviceTypeName"]!=''){\r
- addToList(FIELD.NAME.SERVICE_TYPE, DataService\r
- .getModelInfo(_this.componentId)["serviceTypeName"]);\r
- addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());\r
- }\r
- addToList(FIELD.NAME.SERVICE_INVARIANT_UUID, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
- addToList(FIELD.NAME.SERVICE_VERSION, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
- addToList(FIELD.NAME.SERVICE_UUID, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
- addToList(FIELD.NAME.SERVICE_DESCRIPTION, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.DESCRIPTION]);\r
- addToList(FIELD.NAME.SERVICE_CATEGORY, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.CATEGORY]);\r
- if (DataService.getModelInfo(_this.componentId)[FIELD.ID.SERVICE_TYPE] != "null") {\r
- addToList(FIELD.NAME.SERVICE_TYPE, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.SERVICE_TYPE]);\r
- addToList(FIELD.NAME.SERVICE_ROLE, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.SERVICE_ROLE]);\r
- }\r
-\r
- break;\r
- case COMPONENT.VF_MODULE:\r
- addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
- .getSubscriberName());\r
- addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService\r
- .getServiceInstanceName());\r
- addToList(FIELD.NAME.MODEL_NAME, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);\r
- addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
- addToList(FIELD.NAME.MODEL_VERSION, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
- addToList(FIELD.NAME.MODEL_UUID, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
- addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);\r
- break;\r
- case COMPONENT.VNF:\r
- addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
- .getSubscriberName());\r
- addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService\r
- .getServiceInstanceName());\r
- addToList(FIELD.NAME.MODEL_NAME, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);\r
- addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
- addToList(FIELD.NAME.MODEL_VERSION, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
- addToList(FIELD.NAME.MODEL_UUID, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
- addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);\r
- addToList(FIELD.NAME.MODEL_CUSTOMIZATION_NAME, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_CUSTOMIZATION_NAME]);\r
- addToList(FIELD.NAME.MODEL_VNF_TYPE, DataService\r
- .getModelInfo(_this.componentId)[COMPONENT.VNF_TYPE]);\r
- addToList(FIELD.NAME.MODEL_VNF_ROLE, DataService\r
- .getModelInfo(_this.componentId)[COMPONENT.VNF_ROLE]);\r
- addToList(FIELD.NAME.MODEL_VNF_FUNCTION, DataService\r
- .getModelInfo(_this.componentId)[COMPONENT.VNF_FUNCTION]);\r
- addToList(FIELD.NAME.MODEL_VNF_CODE, DataService\r
- .getModelInfo(_this.componentId)[COMPONENT.VNF_CODE]);\r
- break;\r
- case COMPONENT.NETWORK:\r
- case COMPONENT.VOLUME_GROUP:\r
- addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
- .getSubscriberName());\r
- addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService\r
- .getServiceInstanceName());\r
- addToList(FIELD.NAME.MODEL_NAME, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);\r
- addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
- addToList(FIELD.NAME.MODEL_VERSION, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
- addToList(FIELD.NAME.MODEL_UUID, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
- addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService\r
- .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);\r
- break;\r
- }\r
-\r
- return _this.parameterList;\r
- };\r
-\r
- var getUserProvidedList = function() {\r
- var parameterList = [];\r
- var isUserProvidedNaming = false;\r
- if ( ((DataService.getModelInfo(_this.componentId).serviceEcompNaming != null)\r
- && (DataService.getModelInfo(_this.componentId).serviceEcompNaming === "false")) || DataService.getE2EService() ) {\r
- isUserProvidedNaming = true;\r
- }\r
-\r
- var isInTop = DataService.getHideServiceFields() || false;\r
- if (_this.componentId === COMPONENT.SERVICE) {\r
- if ( DataService.getALaCarte() ) {\r
- parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];\r
- if(!isInTop){\r
- parameterList = parameterList.concat([ getSubscribersParameter(),\r
- FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);\r
- }\r
- }\r
- else {\r
- // macro\r
-\r
- if(!isInTop){\r
- if (isUserProvidedNaming) {\r
- parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];\r
-\r
- }\r
- parameterList = parameterList.concat([ getSubscribersParameter() ]);\r
- parameterList = parameterList.concat([ getServiceId(),\r
- FIELD.PARAMETER.SERVICE_TYPE,\r
- FIELD.PARAMETER.LCP_REGION,\r
- FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
- FIELD.PARAMETER.TENANT_DISABLED\r
- ]);\r
- if(!DataService.getE2EService()) {\r
- parameterList = parameterList.concat([getAicZonesParameter()]);\r
- }\r
-\r
- }else{\r
- parameterList = parameterList.concat([ getServiceId(),\r
- FIELD.PARAMETER.LCP_REGION,\r
- FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
- FIELD.PARAMETER.TENANT_DISABLED ]);\r
- }\r
- }\r
-\r
- if(!DataService.getE2EService()) {\r
- parameterList = parameterList.concat([getProjectParameter()]);\r
- parameterList = parameterList.concat([getOwningEntityParameter()]);\r
- }\r
-\r
- //if service model has a pnf, add a PNF ID parameter\r
- if (featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_PNP_INSTANTIATION) && DataService.getPnf()) {\r
- parameterList = parameterList.concat([ FIELD.PARAMETER.PNF_ID ]);\r
- }\r
- }\r
- else {\r
- parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];\r
- switch (_this.componentId) {\r
- case COMPONENT.NETWORK:\r
- case COMPONENT.VNF:\r
- parameterList = parameterList.concat([ getServiceId(),\r
- getLcpRegionParameter(), FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
- FIELD.PARAMETER.TENANT_DISABLED ]);\r
- parameterList = parameterList.concat([ getLineOfBusinessParameter() ]);\r
- parameterList = parameterList.concat([ getPlatformParameter() ]);\r
-\r
- break;\r
- case COMPONENT.VF_MODULE:\r
- parameterList = parameterList.concat([\r
- getLcpRegionParameter(),\r
- FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
- FIELD.PARAMETER.TENANT_DISABLED\r
- ]);\r
-\r
- var availableVolumeGroupList = DataService.getAvailableVolumeGroupList();\r
-\r
- if (availableVolumeGroupList && availableVolumeGroupList.length > 0) {\r
- var availableVolumeGroupNames = [FIELD.STATUS.NONE];\r
-\r
- for (var i = 0; i < availableVolumeGroupList.length; i++) {\r
- availableVolumeGroupNames.push(availableVolumeGroupList[i].instance.name);\r
- }\r
-\r
- parameterList.push(addOptionList(\r
- FIELD.PARAMETER.AVAILABLE_VOLUME_GROUP,\r
- availableVolumeGroupNames));\r
- }\r
- break;\r
- case COMPONENT.VOLUME_GROUP:\r
- parameterList = parameterList.concat([ getLcpRegionParameter(),\r
- FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
- FIELD.PARAMETER.TENANT_DISABLED ]);\r
- }\r
- }\r
- parameterList.push(FIELD.PARAMETER.SUPPRESS_ROLLBACK);\r
- if(_this.componentId === COMPONENT.VF_MODULE ){\r
- parameterList.push({name: FIELD.NAME.SDN_C_PRELOAD,\r
- id: FIELD.ID.SDN_C_PRELOAD,\r
- type: "checkbox",\r
- isEnabled: true,\r
- isRequired: false,\r
- hideFieldAndLabel: true\r
- }\r
- );\r
- parameterList.push({name: FIELD.NAME.UPLOAD_SUPPLEMENTORY_DATA_FILE,\r
- id: FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE,\r
- type: "checkbox",\r
- isEnabled: true,\r
- isRequired: false,\r
- value:false\r
- }\r
- );\r
-\r
- parameterList.push({name: FIELD.NAME.SUPPLEMENTORY_DATA_FILE,\r
- id: FIELD.ID.SUPPLEMENTORY_DATA_FILE,\r
- type: "file",\r
- isRequired: false,\r
- isVisiblity: false\r
- }\r
- );\r
- }\r
-\r
- if( VIDCONFIGURATION.UPLOAD_SUPPLEMENTARY_STATUS_CHECK_ENABLED && _this.componentId === COMPONENT.VOLUME_GROUP){\r
- parameterList.push({name: FIELD.NAME.UPLOAD_SUPPLEMENTORY_DATA_FILE,\r
- id: FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE,\r
- type: "checkbox",\r
- isEnabled: true,\r
- isRequired: false\r
- }\r
- );\r
-\r
- parameterList.push({name: FIELD.NAME.SUPPLEMENTORY_DATA_FILE,\r
- id: FIELD.ID.SUPPLEMENTORY_DATA_FILE,\r
- type: "file",\r
- isRequired: false,\r
- isVisiblity: false\r
- }\r
- );\r
- }\r
-\r
- addArbitraryParameters(parameterList);\r
-\r
- return parameterList;\r
- };\r
-\r
- var addArbitraryParameters = function(parameterList) {\r
- if ( DataService.getModelInfo(_this.componentId).displayInputs != null ) {\r
- var inputs = DataService.getModelInfo(_this.componentId).displayInputs;\r
- for ( var key in inputs) {\r
- var parameter = {\r
- id : key,\r
- type : PARAMETER.STRING,\r
- name : ComponentService.getFieldDisplayName(key),\r
- value : inputs[key][PARAMETER.DEFAULT],\r
- isRequired : inputs[key][PARAMETER.REQUIRED],\r
- description : inputs[key][PARAMETER.DESCRIPTION]\r
- };\r
- if ( DataService.getALaCarte() ) {\r
- parameter.name = ComponentService.getFieldDisplayName(inputs[key][PARAMETER.DISPLAY_NAME]);\r
- }\r
- switch (inputs[key][PARAMETER.TYPE]) {\r
- case PARAMETER.INTEGER:\r
- parameter.type = PARAMETER.NUMBER;\r
- break;\r
- case PARAMETER.BOOLEAN:\r
- parameter.type = PARAMETER.BOOLEAN;\r
- break;\r
- case PARAMETER.RANGE:\r
- break;\r
- case PARAMETER.LIST:\r
- parameter.type = PARAMETER.LIST;\r
- break;\r
- case PARAMETER.MAP:\r
- parameter.type = PARAMETER.MAP;\r
- break;\r
- }\r
-\r
- if ( UtilityService.hasContents(inputs[key][PARAMETER.CONSTRAINTS])\r
- && ( inputs[key][PARAMETER.CONSTRAINTS].length > 0 ) ) {\r
- var constraintsArray = inputs[key][PARAMETER.CONSTRAINTS];\r
- //console.log ("Calling addConstraintParameters for input name=" + key);\r
- addConstraintParameters (parameterList, constraintsArray, key, inputs, parameter);\r
- }\r
- else {\r
-\r
- parameterList.push(parameter);\r
- }\r
- }\r
- DataService.setArbitraryParameters (parameterList);\r
- }\r
- };\r
-\r
- var addConstraintParameters = function(parameterList, constraintsArray, key, inputs, parameter) {\r
- // If there are constraints and the operator is "valid_values",\r
- // use a select parameter type. \r
- var i = constraintsArray.length;\r
- var parameterPushed = false;\r
- if ( i > 0 ) {\r
- while ( (i--) && (!parameterPushed) ) {\r
- var keys = Object.keys(constraintsArray[i]);\r
- //var keys_len = keys.length;\r
- for ( var operator in keys ) {\r
- //console.log ("keys[operator]=" + keys[operator]);\r
- switch (keys[operator]) {\r
- case PARAMETER.VALID_VALUES:\r
- var j = constraintsArray[i][PARAMETER.VALID_VALUES].length;\r
- if ( j > 0 ) {\r
- var oList = [];\r
- var option;\r
- while (j--) {\r
- option = {\r
- name: constraintsArray[i][PARAMETER.VALID_VALUES][j],\r
- isDefault: false\r
- } \r
- if ( ( UtilityService.hasContents (inputs[key][PARAMETER.DEFAULT]) ) \r
- && (inputs[key][PARAMETER.DEFAULT] === constraintsArray[i][PARAMETER.VALID_VALUES][j] ) ) {\r
- option = {\r
- name: constraintsArray[i][PARAMETER.VALID_VALUES][j],\r
- isDefault: true\r
- } \r
- }\r
- oList.push(option);\r
- }\r
- parameter.type = PARAMETER.SELECT;\r
- parameter.optionList = oList;\r
- parameterList.push(parameter);\r
- parameterPushed = true;\r
- //console.log ("pushed param for valid values");\r
- }\r
- break; \r
- \r
- case PARAMETER.EQUAL: \r
- if ( constraintsArray[i][PARAMETER.EQUAL] != null ) {\r
- //override parameter type\r
- parameter.type = PARAMETER.STRING;\r
- parameter.isReadOnly = true;\r
- parameter.value = constraintsArray[i][PARAMETER.EQUAL];\r
- parameterList.push(parameter);\r
- parameterPushed = true;\r
- //console.log ("pushed param for equal");\r
- }\r
- break;\r
- \r
- case PARAMETER.LENGTH: \r
- if ( constraintsArray[i][PARAMETER.LENGTH] != null ) {\r
- parameter.minLength = constraintsArray[i][PARAMETER.LENGTH];\r
- parameter.maxLength = constraintsArray[i][PARAMETER.LENGTH];\r
- parameterList.push(parameter);\r
- parameterPushed = true;\r
- //console.log ("pushed param for length: ");\r
- //console.log (JSON.stringify (parameter, null, 4));\r
- }\r
- break;\r
- case PARAMETER.MAX_LENGTH: \r
- if ( constraintsArray[i][PARAMETER.MAX_LENGTH] != null ) {\r
- parameter.maxLength = constraintsArray[i][PARAMETER.MAX_LENGTH];\r
- parameterList.push(parameter);\r
- parameterPushed = true;\r
- //console.log ("pushed param for max length: ");\r
- //console.log (JSON.stringify (parameter, null, 4));\r
- }\r
- break;\r
- case PARAMETER.MIN_LENGTH: \r
- if ( constraintsArray[i][PARAMETER.MIN_LENGTH] != null ) {\r
- parameter.minLength = constraintsArray[i][PARAMETER.MIN_LENGTH];\r
- parameterList.push(parameter);\r
- parameterPushed = true;\r
- //console.log ("pushed param for min length: ");\r
- //console.log (JSON.stringify (parameter, null, 4));\r
- }\r
- break;\r
- case PARAMETER.IN_RANGE:\r
- if ( constraintsArray[i][PARAMETER.IN_RANGE] != null ) {\r
- if (constraintsArray[i][PARAMETER.IN_RANGE].length > 1 ) {\r
- parameter.min = constraintsArray[i][PARAMETER.IN_RANGE][0];\r
- parameter.max = constraintsArray[i][PARAMETER.IN_RANGE][1];\r
- parameter.type = PARAMETER.NUMBER;\r
- parameter.value = inputs[key][PARAMETER.DEFAULT]\r
- parameterList.push(parameter);\r
- parameterPushed = true;\r
- //console.log ("pushed param for in_range");\r
- }\r
- }\r
- break; \r
- case PARAMETER.GREATER_THAN:\r
- if ( constraintsArray[i][PARAMETER.GREATER_THAN] != null ) {\r
- parameter.type = PARAMETER.NUMBER;\r
- parameter.min = constraintsArray[i][PARAMETER.GREATER_THAN];\r
- parameter.value = inputs[key][PARAMETER.DEFAULT]\r
- parameterList.push(parameter);\r
- parameterPushed = true;\r
- //console.log ("pushed param for greater_than");\r
- \r
- }\r
- break;\r
- }//switch\r
- }//for\r
- \r
- }//while\r
- }//if\r
- };\r
- var addToList = function(name, value) {\r
- _this.parameterList.push({\r
- name : name,\r
- value : value\r
- });\r
- };\r
- var setInventoryInfo = function(){\r
- var inventoryItem = DataService.getInventoryItem();\r
- var inventoryInfo = ComponentService.getInventoryInfo(\r
- _this.componentId, inventoryItem);\r
- }\r
-\r
- /*\r
- * The "*Mso*" functions return URL and request details that can be passed\r
- * to the MSO controller. The request details defines the info passed as\r
- * part of the POST body.\r
- */\r
-\r
- var getMsoUrl = function() {\r
- switch (_this.componentId) {\r
- case COMPONENT.NETWORK:\r
- return "mso_create_nw_instance/"\r
- + DataService.getServiceInstanceId();\r
- case COMPONENT.SERVICE:\r
- if(DataService.getE2EService() === true)\r
- return "mso_create_e2e_svc_instance";\r
- else\r
- return "mso_create_svc_instance";\r
- case COMPONENT.VNF:\r
- return "mso_create_vnf_instance/"\r
- + DataService.getServiceInstanceId();\r
- case COMPONENT.VF_MODULE:\r
- return "mso_create_vfmodule_instance/"\r
- + DataService.getServiceInstanceId() + "/vnfs/"\r
- + DataService.getVnfInstanceId();\r
- case COMPONENT.VOLUME_GROUP:\r
- return "mso_create_volumegroup_instance/"\r
- + DataService.getServiceInstanceId() + "/vnfs/"\r
- + DataService.getVnfInstanceId();\r
- }\r
- };\r
-\r
- var getMsoE2ERequest = function(parameterList) {\r
- var modelInfo = DataService.getModelInfo(_this.componentId);\r
-\r
- //region id\r
- var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);\r
- if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {\r
- lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,\r
- parameterList);\r
- }\r
- var cloudOwner = _.find(DataService.getCloudRegionTenantList(), function(region){\r
- return region.cloudRegionId === lcpRegion;\r
- }).cloudOwner;\r
-\r
- var params = [];\r
- var displayInputs = modelInfo.displayInputs;\r
- var groupBy = _.groupBy(displayInputs, "templateUUID");\r
-\r
- _.forEach(groupBy, function(nodeTemplateInputs, nodeTemplateUUID) {\r
- var reqParas = {};\r
- var vfLocations = [];\r
-\r
- nodeTemplateInputs.forEach(function(parameter){\r
- if(parameter.type === 'vf_location') {\r
- var loc = {\r
- vnfProfileId: parameter.displayName,\r
- locationConstraints : {\r
- vimId: cloudOwner + '_' + lcpRegion\r
- }\r
- };\r
- vfLocations.push(loc);\r
- } else if(parameter.type === 'sdn_controller') {\r
- if(parameter.value === undefined || parameter.value === null) {\r
- reqParas[parameter.name] = '';\r
- } else {\r
- reqParas[parameter.name] = parameter.value.value;\r
- }\r
- } else {\r
- var name;\r
- _.forEach(displayInputs, function(item, key){\r
- if(item === parameter) {\r
- name = key;\r
- }\r
- });\r
- var value = _.find(parameterList, function(item){\r
- return item.id === name;\r
- }).value;\r
- reqParas[parameter.displayName] = value;\r
- }\r
- });\r
-\r
- params.push({\r
- resourceName: nodeTemplateInputs[0].templateName,\r
- resourceInvariantUuid: nodeTemplateInputs[0].templateInvariantUUID,\r
- resourceUuid: nodeTemplateInputs[0].templateUUID,\r
- resourceCustomizationUuid: nodeTemplateInputs[0].templateCustomizationUUID,\r
- parameters: {\r
- locationConstraints: vfLocations,\r
- //TODO resources: [],\r
- requestInputs: reqParas\r
- }\r
- });\r
- });\r
-\r
- var requestBody = {\r
- service: {\r
- name: getValueFromList(FIELD.ID.INSTANCE_NAME, parameterList),\r
- description: modelInfo["description"],\r
- serviceInvariantUuid: modelInfo["modelInvariantId"],\r
- serviceUuid: modelInfo["modelNameVersionId"],\r
- globalSubscriberId: DataService.getGlobalCustomerId(),\r
- serviceType: getValueFromList(FIELD.ID.SERVICE_TYPE, parameterList) || modelInfo["serviceTypeName"],\r
- parameters: {\r
- locationConstraints: [],\r
- resources: params,\r
- requestInputs: {} //TODO\r
- }\r
- }\r
- };\r
-\r
- return requestBody;\r
- };\r
-\r
- var getMsoRequestDetails = function(parameterList) {\r
- console.log("getMsoRequestDetails invoked, parameterList="); console.log(JSON.stringify(parameterList,null,4));\r
- //console.log("getMsoRequestDetails invoked, DataService.getArbitraryParameters()=");\r
- //console.log(JSON.stringify(DataService.getArbitraryParameters(),null,4));\r
-\r
- //VoLTE logic goes here\r
- if(DataService.getE2EService() === true) {\r
- return getMsoE2ERequest(parameterList);\r
- }\r
-\r
- var modelInfo = DataService.getModelInfo(_this.componentId);\r
- var requestorloggedInId = DataService.getLoggedInUserId();\r
- var owningEntityId = getValueFromList(FIELD.ID.OWNING_ENTITY, parameterList);\r
- if (requestorloggedInId == null)\r
- requestorloggedInId = "";\r
- var isSupRollback = false;\r
- if (getValueFromList(FIELD.ID.SUPPRESS_ROLLBACK,parameterList) === "true") {\r
- isSupRollback = true;\r
- }\r
- var requestDetails = {\r
- requestInfo : {\r
- instanceName : getValueFromList(FIELD.ID.INSTANCE_NAME,\r
- parameterList) || DataService.getVfModuleInstanceName(),\r
- source : FIELD.ID.VID,\r
- suppressRollback : isSupRollback,\r
- requestorId: requestorloggedInId\r
- },\r
- modelInfo : {\r
- modelType : _this.componentId,\r
- modelInvariantId : modelInfo.modelInvariantId,\r
- modelVersionId : modelInfo.modelNameVersionId,\r
- modelName : modelInfo.modelName,\r
- modelVersion : modelInfo.modelVersion,\r
- modelCustomizationId: modelInfo.customizationUuid,\r
- modelCustomizationName : modelInfo.modelCustomizationName\r
- },\r
- requestParameters : {\r
- userParams : getArbitraryParameters(parameterList)\r
- }\r
- };\r
- if (featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_ADD_MSO_TESTAPI_FIELD)) {\r
- if ((_this.componentId != COMPONENT.SERVICE) || ( DataService.getALaCarte() )) {\r
- requestDetails.requestParameters.testApi = DataService.getMsoRequestParametersTestApi();\r
- }\r
- }\r
- if ( (_this.componentId != COMPONENT.SERVICE) || ( !DataService.getALaCarte() ) ) {\r
- // include cloud region for everything but service create alacarte\r
- var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);\r
- if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {\r
- lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,\r
- parameterList);\r
- }\r
- requestDetails.cloudConfiguration = {\r
- lcpCloudRegionId : lcpRegion,\r
- tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)\r
- };\r
- }\r
- switch (_this.componentId) {\r
-\r
- case COMPONENT.SERVICE:\r
- requestDetails.subscriberInfo = {\r
- globalSubscriberId : DataService.getGlobalCustomerId(),\r
- subscriberName : DataService.getSubscriberName()\r
- };\r
- var isInTop = DataService.getHideServiceFields() || false;\r
- if(isInTop){\r
- requestDetails.requestParameters.subscriptionServiceType = DataService.getModelInfo(_this.componentId)["serviceTypeName"];\r
- }else{\r
- requestDetails.requestParameters.subscriptionServiceType = getValueFromList(\r
- FIELD.ID.SERVICE_TYPE, parameterList);\r
- }\r
- requestDetails.requestParameters.aLaCarte = DataService.getALaCarte();\r
- if ( !DataService.getALaCarte() ) {\r
- requestDetails.requestInfo.productFamilyId = getValueFromList(\r
- FIELD.ID.PRODUCT_FAMILY, parameterList);\r
- }\r
- var svcModelInfo = {\r
- modelType : _this.componentId,\r
- modelInvariantId : modelInfo.modelInvariantId,\r
- modelVersionId : modelInfo.modelNameVersionId,\r
- modelName : modelInfo.modelName,\r
- modelVersion : modelInfo.modelVersion\r
- };\r
- requestDetails.modelInfo = svcModelInfo;\r
-\r
- var selectedProject = getValueFromList(FIELD.ID.PROJECT, parameterList);\r
-\r
- if (selectedProject) {\r
- requestDetails.project = {\r
- projectName: getValueFromList(FIELD.ID.PROJECT, parameterList)\r
- };\r
- }\r
-\r
- requestDetails.owningEntity = {\r
- owningEntityId: owningEntityId,\r
- owningEntityName: getOwningEntityNameById(owningEntityId)\r
- };\r
-\r
- break;\r
- case COMPONENT.VNF:\r
-\r
- requestDetails.requestInfo.productFamilyId = getValueFromList(\r
- FIELD.ID.PRODUCT_FAMILY, parameterList);\r
-\r
- var lineOfBusiness = getValueFromList(FIELD.ID.LINE_OF_BUSINESS, parameterList);\r
-\r
- if(lineOfBusiness) {\r
- var lineOfBusinessNamesString = _.map(lineOfBusiness, "name").join(", ");\r
-\r
- requestDetails.lineOfBusiness = {\r
- lineOfBusinessName: lineOfBusinessNamesString\r
- }\r
- }\r
-\r
- requestDetails.platform = {\r
- platformName: getValueFromList(FIELD.ID.PLATFORM, parameterList)\r
- };\r
-\r
- break;\r
- case COMPONENT.NETWORK:\r
- requestDetails.requestInfo.productFamilyId = getValueFromList(\r
- FIELD.ID.PRODUCT_FAMILY, parameterList);\r
- var lineOfBusiness = getValueFromList(FIELD.ID.LINE_OF_BUSINESS, parameterList);\r
-\r
- if(lineOfBusiness) {\r
- var lineOfBusinessNamesString = _.map(lineOfBusiness, "name").join(", ");\r
-\r
- requestDetails.lineOfBusiness = {\r
- lineOfBusinessName: lineOfBusinessNamesString\r
- }\r
- }\r
-\r
- requestDetails.platform = {\r
- platformName: getValueFromList(FIELD.ID.PLATFORM, parameterList)\r
- };\r
- break;\r
- case COMPONENT.VF_MODULE:\r
- requestDetails.requestParameters.usePreload = getValueFromList(\r
- FIELD.ID.SDN_C_PRELOAD, parameterList);\r
- if(_this.componentId == COMPONENT.VF_MODULE &&(requestDetails.requestParameters.usePreload== null || requestDetails.requestParameters.usePreload === '')){\r
- requestDetails.requestParameters.usePreload = false;\r
- }\r
- break;\r
- case COMPONENT.VOLUME_GROUP:\r
- break;\r
- }\r
-\r
- var relatedInstanceList = getRelatedInstanceList(parameterList);\r
-\r
- if (relatedInstanceList !== undefined) {\r
- requestDetails.relatedInstanceList = relatedInstanceList;\r
- }\r
-\r
- return requestDetails;\r
- };\r
-\r
- var getRelatedInstanceList = function(parameterList) {\r
- var relatedInstanceList = new Array();\r
- switch (_this.componentId) {\r
- case COMPONENT.SERVICE:\r
- return undefined;\r
- case COMPONENT.NETWORK:\r
- case COMPONENT.VNF:\r
- addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,\r
- DataService.getServiceInstanceId());\r
- break;\r
- case COMPONENT.VF_MODULE:\r
- addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,\r
- DataService.getServiceInstanceId());\r
- addRelatedInstance(relatedInstanceList, COMPONENT.VNF, DataService\r
- .getVnfInstanceId());\r
-\r
- var availableVolumeGroup = getValueFromList(\r
- FIELD.ID.AVAILABLE_VOLUME_GROUP, parameterList);\r
-\r
- if (UtilityService.hasContents(availableVolumeGroup) && availableVolumeGroup !== "None") {\r
- var availableVolumeGroups = DataService.getAvailableVolumeGroupList();\r
-\r
- for (var i = 0; i < availableVolumeGroups.length; i++) {\r
- if (availableVolumeGroups[i].instance.name == availableVolumeGroup) {\r
- DataService.setModelInfo(COMPONENT.VOLUME_GROUP, DataService.getModelInfo(COMPONENT.VF_MODULE));\r
- DataService.setVolumeGroupInstanceId(availableVolumeGroups[i].instance.object["volume-group-id"]);\r
- break;\r
- }\r
- }\r
-\r
- addRelatedInstance(relatedInstanceList, COMPONENT.VOLUME_GROUP,\r
- DataService.getVolumeGroupInstanceId());\r
- }\r
- break;\r
- case COMPONENT.VOLUME_GROUP:\r
- addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,\r
- DataService.getServiceInstanceId());\r
- addRelatedInstance(relatedInstanceList, COMPONENT.VNF, DataService\r
- .getVnfInstanceId());\r
- break;\r
- }\r
-\r
- return relatedInstanceList;\r
- };\r
-\r
- var addRelatedInstance = function(relatedInstanceList, componentId,\r
- instanceId) {\r
- var modelInfo = DataService.getModelInfo(componentId);\r
- var relatedInstance;\r
- if (modelInfo !== undefined) {\r
- if (componentId === COMPONENT.SERVICE) {\r
- relatedInstance = {\r
- "instanceId" : instanceId,\r
- "modelInfo" : {\r
- "modelType" : componentId,\r
- "modelName" : modelInfo.modelName,\r
- "modelInvariantId" : modelInfo.modelInvariantId,\r
- "modelVersion" : modelInfo.modelVersion,\r
- "modelVersionId" : modelInfo.modelNameVersionId,\r
-\r
- }\r
- };\r
- }\r
- else {\r
- relatedInstance = {\r
- "instanceId" : instanceId,\r
- "modelInfo" : {\r
- "modelType" : componentId,\r
- "modelName" : modelInfo.modelName,\r
- "modelInvariantId" : modelInfo.modelInvariantId,\r
- "modelVersion" : modelInfo.modelVersion,\r
- "modelVersionId" : modelInfo.modelNameVersionId,\r
- "modelCustomizationId": modelInfo.customizationUuid,\r
- "modelCustomizationName": modelInfo.modelCustomizationName\r
- }\r
- }\r
- }\r
- relatedInstanceList.push({\r
- relatedInstance : relatedInstance\r
- });\r
- }\r
- };\r
-\r
- /*\r
- * var getArbitraryParameters = function(parameterList) { var\r
- * arbitraryParameters = new Object(); for (var i = 0; i <\r
- * parameterList.length; i++) { var parameter = parameterList[i]; switch\r
- * (parameter.id) { case FIELD.ID.INSTANCE_NAME: case\r
- * FIELD.ID.PRODUCT_FAMILY: case FIELD.ID.LCP_REGION: case\r
- * FIELD.ID.LCP_REGION_TEXT: case FIELD.ID.SERVICE_TYPE: case\r
- * FIELD.ID.TENANT: case FIELD.ID.SUPPRESS_ROLLBACK: break; default:\r
- * arbitraryParameters[parameter.id] = parameter.value; } } return\r
- * arbitraryParameters; }\r
- */\r
- var getArbitraryParameters = function(parameterList) {\r
- var arbitraryParameters = new Object();\r
- var arbitraryArray = new Array();\r
- for (var i = 0; i < parameterList.length; i++) {\r
- var parameter = parameterList[i];\r
- switch (parameter.id) {\r
- case FIELD.ID.AVAILABLE_VOLUME_GROUP:\r
- case FIELD.ID.INSTANCE_NAME:\r
- case FIELD.ID.PRODUCT_FAMILY:\r
- case FIELD.ID.LCP_REGION:\r
- case FIELD.ID.LCP_REGION_TEXT:\r
- case FIELD.ID.SERVICE_TYPE:\r
- case FIELD.ID.TENANT:\r
- case FIELD.ID.SUPPRESS_ROLLBACK:\r
- case FIELD.ID.SUBSCRIBER_NAME:\r
- case FIELD.ID.SDN_C_PRELOAD:\r
- case FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE:\r
- case FIELD.ID.OWNING_ENTITY:\r
- case FIELD.ID.PLATFORM:\r
- case FIELD.ID.LINE_OF_BUSINESS:\r
- case FIELD.ID.PROJECT:\r
- break;\r
- case FIELD.ID.SUPPLEMENTORY_DATA_FILE:\r
- arbitraryParameters = FIELD.PARAMETER.SUPPLEMENTORY_DATA_FILE['value'];\r
- arbitraryArray=arbitraryParameters;\r
- FIELD.PARAMETER.SUPPLEMENTORY_DATA_FILE['value']=[];\r
- break;\r
-\r
- default:\r
- if (parameter.value != '') {\r
- arbitraryParameters = {\r
- name: parameter.id,\r
- value: parameter.value\r
- }\r
- arbitraryArray.push(arbitraryParameters);\r
- }\r
- }\r
- }\r
- return (arbitraryArray);\r
- }\r
-\r
- var getModel = function() {\r
- AsdcService.getModel(DataService.getModelId(), function(response) {\r
- DataService.setModelInfo(_this.componentId, {\r
- modelInvariantId : response.data.invariantUUID,\r
- modelNameVersionId : response.data.uuid,\r
- modelName : response.data.name,\r
- modelVersion : response.data.version,\r
- inputs : response.data.inputs\r
- });\r
- UtilityService.startNextAsyncOperation();\r
- });\r
- };\r
-\r
- var getSubscriptionServiceTypeList = function() {\r
- AaiService.getSubscriptionServiceTypeList(DataService\r
- .getGlobalCustomerId(), function(response) {\r
- DataService.setSubscriptionServiceTypeList(response);\r
- UtilityService.startNextAsyncOperation();\r
- });\r
- };\r
-\r
- var getLoggedInUserID = function() {\r
- AaiService.getLoggedInUserID(function(response) {\r
- DataService.setLoggedInUserId(response.data);\r
- UtilityService.startNextAsyncOperation();\r
- });\r
- };\r
-\r
- var getSubscribers = function() {\r
- AaiService.getSubscribers(function(response) {\r
- DataService.setSubscribers(response);\r
- UtilityService.startNextAsyncOperation();\r
- });\r
- };\r
- var getServices = function() {\r
- AaiService.getServices(function(response) {\r
- var serviceIdList = [];\r
- angular.forEach(response.data, function(value, key) {\r
- angular.forEach(value, function(subVal, key) {\r
- var newVal = {\r
- "id" : subVal[FIELD.ID.SERVICE_ID],\r
- "description" : subVal[FIELD.ID.SERVICE_DESCRIPTION],\r
- "isPermitted" : subVal[FIELD.ID.IS_PERMITTED],\r
- };\r
- serviceIdList.push(newVal);\r
- DataService.setServiceIdList(serviceIdList);\r
- });\r
- });\r
-\r
- UtilityService.startNextAsyncOperation();\r
- });\r
- };\r
- var getAicZones = function() {\r
- AaiService.getAicZones(function(response) {\r
- var serviceIdList = [];\r
- angular.forEach(response.data, function(value, key) {\r
- angular.forEach(value, function(subVal, key) {\r
- var newVal = {\r
- "id" : subVal[FIELD.ID.ZONE_ID],\r
- "name" : subVal[FIELD.ID.ZONE_NAME],\r
- };\r
- serviceIdList.push(newVal);\r
- DataService.setAicZones(serviceIdList);\r
- });\r
- });\r
-\r
- UtilityService.startNextAsyncOperation();\r
- });\r
- };\r
-\r
- var getOwningEntityProperties = function() {\r
- OwningEntityService.getOwningEntityProperties(function(owningEntityProperties) {\r
- DataService.setOwningEntityProperties(owningEntityProperties);\r
- UtilityService.startNextAsyncOperation();\r
- });\r
-\r
- };\r
-\r
- var getLcpCloudRegionTenantList = function() {\r
- AaiService.getLcpCloudRegionTenantList(DataService\r
- .getGlobalCustomerId(), DataService.getServiceType(), function(\r
- response) {\r
- DataService.setCloudRegionTenantList(response);\r
- UtilityService.startNextAsyncOperation();\r
- });\r
- };\r
-\r
- var internalGetParametersHandler = function() {\r
- if (angular.isFunction(_this.getParametersHandler)) {\r
- _this.getParametersHandler({\r
- summaryList : getSummaryList(),\r
- userProvidedList : getUserProvidedList()\r
- });\r
- }\r
- };\r
-\r
- var getSubscribersParameter = function() {\r
- var subscribers = DataService.getSubscribers();\r
- var parameter = FIELD.PARAMETER.SUBSCRIBER_NAME;\r
- if ( UtilityService.hasContents(subscribers)) {\r
- parameter.optionList = [];\r
-\r
- for (var i = 0; i < subscribers.length; i++) {\r
- parameter.optionList.push({\r
- id : subscribers[i][FIELD.ID.GLOBAL_CUSTOMER_ID],\r
- name : subscribers[i][FIELD.ID.SUBNAME],\r
- isPermitted : subscribers[i][FIELD.ID.IS_PERMITTED]\r
- })\r
- }\r
- }\r
- return parameter;\r
- };\r
-\r
- var getServiceId = function() {\r
- var serviceIdList = DataService.getServiceIdList();\r
- //var serviceTypeList = DataService.getSubscriptionServiceTypeList();\r
- var parameter = FIELD.PARAMETER.PRODUCT_FAMILY;\r
- parameter.optionList = new Array();\r
- if ( UtilityService.hasContents(serviceIdList) ) {\r
- // load them all\r
- for (var i = 0; i < serviceIdList.length; i++) {\r
- parameter.optionList.push({\r
- id : serviceIdList[i].id,\r
- name : serviceIdList[i].description,\r
- isPermitted : serviceIdList[i].isPermitted\r
- });\r
- }\r
- }\r
-\r
- return parameter;\r
- };\r
-\r
- var getAicZonesParameter = function() {\r
- var aicList = DataService.getAicZones();\r
- var parameter = FIELD.PARAMETER.AIC_ZONES;\r
- parameter.optionList = new Array();\r
- if ( UtilityService.hasContents(aicList) ) {\r
- // load them all\r
- for (var i = 0; i < aicList.length; i++) {\r
- parameter.optionList.push({\r
- id : aicList[i].id,\r
- name : aicList[i].name,\r
- isPermitted : true\r
-\r
- });\r
- }\r
- }\r
-\r
- return parameter;\r
- };\r
-\r
- var getProjectParameter = function() {\r
- return getOwningEntityParameterWithOptions(FIELD.PARAMETER.PROJECT);\r
- };\r
-\r
- var getOwningEntityParameter = function() {\r
- return getOwningEntityParameterWithOptions(FIELD.PARAMETER.OWNING_ENTITY);\r
- };\r
-\r
- var getLineOfBusinessParameter = function() {\r
- return getOwningEntityParameterWithOptions(FIELD.PARAMETER.LINE_OF_BUSINESS);\r
- };\r
-\r
- var getPlatformParameter = function() {\r
- return getOwningEntityParameterWithOptions(FIELD.PARAMETER.PLATFORM);\r
- };\r
-\r
- var getOwningEntityNameById = function (id) {\r
- var properties = DataService.getOwningEntityProperties();\r
- var parameter = _.find(properties[FIELD.ID.OWNING_ENTITY], {"id": id});\r
- return parameter && parameter.name;\r
- };\r
-\r
- var getOwningEntityParameterWithOptions = function(parameter) {\r
- var properties = DataService.getOwningEntityProperties();\r
- if (properties && properties[parameter.id]) {\r
- parameter.optionList = _.map(properties[parameter.id], function(parameter) {\r
- return {\r
- "id" : parameter.id,\r
- "name" : parameter.name,\r
- "isPermitted": true\r
- };\r
- });\r
- }\r
-\r
- return parameter;\r
- };\r
-\r
- var getLcpRegionParameter = function() {\r
- var cloudRegionTenantList = DataService.getCloudRegionTenantList();\r
- console.log ( "cloudRegionTenantList=");\r
- console.log ( JSON.stringify (cloudRegionTenantList, null, 4 ));\r
-\r
- var parameter = FIELD.PARAMETER.LCP_REGION;\r
- if ( UtilityService.hasContents (cloudRegionTenantList) ) {\r
- parameter.optionList = new Array();\r
- for (var i = 0; i < cloudRegionTenantList.length; i++) {\r
- for (var j = 0; j < parameter.optionList.length; j++) {\r
- if (parameter.optionList[j].id === cloudRegionTenantList[i].cloudRegionId) {\r
- parameter.optionList[j].isPermitted =\r
- parameter.optionList[j].isPermitted || cloudRegionTenantList[i].isPermitted;\r
- break;\r
- }\r
- }\r
- if (j < parameter.optionList.length) {\r
- continue;\r
- }\r
-\r
- var optionName = featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST) && cloudRegionTenantList[i].cloudOwner ?\r
- cloudRegionTenantList[i].cloudRegionId + " (" + cloudRegionTenantList[i].cloudOwner.trim().toLowerCase().replace(/^att-/, "").toUpperCase() + ")" :\r
- cloudRegionTenantList[i].cloudRegionId;\r
-\r
- parameter.optionList.push({\r
- id : cloudRegionTenantList[i].cloudRegionId,\r
- name: optionName,\r
- isPermitted : cloudRegionTenantList[i].isPermitted\r
- });\r
- }\r
- }\r
- return parameter;\r
- };\r
-\r
- var getTenantList = function(cloudRegionId) {\r
- var cloudRegionTenantList = DataService.getCloudRegionTenantList();\r
- var parameter = "";\r
- if ( UtilityService.hasContents (cloudRegionTenantList) ) {\r
- parameter = FIELD.PARAMETER.TENANT_ENABLED;\r
- parameter.optionList = new Array();\r
- for (var i = 0; i < cloudRegionTenantList.length; i++) {\r
- if (cloudRegionTenantList[i].cloudRegionId === cloudRegionId) {\r
- parameter.optionList.push({\r
- id : cloudRegionTenantList[i].tenantId,\r
- name : cloudRegionTenantList[i].tenantName,\r
- isPermitted : cloudRegionTenantList[i].isPermitted\r
-\r
- });\r
- }\r
- }\r
- }\r
- return parameter;\r
-\r
- };\r
-\r
- var addOptionList = function(parameter, optionSimpleArray) {\r
- var optionList = new Array();\r
- if (!angular.isArray(optionSimpleArray)) {\r
- return optionList;\r
- }\r
- for (var i = 0; i < optionSimpleArray.length; i++) {\r
- optionList.push({\r
- name : optionSimpleArray[i],\r
- isPermitted :true,\r
- });\r
- }\r
- parameter.optionList = optionList;\r
- return parameter;\r
- };\r
-\r
- var getValueFromList = function(id, parameterList) {\r
- for (var i = 0; i < parameterList.length; i++) {\r
- if (parameterList[i].id === id) {\r
- return parameterList[i].value;\r
- }\r
- }\r
- };\r
- var updateUserParameterList = function(updatedId, parameterListControl) {\r
- console.log ("updateUserParameterList() updatedId=" + updatedId);\r
- if (updatedId === FIELD.ID.PRODUCT_FAMILY && DataService.getHideServiceFields()) {\r
- var cloudRegionTenantList = new Array();\r
- AaiService.getLcpCloudRegionTenantList(DataService.getGlobalCustomerId(), DataService.getServiceType(), function(cloudRegionTenantList) {\r
- DataService.setCloudRegionTenantList(cloudRegionTenantList);\r
- parameterListControl.updateList([ getLcpRegionParameter() ]);\r
- });\r
- }else if (updatedId === FIELD.ID.SDN_C_PRELOAD) {\r
- var list = parameterListControl.getList(updatedId);\r
- if($('input[parameter-id="'+updatedId+'"]').is(':checked')){\r
- FIELD.PARAMETER.SDN_C_PRELOAD_CHECKED.value=true;\r
- parameterListControl\r
- .updateList([ FIELD.PARAMETER.SDN_C_PRELOAD_CHECKED ]);\r
- }else{\r
- parameterListControl\r
- .updateList([ FIELD.PARAMETER.SDN_C_PRELOAD_UNCHECKED ]);\r
- }\r
- }else if (updatedId === FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE) {\r
- if($('input[parameter-id="'+updatedId+'"]').is(':checked')){\r
- $('input[parameter-id="'+FIELD.ID.SUPPLEMENTORY_DATA_FILE+'"]').closest('tr').show();\r
- FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED.value=true;\r
- parameterListControl\r
- .updateList([ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED ]);\r
- }else{\r
- $('input[parameter-id="'+FIELD.ID.SUPPLEMENTORY_DATA_FILE+'"]').closest('tr').hide();\r
- FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED.value=false;\r
- parameterListControl\r
- .updateList([ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_UNCHECKED ]);\r
- }\r
- } else if (updatedId === FIELD.ID.SUPPLEMENTORY_DATA_FILE) {\r
- var filePath = $('input[parameter-id="'+updatedId+'"]').val();\r
- var arr =filePath.split('.');\r
- var fileExt = arr[arr.length-1];\r
- if(fileExt!='' && fileExt.toLowerCase()!='json'){\r
- $('input[parameter-id="'+updatedId+'"]').val('');\r
- alert("Invalid file format. Please select *.json format file.");\r
- return false;\r
- }\r
- } else if (updatedId === FIELD.ID.LCP_REGION) {\r
- var list = parameterListControl.getList(updatedId);\r
- if (list[0].selectedIndex >= 0) {\r
- parameterListControl\r
- .updateList([ getTenantList(list[0].value) ]);\r
- } else {\r
- parameterListControl\r
- .updateList([ FIELD.PARAMETER.TENANT_DISABLED ]);\r
- }\r
- if (list[0].value === FIELD.KEY.LCP_REGION_TEXT) {\r
- parameterListControl\r
- .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_VISIBLE ]);\r
- } else {\r
- parameterListControl\r
- .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN ]);\r
- }\r
- } else if (updatedId === FIELD.ID.SUBSCRIBER_NAME) {\r
- var list = parameterListControl.getList(updatedId);\r
- if (list[0].selectedIndex >= 0) {\r
- DataService.setGlobalCustomerId(list[0].value);\r
-\r
- AaiService.getSubscriptionServiceTypeList(DataService\r
- .getGlobalCustomerId(), function(response) {\r
- DataService.setSubscriptionServiceTypeList(response);\r
- var serviceTypeParameters = FIELD.PARAMETER.SERVICE_TYPE;\r
- serviceTypeParameters.optionList = [];\r
-\r
- for (var i = 0; i < response.length; i++) {\r
- serviceTypeParameters.optionList.push({\r
- "id" : response[i].name,\r
- "name" : response[i].name,\r
- "isPermitted" :response[i].isPermitted\r
-\r
- });\r
- }\r
- console.log ( "updateUserParameterList: service type parameters " );\r
- console.log ( JSON.stringify (serviceTypeParameters, null, 4));\r
- parameterListControl.updateList([ serviceTypeParameters ]);\r
- });\r
-\r
- }\r
- } else if ( updatedId === FIELD.ID.SERVICE_TYPE ) {\r
- var list = parameterListControl.getList(updatedId);\r
- if (list[0].selectedIndex >= 0) {\r
-\r
- DataService.setServiceType(list[0].value);\r
- var cloudRegionTenantList = new Array();\r
- AaiService.getLcpCloudRegionTenantList(DataService.getGlobalCustomerId(), DataService.getServiceType(), function(cloudRegionTenantList) {\r
- DataService.setCloudRegionTenantList(cloudRegionTenantList);\r
- parameterListControl.updateList([ getLcpRegionParameter() ]);\r
- });\r
- } else {\r
- parameterListControl\r
- .updateList([ FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);\r
- }\r
- }\r
-\r
- };\r
-\r
- return {\r
- initializeComponent : function(componentId) {\r
- _this.componentId = ComponentService.initialize(componentId);\r
- },\r
- setHttpErrorHandler : function(httpErrorHandler) {\r
- _this.httpErrorHandler = httpErrorHandler;\r
- },\r
- getComponentDisplayName : ComponentService.getComponentDisplayName,\r
- getParameters : function(getParametersHandler) {\r
- _this.getParametersHandler = getParametersHandler;\r
- UtilityService.setHttpErrorHandler(_this.httpErrorHandler);\r
- UtilityService.startAsyncOperations(getAsyncOperationList(),\r
- internalGetParametersHandler);\r
- },\r
- updateUserParameterList : updateUserParameterList,\r
- getMsoRequestDetails : getMsoRequestDetails,\r
- getMsoUrl : getMsoUrl,\r
- setInventoryInfo: setInventoryInfo\r
- }\r
-}\r
-\r
-appDS2.factory("CreationService", [ "$log", "AaiService", "AsdcService",\r
- "DataService","VIDCONFIGURATION", "ComponentService", "COMPONENT", "FIELD", "PARAMETER",\r
- "UtilityService", "OwningEntityService","featureFlags", CreationService ]);\r
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+"use strict";
+
+/*
+ * "CreationService" isolates the "component-specific" logic required by the
+ * "CreationDialog" controller.
+ *
+ * "Components" are defined as the 5 element types managed by the dialogs: A)
+ * Service B) VNF C) VF Module D) Volume Group and E) Network.
+ *
+ */
+
+var CreationService = function($log, AaiService, AsdcService, DataService,VIDCONFIGURATION,
+ ComponentService, COMPONENT, FIELD, PARAMETER, UtilityService, OwningEntityService,featureFlags) {
+
+ var _this = this;
+ var getAsyncOperationList = function() {
+ if (DataService.getLoggedInUserId() == null) {
+ getLoggedInUserID();
+ } else {
+ UtilityService.startNextAsyncOperation();
+ }
+ switch (_this.componentId) {
+ case COMPONENT.SERVICE:
+ return [ getSubscribers, getServices, getAicZones, getOwningEntityProperties ];
+ case COMPONENT.NETWORK:
+ return [ getLcpCloudRegionTenantList, getOwningEntityProperties ];
+ case COMPONENT.VNF:
+ return [ getLcpCloudRegionTenantList, getOwningEntityProperties ];
+ case COMPONENT.VF_MODULE:
+ return [ getLcpCloudRegionTenantList ];
+ case COMPONENT.VOLUME_GROUP:
+ return [ getLcpCloudRegionTenantList ];
+ }
+ };
+
+ /*
+ * "getSummaryList" and "getUserProvidedList" return parameters that should
+ * be displayed in the summary and user provided sections, respectively. The
+ * functions are expected to return lists that are in the format needed by
+ * the parameter-block directive.
+ */
+
+ var getSummaryList = function() {
+
+ /*
+ * These placeholders should be removed and their usage in
+ * "getSummaryList" should be replaced by appropriate code as the
+ * requirements and interfaces firm up.
+ */
+
+ var PLACEHOLDER_RESOURCE_DESCRIPTION = "Resource Description (PLACEHOLDER)";
+ var PLACEHOLDER_SERVICE_CATEGORY = "Service Category (PLACEHOLDER)";
+ var PLACEHOLDER_VF_MODULE_DESCRIPTION = "VF Module Description (PLACEHOLDER)";
+ var PLACEHOLDER_VF_MODULE_LABEL = "VF Module Label (PLACEHOLDER)";
+ var PLACEHOLDER_VF_MODULE_TYPE = "VF Module Type (PLACEHOLDER)";
+
+ _this.parameterList = new Array();
+
+ /*
+ * Common fields displayed at the top of all create instance screens.
+ */
+ if(DataService.getModelInfo(_this.componentId)["serviceTypeName"]==null
+ || DataService.getModelInfo(_this.componentId)["serviceTypeName"]==undefined
+ || DataService.getModelInfo(_this.componentId)["serviceTypeName"]==''){
+ addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());
+ }
+
+ switch (_this.componentId) {
+ case COMPONENT.SERVICE:
+ if ( !DataService.getALaCarte() ) {
+ // for macro instantiation need to add the resource names under the node template list
+ // this field is called modelCustomizationName in the asdc client code
+ var p;
+ var rlist = DataService.getResources();
+ var res;
+ if ( rlist != null ) {
+ for (var i = 0; i < rlist.length; i++) {
+ res = rlist[i];
+
+ p = FIELD.NAME.RESOURCE_NAME.concat(" " + (i+1));
+ addToList(p, res.name );
+ p = FIELD.NAME.RESOURCE_DESCRIPTION.concat(" " + (i+1));
+ addToList(p, res.description );
+ }
+ }
+ }
+ if(DataService.getModelInfo(_this.componentId)["createSubscriberName"]!=null && DataService.getModelInfo(_this.componentId)["createSubscriberName"]!=''){
+ addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
+ .getModelInfo(_this.componentId)["createSubscriberName"]);
+ }
+ if(DataService.getModelInfo(_this.componentId)["serviceTypeName"]!=null && DataService.getModelInfo(_this.componentId)["serviceTypeName"]!=''){
+ addToList(FIELD.NAME.SERVICE_TYPE, DataService
+ .getModelInfo(_this.componentId)["serviceTypeName"]);
+ addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());
+ }
+ addToList(FIELD.NAME.SERVICE_INVARIANT_UUID, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
+ addToList(FIELD.NAME.SERVICE_VERSION, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);
+ addToList(FIELD.NAME.SERVICE_UUID, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);
+ addToList(FIELD.NAME.SERVICE_DESCRIPTION, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.DESCRIPTION]);
+ addToList(FIELD.NAME.SERVICE_CATEGORY, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.CATEGORY]);
+ if (DataService.getModelInfo(_this.componentId)[FIELD.ID.SERVICE_TYPE] != "null") {
+ addToList(FIELD.NAME.SERVICE_TYPE, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.SERVICE_TYPE]);
+ addToList(FIELD.NAME.SERVICE_ROLE, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.SERVICE_ROLE]);
+ }
+
+ break;
+ case COMPONENT.VF_MODULE:
+ addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
+ .getSubscriberName());
+ addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
+ .getServiceInstanceName());
+ addToList(FIELD.NAME.MODEL_NAME, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);
+ addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
+ addToList(FIELD.NAME.MODEL_VERSION, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);
+ addToList(FIELD.NAME.MODEL_UUID, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);
+ addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);
+ break;
+ case COMPONENT.VNF:
+ addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
+ .getSubscriberName());
+ addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
+ .getServiceInstanceName());
+ addToList(FIELD.NAME.MODEL_NAME, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);
+ addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
+ addToList(FIELD.NAME.MODEL_VERSION, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);
+ addToList(FIELD.NAME.MODEL_UUID, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);
+ addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);
+ addToList(FIELD.NAME.MODEL_CUSTOMIZATION_NAME, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_CUSTOMIZATION_NAME]);
+ addToList(FIELD.NAME.MODEL_VNF_TYPE, DataService
+ .getModelInfo(_this.componentId)[COMPONENT.VNF_TYPE]);
+ addToList(FIELD.NAME.MODEL_VNF_ROLE, DataService
+ .getModelInfo(_this.componentId)[COMPONENT.VNF_ROLE]);
+ addToList(FIELD.NAME.MODEL_VNF_FUNCTION, DataService
+ .getModelInfo(_this.componentId)[COMPONENT.VNF_FUNCTION]);
+ addToList(FIELD.NAME.MODEL_VNF_CODE, DataService
+ .getModelInfo(_this.componentId)[COMPONENT.VNF_CODE]);
+ break;
+ case COMPONENT.NETWORK:
+ case COMPONENT.VOLUME_GROUP:
+ addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
+ .getSubscriberName());
+ addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
+ .getServiceInstanceName());
+ addToList(FIELD.NAME.MODEL_NAME, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);
+ addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
+ addToList(FIELD.NAME.MODEL_VERSION, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);
+ addToList(FIELD.NAME.MODEL_UUID, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);
+ addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService
+ .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);
+ break;
+ }
+
+ return _this.parameterList;
+ };
+
+ var getUserProvidedList = function() {
+ var parameterList = [];
+ var isUserProvidedNaming = false;
+ if ( ((DataService.getModelInfo(_this.componentId).serviceEcompNaming != null)
+ && (DataService.getModelInfo(_this.componentId).serviceEcompNaming === "false")) || DataService.getE2EService() ) {
+ isUserProvidedNaming = true;
+ }
+
+ var isInTop = DataService.getHideServiceFields() || false;
+ if (_this.componentId === COMPONENT.SERVICE) {
+ if ( DataService.getALaCarte() ) {
+ parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];
+ if(!isInTop){
+ parameterList = parameterList.concat([ getSubscribersParameter(),
+ FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);
+ }
+ }
+ else {
+ // macro
+
+ if(!isInTop){
+ if (isUserProvidedNaming) {
+ parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];
+
+ }
+ parameterList = parameterList.concat([ getSubscribersParameter() ]);
+ parameterList = parameterList.concat([ getServiceId(),
+ FIELD.PARAMETER.SERVICE_TYPE,
+ FIELD.PARAMETER.LCP_REGION,
+ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
+ FIELD.PARAMETER.TENANT_DISABLED
+ ]);
+ if(!DataService.getE2EService()) {
+ parameterList = parameterList.concat([getAicZonesParameter()]);
+ }
+
+ }else{
+ parameterList = parameterList.concat([ getServiceId(),
+ FIELD.PARAMETER.LCP_REGION,
+ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
+ FIELD.PARAMETER.TENANT_DISABLED ]);
+ }
+ }
+
+ if(!DataService.getE2EService()) {
+ parameterList = parameterList.concat([getProjectParameter()]);
+ parameterList = parameterList.concat([getOwningEntityParameter()]);
+ }
+
+ //if service model has a pnf, add a PNF ID parameter
+ if (featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_PNP_INSTANTIATION) && DataService.getPnf()) {
+ parameterList = parameterList.concat([ FIELD.PARAMETER.PNF_ID ]);
+ }
+ }
+ else {
+ parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];
+ switch (_this.componentId) {
+ case COMPONENT.NETWORK:
+ case COMPONENT.VNF:
+ parameterList = parameterList.concat([ getServiceId(),
+ getLcpRegionParameter(), FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
+ FIELD.PARAMETER.TENANT_DISABLED ]);
+ parameterList = parameterList.concat([ getLineOfBusinessParameter() ]);
+ parameterList = parameterList.concat([ getPlatformParameter() ]);
+
+ break;
+ case COMPONENT.VF_MODULE:
+ parameterList = parameterList.concat([
+ getLcpRegionParameter(),
+ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
+ FIELD.PARAMETER.TENANT_DISABLED
+ ]);
+
+ var availableVolumeGroupList = DataService.getAvailableVolumeGroupList();
+
+ if (availableVolumeGroupList && availableVolumeGroupList.length > 0) {
+ var availableVolumeGroupNames = [FIELD.STATUS.NONE];
+
+ for (var i = 0; i < availableVolumeGroupList.length; i++) {
+ availableVolumeGroupNames.push(availableVolumeGroupList[i].instance.name);
+ }
+
+ parameterList.push(addOptionList(
+ FIELD.PARAMETER.AVAILABLE_VOLUME_GROUP,
+ availableVolumeGroupNames));
+ }
+ break;
+ case COMPONENT.VOLUME_GROUP:
+ parameterList = parameterList.concat([ getLcpRegionParameter(),
+ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
+ FIELD.PARAMETER.TENANT_DISABLED ]);
+ }
+ }
+ parameterList.push(FIELD.PARAMETER.SUPPRESS_ROLLBACK);
+ if(_this.componentId === COMPONENT.VF_MODULE ){
+ parameterList.push({name: FIELD.NAME.SDN_C_PRELOAD,
+ id: FIELD.ID.SDN_C_PRELOAD,
+ type: "checkbox",
+ isEnabled: true,
+ isRequired: false,
+ hideFieldAndLabel: true
+ }
+ );
+ parameterList.push({name: FIELD.NAME.UPLOAD_SUPPLEMENTORY_DATA_FILE,
+ id: FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE,
+ type: "checkbox",
+ isEnabled: true,
+ isRequired: false,
+ value:false
+ }
+ );
+
+ parameterList.push({name: FIELD.NAME.SUPPLEMENTORY_DATA_FILE,
+ id: FIELD.ID.SUPPLEMENTORY_DATA_FILE,
+ type: "file",
+ isRequired: false,
+ isVisiblity: false
+ }
+ );
+ }
+
+ if( VIDCONFIGURATION.UPLOAD_SUPPLEMENTARY_STATUS_CHECK_ENABLED && _this.componentId === COMPONENT.VOLUME_GROUP){
+ parameterList.push({name: FIELD.NAME.UPLOAD_SUPPLEMENTORY_DATA_FILE,
+ id: FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE,
+ type: "checkbox",
+ isEnabled: true,
+ isRequired: false
+ }
+ );
+
+ parameterList.push({name: FIELD.NAME.SUPPLEMENTORY_DATA_FILE,
+ id: FIELD.ID.SUPPLEMENTORY_DATA_FILE,
+ type: "file",
+ isRequired: false,
+ isVisiblity: false
+ }
+ );
+ }
+
+ addArbitraryParameters(parameterList);
+
+ return parameterList;
+ };
+
+ var addArbitraryParameters = function(parameterList) {
+ if ( DataService.getModelInfo(_this.componentId).displayInputs != null ) {
+ var inputs = DataService.getModelInfo(_this.componentId).displayInputs;
+ for ( var key in inputs) {
+ var parameter = {
+ id : key,
+ type : PARAMETER.STRING,
+ name : ComponentService.getFieldDisplayName(key),
+ value : inputs[key][PARAMETER.DEFAULT],
+ isRequired : inputs[key][PARAMETER.REQUIRED],
+ description : inputs[key][PARAMETER.DESCRIPTION]
+ };
+ if ( DataService.getALaCarte() ) {
+ parameter.name = ComponentService.getFieldDisplayName(inputs[key][PARAMETER.DISPLAY_NAME]);
+ }
+ switch (inputs[key][PARAMETER.TYPE]) {
+ case PARAMETER.INTEGER:
+ parameter.type = PARAMETER.NUMBER;
+ break;
+ case PARAMETER.BOOLEAN:
+ parameter.type = PARAMETER.BOOLEAN;
+ break;
+ case PARAMETER.RANGE:
+ break;
+ case PARAMETER.LIST:
+ parameter.type = PARAMETER.LIST;
+ break;
+ case PARAMETER.MAP:
+ parameter.type = PARAMETER.MAP;
+ break;
+ }
+
+ if ( UtilityService.hasContents(inputs[key][PARAMETER.CONSTRAINTS])
+ && ( inputs[key][PARAMETER.CONSTRAINTS].length > 0 ) ) {
+ var constraintsArray = inputs[key][PARAMETER.CONSTRAINTS];
+ //console.log ("Calling addConstraintParameters for input name=" + key);
+ addConstraintParameters (parameterList, constraintsArray, key, inputs, parameter);
+ }
+ else {
+
+ parameterList.push(parameter);
+ }
+ }
+ DataService.setArbitraryParameters (parameterList);
+ }
+ };
+
+ var addConstraintParameters = function(parameterList, constraintsArray, key, inputs, parameter) {
+ // If there are constraints and the operator is "valid_values",
+ // use a select parameter type.
+ var i = constraintsArray.length;
+ var parameterPushed = false;
+ if ( i > 0 ) {
+ while ( (i--) && (!parameterPushed) ) {
+ var keys = Object.keys(constraintsArray[i]);
+ //var keys_len = keys.length;
+ for ( var operator in keys ) {
+ //console.log ("keys[operator]=" + keys[operator]);
+ switch (keys[operator]) {
+ case PARAMETER.VALID_VALUES:
+ var j = constraintsArray[i][PARAMETER.VALID_VALUES].length;
+ if ( j > 0 ) {
+ var oList = [];
+ var option;
+ while (j--) {
+ option = {
+ name: constraintsArray[i][PARAMETER.VALID_VALUES][j],
+ isDefault: false
+ }
+ if ( ( UtilityService.hasContents (inputs[key][PARAMETER.DEFAULT]) )
+ && (inputs[key][PARAMETER.DEFAULT] === constraintsArray[i][PARAMETER.VALID_VALUES][j] ) ) {
+ option = {
+ name: constraintsArray[i][PARAMETER.VALID_VALUES][j],
+ isDefault: true
+ }
+ }
+ oList.push(option);
+ }
+ parameter.type = PARAMETER.SELECT;
+ parameter.optionList = oList;
+ parameterList.push(parameter);
+ parameterPushed = true;
+ //console.log ("pushed param for valid values");
+ }
+ break;
+
+ case PARAMETER.EQUAL:
+ if ( constraintsArray[i][PARAMETER.EQUAL] != null ) {
+ //override parameter type
+ parameter.type = PARAMETER.STRING;
+ parameter.isReadOnly = true;
+ parameter.value = constraintsArray[i][PARAMETER.EQUAL];
+ parameterList.push(parameter);
+ parameterPushed = true;
+ //console.log ("pushed param for equal");
+ }
+ break;
+
+ case PARAMETER.LENGTH:
+ if ( constraintsArray[i][PARAMETER.LENGTH] != null ) {
+ parameter.minLength = constraintsArray[i][PARAMETER.LENGTH];
+ parameter.maxLength = constraintsArray[i][PARAMETER.LENGTH];
+ parameterList.push(parameter);
+ parameterPushed = true;
+ //console.log ("pushed param for length: ");
+ //console.log (JSON.stringify (parameter, null, 4));
+ }
+ break;
+ case PARAMETER.MAX_LENGTH:
+ if ( constraintsArray[i][PARAMETER.MAX_LENGTH] != null ) {
+ parameter.maxLength = constraintsArray[i][PARAMETER.MAX_LENGTH];
+ parameterList.push(parameter);
+ parameterPushed = true;
+ //console.log ("pushed param for max length: ");
+ //console.log (JSON.stringify (parameter, null, 4));
+ }
+ break;
+ case PARAMETER.MIN_LENGTH:
+ if ( constraintsArray[i][PARAMETER.MIN_LENGTH] != null ) {
+ parameter.minLength = constraintsArray[i][PARAMETER.MIN_LENGTH];
+ parameterList.push(parameter);
+ parameterPushed = true;
+ //console.log ("pushed param for min length: ");
+ //console.log (JSON.stringify (parameter, null, 4));
+ }
+ break;
+ case PARAMETER.IN_RANGE:
+ if ( constraintsArray[i][PARAMETER.IN_RANGE] != null ) {
+ if (constraintsArray[i][PARAMETER.IN_RANGE].length > 1 ) {
+ parameter.min = constraintsArray[i][PARAMETER.IN_RANGE][0];
+ parameter.max = constraintsArray[i][PARAMETER.IN_RANGE][1];
+ parameter.type = PARAMETER.NUMBER;
+ parameter.value = inputs[key][PARAMETER.DEFAULT]
+ parameterList.push(parameter);
+ parameterPushed = true;
+ //console.log ("pushed param for in_range");
+ }
+ }
+ break;
+ case PARAMETER.GREATER_THAN:
+ if ( constraintsArray[i][PARAMETER.GREATER_THAN] != null ) {
+ parameter.type = PARAMETER.NUMBER;
+ parameter.min = constraintsArray[i][PARAMETER.GREATER_THAN];
+ parameter.value = inputs[key][PARAMETER.DEFAULT]
+ parameterList.push(parameter);
+ parameterPushed = true;
+ //console.log ("pushed param for greater_than");
+
+ }
+ break;
+ }//switch
+ }//for
+
+ }//while
+ }//if
+ };
+ var addToList = function(name, value) {
+ _this.parameterList.push({
+ name : name,
+ value : value
+ });
+ };
+ var setInventoryInfo = function(){
+ var inventoryItem = DataService.getInventoryItem();
+ var inventoryInfo = ComponentService.getInventoryInfo(
+ _this.componentId, inventoryItem);
+ }
+
+ /*
+ * The "*Mso*" functions return URL and request details that can be passed
+ * to the MSO controller. The request details defines the info passed as
+ * part of the POST body.
+ */
+
+ var getMsoUrl = function() {
+ switch (_this.componentId) {
+ case COMPONENT.NETWORK:
+ return "mso_create_nw_instance/"
+ + DataService.getServiceInstanceId();
+ case COMPONENT.SERVICE:
+ if(DataService.getE2EService() === true)
+ return "mso_create_e2e_svc_instance";
+ else
+ return "mso_create_svc_instance";
+ case COMPONENT.VNF:
+ return "mso_create_vnf_instance/"
+ + DataService.getServiceInstanceId();
+ case COMPONENT.VF_MODULE:
+ return "mso_create_vfmodule_instance/"
+ + DataService.getServiceInstanceId() + "/vnfs/"
+ + DataService.getVnfInstanceId();
+ case COMPONENT.VOLUME_GROUP:
+ return "mso_create_volumegroup_instance/"
+ + DataService.getServiceInstanceId() + "/vnfs/"
+ + DataService.getVnfInstanceId();
+ }
+ };
+
+ var getMsoE2ERequest = function(parameterList) {
+ var modelInfo = DataService.getModelInfo(_this.componentId);
+
+ //region id
+ var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);
+ if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {
+ lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,
+ parameterList);
+ }
+ var cloudOwner = _.find(DataService.getCloudRegionTenantList(), function(region){
+ return region.cloudRegionId === lcpRegion;
+ }).cloudOwner;
+
+ var params = [];
+ var displayInputs = modelInfo.displayInputs;
+ var groupBy = _.groupBy(displayInputs, "templateUUID");
+
+ _.forEach(groupBy, function(nodeTemplateInputs, nodeTemplateUUID) {
+ var reqParas = {};
+ var vfLocations = [];
+
+ nodeTemplateInputs.forEach(function(parameter){
+ if(parameter.type === 'vf_location') {
+ var loc = {
+ vnfProfileId: parameter.displayName,
+ locationConstraints : {
+ vimId: cloudOwner + '_' + lcpRegion
+ }
+ };
+ vfLocations.push(loc);
+ } else if(parameter.type === 'sdn_controller') {
+ if(parameter.value === undefined || parameter.value === null) {
+ reqParas[parameter.name] = '';
+ } else {
+ reqParas[parameter.name] = parameter.value.value;
+ }
+ } else {
+ var name;
+ _.forEach(displayInputs, function(item, key){
+ if(item === parameter) {
+ name = key;
+ }
+ });
+ var value = _.find(parameterList, function(item){
+ return item.id === name;
+ }).value;
+ reqParas[parameter.displayName] = value;
+ }
+ });
+
+ params.push({
+ resourceName: nodeTemplateInputs[0].templateName,
+ resourceInvariantUuid: nodeTemplateInputs[0].templateInvariantUUID,
+ resourceUuid: nodeTemplateInputs[0].templateUUID,
+ resourceCustomizationUuid: nodeTemplateInputs[0].templateCustomizationUUID,
+ parameters: {
+ locationConstraints: vfLocations,
+ //TODO resources: [],
+ requestInputs: reqParas
+ }
+ });
+ });
+
+ var requestBody = {
+ service: {
+ name: getValueFromList(FIELD.ID.INSTANCE_NAME, parameterList),
+ description: modelInfo["description"],
+ serviceInvariantUuid: modelInfo["modelInvariantId"],
+ serviceUuid: modelInfo["modelNameVersionId"],
+ globalSubscriberId: DataService.getGlobalCustomerId(),
+ serviceType: getValueFromList(FIELD.ID.SERVICE_TYPE, parameterList) || modelInfo["serviceTypeName"],
+ parameters: {
+ locationConstraints: [],
+ resources: params,
+ requestInputs: {} //TODO
+ }
+ }
+ };
+
+ return requestBody;
+ };
+
+ var getMsoRequestDetails = function(parameterList) {
+ console.log("getMsoRequestDetails invoked, parameterList="); console.log(JSON.stringify(parameterList,null,4));
+ //console.log("getMsoRequestDetails invoked, DataService.getArbitraryParameters()=");
+ //console.log(JSON.stringify(DataService.getArbitraryParameters(),null,4));
+
+ //VoLTE logic goes here
+ if(DataService.getE2EService() === true) {
+ return getMsoE2ERequest(parameterList);
+ }
+
+ var modelInfo = DataService.getModelInfo(_this.componentId);
+ var requestorloggedInId = DataService.getLoggedInUserId();
+ var owningEntityId = getValueFromList(FIELD.ID.OWNING_ENTITY, parameterList);
+ if (requestorloggedInId == null)
+ requestorloggedInId = "";
+ var isSupRollback = false;
+ if (getValueFromList(FIELD.ID.SUPPRESS_ROLLBACK,parameterList) === "true") {
+ isSupRollback = true;
+ }
+ var requestDetails = {
+ requestInfo : {
+ instanceName : getValueFromList(FIELD.ID.INSTANCE_NAME,
+ parameterList) || DataService.getVfModuleInstanceName(),
+ source : FIELD.ID.VID,
+ suppressRollback : isSupRollback,
+ requestorId: requestorloggedInId
+ },
+ modelInfo : {
+ modelType : _this.componentId,
+ modelInvariantId : modelInfo.modelInvariantId,
+ modelVersionId : modelInfo.modelNameVersionId,
+ modelName : modelInfo.modelName,
+ modelVersion : modelInfo.modelVersion,
+ modelCustomizationId: modelInfo.customizationUuid,
+ modelCustomizationName : modelInfo.modelCustomizationName
+ },
+ requestParameters : {
+ userParams : getArbitraryParameters(parameterList)
+ }
+ };
+ if (featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_ADD_MSO_TESTAPI_FIELD)) {
+ if ((_this.componentId != COMPONENT.SERVICE) || ( DataService.getALaCarte() )) {
+ requestDetails.requestParameters.testApi = DataService.getMsoRequestParametersTestApi();
+ }
+ }
+ if ( (_this.componentId != COMPONENT.SERVICE) || ( !DataService.getALaCarte() ) ) {
+ // include cloud region for everything but service create alacarte
+ var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);
+ if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {
+ lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,
+ parameterList);
+ }
+ requestDetails.cloudConfiguration = {
+ lcpCloudRegionId : lcpRegion,
+ tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)
+ };
+ }
+ switch (_this.componentId) {
+
+ case COMPONENT.SERVICE:
+ requestDetails.subscriberInfo = {
+ globalSubscriberId : DataService.getGlobalCustomerId(),
+ subscriberName : DataService.getSubscriberName()
+ };
+ var isInTop = DataService.getHideServiceFields() || false;
+ if(isInTop){
+ requestDetails.requestParameters.subscriptionServiceType = DataService.getModelInfo(_this.componentId)["serviceTypeName"];
+ }else{
+ requestDetails.requestParameters.subscriptionServiceType = getValueFromList(
+ FIELD.ID.SERVICE_TYPE, parameterList);
+ }
+ requestDetails.requestParameters.aLaCarte = DataService.getALaCarte();
+ if ( !DataService.getALaCarte() ) {
+ requestDetails.requestInfo.productFamilyId = getValueFromList(
+ FIELD.ID.PRODUCT_FAMILY, parameterList);
+ }
+ var svcModelInfo = {
+ modelType : _this.componentId,
+ modelInvariantId : modelInfo.modelInvariantId,
+ modelVersionId : modelInfo.modelNameVersionId,
+ modelName : modelInfo.modelName,
+ modelVersion : modelInfo.modelVersion
+ };
+ requestDetails.modelInfo = svcModelInfo;
+
+ var selectedProject = getValueFromList(FIELD.ID.PROJECT, parameterList);
+
+ if (selectedProject) {
+ requestDetails.project = {
+ projectName: getValueFromList(FIELD.ID.PROJECT, parameterList)
+ };
+ }
+
+ requestDetails.owningEntity = {
+ owningEntityId: owningEntityId,
+ owningEntityName: getOwningEntityNameById(owningEntityId)
+ };
+
+ break;
+ case COMPONENT.VNF:
+
+ requestDetails.requestInfo.productFamilyId = getValueFromList(
+ FIELD.ID.PRODUCT_FAMILY, parameterList);
+
+ var lineOfBusiness = getValueFromList(FIELD.ID.LINE_OF_BUSINESS, parameterList);
+
+ if(lineOfBusiness) {
+ var lineOfBusinessNamesString = _.map(lineOfBusiness, "name").join(", ");
+
+ requestDetails.lineOfBusiness = {
+ lineOfBusinessName: lineOfBusinessNamesString
+ }
+ }
+
+ requestDetails.platform = {
+ platformName: getValueFromList(FIELD.ID.PLATFORM, parameterList)
+ };
+
+ break;
+ case COMPONENT.NETWORK:
+ requestDetails.requestInfo.productFamilyId = getValueFromList(
+ FIELD.ID.PRODUCT_FAMILY, parameterList);
+ var lineOfBusiness = getValueFromList(FIELD.ID.LINE_OF_BUSINESS, parameterList);
+
+ if(lineOfBusiness) {
+ var lineOfBusinessNamesString = _.map(lineOfBusiness, "name").join(", ");
+
+ requestDetails.lineOfBusiness = {
+ lineOfBusinessName: lineOfBusinessNamesString
+ }
+ }
+
+ requestDetails.platform = {
+ platformName: getValueFromList(FIELD.ID.PLATFORM, parameterList)
+ };
+ break;
+ case COMPONENT.VF_MODULE:
+ requestDetails.requestParameters.usePreload = getValueFromList(
+ FIELD.ID.SDN_C_PRELOAD, parameterList);
+ if(_this.componentId == COMPONENT.VF_MODULE &&(requestDetails.requestParameters.usePreload== null || requestDetails.requestParameters.usePreload === '')){
+ requestDetails.requestParameters.usePreload = false;
+ }
+ break;
+ case COMPONENT.VOLUME_GROUP:
+ break;
+ }
+
+ var relatedInstanceList = getRelatedInstanceList(parameterList);
+
+ if (relatedInstanceList !== undefined) {
+ requestDetails.relatedInstanceList = relatedInstanceList;
+ }
+
+ return requestDetails;
+ };
+
+ var getRelatedInstanceList = function(parameterList) {
+ var relatedInstanceList = new Array();
+ switch (_this.componentId) {
+ case COMPONENT.SERVICE:
+ return undefined;
+ case COMPONENT.NETWORK:
+ case COMPONENT.VNF:
+ addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,
+ DataService.getServiceInstanceId());
+ break;
+ case COMPONENT.VF_MODULE:
+ addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,
+ DataService.getServiceInstanceId());
+ addRelatedInstance(relatedInstanceList, COMPONENT.VNF, DataService
+ .getVnfInstanceId());
+
+ var availableVolumeGroup = getValueFromList(
+ FIELD.ID.AVAILABLE_VOLUME_GROUP, parameterList);
+
+ if (UtilityService.hasContents(availableVolumeGroup) && availableVolumeGroup !== "None") {
+ var availableVolumeGroups = DataService.getAvailableVolumeGroupList();
+
+ for (var i = 0; i < availableVolumeGroups.length; i++) {
+ if (availableVolumeGroups[i].instance.name == availableVolumeGroup) {
+ DataService.setModelInfo(COMPONENT.VOLUME_GROUP, DataService.getModelInfo(COMPONENT.VF_MODULE));
+ DataService.setVolumeGroupInstanceId(availableVolumeGroups[i].instance.object["volume-group-id"]);
+ break;
+ }
+ }
+
+ addRelatedInstance(relatedInstanceList, COMPONENT.VOLUME_GROUP,
+ DataService.getVolumeGroupInstanceId());
+ }
+ break;
+ case COMPONENT.VOLUME_GROUP:
+ addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,
+ DataService.getServiceInstanceId());
+ addRelatedInstance(relatedInstanceList, COMPONENT.VNF, DataService
+ .getVnfInstanceId());
+ break;
+ }
+
+ return relatedInstanceList;
+ };
+
+ var addRelatedInstance = function(relatedInstanceList, componentId,
+ instanceId) {
+ var modelInfo = DataService.getModelInfo(componentId);
+ var relatedInstance;
+ if (modelInfo !== undefined) {
+ if (componentId === COMPONENT.SERVICE) {
+ relatedInstance = {
+ "instanceId" : instanceId,
+ "modelInfo" : {
+ "modelType" : componentId,
+ "modelName" : modelInfo.modelName,
+ "modelInvariantId" : modelInfo.modelInvariantId,
+ "modelVersion" : modelInfo.modelVersion,
+ "modelVersionId" : modelInfo.modelNameVersionId,
+
+ }
+ };
+ }
+ else {
+ relatedInstance = {
+ "instanceId" : instanceId,
+ "modelInfo" : {
+ "modelType" : componentId,
+ "modelName" : modelInfo.modelName,
+ "modelInvariantId" : modelInfo.modelInvariantId,
+ "modelVersion" : modelInfo.modelVersion,
+ "modelVersionId" : modelInfo.modelNameVersionId,
+ "modelCustomizationId": modelInfo.customizationUuid,
+ "modelCustomizationName": modelInfo.modelCustomizationName
+ }
+ }
+ }
+ relatedInstanceList.push({
+ relatedInstance : relatedInstance
+ });
+ }
+ };
+
+ /*
+ * var getArbitraryParameters = function(parameterList) { var
+ * arbitraryParameters = new Object(); for (var i = 0; i <
+ * parameterList.length; i++) { var parameter = parameterList[i]; switch
+ * (parameter.id) { case FIELD.ID.INSTANCE_NAME: case
+ * FIELD.ID.PRODUCT_FAMILY: case FIELD.ID.LCP_REGION: case
+ * FIELD.ID.LCP_REGION_TEXT: case FIELD.ID.SERVICE_TYPE: case
+ * FIELD.ID.TENANT: case FIELD.ID.SUPPRESS_ROLLBACK: break; default:
+ * arbitraryParameters[parameter.id] = parameter.value; } } return
+ * arbitraryParameters; }
+ */
+ var getArbitraryParameters = function(parameterList) {
+ var arbitraryParameters = new Object();
+ var arbitraryArray = new Array();
+ for (var i = 0; i < parameterList.length; i++) {
+ var parameter = parameterList[i];
+ switch (parameter.id) {
+ case FIELD.ID.AVAILABLE_VOLUME_GROUP:
+ case FIELD.ID.INSTANCE_NAME:
+ case FIELD.ID.PRODUCT_FAMILY:
+ case FIELD.ID.LCP_REGION:
+ case FIELD.ID.LCP_REGION_TEXT:
+ case FIELD.ID.SERVICE_TYPE:
+ case FIELD.ID.TENANT:
+ case FIELD.ID.SUPPRESS_ROLLBACK:
+ case FIELD.ID.SUBSCRIBER_NAME:
+ case FIELD.ID.SDN_C_PRELOAD:
+ case FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE:
+ case FIELD.ID.OWNING_ENTITY:
+ case FIELD.ID.PLATFORM:
+ case FIELD.ID.LINE_OF_BUSINESS:
+ case FIELD.ID.PROJECT:
+ break;
+ case FIELD.ID.SUPPLEMENTORY_DATA_FILE:
+ arbitraryParameters = FIELD.PARAMETER.SUPPLEMENTORY_DATA_FILE['value'];
+ arbitraryArray=arbitraryParameters;
+ FIELD.PARAMETER.SUPPLEMENTORY_DATA_FILE['value']=[];
+ break;
+
+ default:
+ if (parameter.value != '') {
+ arbitraryParameters = {
+ name: parameter.id,
+ value: parameter.value
+ }
+ arbitraryArray.push(arbitraryParameters);
+ }
+ }
+ }
+ return (arbitraryArray);
+ }
+
+ var getModel = function() {
+ AsdcService.getModel(DataService.getModelId(), function(response) {
+ DataService.setModelInfo(_this.componentId, {
+ modelInvariantId : response.data.invariantUUID,
+ modelNameVersionId : response.data.uuid,
+ modelName : response.data.name,
+ modelVersion : response.data.version,
+ inputs : response.data.inputs
+ });
+ UtilityService.startNextAsyncOperation();
+ });
+ };
+
+ var getSubscriptionServiceTypeList = function() {
+ AaiService.getSubscriptionServiceTypeList(DataService
+ .getGlobalCustomerId(), function(response) {
+ DataService.setSubscriptionServiceTypeList(response);
+ UtilityService.startNextAsyncOperation();
+ });
+ };
+
+ var getLoggedInUserID = function() {
+ AaiService.getLoggedInUserID(function(response) {
+ DataService.setLoggedInUserId(response.data);
+ UtilityService.startNextAsyncOperation();
+ });
+ };
+
+ var getSubscribers = function() {
+ AaiService.getSubscribers(function(response) {
+ DataService.setSubscribers(response);
+ UtilityService.startNextAsyncOperation();
+ });
+ };
+ var getServices = function() {
+ AaiService.getServices(function(response) {
+ var serviceIdList = [];
+ angular.forEach(response.data, function(value, key) {
+ angular.forEach(value, function(subVal, key) {
+ var newVal = {
+ "id" : subVal[FIELD.ID.SERVICE_ID],
+ "description" : subVal[FIELD.ID.SERVICE_DESCRIPTION],
+ "isPermitted" : subVal[FIELD.ID.IS_PERMITTED],
+ };
+ serviceIdList.push(newVal);
+ DataService.setServiceIdList(serviceIdList);
+ });
+ });
+
+ UtilityService.startNextAsyncOperation();
+ });
+ };
+ var getAicZones = function() {
+ AaiService.getAicZones(function(response) {
+ var serviceIdList = [];
+ angular.forEach(response.data, function(value, key) {
+ angular.forEach(value, function(subVal, key) {
+ var newVal = {
+ "id" : subVal[FIELD.ID.ZONE_ID],
+ "name" : subVal[FIELD.ID.ZONE_NAME],
+ };
+ serviceIdList.push(newVal);
+ DataService.setAicZones(serviceIdList);
+ });
+ });
+
+ UtilityService.startNextAsyncOperation();
+ });
+ };
+
+ var getOwningEntityProperties = function() {
+ OwningEntityService.getOwningEntityProperties(function(owningEntityProperties) {
+ DataService.setOwningEntityProperties(owningEntityProperties);
+ UtilityService.startNextAsyncOperation();
+ });
+
+ };
+
+ var getLcpCloudRegionTenantList = function() {
+ AaiService.getLcpCloudRegionTenantList(DataService
+ .getGlobalCustomerId(), DataService.getServiceType(), function(
+ response) {
+ DataService.setCloudRegionTenantList(response);
+ UtilityService.startNextAsyncOperation();
+ });
+ };
+
+ var internalGetParametersHandler = function() {
+ if (angular.isFunction(_this.getParametersHandler)) {
+ _this.getParametersHandler({
+ summaryList : getSummaryList(),
+ userProvidedList : getUserProvidedList()
+ });
+ }
+ };
+
+ var getSubscribersParameter = function() {
+ var subscribers = DataService.getSubscribers();
+ var parameter = FIELD.PARAMETER.SUBSCRIBER_NAME;
+ if ( UtilityService.hasContents(subscribers)) {
+ parameter.optionList = [];
+
+ for (var i = 0; i < subscribers.length; i++) {
+ parameter.optionList.push({
+ id : subscribers[i][FIELD.ID.GLOBAL_CUSTOMER_ID],
+ name : subscribers[i][FIELD.ID.SUBNAME],
+ isPermitted : subscribers[i][FIELD.ID.IS_PERMITTED]
+ })
+ }
+ }
+ return parameter;
+ };
+
+ var getServiceId = function() {
+ var serviceIdList = DataService.getServiceIdList();
+ //var serviceTypeList = DataService.getSubscriptionServiceTypeList();
+ var parameter = FIELD.PARAMETER.PRODUCT_FAMILY;
+ parameter.optionList = new Array();
+ if ( UtilityService.hasContents(serviceIdList) ) {
+ // load them all
+ for (var i = 0; i < serviceIdList.length; i++) {
+ parameter.optionList.push({
+ id : serviceIdList[i].id,
+ name : serviceIdList[i].description,
+ isPermitted : serviceIdList[i].isPermitted
+ });
+ }
+ }
+
+ return parameter;
+ };
+
+ var getAicZonesParameter = function() {
+ var aicList = DataService.getAicZones();
+ var parameter = FIELD.PARAMETER.AIC_ZONES;
+ parameter.optionList = new Array();
+ if ( UtilityService.hasContents(aicList) ) {
+ // load them all
+ for (var i = 0; i < aicList.length; i++) {
+ parameter.optionList.push({
+ id : aicList[i].id,
+ name : aicList[i].name,
+ isPermitted : true
+
+ });
+ }
+ }
+
+ return parameter;
+ };
+
+ var getProjectParameter = function() {
+ return getOwningEntityParameterWithOptions(FIELD.PARAMETER.PROJECT);
+ };
+
+ var getOwningEntityParameter = function() {
+ return getOwningEntityParameterWithOptions(FIELD.PARAMETER.OWNING_ENTITY);
+ };
+
+ var getLineOfBusinessParameter = function() {
+ return getOwningEntityParameterWithOptions(FIELD.PARAMETER.LINE_OF_BUSINESS);
+ };
+
+ var getPlatformParameter = function() {
+ return getOwningEntityParameterWithOptions(FIELD.PARAMETER.PLATFORM);
+ };
+
+ var getOwningEntityNameById = function (id) {
+ var properties = DataService.getOwningEntityProperties();
+ var parameter = _.find(properties[FIELD.ID.OWNING_ENTITY], {"id": id});
+ return parameter && parameter.name;
+ };
+
+ var getOwningEntityParameterWithOptions = function(parameter) {
+ var properties = DataService.getOwningEntityProperties();
+ if (properties && properties[parameter.id]) {
+ parameter.optionList = _.map(properties[parameter.id], function(parameter) {
+ return {
+ "id" : parameter.id,
+ "name" : parameter.name,
+ "isPermitted": true
+ };
+ });
+ }
+
+ return parameter;
+ };
+
+ var getLcpRegionParameter = function() {
+ var cloudRegionTenantList = DataService.getCloudRegionTenantList();
+ console.log ( "cloudRegionTenantList=");
+ console.log ( JSON.stringify (cloudRegionTenantList, null, 4 ));
+
+ var parameter = FIELD.PARAMETER.LCP_REGION;
+ if ( UtilityService.hasContents (cloudRegionTenantList) ) {
+ parameter.optionList = new Array();
+ for (var i = 0; i < cloudRegionTenantList.length; i++) {
+ for (var j = 0; j < parameter.optionList.length; j++) {
+ if (parameter.optionList[j].id === cloudRegionTenantList[i].cloudRegionId) {
+ parameter.optionList[j].isPermitted =
+ parameter.optionList[j].isPermitted || cloudRegionTenantList[i].isPermitted;
+ break;
+ }
+ }
+ if (j < parameter.optionList.length) {
+ continue;
+ }
+
+ var optionName = featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST) && cloudRegionTenantList[i].cloudOwner ?
+ cloudRegionTenantList[i].cloudRegionId + " (" + AaiService.removeVendorFromCloudOwner(cloudRegionTenantList[i].cloudOwner).toUpperCase() + ")" :
+ cloudRegionTenantList[i].cloudRegionId;
+
+ parameter.optionList.push({
+ id : cloudRegionTenantList[i].cloudRegionId,
+ name: optionName,
+ isPermitted : cloudRegionTenantList[i].isPermitted
+ });
+ }
+ }
+ return parameter;
+ };
+
+ var getTenantList = function(cloudRegionId) {
+ var cloudRegionTenantList = DataService.getCloudRegionTenantList();
+ var parameter = "";
+ if ( UtilityService.hasContents (cloudRegionTenantList) ) {
+ parameter = FIELD.PARAMETER.TENANT_ENABLED;
+ parameter.optionList = new Array();
+ for (var i = 0; i < cloudRegionTenantList.length; i++) {
+ if (cloudRegionTenantList[i].cloudRegionId === cloudRegionId) {
+ parameter.optionList.push({
+ id : cloudRegionTenantList[i].tenantId,
+ name : cloudRegionTenantList[i].tenantName,
+ isPermitted : cloudRegionTenantList[i].isPermitted
+
+ });
+ }
+ }
+ }
+ return parameter;
+
+ };
+
+ var addOptionList = function(parameter, optionSimpleArray) {
+ var optionList = new Array();
+ if (!angular.isArray(optionSimpleArray)) {
+ return optionList;
+ }
+ for (var i = 0; i < optionSimpleArray.length; i++) {
+ optionList.push({
+ name : optionSimpleArray[i],
+ isPermitted :true,
+ });
+ }
+ parameter.optionList = optionList;
+ return parameter;
+ };
+
+ var getValueFromList = function(id, parameterList) {
+ for (var i = 0; i < parameterList.length; i++) {
+ if (parameterList[i].id === id) {
+ return parameterList[i].value;
+ }
+ }
+ };
+ var updateUserParameterList = function(updatedId, parameterListControl) {
+ console.log ("updateUserParameterList() updatedId=" + updatedId);
+ if (updatedId === FIELD.ID.PRODUCT_FAMILY && DataService.getHideServiceFields()) {
+ var cloudRegionTenantList = new Array();
+ AaiService.getLcpCloudRegionTenantList(DataService.getGlobalCustomerId(), DataService.getServiceType(), function(cloudRegionTenantList) {
+ DataService.setCloudRegionTenantList(cloudRegionTenantList);
+ parameterListControl.updateList([ getLcpRegionParameter() ]);
+ });
+ }else if (updatedId === FIELD.ID.SDN_C_PRELOAD) {
+ var list = parameterListControl.getList(updatedId);
+ if($('input[parameter-id="'+updatedId+'"]').is(':checked')){
+ FIELD.PARAMETER.SDN_C_PRELOAD_CHECKED.value=true;
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.SDN_C_PRELOAD_CHECKED ]);
+ }else{
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.SDN_C_PRELOAD_UNCHECKED ]);
+ }
+ }else if (updatedId === FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE) {
+ if($('input[parameter-id="'+updatedId+'"]').is(':checked')){
+ $('input[parameter-id="'+FIELD.ID.SUPPLEMENTORY_DATA_FILE+'"]').closest('tr').show();
+ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED.value=true;
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED ]);
+ }else{
+ $('input[parameter-id="'+FIELD.ID.SUPPLEMENTORY_DATA_FILE+'"]').closest('tr').hide();
+ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED.value=false;
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_UNCHECKED ]);
+ }
+ } else if (updatedId === FIELD.ID.SUPPLEMENTORY_DATA_FILE) {
+ var filePath = $('input[parameter-id="'+updatedId+'"]').val();
+ var arr =filePath.split('.');
+ var fileExt = arr[arr.length-1];
+ if(fileExt!='' && fileExt.toLowerCase()!='json'){
+ $('input[parameter-id="'+updatedId+'"]').val('');
+ alert("Invalid file format. Please select *.json format file.");
+ return false;
+ }
+ } else if (updatedId === FIELD.ID.LCP_REGION) {
+ var list = parameterListControl.getList(updatedId);
+ if (list[0].selectedIndex >= 0) {
+ parameterListControl
+ .updateList([ getTenantList(list[0].value) ]);
+ } else {
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.TENANT_DISABLED ]);
+ }
+ if (list[0].value === FIELD.KEY.LCP_REGION_TEXT) {
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_VISIBLE ]);
+ } else {
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN ]);
+ }
+ } else if (updatedId === FIELD.ID.SUBSCRIBER_NAME) {
+ var list = parameterListControl.getList(updatedId);
+ if (list[0].selectedIndex >= 0) {
+ DataService.setGlobalCustomerId(list[0].value);
+
+ AaiService.getSubscriptionServiceTypeList(DataService
+ .getGlobalCustomerId(), function(response) {
+ DataService.setSubscriptionServiceTypeList(response);
+ var serviceTypeParameters = FIELD.PARAMETER.SERVICE_TYPE;
+ serviceTypeParameters.optionList = [];
+
+ for (var i = 0; i < response.length; i++) {
+ serviceTypeParameters.optionList.push({
+ "id" : response[i].name,
+ "name" : response[i].name,
+ "isPermitted" :response[i].isPermitted
+
+ });
+ }
+ console.log ( "updateUserParameterList: service type parameters " );
+ console.log ( JSON.stringify (serviceTypeParameters, null, 4));
+ parameterListControl.updateList([ serviceTypeParameters ]);
+ });
+
+ }
+ } else if ( updatedId === FIELD.ID.SERVICE_TYPE ) {
+ var list = parameterListControl.getList(updatedId);
+ if (list[0].selectedIndex >= 0) {
+
+ DataService.setServiceType(list[0].value);
+ var cloudRegionTenantList = new Array();
+ AaiService.getLcpCloudRegionTenantList(DataService.getGlobalCustomerId(), DataService.getServiceType(), function(cloudRegionTenantList) {
+ DataService.setCloudRegionTenantList(cloudRegionTenantList);
+ parameterListControl.updateList([ getLcpRegionParameter() ]);
+ });
+ } else {
+ parameterListControl
+ .updateList([ FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);
+ }
+ }
+
+ };
+
+ return {
+ initializeComponent : function(componentId) {
+ _this.componentId = ComponentService.initialize(componentId);
+ },
+ setHttpErrorHandler : function(httpErrorHandler) {
+ _this.httpErrorHandler = httpErrorHandler;
+ },
+ getComponentDisplayName : ComponentService.getComponentDisplayName,
+ getParameters : function(getParametersHandler) {
+ _this.getParametersHandler = getParametersHandler;
+ UtilityService.setHttpErrorHandler(_this.httpErrorHandler);
+ UtilityService.startAsyncOperations(getAsyncOperationList(),
+ internalGetParametersHandler);
+ },
+ updateUserParameterList : updateUserParameterList,
+ getMsoRequestDetails : getMsoRequestDetails,
+ getMsoUrl : getMsoUrl,
+ setInventoryInfo: setInventoryInfo
+ }
+}
+
+appDS2.factory("CreationService", [ "$log", "AaiService", "AsdcService",
+ "DataService","VIDCONFIGURATION", "ComponentService", "COMPONENT", "FIELD", "PARAMETER",
+ "UtilityService", "OwningEntityService","featureFlags", CreationService ]);