2 * ============LICENSE_START=======================================================
\r
4 * ================================================================================
\r
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
\r
6 * ================================================================================
\r
7 * Licensed under the Apache License, Version 2.0 (the "License");
\r
8 * you may not use this file except in compliance with the License.
\r
9 * You may obtain a copy of the License at
\r
11 * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * Unless required by applicable law or agreed to in writing, software
\r
14 * distributed under the License is distributed on an "AS IS" BASIS,
\r
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
16 * See the License for the specific language governing permissions and
\r
17 * limitations under the License.
\r
18 * ============LICENSE_END=========================================================
\r
24 * "CreationService" isolates the "component-specific" logic required by the
\r
25 * "CreationDialog" controller.
\r
27 * "Components" are defined as the 5 element types managed by the dialogs: A)
\r
28 * Service B) VNF C) VF Module D) Volume Group and E) Network.
\r
32 var CreationService = function($log, AaiService, AsdcService, DataService,
\r
33 ComponentService, COMPONENT, FIELD, PARAMETER, UtilityService) {
\r
37 var getAsyncOperationList = function() {
\r
38 if (DataService.getLoggedInUserId() == null)
\r
39 getLoggedInUserID();
\r
40 switch (_this.componentId) {
\r
41 case COMPONENT.SERVICE:
\r
42 return [ getSubscribers, getServices ];
\r
43 case COMPONENT.NETWORK:
\r
44 return [ getLcpCloudRegionTenantList ];
\r
46 return [ getLcpCloudRegionTenantList ];
\r
47 case COMPONENT.VF_MODULE:
\r
48 return [ getLcpCloudRegionTenantList ];
\r
49 case COMPONENT.VOLUME_GROUP:
\r
50 return [ getLcpCloudRegionTenantList ];
\r
55 * "getSummaryList" and "getUserProvidedList" return parameters that should
\r
56 * be displayed in the summary and user provided sections, respectively. The
\r
57 * functions are expected to return lists that are in the format needed by
\r
58 * the parameter-block directive.
\r
61 var getSummaryList = function() {
\r
64 * These placeholders should be removed and their usage in
\r
65 * "getSummaryList" should be replaced by appropriate code as the
\r
66 * requirements and interfaces firm up.
\r
69 var PLACEHOLDER_RESOURCE_DESCRIPTION = "Resource Description (PLACEHOLDER)";
\r
70 var PLACEHOLDER_SERVICE_CATEGORY = "Service Category (PLACEHOLDER)";
\r
71 var PLACEHOLDER_VF_MODULE_DESCRIPTION = "VF Module Description (PLACEHOLDER)";
\r
72 var PLACEHOLDER_VF_MODULE_LABEL = "VF Module Label (PLACEHOLDER)";
\r
73 var PLACEHOLDER_VF_MODULE_TYPE = "VF Module Type (PLACEHOLDER)";
\r
75 _this.parameterList = new Array();
\r
78 * Common fields displayed at the top of all create instance screens.
\r
80 addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());
\r
82 switch (_this.componentId) {
\r
83 case COMPONENT.SERVICE:
\r
84 if ( !DataService.getALaCarte() ) {
\r
85 // for macro instantiation need to add the resource names under the node template list
\r
86 // this field is called modelCustomizationName in the asdc client code
\r
88 var rlist = DataService.getResources();
\r
90 if ( rlist != null ) {
\r
91 for (var i = 0; i < rlist.length; i++) {
\r
94 p = FIELD.NAME.RESOURCE_NAME.concat(" " + (i+1));
\r
95 addToList(p, res.name );
\r
96 p = FIELD.NAME.RESOURCE_DESCRIPTION.concat(" " + (i+1));
\r
97 addToList(p, res.description );
\r
101 addToList(FIELD.NAME.SERVICE_INVARIANT_UUID, DataService
\r
102 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
\r
103 addToList(FIELD.NAME.SERVICE_VERSION, DataService
\r
104 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);
\r
105 addToList(FIELD.NAME.SERVICE_UUID, DataService
\r
106 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);
\r
107 addToList(FIELD.NAME.SERVICE_DESCRIPTION, DataService
\r
108 .getModelInfo(_this.componentId)[FIELD.ID.DESCRIPTION]);
\r
109 addToList(FIELD.NAME.SERVICE_CATEGORY, DataService
\r
110 .getModelInfo(_this.componentId)[FIELD.ID.CATEGORY]);
\r
112 case COMPONENT.VF_MODULE:
\r
113 addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
\r
114 .getSubscriberName());
\r
115 addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
\r
116 .getServiceInstanceName());
\r
117 addToList(FIELD.NAME.MODEL_NAME, DataService
\r
118 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
\r
119 addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
\r
120 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
\r
121 addToList(FIELD.NAME.MODEL_VERSION, DataService
\r
122 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);
\r
123 addToList(FIELD.NAME.MODEL_UUID, DataService
\r
124 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);
\r
125 addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService
\r
126 .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);
\r
128 case COMPONENT.VNF:
\r
129 addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
\r
130 .getSubscriberName());
\r
131 addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
\r
132 .getServiceInstanceName());
\r
133 addToList(FIELD.NAME.MODEL_NAME, DataService
\r
134 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
\r
135 addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
\r
136 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
\r
137 addToList(FIELD.NAME.MODEL_VERSION, DataService
\r
138 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);
\r
139 addToList(FIELD.NAME.MODEL_UUID, DataService
\r
140 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);
\r
141 addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService
\r
142 .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);
\r
143 addToList(FIELD.NAME.MODEL_CUSTOMIZATION_NAME, DataService
\r
144 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_CUSTOMIZATION_NAME]);
\r
145 addToList(FIELD.NAME.MODEL_VNF_TYPE, DataService
\r
146 .getModelInfo(_this.componentId)[COMPONENT.VNF_TYPE]);
\r
147 addToList(FIELD.NAME.MODEL_VNF_ROLE, DataService
\r
148 .getModelInfo(_this.componentId)[COMPONENT.VNF_ROLE]);
\r
149 addToList(FIELD.NAME.MODEL_VNF_FUNCTION, DataService
\r
150 .getModelInfo(_this.componentId)[COMPONENT.VNF_FUNCTION]);
\r
151 addToList(FIELD.NAME.MODEL_VNF_CODE, DataService
\r
152 .getModelInfo(_this.componentId)[COMPONENT.VNF_CODE]);
\r
154 case COMPONENT.NETWORK:
\r
155 case COMPONENT.VOLUME_GROUP:
\r
156 addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
\r
157 .getSubscriberName());
\r
158 addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
\r
159 .getServiceInstanceName());
\r
160 addToList(FIELD.NAME.MODEL_NAME, DataService
\r
161 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
\r
162 addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
\r
163 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
\r
164 addToList(FIELD.NAME.MODEL_VERSION, DataService
\r
165 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);
\r
166 addToList(FIELD.NAME.MODEL_UUID, DataService
\r
167 .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);
\r
168 addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService
\r
169 .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);
\r
173 return _this.parameterList;
\r
176 var getUserProvidedList = function() {
\r
177 parameterList = [];
\r
178 var isUserProvidedNaming = false;
\r
179 if ( (DataService.getModelInfo(_this.componentId).serviceEcompNaming != null)
\r
180 && (DataService.getModelInfo(_this.componentId).serviceEcompNaming === "false") ) {
\r
181 isUserProvidedNaming = true;
\r
184 if (_this.componentId === COMPONENT.SERVICE) {
\r
185 if ( DataService.getALaCarte() ) {
\r
186 parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];
\r
187 parameterList = parameterList.concat([ getSubscribersParameter(),
\r
188 FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);
\r
192 if (isUserProvidedNaming) {
\r
193 parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];
\r
196 parameterList = parameterList.concat([ getSubscribersParameter(),
\r
197 FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);
\r
198 parameterList = parameterList.concat([ getServiceId(),
\r
199 FIELD.PARAMETER.SERVICE_TYPE,
\r
200 FIELD.PARAMETER.LCP_REGION,
\r
201 FIELD.PARAMETER.TENANT_DISABLED ]);
\r
205 parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];
\r
206 switch (_this.componentId) {
\r
207 case COMPONENT.NETWORK:
\r
208 case COMPONENT.VNF:
\r
209 parameterList = parameterList.concat([ getServiceId(),
\r
210 getLcpRegion(), FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
\r
211 FIELD.PARAMETER.TENANT_DISABLED ]);
\r
213 case COMPONENT.VF_MODULE:
\r
214 parameterList = parameterList.concat([
\r
216 FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
\r
217 FIELD.PARAMETER.TENANT_DISABLED
\r
220 var availableVolumeGroupList = DataService.getAvailableVolumeGroupList();
\r
222 if (availableVolumeGroupList && availableVolumeGroupList.length > 0) {
\r
223 var availableVolumeGroupNames = [FIELD.STATUS.NONE];
\r
225 for (var i = 0; i < availableVolumeGroupList.length; i++) {
\r
226 availableVolumeGroupNames.push(availableVolumeGroupList[i].instance.name);
\r
229 parameterList.push(addOptionList(
\r
230 FIELD.PARAMETER.AVAILABLE_VOLUME_GROUP,
\r
231 availableVolumeGroupNames));
\r
234 case COMPONENT.VOLUME_GROUP:
\r
235 parameterList = parameterList.concat([ getLcpRegion(),
\r
236 FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
\r
237 FIELD.PARAMETER.TENANT_DISABLED ]);
\r
241 parameterList.push(FIELD.PARAMETER.SUPPRESS_ROLLBACK);
\r
243 addArbitraryParameters(parameterList);
\r
245 return parameterList;
\r
248 var addArbitraryParameters = function(parameterList) {
\r
249 if ( DataService.getModelInfo(_this.componentId).displayInputs != null ) {
\r
250 var inputs = DataService.getModelInfo(_this.componentId).displayInputs;
\r
251 for ( var key in inputs) {
\r
254 type : PARAMETER.STRING,
\r
255 name : ComponentService.getFieldDisplayName(key),
\r
256 value : inputs[key][PARAMETER.DEFAULT],
\r
257 isRequired : inputs[key][PARAMETER.REQUIRED],
\r
258 description : inputs[key][PARAMETER.DESCRIPTION]
\r
260 switch (inputs[key][PARAMETER.TYPE]) {
\r
261 case PARAMETER.INTEGER:
\r
262 parameter.type = PARAMETER.NUMBER;
\r
264 case PARAMETER.BOOLEAN:
\r
265 parameter.type = PARAMETER.BOOLEAN;
\r
267 case PARAMETER.RANGE:
\r
269 case PARAMETER.LIST:
\r
271 case PARAMETER.MAP:
\r
272 parameter.type = PARAMETER.MAP;
\r
276 if ( UtilityService.hasContents(inputs[key][PARAMETER.CONSTRAINTS])
\r
277 && ( inputs[key][PARAMETER.CONSTRAINTS].length > 0 ) ) {
\r
278 var constraintsArray = inputs[key][PARAMETER.CONSTRAINTS];
\r
279 //console.log ("Calling addConstraintParameters for input name=" + key);
\r
280 addConstraintParameters (parameterList, constraintsArray, key, inputs, parameter);
\r
284 parameterList.push(parameter);
\r
290 var addConstraintParameters = function(parameterList, constraintsArray, key, inputs, parameter) {
\r
291 // If there are constraints and the operator is "valid_values",
\r
292 // use a select parameter type.
\r
293 var i = constraintsArray.length;
\r
294 var parameterPushed = false;
\r
296 while ( (i--) && (!parameterPushed) ) {
\r
297 var keys = Object.keys(constraintsArray[i]);
\r
298 //var keys_len = keys.length;
\r
299 for ( var operator in keys ) {
\r
300 //console.log ("keys[operator]=" + keys[operator]);
\r
301 switch (keys[operator]) {
\r
302 case PARAMETER.VALID_VALUES:
\r
303 var j = constraintsArray[i][PARAMETER.VALID_VALUES].length;
\r
309 name: constraintsArray[i][PARAMETER.VALID_VALUES][j],
\r
312 if ( ( UtilityService.hasContents (inputs[key][PARAMETER.DEFAULT]) )
\r
313 && (inputs[key][PARAMETER.DEFAULT] === constraintsArray[i][PARAMETER.VALID_VALUES][j] ) ) {
\r
315 name: constraintsArray[i][PARAMETER.VALID_VALUES][j],
\r
319 oList.push(option);
\r
321 parameter.type = PARAMETER.SELECT;
\r
322 parameter.optionList = oList;
\r
323 parameterList.push(parameter);
\r
324 parameterPushed = true;
\r
325 //console.log ("pushed param for valid values");
\r
329 case PARAMETER.EQUAL:
\r
330 if ( constraintsArray[i][PARAMETER.EQUAL] != null ) {
\r
331 //override parameter type
\r
332 parameter.type = PARAMETER.STRING;
\r
333 parameter.isReadOnly = true;
\r
334 parameter.value = constraintsArray[i][PARAMETER.EQUAL];
\r
335 parameterList.push(parameter);
\r
336 parameterPushed = true;
\r
337 //console.log ("pushed param for equal");
\r
341 case PARAMETER.LENGTH:
\r
342 if ( constraintsArray[i][PARAMETER.LENGTH] != null ) {
\r
343 parameter.minLength = constraintsArray[i][PARAMETER.LENGTH];
\r
344 parameter.maxLength = constraintsArray[i][PARAMETER.LENGTH];
\r
345 parameterList.push(parameter);
\r
346 parameterPushed = true;
\r
347 //console.log ("pushed param for length: ");
\r
348 //console.log (JSON.stringify (parameter, null, 4));
\r
351 case PARAMETER.MAX_LENGTH:
\r
352 if ( constraintsArray[i][PARAMETER.MAX_LENGTH] != null ) {
\r
353 parameter.maxLength = constraintsArray[i][PARAMETER.MAX_LENGTH];
\r
354 parameterList.push(parameter);
\r
355 parameterPushed = true;
\r
356 //console.log ("pushed param for max length: ");
\r
357 //console.log (JSON.stringify (parameter, null, 4));
\r
360 case PARAMETER.MIN_LENGTH:
\r
361 if ( constraintsArray[i][PARAMETER.MIN_LENGTH] != null ) {
\r
362 parameter.minLength = constraintsArray[i][PARAMETER.MIN_LENGTH];
\r
363 parameterList.push(parameter);
\r
364 parameterPushed = true;
\r
365 //console.log ("pushed param for min length: ");
\r
366 //console.log (JSON.stringify (parameter, null, 4));
\r
369 case PARAMETER.IN_RANGE:
\r
370 if ( constraintsArray[i][PARAMETER.IN_RANGE] != null ) {
\r
371 if (constraintsArray[i][PARAMETER.IN_RANGE].length > 1 ) {
\r
372 parameter.min = constraintsArray[i][PARAMETER.IN_RANGE][0];
\r
373 parameter.max = constraintsArray[i][PARAMETER.IN_RANGE][1];
\r
374 parameter.type = PARAMETER.NUMBER;
\r
375 parameter.value = inputs[key][PARAMETER.DEFAULT]
\r
376 parameterList.push(parameter);
\r
377 parameterPushed = true;
\r
378 //console.log ("pushed param for in_range");
\r
382 case PARAMETER.GREATER_THAN:
\r
383 if ( constraintsArray[i][PARAMETER.GREATER_THAN] != null ) {
\r
384 parameter.type = PARAMETER.NUMBER;
\r
385 parameter.min = constraintsArray[i][PARAMETER.GREATER_THAN];
\r
386 parameter.value = inputs[key][PARAMETER.DEFAULT]
\r
387 parameterList.push(parameter);
\r
388 parameterPushed = true;
\r
389 //console.log ("pushed param for greater_than");
\r
399 var addToList = function(name, value) {
\r
400 _this.parameterList.push({
\r
407 * The "*Mso*" functions return URL and request details that can be passed
\r
408 * to the MSO controller. The request details defines the info passed as
\r
409 * part of the POST body.
\r
412 var getMsoUrl = function() {
\r
413 switch (_this.componentId) {
\r
414 case COMPONENT.NETWORK:
\r
415 return "mso_create_nw_instance/"
\r
416 + DataService.getServiceInstanceId();
\r
417 case COMPONENT.SERVICE:
\r
418 return "mso_create_svc_instance";
\r
419 case COMPONENT.VNF:
\r
420 return "mso_create_vnf_instance/"
\r
421 + DataService.getServiceInstanceId();
\r
422 case COMPONENT.VF_MODULE:
\r
423 return "mso_create_vfmodule_instance/"
\r
424 + DataService.getServiceInstanceId() + "/vnfs/"
\r
425 + DataService.getVnfInstanceId();
\r
426 case COMPONENT.VOLUME_GROUP:
\r
427 return "mso_create_volumegroup_instance/"
\r
428 + DataService.getServiceInstanceId() + "/vnfs/"
\r
429 + DataService.getVnfInstanceId();
\r
433 var getMsoRequestDetails = function(parameterList) {
\r
434 console.log("getMsoRequestDetails invoked, parameterList="); console.log(JSON.stringify(parameterList,null,4));
\r
435 var modelInfo = DataService.getModelInfo(_this.componentId);
\r
436 var requestorloggedInId = DataService.getLoggedInUserId();
\r
437 if (requestorloggedInId == null)
\r
438 requestorloggedInId = "";
\r
439 var isSupRollback = false;
\r
440 if (getValueFromList(FIELD.ID.SUPPRESS_ROLLBACK,parameterList) === "true") {
\r
441 isSupRollback = true;
\r
443 var requestDetails = {
\r
445 instanceName : getValueFromList(FIELD.ID.INSTANCE_NAME,
\r
447 source : FIELD.ID.VID,
\r
448 suppressRollback : isSupRollback,
\r
449 requestorId: requestorloggedInId
\r
452 modelType : _this.componentId,
\r
453 modelInvariantId : modelInfo.modelInvariantId,
\r
454 modelVersionId : modelInfo.modelNameVersionId,
\r
455 modelName : modelInfo.modelName,
\r
456 modelVersion : modelInfo.modelVersion,
\r
457 modelCustomizationId: modelInfo.customizationUuid,
\r
458 modelCustomizationName : modelInfo.modelCustomizationName
\r
460 requestParameters : {
\r
461 userParams : getArbitraryParameters(parameterList)
\r
464 if ( (_this.componentId != COMPONENT.SERVICE) || ( !DataService.getALaCarte() ) ) {
\r
465 // include cloud region for everything but service create alacarte
\r
466 var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);
\r
467 if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {
\r
468 lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,
\r
471 requestDetails.cloudConfiguration = {
\r
472 lcpCloudRegionId : lcpRegion,
\r
473 tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)
\r
476 switch (_this.componentId) {
\r
477 case COMPONENT.SERVICE:
\r
478 requestDetails.subscriberInfo = {
\r
479 globalSubscriberId : DataService.getGlobalCustomerId(),
\r
480 subscriberName : DataService.getSubscriberName()
\r
482 requestDetails.requestParameters.subscriptionServiceType = getValueFromList(
\r
483 FIELD.ID.SERVICE_TYPE, parameterList);
\r
484 requestDetails.requestParameters.aLaCarte = DataService.getALaCarte();
\r
485 if ( !DataService.getALaCarte() ) {
\r
486 requestDetails.requestInfo.productFamilyId = getValueFromList(
\r
487 FIELD.ID.PRODUCT_FAMILY, parameterList);
\r
489 var svcModelInfo = {
\r
490 modelType : _this.componentId,
\r
491 modelInvariantId : modelInfo.modelInvariantId,
\r
492 modelVersionId : modelInfo.modelNameVersionId,
\r
493 modelName : modelInfo.modelName,
\r
494 modelVersion : modelInfo.modelVersion
\r
496 requestDetails.modelInfo = svcModelInfo;
\r
498 case COMPONENT.VNF:
\r
500 requestDetails.requestInfo.productFamilyId = getValueFromList(
\r
501 FIELD.ID.PRODUCT_FAMILY, parameterList);
\r
503 case COMPONENT.NETWORK:
\r
504 requestDetails.requestInfo.productFamilyId = getValueFromList(
\r
505 FIELD.ID.PRODUCT_FAMILY, parameterList);
\r
508 case COMPONENT.VF_MODULE:
\r
510 case COMPONENT.VOLUME_GROUP:
\r
514 var relatedInstanceList = getRelatedInstanceList(parameterList);
\r
516 if (relatedInstanceList !== undefined) {
\r
517 requestDetails.relatedInstanceList = relatedInstanceList;
\r
520 return requestDetails;
\r
523 var getRelatedInstanceList = function(parameterList) {
\r
524 var relatedInstanceList = new Array();
\r
525 switch (_this.componentId) {
\r
526 case COMPONENT.SERVICE:
\r
528 case COMPONENT.NETWORK:
\r
529 case COMPONENT.VNF:
\r
530 addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,
\r
531 DataService.getServiceInstanceId());
\r
533 case COMPONENT.VF_MODULE:
\r
534 addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,
\r
535 DataService.getServiceInstanceId());
\r
536 addRelatedInstance(relatedInstanceList, COMPONENT.VNF, DataService
\r
537 .getVnfInstanceId());
\r
539 var availableVolumeGroup = getValueFromList(
\r
540 FIELD.ID.AVAILABLE_VOLUME_GROUP, parameterList);
\r
542 if (UtilityService.hasContents(availableVolumeGroup) && availableVolumeGroup !== "None") {
\r
543 var availableVolumeGroups = DataService.getAvailableVolumeGroupList();
\r
545 for (var i = 0; i < availableVolumeGroups.length; i++) {
\r
546 if (availableVolumeGroups[i].instance.name == availableVolumeGroup) {
\r
547 DataService.setModelInfo(COMPONENT.VOLUME_GROUP, DataService.getModelInfo(COMPONENT.VF_MODULE));
\r
548 DataService.setVolumeGroupInstanceId(availableVolumeGroups[i].instance.object["volume-group-id"]);
\r
553 addRelatedInstance(relatedInstanceList, COMPONENT.VOLUME_GROUP,
\r
554 DataService.getVolumeGroupInstanceId());
\r
557 case COMPONENT.VOLUME_GROUP:
\r
558 addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,
\r
559 DataService.getServiceInstanceId());
\r
560 addRelatedInstance(relatedInstanceList, COMPONENT.VNF, DataService
\r
561 .getVnfInstanceId());
\r
565 return relatedInstanceList;
\r
568 var addRelatedInstance = function(relatedInstanceList, componentId,
\r
570 var modelInfo = DataService.getModelInfo(componentId);
\r
571 var relatedInstance;
\r
572 if (modelInfo !== undefined) {
\r
573 if (componentId === COMPONENT.SERVICE) {
\r
574 relatedInstance = {
\r
575 "instanceId" : instanceId,
\r
577 "modelType" : componentId,
\r
578 "modelName" : modelInfo.modelName,
\r
579 "modelInvariantId" : modelInfo.modelInvariantId,
\r
580 "modelVersion" : modelInfo.modelVersion,
\r
581 "modelVersionId" : modelInfo.modelNameVersionId,
\r
587 relatedInstance = {
\r
588 "instanceId" : instanceId,
\r
590 "modelType" : componentId,
\r
591 "modelName" : modelInfo.modelName,
\r
592 "modelInvariantId" : modelInfo.modelInvariantId,
\r
593 "modelVersion" : modelInfo.modelVersion,
\r
594 "modelVersionId" : modelInfo.modelNameVersionId,
\r
595 "modelCustomizationId": modelInfo.customizationUuid,
\r
596 "modelCustomizationName": modelInfo.modelCustomizationName
\r
600 relatedInstanceList.push({
\r
601 relatedInstance : relatedInstance
\r
607 * var getArbitraryParameters = function(parameterList) { var
\r
608 * arbitraryParameters = new Object(); for (var i = 0; i <
\r
609 * parameterList.length; i++) { var parameter = parameterList[i]; switch
\r
610 * (parameter.id) { case FIELD.ID.INSTANCE_NAME: case
\r
611 * FIELD.ID.PRODUCT_FAMILY: case FIELD.ID.LCP_REGION: case
\r
612 * FIELD.ID.LCP_REGION_TEXT: case FIELD.ID.SERVICE_TYPE: case
\r
613 * FIELD.ID.TENANT: case FIELD.ID.SUPPRESS_ROLLBACK: break; default:
\r
614 * arbitraryParameters[parameter.id] = parameter.value; } } return
\r
615 * arbitraryParameters; }
\r
617 var getArbitraryParameters = function(parameterList) {
\r
618 var arbitraryParameters = new Object();
\r
619 var arbitraryArray = new Array();
\r
620 for (var i = 0; i < parameterList.length; i++) {
\r
621 var parameter = parameterList[i];
\r
622 switch (parameter.id) {
\r
623 case FIELD.ID.AVAILABLE_VOLUME_GROUP:
\r
625 case FIELD.ID.INSTANCE_NAME:
\r
627 case FIELD.ID.PRODUCT_FAMILY:
\r
629 case FIELD.ID.LCP_REGION:
\r
631 case FIELD.ID.LCP_REGION_TEXT:
\r
633 case FIELD.ID.SERVICE_TYPE:
\r
635 case FIELD.ID.TENANT:
\r
637 case FIELD.ID.SUPPRESS_ROLLBACK:
\r
639 case FIELD.ID.SUBSCRIBER_NAME:
\r
642 arbitraryParameters = {
\r
643 name : parameter.id,
\r
644 value : parameter.value
\r
646 arbitraryArray.push(arbitraryParameters);
\r
649 return (arbitraryArray);
\r
652 var getModel = function() {
\r
653 AsdcService.getModel(DataService.getModelId(), function(response) {
\r
654 DataService.setModelInfo(_this.componentId, {
\r
655 modelInvariantId : response.data.invariantUUID,
\r
656 modelNameVersionId : response.data.uuid,
\r
657 modelName : response.data.name,
\r
658 modelVersion : response.data.version,
\r
659 inputs : response.data.inputs
\r
661 UtilityService.startNextAsyncOperation();
\r
665 var getSubscriptionServiceTypeList = function() {
\r
666 AaiService.getSubscriptionServiceTypeList(DataService
\r
667 .getGlobalCustomerId(), function(response) {
\r
668 DataService.setSubscriptionServiceTypeList(response);
\r
669 UtilityService.startNextAsyncOperation();
\r
673 var getLoggedInUserID = function() {
\r
674 AaiService.getLoggedInUserID(function(response) {
\r
675 DataService.setLoggedInUserId(response.data);
\r
676 UtilityService.startNextAsyncOperation();
\r
680 var getSubscribers = function() {
\r
681 AaiService.getSubscribers(function(response) {
\r
682 DataService.setSubscribers(response);
\r
683 UtilityService.startNextAsyncOperation();
\r
686 var getServices = function() {
\r
687 AaiService.getServices(function(response) {
\r
688 var serviceIdList = [];
\r
689 angular.forEach(response.data, function(value, key) {
\r
690 angular.forEach(value, function(subVal, key) {
\r
691 var newVal = { "id" : subVal[FIELD.ID.SERVICE_ID], "description" : subVal[FIELD.ID.SERVICE_DESCRIPTION] };
\r
692 serviceIdList.push(newVal);
\r
693 DataService.setServiceIdList(serviceIdList);
\r
697 UtilityService.startNextAsyncOperation();
\r
700 var getLcpCloudRegionTenantList = function() {
\r
701 AaiService.getLcpCloudRegionTenantList(DataService
\r
702 .getGlobalCustomerId(), DataService.getServiceType(), function(
\r
704 DataService.setCloudRegionTenantList(response);
\r
705 UtilityService.startNextAsyncOperation();
\r
709 var internalGetParametersHandler = function() {
\r
710 if (angular.isFunction(_this.getParametersHandler)) {
\r
711 _this.getParametersHandler({
\r
712 summaryList : getSummaryList(),
\r
713 userProvidedList : getUserProvidedList()
\r
718 var getSubscribersParameter = function() {
\r
719 var subscribers = DataService.getSubscribers();
\r
720 var parameter = FIELD.PARAMETER.SUBSCRIBER_NAME;
\r
721 if ( UtilityService.hasContents(subscribers)) {
\r
722 parameter.optionList = [];
\r
724 for (var i = 0; i < subscribers.length; i++) {
\r
725 parameter.optionList.push({
\r
726 id : subscribers[i][FIELD.ID.GLOBAL_CUSTOMER_ID],
\r
727 name : subscribers[i][FIELD.ID.SUBNAME]
\r
734 var getServiceId = function() {
\r
735 var serviceIdList = DataService.getServiceIdList();
\r
736 var serviceTypeList = DataService.getSubscriptionServiceTypeList();
\r
737 var parameter = FIELD.PARAMETER.PRODUCT_FAMILY;
\r
738 parameter.optionList = new Array();
\r
740 if (serviceTypeList == null) {
\r
741 getSubscriptionServiceTypeList();
\r
742 serviceTypeList = DataService.getSubscriptionServiceTypeList();
\r
745 if ( UtilityService.hasContents (serviceIdList) ) {
\r
746 for (var i = 0; i < serviceIdList.length; i++) {
\r
748 var name = serviceIdList[i].id;
\r
750 if (UtilityService.hasContents(serviceTypeList) ) {
\r
751 console.log("STL: " + serviceTypeList);
\r
752 for (var k = 0; k < serviceTypeList.length; k++) {
\r
753 if (angular.equals(name,serviceTypeList[k])) {
\r
763 parameter.optionList.push({
\r
764 id : serviceIdList[i].id,
\r
765 name : serviceIdList[i].description
\r
768 } // load them all, ours wasn't in the list
\r
770 for (var i = 0; i < serviceIdList.length; i++) {
\r
771 parameter.optionList.push({
\r
772 id : serviceIdList[i].id,
\r
773 name : serviceIdList[i].description
\r
781 var getLcpRegion = function() {
\r
782 var cloudRegionTenantList = DataService.getCloudRegionTenantList();
\r
783 var parameter = FIELD.PARAMETER.LCP_REGION;
\r
784 if ( UtilityService.hasContents (cloudRegionTenantList) ) {
\r
785 parameter.optionList = new Array();
\r
786 for (var i = 0; i < cloudRegionTenantList.length; i++) {
\r
787 for (var j = 0; j < parameter.optionList.length; j++) {
\r
788 if (parameter.optionList[j].id === cloudRegionTenantList[i].cloudRegionId) {
\r
792 if (j < parameter.optionList.length) {
\r
795 parameter.optionList.push({
\r
796 id : cloudRegionTenantList[i].cloudRegionId
\r
803 var getTenantList = function(cloudRegionId) {
\r
804 var cloudRegionTenantList = DataService.getCloudRegionTenantList();
\r
805 var parameter = "";
\r
806 if ( UtilityService.hasContents (cloudRegionTenantList) ) {
\r
807 parameter = FIELD.PARAMETER.TENANT_ENABLED;
\r
808 parameter.optionList = new Array();
\r
809 for (var i = 0; i < cloudRegionTenantList.length; i++) {
\r
810 if (cloudRegionTenantList[i].cloudRegionId === cloudRegionId) {
\r
811 parameter.optionList.push({
\r
812 id : cloudRegionTenantList[i].tenantId,
\r
813 name : cloudRegionTenantList[i].tenantName
\r
822 var addOptionList = function(parameter, optionSimpleArray) {
\r
823 var optionList = new Array();
\r
824 if (!angular.isArray(optionSimpleArray)) {
\r
827 for (var i = 0; i < optionSimpleArray.length; i++) {
\r
829 name : optionSimpleArray[i]
\r
832 parameter.optionList = optionList;
\r
836 var getValueFromList = function(id, parameterList) {
\r
837 for (var i = 0; i < parameterList.length; i++) {
\r
838 if (parameterList[i].id === id) {
\r
839 return parameterList[i].value;
\r
843 var updateUserParameterList = function(updatedId, parameterListControl) {
\r
844 console.log ("updateUserParameterList() updatedId=" + updatedId);
\r
845 if (updatedId === FIELD.ID.LCP_REGION) {
\r
846 var list = parameterListControl.getList(updatedId);
\r
847 if (list[0].selectedIndex >= 0) {
\r
848 parameterListControl
\r
849 .updateList([ getTenantList(list[0].value) ]);
\r
851 parameterListControl
\r
852 .updateList([ FIELD.PARAMETER.TENANT_DISABLED ]);
\r
854 if (list[0].value === FIELD.KEY.LCP_REGION_TEXT) {
\r
855 parameterListControl
\r
856 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_VISIBLE ]);
\r
858 parameterListControl
\r
859 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN ]);
\r
861 } else if (updatedId === FIELD.ID.SUBSCRIBER_NAME) {
\r
862 var list = parameterListControl.getList(updatedId);
\r
863 if (list[0].selectedIndex >= 0) {
\r
864 DataService.setGlobalCustomerId(list[0].value);
\r
866 AaiService.getSubscriptionServiceTypeList(DataService
\r
867 .getGlobalCustomerId(), function(response) {
\r
868 DataService.setSubscriptionServiceTypeList(response);
\r
869 var serviceTypeParameters = FIELD.PARAMETER.SERVICE_TYPE;
\r
870 serviceTypeParameters.optionList = [];
\r
872 for (var i = 0; i < response.length; i++) {
\r
873 serviceTypeParameters.optionList.push({
\r
874 "id" : response[i],
\r
875 "name" : response[i]
\r
878 console.log ( "updateUserParameterList: service type parameters " );
\r
879 console.log ( JSON.stringify (serviceTypeParameters, null, 4));
\r
880 parameterListControl.updateList([ serviceTypeParameters ]);
\r
884 } else if ( updatedId === FIELD.ID.SERVICE_TYPE ) {
\r
885 var list = parameterListControl.getList(updatedId);
\r
886 if (list[0].selectedIndex >= 0) {
\r
888 DataService.setServiceType(list[0].value);
\r
889 var cloudRegionTenantList = new Array();
\r
890 AaiService.getLcpCloudRegionTenantList(DataService.getGlobalCustomerId(), DataService.getServiceType(), function(cloudRegionTenantList) {
\r
891 DataService.setCloudRegionTenantList(cloudRegionTenantList);
\r
892 parameterListControl.updateList([ getLcpRegion() ]);
\r
895 parameterListControl
\r
896 .updateList([ FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);
\r
903 initializeComponent : function(componentId) {
\r
904 _this.componentId = ComponentService.initialize(componentId);
\r
906 setHttpErrorHandler : function(httpErrorHandler) {
\r
907 _this.httpErrorHandler = httpErrorHandler;
\r
909 getComponentDisplayName : ComponentService.getComponentDisplayName,
\r
910 getParameters : function(getParametersHandler) {
\r
911 _this.getParametersHandler = getParametersHandler;
\r
912 UtilityService.setHttpErrorHandler(_this.httpErrorHandler);
\r
913 UtilityService.startAsyncOperations(getAsyncOperationList(),
\r
914 internalGetParametersHandler);
\r
916 updateUserParameterList : updateUserParameterList,
\r
917 getMsoRequestDetails : getMsoRequestDetails,
\r
918 getMsoUrl : getMsoUrl
\r
922 appDS2.factory("CreationService", [ "$log", "AaiService", "AsdcService",
\r
923 "DataService", "ComponentService", "COMPONENT", "FIELD", "PARAMETER",
\r
924 "UtilityService", CreationService ]);
\r