[VID-12] Delivery of remaining features for v1.1
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / creationService.js
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * VID\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
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \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
19  */\r
20 \r
21 "use strict";\r
22 \r
23 /*\r
24  * "CreationService" isolates the "component-specific" logic required by the\r
25  * "CreationDialog" controller.\r
26  *\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
29  * \r
30  */\r
31 \r
32 var CreationService = function($log, AaiService, AsdcService, DataService,VIDCONFIGURATION,\r
33                 ComponentService, COMPONENT, FIELD, PARAMETER, UtilityService) {\r
34 \r
35         var _this = this;\r
36 \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
45                 case COMPONENT.VNF:\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
51                 }\r
52         };\r
53 \r
54         /*\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
59          */\r
60 \r
61         var getSummaryList = function() {\r
62 \r
63                 /*\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
67                  */\r
68 \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
74 \r
75                 _this.parameterList = new Array();\r
76 \r
77                 /*\r
78                  * Common fields displayed at the top of all create instance screens.\r
79                  */\r
80                 if(DataService.getModelInfo(_this.componentId)["serviceTypeName"]==null \r
81                                 || DataService.getModelInfo(_this.componentId)["serviceTypeName"]==undefined\r
82                                 || DataService.getModelInfo(_this.componentId)["serviceTypeName"]==''){\r
83                         addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());\r
84                 }\r
85 \r
86                 switch (_this.componentId) {\r
87                 case COMPONENT.SERVICE:\r
88                         if ( !DataService.getALaCarte() ) {\r
89                                 // for macro instantiation need to add the resource names under the node template list\r
90                                 // this field is called modelCustomizationName in the asdc client code\r
91                                 var p;\r
92                                 var rlist = DataService.getResources();\r
93                                 var res;\r
94                                 if ( rlist != null ) { \r
95                                         for (var i = 0; i < rlist.length; i++) {\r
96                                                 res = rlist[i];\r
97                                         \r
98                                                 p = FIELD.NAME.RESOURCE_NAME.concat(" " + (i+1));\r
99                                                 addToList(p, res.name );\r
100                                                 p = FIELD.NAME.RESOURCE_DESCRIPTION.concat(" " + (i+1));\r
101                                                 addToList(p, res.description );\r
102                                         }\r
103                                 }\r
104                         }\r
105                         if(DataService.getModelInfo(_this.componentId)["createSubscriberName"]!=null && DataService.getModelInfo(_this.componentId)["createSubscriberName"]!=''){\r
106                                 addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
107                                                 .getModelInfo(_this.componentId)["createSubscriberName"]);\r
108                         }\r
109                         if(DataService.getModelInfo(_this.componentId)["serviceTypeName"]!=null && DataService.getModelInfo(_this.componentId)["serviceTypeName"]!=''){\r
110                                 addToList(FIELD.NAME.SERVICE_TYPE, DataService\r
111                                                 .getModelInfo(_this.componentId)["serviceTypeName"]);\r
112                                 addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());\r
113                         }\r
114                         addToList(FIELD.NAME.SERVICE_INVARIANT_UUID, DataService\r
115                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
116                         addToList(FIELD.NAME.SERVICE_VERSION, DataService\r
117                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
118                         addToList(FIELD.NAME.SERVICE_UUID, DataService\r
119                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
120                         addToList(FIELD.NAME.SERVICE_DESCRIPTION, DataService\r
121                                         .getModelInfo(_this.componentId)[FIELD.ID.DESCRIPTION]);\r
122                         addToList(FIELD.NAME.SERVICE_CATEGORY, DataService\r
123                                         .getModelInfo(_this.componentId)[FIELD.ID.CATEGORY]);\r
124                         break;\r
125                 case COMPONENT.VF_MODULE:\r
126                         addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
127                                         .getSubscriberName());\r
128                         addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService\r
129                                         .getServiceInstanceName());\r
130                         addToList(FIELD.NAME.MODEL_NAME, DataService\r
131                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);\r
132                         addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService\r
133                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
134                         addToList(FIELD.NAME.MODEL_VERSION, DataService\r
135                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
136                         addToList(FIELD.NAME.MODEL_UUID, DataService\r
137                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
138                         addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService\r
139                                         .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);\r
140                         break;\r
141                 case COMPONENT.VNF:\r
142                         addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
143                                         .getSubscriberName());\r
144                         addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService\r
145                                         .getServiceInstanceName());\r
146                         addToList(FIELD.NAME.MODEL_NAME, DataService\r
147                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);\r
148                         addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService\r
149                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
150                         addToList(FIELD.NAME.MODEL_VERSION, DataService\r
151                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
152                         addToList(FIELD.NAME.MODEL_UUID, DataService\r
153                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
154                         addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService\r
155                                         .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);\r
156                         addToList(FIELD.NAME.MODEL_CUSTOMIZATION_NAME, DataService\r
157                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_CUSTOMIZATION_NAME]);\r
158                         addToList(FIELD.NAME.MODEL_VNF_TYPE, DataService\r
159                                         .getModelInfo(_this.componentId)[COMPONENT.VNF_TYPE]);\r
160                         addToList(FIELD.NAME.MODEL_VNF_ROLE, DataService\r
161                                         .getModelInfo(_this.componentId)[COMPONENT.VNF_ROLE]);\r
162                         addToList(FIELD.NAME.MODEL_VNF_FUNCTION, DataService\r
163                                         .getModelInfo(_this.componentId)[COMPONENT.VNF_FUNCTION]);\r
164                         addToList(FIELD.NAME.MODEL_VNF_CODE, DataService\r
165                                         .getModelInfo(_this.componentId)[COMPONENT.VNF_CODE]);\r
166                         break;\r
167                 case COMPONENT.NETWORK:\r
168                 case COMPONENT.VOLUME_GROUP:\r
169                         addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
170                                         .getSubscriberName());\r
171                         addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService\r
172                                         .getServiceInstanceName());\r
173                         addToList(FIELD.NAME.MODEL_NAME, DataService\r
174                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);\r
175                         addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService\r
176                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
177                         addToList(FIELD.NAME.MODEL_VERSION, DataService\r
178                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
179                         addToList(FIELD.NAME.MODEL_UUID, DataService\r
180                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
181                         addToList(FIELD.NAME.MODEL_CUSTOMIZATION_UUID, DataService\r
182                                         .getModelInfo(_this.componentId)[FIELD.ID.CUSTOMIZATION_UUID]);\r
183                         break;\r
184                 }\r
185 \r
186                 return _this.parameterList;\r
187         };\r
188 \r
189         var getUserProvidedList = function() {\r
190                 parameterList = [];\r
191                 var isUserProvidedNaming = false;\r
192                 if ( (DataService.getModelInfo(_this.componentId).serviceEcompNaming != null) \r
193                                 && (DataService.getModelInfo(_this.componentId).serviceEcompNaming === "false") ) {\r
194                         isUserProvidedNaming = true;\r
195                 }\r
196                 var parameterList;\r
197                 var hsf = DataService.getHideServiceFields() || false;\r
198                 if (_this.componentId === COMPONENT.SERVICE && !hsf) {  \r
199                         if ( DataService.getALaCarte() ) {\r
200                                 parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];\r
201                                 parameterList = parameterList.concat([ getSubscribersParameter(),\r
202                                     FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);\r
203                         }\r
204                         else {\r
205                                 // macro\r
206                                 if (isUserProvidedNaming) {\r
207                                         parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];\r
208                                         \r
209                                 }\r
210                                 parameterList = parameterList.concat([ getSubscribersParameter() ]);\r
211                                 parameterList = parameterList.concat([ getServiceId(),\r
212                                         FIELD.PARAMETER.SERVICE_TYPE,\r
213                                         FIELD.PARAMETER.LCP_REGION,\r
214                                         FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
215                                         FIELD.PARAMETER.TENANT_DISABLED ]);\r
216                         }\r
217                 }\r
218                 else {\r
219                         parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];\r
220                         switch (_this.componentId) {\r
221                         case COMPONENT.NETWORK:\r
222                         case COMPONENT.VNF:\r
223                                 parameterList = parameterList.concat([ getServiceId(),\r
224                                                 getLcpRegion(), FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
225                                                 FIELD.PARAMETER.TENANT_DISABLED ]);\r
226                                 break;\r
227                         case COMPONENT.VF_MODULE:\r
228                                 parameterList = parameterList.concat([\r
229                                         getLcpRegion(),\r
230                                                 FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
231                                                 FIELD.PARAMETER.TENANT_DISABLED\r
232                                 ]);\r
233                                 \r
234                                 var availableVolumeGroupList = DataService.getAvailableVolumeGroupList();\r
235                                 \r
236                                 if (availableVolumeGroupList && availableVolumeGroupList.length > 0) {\r
237                                         var availableVolumeGroupNames = [FIELD.STATUS.NONE];\r
238         \r
239                                         for (var i = 0; i < availableVolumeGroupList.length; i++) {\r
240                                                 availableVolumeGroupNames.push(availableVolumeGroupList[i].instance.name);\r
241                                         }\r
242                                         \r
243                                         parameterList.push(addOptionList(\r
244                                                         FIELD.PARAMETER.AVAILABLE_VOLUME_GROUP,\r
245                                                         availableVolumeGroupNames));\r
246                                 }\r
247                                 break;\r
248                         case COMPONENT.VOLUME_GROUP:\r
249                                 parameterList = parameterList.concat([ getLcpRegion(),\r
250                                                 FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
251                                                 FIELD.PARAMETER.TENANT_DISABLED ]);\r
252                         }\r
253                 }\r
254                 parameterList.push(FIELD.PARAMETER.SUPPRESS_ROLLBACK);\r
255                 if(_this.componentId === COMPONENT.VF_MODULE ){\r
256                         parameterList.push({name: "SDN-C Pre-Load",\r
257                                 id: "sdncPreload",\r
258                                 type: "checkbox",\r
259                                 isEnabled: true,\r
260                                 isRequired: false\r
261                                 }\r
262                         );\r
263                         parameterList.push({name: "Upload Supplementory Data file",\r
264                                 id: "uploadSupplementoryDataFile",\r
265                                 type: "checkbox",\r
266                                 isEnabled: true,\r
267                                 isRequired: false\r
268                                 }\r
269                         );\r
270                         \r
271                         parameterList.push({name: "Supplemetory file (JSON format)",\r
272                                 id: "supplementoryDataFile",\r
273                                 type: "file",\r
274                                 isRequired: false,\r
275                                 isVisiblity: false\r
276                                 }\r
277                         );\r
278                 }\r
279                 \r
280                 if( VIDCONFIGURATION.UPLOAD_SUPPLEMENTARY_STATUS_CHECK_ENABLED  && _this.componentId === COMPONENT.VOLUME_GROUP){\r
281                                 parameterList.push({name: "Upload Supplementory Data file",\r
282                                         id: "uploadSupplementoryDataFile",\r
283                                         type: "checkbox",\r
284                                         isEnabled: true,\r
285                                         isRequired: false\r
286                                         }\r
287                                 );\r
288                                 \r
289                                 parameterList.push({name: "Supplemetory file (JSON format)",\r
290                                         id: "supplementoryDataFile",\r
291                                         type: "file",\r
292                                         isRequired: false,\r
293                                         isVisiblity: false\r
294                                         }\r
295                                 );\r
296                         }\r
297 \r
298                 addArbitraryParameters(parameterList);\r
299 \r
300                 return parameterList;\r
301         };\r
302 \r
303         var addArbitraryParameters = function(parameterList) {\r
304                 if ( DataService.getModelInfo(_this.componentId).displayInputs != null ) {\r
305                         var inputs = DataService.getModelInfo(_this.componentId).displayInputs;  \r
306                         for ( var key in inputs) {\r
307                                 var parameter = {\r
308                                                 id : key,\r
309                                                 type : PARAMETER.STRING,\r
310                                                 name : ComponentService.getFieldDisplayName(key),\r
311                                                 value : inputs[key][PARAMETER.DEFAULT],\r
312                                                 isRequired : inputs[key][PARAMETER.REQUIRED],\r
313                                                 description : inputs[key][PARAMETER.DESCRIPTION]\r
314                                 };\r
315                                 switch (inputs[key][PARAMETER.TYPE]) {\r
316                                         case PARAMETER.INTEGER:\r
317                                                 parameter.type = PARAMETER.NUMBER;\r
318                                                 break;\r
319                                         case PARAMETER.BOOLEAN:\r
320                                                 parameter.type = PARAMETER.BOOLEAN;\r
321                                                 break;\r
322                                         case PARAMETER.RANGE:\r
323                                                 break;\r
324                                         case PARAMETER.LIST:\r
325                                                 parameter.type = PARAMETER.LIST;\r
326                                                 break;\r
327                                         case PARAMETER.MAP:\r
328                                                 parameter.type = PARAMETER.MAP;\r
329                                                 break;\r
330                                 }\r
331                         \r
332                                 if ( UtilityService.hasContents(inputs[key][PARAMETER.CONSTRAINTS]) \r
333                                                 && ( inputs[key][PARAMETER.CONSTRAINTS].length > 0 ) ) {\r
334                                         var constraintsArray = inputs[key][PARAMETER.CONSTRAINTS];\r
335                                         //console.log ("Calling addConstraintParameters for input name=" + key);\r
336                                         addConstraintParameters (parameterList, constraintsArray, key, inputs, parameter);\r
337                                 }\r
338                                 else {\r
339                                         \r
340                                         parameterList.push(parameter);\r
341                                 }\r
342                         }\r
343                         DataService.setArbitraryParameters (parameterList);\r
344                 }\r
345         };\r
346 \r
347         var addConstraintParameters = function(parameterList, constraintsArray, key, inputs, parameter) {\r
348                 // If there are constraints and the operator is "valid_values",\r
349                 // use a select parameter type. \r
350                 var i = constraintsArray.length;\r
351                 var parameterPushed = false;\r
352                 if ( i > 0 ) {\r
353                         while ( (i--) && (!parameterPushed) ) {\r
354                                 var keys = Object.keys(constraintsArray[i]);\r
355                                 //var keys_len = keys.length;\r
356                                 for ( var operator in keys ) {\r
357                                         //console.log ("keys[operator]=" + keys[operator]);\r
358                                         switch (keys[operator]) {\r
359                                         case PARAMETER.VALID_VALUES:\r
360                                                 var j = constraintsArray[i][PARAMETER.VALID_VALUES].length;\r
361                                                 if ( j > 0 ) {\r
362                                                         var oList = [];\r
363                                                         var option;\r
364                                                         while (j--) {\r
365                                                                 option = {\r
366                                                                                 name: constraintsArray[i][PARAMETER.VALID_VALUES][j],\r
367                                                                                 isDefault: false\r
368                                                                 } \r
369                                                                 if ( ( UtilityService.hasContents (inputs[key][PARAMETER.DEFAULT]) ) \r
370                                                                                 && (inputs[key][PARAMETER.DEFAULT] === constraintsArray[i][PARAMETER.VALID_VALUES][j] ) ) {\r
371                                                                         option = {\r
372                                                                                         name: constraintsArray[i][PARAMETER.VALID_VALUES][j],\r
373                                                                                         isDefault: true\r
374                                                                         } \r
375                                                                 }\r
376                                                                 oList.push(option);\r
377                                                         }\r
378                                                         parameter.type = PARAMETER.SELECT;\r
379                                                         parameter.optionList = oList;\r
380                                                         parameterList.push(parameter);\r
381                                                         parameterPushed = true;\r
382                                                         //console.log ("pushed param for valid values");\r
383                                                 }\r
384                                         break; \r
385                                         \r
386                                         case PARAMETER.EQUAL: \r
387                                                 if ( constraintsArray[i][PARAMETER.EQUAL] != null ) {\r
388                                                         //override parameter type\r
389                                                         parameter.type = PARAMETER.STRING;\r
390                                                         parameter.isReadOnly = true;\r
391                                                         parameter.value = constraintsArray[i][PARAMETER.EQUAL];\r
392                                                         parameterList.push(parameter);\r
393                                                         parameterPushed = true;\r
394                                                         //console.log ("pushed param for equal");\r
395                                                 }\r
396                                         break;\r
397                                                 \r
398                                         case PARAMETER.LENGTH: \r
399                                                 if ( constraintsArray[i][PARAMETER.LENGTH] != null ) {\r
400                                                         parameter.minLength = constraintsArray[i][PARAMETER.LENGTH];\r
401                                                         parameter.maxLength = constraintsArray[i][PARAMETER.LENGTH];\r
402                                                         parameterList.push(parameter);\r
403                                                         parameterPushed = true;\r
404                                                         //console.log ("pushed param for length: ");\r
405                                                         //console.log (JSON.stringify (parameter, null, 4));\r
406                                                 }\r
407                                         break;\r
408                                         case PARAMETER.MAX_LENGTH: \r
409                                                 if ( constraintsArray[i][PARAMETER.MAX_LENGTH] != null ) {\r
410                                                         parameter.maxLength = constraintsArray[i][PARAMETER.MAX_LENGTH];\r
411                                                         parameterList.push(parameter);\r
412                                                         parameterPushed = true;\r
413                                                         //console.log ("pushed param for max length: ");\r
414                                                         //console.log (JSON.stringify (parameter, null, 4));\r
415                                                 }\r
416                                         break;\r
417                                         case PARAMETER.MIN_LENGTH: \r
418                                                 if ( constraintsArray[i][PARAMETER.MIN_LENGTH] != null ) {\r
419                                                         parameter.minLength = constraintsArray[i][PARAMETER.MIN_LENGTH];\r
420                                                         parameterList.push(parameter);\r
421                                                         parameterPushed = true;\r
422                                                         //console.log ("pushed param for min length: ");\r
423                                                         //console.log (JSON.stringify (parameter, null, 4));\r
424                                                 }\r
425                                         break;\r
426                                         case PARAMETER.IN_RANGE:\r
427                                                 if ( constraintsArray[i][PARAMETER.IN_RANGE] != null ) {\r
428                                                         if (constraintsArray[i][PARAMETER.IN_RANGE].length > 1 ) {\r
429                                                                 parameter.min = constraintsArray[i][PARAMETER.IN_RANGE][0];\r
430                                                                 parameter.max = constraintsArray[i][PARAMETER.IN_RANGE][1];\r
431                                                                 parameter.type = PARAMETER.NUMBER;\r
432                                                                 parameter.value = inputs[key][PARAMETER.DEFAULT]\r
433                                                                 parameterList.push(parameter);\r
434                                                                 parameterPushed = true;\r
435                                                                 //console.log ("pushed param for in_range");\r
436                                                         }\r
437                                                 }\r
438                                         break; \r
439                                         case PARAMETER.GREATER_THAN:\r
440                                                 if ( constraintsArray[i][PARAMETER.GREATER_THAN] != null ) {\r
441                                                                 parameter.type = PARAMETER.NUMBER;\r
442                                                                 parameter.min = constraintsArray[i][PARAMETER.GREATER_THAN];\r
443                                                                 parameter.value = inputs[key][PARAMETER.DEFAULT]\r
444                                                                 parameterList.push(parameter);\r
445                                                                 parameterPushed = true;\r
446                                                                 //console.log ("pushed param for greater_than");\r
447                                                         \r
448                                                 }\r
449                                         break;\r
450                                         }//switch\r
451                                 }//for\r
452                                 \r
453                         }//while\r
454                 }//if\r
455         };\r
456         var addToList = function(name, value) {\r
457                 _this.parameterList.push({\r
458                         name : name,\r
459                         value : value\r
460                 });\r
461         };\r
462 \r
463         /*\r
464          * The "*Mso*" functions return URL and request details that can be passed\r
465          * to the MSO controller. The request details defines the info passed as\r
466          * part of the POST body.\r
467          */\r
468 \r
469         var getMsoUrl = function() {\r
470                 switch (_this.componentId) {\r
471                 case COMPONENT.NETWORK:\r
472                         return "mso_create_nw_instance/"\r
473                                         + DataService.getServiceInstanceId();\r
474                 case COMPONENT.SERVICE:\r
475                         return "mso_create_svc_instance";\r
476                 case COMPONENT.VNF:\r
477                         return "mso_create_vnf_instance/"\r
478                                         + DataService.getServiceInstanceId();\r
479                 case COMPONENT.VF_MODULE:\r
480                         return "mso_create_vfmodule_instance/"\r
481                                         + DataService.getServiceInstanceId() + "/vnfs/"\r
482                                         + DataService.getVnfInstanceId();\r
483                 case COMPONENT.VOLUME_GROUP:\r
484                         return "mso_create_volumegroup_instance/"\r
485                                         + DataService.getServiceInstanceId() + "/vnfs/"\r
486                                         + DataService.getVnfInstanceId();\r
487                 }\r
488         };\r
489 \r
490         var getMsoRequestDetails = function(parameterList) {\r
491                 console.log("getMsoRequestDetails invoked, parameterList="); console.log(JSON.stringify(parameterList,null,4));\r
492                 //console.log("getMsoRequestDetails invoked, DataService.getArbitraryParameters()="); \r
493                 //console.log(JSON.stringify(DataService.getArbitraryParameters(),null,4));\r
494                 \r
495                 var modelInfo = DataService.getModelInfo(_this.componentId);\r
496                 var requestorloggedInId = DataService.getLoggedInUserId();\r
497                 if (requestorloggedInId ==  null)\r
498                         requestorloggedInId = "";\r
499                 var isSupRollback = false;\r
500                 if (getValueFromList(FIELD.ID.SUPPRESS_ROLLBACK,parameterList) === "true") {\r
501                         isSupRollback = true;\r
502                 }\r
503                 var requestDetails = {\r
504                         requestInfo : {\r
505                                 instanceName : getValueFromList(FIELD.ID.INSTANCE_NAME,\r
506                                                 parameterList),\r
507                                 source : FIELD.ID.VID,\r
508                                 suppressRollback : isSupRollback,\r
509                                 requestorId: requestorloggedInId\r
510                         },\r
511                         modelInfo : {\r
512                                 modelType : _this.componentId,\r
513                                 modelInvariantId : modelInfo.modelInvariantId,\r
514                                 modelVersionId : modelInfo.modelNameVersionId,\r
515                                 modelName : modelInfo.modelName,\r
516                                 modelVersion : modelInfo.modelVersion,\r
517                                 modelCustomizationId: modelInfo.customizationUuid,\r
518                                 modelCustomizationName : modelInfo.modelCustomizationName\r
519                         },\r
520                         requestParameters : {\r
521                                 userParams : getArbitraryParameters(parameterList)\r
522                         }\r
523                 };\r
524                 if ( (_this.componentId != COMPONENT.SERVICE) || ( !DataService.getALaCarte() ) ) {\r
525                         // include cloud region for everything but service create alacarte\r
526                         var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);\r
527                         if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {\r
528                                 lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,\r
529                                                 parameterList);\r
530                         }\r
531                         requestDetails.cloudConfiguration = {\r
532                                         lcpCloudRegionId : lcpRegion,\r
533                                         tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)\r
534                         };      \r
535                 }\r
536                 switch (_this.componentId) {\r
537                 case COMPONENT.SERVICE:\r
538                         requestDetails.subscriberInfo = {\r
539                                 globalSubscriberId : DataService.getGlobalCustomerId(),\r
540                                 subscriberName : DataService.getSubscriberName()\r
541                         };\r
542                         requestDetails.requestParameters.subscriptionServiceType = getValueFromList(\r
543                                         FIELD.ID.SERVICE_TYPE, parameterList);\r
544                         requestDetails.requestParameters.aLaCarte = DataService.getALaCarte();\r
545                         if ( !DataService.getALaCarte() ) {\r
546                                 requestDetails.requestInfo.productFamilyId = getValueFromList(\r
547                                         FIELD.ID.PRODUCT_FAMILY, parameterList);\r
548                         }\r
549                         var svcModelInfo = {\r
550                                         modelType : _this.componentId,\r
551                                         modelInvariantId : modelInfo.modelInvariantId,\r
552                                         modelVersionId : modelInfo.modelNameVersionId,\r
553                                         modelName : modelInfo.modelName,\r
554                                         modelVersion : modelInfo.modelVersion\r
555                                 };\r
556                                 requestDetails.modelInfo = svcModelInfo;\r
557                         break;\r
558                 case COMPONENT.VNF:\r
559                         \r
560                         requestDetails.requestInfo.productFamilyId = getValueFromList(\r
561                                         FIELD.ID.PRODUCT_FAMILY, parameterList);\r
562                         break;\r
563                 case COMPONENT.NETWORK:\r
564                         requestDetails.requestInfo.productFamilyId = getValueFromList(\r
565                                         FIELD.ID.PRODUCT_FAMILY, parameterList);\r
566                         \r
567                         break;\r
568                 case COMPONENT.VF_MODULE:\r
569                                 break;\r
570                 case COMPONENT.VOLUME_GROUP:\r
571                         break;\r
572                 }\r
573 \r
574                 var relatedInstanceList = getRelatedInstanceList(parameterList);\r
575 \r
576                 if (relatedInstanceList !== undefined) {\r
577                         requestDetails.relatedInstanceList = relatedInstanceList;\r
578                 }\r
579 \r
580                 return requestDetails;\r
581         };\r
582 \r
583         var getRelatedInstanceList = function(parameterList) {\r
584                 var relatedInstanceList = new Array();\r
585                 switch (_this.componentId) {\r
586                 case COMPONENT.SERVICE:\r
587                         return undefined;\r
588                 case COMPONENT.NETWORK:\r
589                 case COMPONENT.VNF:\r
590                         addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,\r
591                                         DataService.getServiceInstanceId());\r
592                         break;\r
593                 case COMPONENT.VF_MODULE:\r
594                         addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,\r
595                                         DataService.getServiceInstanceId());\r
596                         addRelatedInstance(relatedInstanceList, COMPONENT.VNF, DataService\r
597                                         .getVnfInstanceId());\r
598 \r
599                         var availableVolumeGroup = getValueFromList(\r
600                                         FIELD.ID.AVAILABLE_VOLUME_GROUP, parameterList);\r
601                         \r
602                         if (UtilityService.hasContents(availableVolumeGroup) && availableVolumeGroup !== "None") {\r
603                                 var availableVolumeGroups = DataService.getAvailableVolumeGroupList();\r
604                                 \r
605                                 for (var i = 0; i < availableVolumeGroups.length; i++) {\r
606                                         if (availableVolumeGroups[i].instance.name == availableVolumeGroup) {\r
607                                                 DataService.setModelInfo(COMPONENT.VOLUME_GROUP, DataService.getModelInfo(COMPONENT.VF_MODULE));\r
608                                                 DataService.setVolumeGroupInstanceId(availableVolumeGroups[i].instance.object["volume-group-id"]);\r
609                                                 break;\r
610                                         }\r
611                                 }\r
612                                 \r
613                                 addRelatedInstance(relatedInstanceList, COMPONENT.VOLUME_GROUP,\r
614                                                 DataService.getVolumeGroupInstanceId());\r
615                         }\r
616                         break;\r
617                 case COMPONENT.VOLUME_GROUP:\r
618                         addRelatedInstance(relatedInstanceList, COMPONENT.SERVICE,\r
619                                         DataService.getServiceInstanceId());\r
620                         addRelatedInstance(relatedInstanceList, COMPONENT.VNF, DataService\r
621                                         .getVnfInstanceId());\r
622                         break;\r
623                 }\r
624 \r
625                 return relatedInstanceList;\r
626         };\r
627 \r
628         var addRelatedInstance = function(relatedInstanceList, componentId,\r
629                         instanceId) {\r
630                 var modelInfo = DataService.getModelInfo(componentId);\r
631                 var relatedInstance;\r
632                 if (modelInfo !== undefined) {\r
633                         if (componentId === COMPONENT.SERVICE) {\r
634                                 relatedInstance = {\r
635                                         "instanceId" : instanceId,\r
636                                         "modelInfo" : {\r
637                                                 "modelType" : componentId,\r
638                                                 "modelName" : modelInfo.modelName,\r
639                                                 "modelInvariantId" : modelInfo.modelInvariantId,\r
640                                                 "modelVersion" : modelInfo.modelVersion,\r
641                                                 "modelVersionId" : modelInfo.modelNameVersionId,\r
642                                                 \r
643                                         }\r
644                                 };\r
645                         }\r
646                         else {\r
647                                 relatedInstance = {\r
648                                                 "instanceId" : instanceId,\r
649                                                 "modelInfo" : {\r
650                                                         "modelType" : componentId,\r
651                                                         "modelName" : modelInfo.modelName,\r
652                                                         "modelInvariantId" : modelInfo.modelInvariantId,\r
653                                                         "modelVersion" : modelInfo.modelVersion,\r
654                                                         "modelVersionId" : modelInfo.modelNameVersionId,\r
655                                                         "modelCustomizationId": modelInfo.customizationUuid,\r
656                                                         "modelCustomizationName": modelInfo.modelCustomizationName\r
657                                                 }\r
658                                 }\r
659                         }\r
660                         relatedInstanceList.push({\r
661                                 relatedInstance : relatedInstance\r
662                         });\r
663                 }\r
664         };\r
665 \r
666         /*\r
667          * var getArbitraryParameters = function(parameterList) { var\r
668          * arbitraryParameters = new Object(); for (var i = 0; i <\r
669          * parameterList.length; i++) { var parameter = parameterList[i]; switch\r
670          * (parameter.id) { case FIELD.ID.INSTANCE_NAME: case\r
671          * FIELD.ID.PRODUCT_FAMILY: case FIELD.ID.LCP_REGION: case\r
672          * FIELD.ID.LCP_REGION_TEXT: case FIELD.ID.SERVICE_TYPE: case\r
673          * FIELD.ID.TENANT: case FIELD.ID.SUPPRESS_ROLLBACK: break; default:\r
674          * arbitraryParameters[parameter.id] = parameter.value; } } return\r
675          * arbitraryParameters; }\r
676          */\r
677         var getArbitraryParameters = function(parameterList) {\r
678                 var arbitraryParameters = new Object();\r
679                 var arbitraryArray = new Array();\r
680                 for (var i = 0; i < parameterList.length; i++) {\r
681                         var parameter = parameterList[i];\r
682                         switch (parameter.id) {\r
683                         case FIELD.ID.AVAILABLE_VOLUME_GROUP:\r
684                                 break;\r
685                         case FIELD.ID.INSTANCE_NAME:\r
686                                 break;\r
687                         case FIELD.ID.PRODUCT_FAMILY:\r
688                                 break;\r
689                         case FIELD.ID.LCP_REGION:\r
690                                 break;\r
691                         case FIELD.ID.LCP_REGION_TEXT:\r
692                                 break;\r
693                         case FIELD.ID.SERVICE_TYPE:\r
694                                 break;\r
695                         case FIELD.ID.TENANT:\r
696                                 break;\r
697                         case FIELD.ID.SUPPRESS_ROLLBACK:\r
698                                 break;\r
699                         case FIELD.ID.SUBSCRIBER_NAME:\r
700                                 break;\r
701                         default:\r
702                                 arbitraryParameters = {\r
703                                         name : parameter.id,\r
704                                         value : parameter.value\r
705                                 }\r
706                                 arbitraryArray.push(arbitraryParameters);\r
707                         }\r
708                 }\r
709                 return (arbitraryArray);\r
710         }\r
711 \r
712         var getModel = function() {\r
713                 AsdcService.getModel(DataService.getModelId(), function(response) {\r
714                         DataService.setModelInfo(_this.componentId, {\r
715                                 modelInvariantId : response.data.invariantUUID,\r
716                                 modelNameVersionId : response.data.uuid,\r
717                                 modelName : response.data.name,\r
718                                 modelVersion : response.data.version,\r
719                                 inputs : response.data.inputs\r
720                         });\r
721                         UtilityService.startNextAsyncOperation();\r
722                 });\r
723         };\r
724 \r
725         var getSubscriptionServiceTypeList = function() {\r
726                 AaiService.getSubscriptionServiceTypeList(DataService\r
727                                 .getGlobalCustomerId(), function(response) {\r
728                         DataService.setSubscriptionServiceTypeList(response);\r
729                         UtilityService.startNextAsyncOperation();\r
730                 });\r
731         };\r
732 \r
733         var getLoggedInUserID = function() {\r
734                 AaiService.getLoggedInUserID(function(response) {\r
735                         DataService.setLoggedInUserId(response.data);\r
736                         UtilityService.startNextAsyncOperation();\r
737                 });\r
738         };\r
739         \r
740         var getSubscribers = function() {\r
741                 AaiService.getSubscribers(function(response) {\r
742                         DataService.setSubscribers(response);\r
743                         UtilityService.startNextAsyncOperation();\r
744                 });\r
745         };\r
746         var getServices = function() {\r
747                 AaiService.getServices(function(response) {\r
748                         var serviceIdList = [];\r
749                         angular.forEach(response.data, function(value, key) {\r
750                                 angular.forEach(value, function(subVal, key) {\r
751                                         var newVal = { "id" : subVal[FIELD.ID.SERVICE_ID], "description" : subVal[FIELD.ID.SERVICE_DESCRIPTION] };\r
752                                         serviceIdList.push(newVal);\r
753                                         DataService.setServiceIdList(serviceIdList);\r
754                                 });\r
755                         });\r
756                 \r
757                         UtilityService.startNextAsyncOperation();\r
758                 });\r
759         };\r
760         var getLcpCloudRegionTenantList = function() {\r
761                 AaiService.getLcpCloudRegionTenantList(DataService\r
762                                 .getGlobalCustomerId(), DataService.getServiceType(), function(\r
763                                 response) {\r
764                         DataService.setCloudRegionTenantList(response);\r
765                         UtilityService.startNextAsyncOperation();\r
766                 });\r
767         };\r
768 \r
769         var internalGetParametersHandler = function() {\r
770                 if (angular.isFunction(_this.getParametersHandler)) {\r
771                         _this.getParametersHandler({\r
772                                 summaryList : getSummaryList(),\r
773                                 userProvidedList : getUserProvidedList()\r
774                         });\r
775                 }\r
776         };\r
777 \r
778         var getSubscribersParameter = function() {\r
779                 var subscribers = DataService.getSubscribers();\r
780                 var parameter = FIELD.PARAMETER.SUBSCRIBER_NAME;\r
781                 if ( UtilityService.hasContents(subscribers)) {\r
782                         parameter.optionList = [];\r
783         \r
784                         for (var i = 0; i < subscribers.length; i++) {\r
785                                 parameter.optionList.push({\r
786                                         id : subscribers[i][FIELD.ID.GLOBAL_CUSTOMER_ID],\r
787                                         name : subscribers[i][FIELD.ID.SUBNAME]\r
788                                 })\r
789                         }\r
790                 }\r
791                 return parameter;\r
792         };\r
793 \r
794         var getServiceId = function() {\r
795                 var serviceIdList = DataService.getServiceIdList();\r
796                 //var serviceTypeList = DataService.getSubscriptionServiceTypeList();\r
797                 var parameter = FIELD.PARAMETER.PRODUCT_FAMILY;\r
798                 parameter.optionList = new Array();\r
799                 if ( UtilityService.hasContents(serviceIdList) ) {\r
800                         // load them all\r
801                         for (var i = 0; i < serviceIdList.length; i++) {\r
802                                 parameter.optionList.push({\r
803                                         id : serviceIdList[i].id,\r
804                                         name : serviceIdList[i].description\r
805                                 });\r
806                         }\r
807                 }\r
808 \r
809                 return parameter;\r
810         };\r
811 \r
812         var getLcpRegion = function() {\r
813                 var cloudRegionTenantList = DataService.getCloudRegionTenantList();\r
814                 console.log ( "cloudRegionTenantList=");\r
815                 console.log ( JSON.stringify (cloudRegionTenantList, null, 4 ));\r
816 \r
817                 var parameter = FIELD.PARAMETER.LCP_REGION;\r
818                 if ( UtilityService.hasContents (cloudRegionTenantList) ) {\r
819                         parameter.optionList = new Array();\r
820                         for (var i = 0; i < cloudRegionTenantList.length; i++) {\r
821                                 for (var j = 0; j < parameter.optionList.length; j++) {\r
822                                         if (parameter.optionList[j].id === cloudRegionTenantList[i].cloudRegionId) {\r
823                                                 break;\r
824                                         }\r
825                                 }\r
826                                 if (j < parameter.optionList.length) {\r
827                                         continue;\r
828                                 }\r
829                                 parameter.optionList.push({\r
830                                         id : cloudRegionTenantList[i].cloudRegionId\r
831                                 });\r
832                         }\r
833                 }\r
834                 return parameter;\r
835         };\r
836 \r
837         var getTenantList = function(cloudRegionId) {\r
838                 var cloudRegionTenantList = DataService.getCloudRegionTenantList();\r
839                 var parameter = "";\r
840                 if ( UtilityService.hasContents (cloudRegionTenantList) ) {\r
841                         parameter = FIELD.PARAMETER.TENANT_ENABLED;\r
842                         parameter.optionList = new Array();\r
843                         for (var i = 0; i < cloudRegionTenantList.length; i++) {\r
844                                 if (cloudRegionTenantList[i].cloudRegionId === cloudRegionId) {\r
845                                         parameter.optionList.push({\r
846                                                 id : cloudRegionTenantList[i].tenantId,\r
847                                                 name : cloudRegionTenantList[i].tenantName\r
848                                         });\r
849                                 }\r
850                         }\r
851                 }\r
852                 return parameter;\r
853 \r
854         };\r
855 \r
856         var addOptionList = function(parameter, optionSimpleArray) {\r
857                 var optionList = new Array();\r
858                 if (!angular.isArray(optionSimpleArray)) {\r
859                         return optionList;\r
860                 }\r
861                 for (var i = 0; i < optionSimpleArray.length; i++) {\r
862                         optionList.push({\r
863                                 name : optionSimpleArray[i]\r
864                         });\r
865                 }\r
866                 parameter.optionList = optionList;\r
867                 return parameter;\r
868         };\r
869 \r
870         var getValueFromList = function(id, parameterList) {\r
871                 for (var i = 0; i < parameterList.length; i++) {\r
872                         if (parameterList[i].id === id) {\r
873                                 return parameterList[i].value;\r
874                         }\r
875                 }\r
876         };\r
877         var updateUserParameterList = function(updatedId, parameterListControl) {\r
878                 console.log ("updateUserParameterList() updatedId=" + updatedId);\r
879                 if (updatedId === FIELD.ID.SDN_C_PRELOAD) {\r
880                         var list = parameterListControl.getList(updatedId);\r
881                         if($('input[parameter-id="'+updatedId+'"]').is(':checked')){\r
882                                 FIELD.PARAMETER.SDN_C_PRELOAD_CHECKED.value=true;\r
883                                 parameterListControl\r
884                                 .updateList([ FIELD.PARAMETER.SDN_C_PRELOAD_CHECKED ]);\r
885                         }else{\r
886                                 parameterListControl\r
887                                 .updateList([ FIELD.PARAMETER.SDN_C_PRELOAD_UNCHECKED ]);\r
888                         }\r
889                 }else if (updatedId === FIELD.ID.UPLOAD_SUPPLEMENTORY_DATA_FILE) {\r
890                         if($('input[parameter-id="'+updatedId+'"]').is(':checked')){\r
891                                 $('input[parameter-id="'+FIELD.ID.SUPPLEMENTORY_DATA_FILE+'"]').closest('tr').show();\r
892                                  FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED.value=true;\r
893                                 parameterListControl\r
894                                 .updateList([ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_CHECKED ]);\r
895                         }else{\r
896                                 $('input[parameter-id="'+FIELD.ID.SUPPLEMENTORY_DATA_FILE+'"]').closest('tr').hide();\r
897                                 parameterListControl\r
898                                 .updateList([ FIELD.PARAMETER.UPLOAD_SUPPLEMENTORY_DATA_FILE_UNCHECKED ]);\r
899                         }\r
900                 } else if (updatedId === FIELD.ID.SUPPLEMENTORY_DATA_FILE) {\r
901                         var filePath =  $('input[parameter-id="'+updatedId+'"]').val();\r
902                         var arr =filePath.split('.');\r
903                         var fileExt  = arr[arr.length-1];\r
904                         if(fileExt!='' && fileExt.toLowerCase()!='json'){\r
905                                  $('input[parameter-id="'+updatedId+'"]').val('');\r
906                                 showError("Invalid file format.", 'Please select *.json format file.');\r
907                                 return false;\r
908                         }\r
909                         var fileJsonData={};\r
910                         var fileInput = document.getElementById(updatedId);\r
911                         var file = fileInput.files[0];\r
912                         var reader = new FileReader();\r
913                         reader.onload = function(e) {\r
914                                 try{\r
915                                         fileJsonData = JSON.parse(reader.result);\r
916                                         FIELD.PARAMETER.SUPPLEMENTORY_DATA_FILE['value']=(JSON.stringify(fileJsonData)).toString();\r
917                                         parameterListControl\r
918                                         .updateList([ FIELD.PARAMETER.SUPPLEMENTORY_DATA_FILE ]);\r
919                                 }catch(e){\r
920                                         alert('Invalid json format.');\r
921                                         showError("Invalid data format.", 'Please check your file content it is not in json format.');\r
922                                 }\r
923                         }\r
924                         reader.readAsText(file);\r
925                 } else  if (updatedId === FIELD.ID.LCP_REGION) {\r
926                         var list = parameterListControl.getList(updatedId);\r
927                         if (list[0].selectedIndex >= 0) {\r
928                                 parameterListControl\r
929                                                 .updateList([ getTenantList(list[0].value) ]);\r
930                         } else {\r
931                                 parameterListControl\r
932                                                 .updateList([ FIELD.PARAMETER.TENANT_DISABLED ]);\r
933                         }\r
934                         if (list[0].value === FIELD.KEY.LCP_REGION_TEXT) {\r
935                                 parameterListControl\r
936                                                 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_VISIBLE ]);\r
937                         } else {\r
938                                 parameterListControl\r
939                                                 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN ]);\r
940                         }\r
941                 } else if (updatedId === FIELD.ID.SUBSCRIBER_NAME) {\r
942                         var list = parameterListControl.getList(updatedId);\r
943                         if (list[0].selectedIndex >= 0) {\r
944                                 DataService.setGlobalCustomerId(list[0].value);\r
945 \r
946                                 AaiService.getSubscriptionServiceTypeList(DataService\r
947                                                 .getGlobalCustomerId(), function(response) {\r
948                                         DataService.setSubscriptionServiceTypeList(response);\r
949                                         var serviceTypeParameters = FIELD.PARAMETER.SERVICE_TYPE;\r
950                                         serviceTypeParameters.optionList = [];\r
951 \r
952                                         for (var i = 0; i < response.length; i++) {\r
953                                                 serviceTypeParameters.optionList.push({\r
954                                                         "id" : response[i],\r
955                                                         "name" : response[i]\r
956                                                 });\r
957                                         }\r
958                                         console.log ( "updateUserParameterList: service type parameters " ); \r
959                                         console.log ( JSON.stringify (serviceTypeParameters, null, 4));\r
960                                         parameterListControl.updateList([ serviceTypeParameters ]);\r
961                                 });\r
962 \r
963                         } \r
964                 } else if ( updatedId === FIELD.ID.SERVICE_TYPE ) {\r
965                         var list = parameterListControl.getList(updatedId);\r
966                         if (list[0].selectedIndex >= 0) {\r
967 \r
968                                 DataService.setServiceType(list[0].value);\r
969                                 var cloudRegionTenantList = new Array();\r
970                                 AaiService.getLcpCloudRegionTenantList(DataService.getGlobalCustomerId(), DataService.getServiceType(), function(cloudRegionTenantList) {\r
971                                         DataService.setCloudRegionTenantList(cloudRegionTenantList);\r
972                                         parameterListControl.updateList([ getLcpRegion() ]);\r
973                                 }); \r
974                         } else {\r
975                                 parameterListControl\r
976                                 .updateList([ FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);\r
977                         }\r
978                 }\r
979 \r
980         };\r
981 \r
982         return {\r
983                 initializeComponent : function(componentId) {\r
984                         _this.componentId = ComponentService.initialize(componentId);\r
985                 },\r
986                 setHttpErrorHandler : function(httpErrorHandler) {\r
987                         _this.httpErrorHandler = httpErrorHandler;\r
988                 },\r
989                 getComponentDisplayName : ComponentService.getComponentDisplayName,\r
990                 getParameters : function(getParametersHandler) {\r
991                         _this.getParametersHandler = getParametersHandler;\r
992                         UtilityService.setHttpErrorHandler(_this.httpErrorHandler);\r
993                         UtilityService.startAsyncOperations(getAsyncOperationList(),\r
994                                         internalGetParametersHandler);\r
995                 },\r
996                 updateUserParameterList : updateUserParameterList,\r
997                 getMsoRequestDetails : getMsoRequestDetails,\r
998                 getMsoUrl : getMsoUrl\r
999         }\r
1000 }\r
1001 \r
1002 appDS2.factory("CreationService", [ "$log", "AaiService", "AsdcService",\r
1003                 "DataService","VIDCONFIGURATION", "ComponentService", "COMPONENT", "FIELD", "PARAMETER",\r
1004                 "UtilityService", CreationService ]);\r