2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
23 var DeletionService = function($log, AaiService, AsdcService, DataService,
24 ComponentService, COMPONENT, FIELD, UtilityService) {
28 var getAsyncOperationList = function() {
29 switch (_this.componentId) {
30 case COMPONENT.SERVICE:
31 return [ getSubscribers ];
32 case COMPONENT.NETWORK:
35 return [ getLcpCloudRegionTenantList ];
36 case COMPONENT.VF_MODULE:
37 return [ getLcpCloudRegionTenantList ];
38 case COMPONENT.VOLUME_GROUP:
39 return [ getLcpCloudRegionTenantList ];
43 var getLcpCloudRegionTenantList = function() {
44 AaiService.getLcpCloudRegionTenantList(DataService
45 .getGlobalCustomerId(), DataService.getServiceType(), function(
47 DataService.setCloudRegionTenantList(response);
48 UtilityService.startNextAsyncOperation();
52 var getSubscribers = function() {
53 AaiService.getSubscribers(function(response) {
54 DataService.setSubscribers(response);
55 UtilityService.startNextAsyncOperation();
59 var internalGetParametersHandler = function() {
60 if (angular.isFunction(_this.getParametersHandler)) {
61 if (_this.componentId == COMPONENT.SERVICE)
62 _this.getParametersHandler({
63 summaryList : getSummaryList(),
64 userProvidedList : getUserProvidedList()
67 _this.getParametersHandler({
68 summaryList : getSummaryList(),
69 userProvidedList : getUserProvidedList()
74 var getSubscribersParameter = function() {
75 var subscribers = DataService.getSubscribers();
76 var parameter = FIELD.PARAMETER.SUBSCRIBER_NAME;
77 parameter.optionList = [];
79 for (var i = 0; i < subscribers.length; i++) {
80 parameter.optionList.push({
81 id : subscribers[i]["global-customer-id"],
82 name : subscribers[i]["subscriber-name"]
88 var getServiceId = function() {
89 var serviceIdList = DataService.getServiceIdList();
90 var parameter = FIELD.PARAMETER.PRODUCT_FAMILY;
91 parameter.optionList = new Array();
92 for (var i = 0; i < serviceIdList.length; i++) {
93 parameter.optionList.push({
94 id : serviceIdList[i].id,
95 name : serviceIdList[i].description
101 var getUserProvidedList = function() {
103 //var parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];
105 var parameterList = [];
107 switch (_this.componentId) {
108 case COMPONENT.SERVICE:
109 // parameterList = parameterList.concat([ getSubscribersParameter(),
110 // FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);
113 case COMPONENT.NETWORK:
115 parameterList = parameterList.concat([ //getServiceId(),
116 getLcpRegion(), FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
117 FIELD.PARAMETER.TENANT_DISABLED ]);
119 case COMPONENT.VF_MODULE:
120 parameterList = parameterList.concat([
122 FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
123 FIELD.PARAMETER.TENANT_DISABLED
127 case COMPONENT.VOLUME_GROUP:
128 parameterList = parameterList.concat([ getLcpRegion(),
129 FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
130 FIELD.PARAMETER.TENANT_DISABLED ]);
133 parameterList.push(FIELD.PARAMETER.SUPPRESS_ROLLBACK);
135 //addArbitraryParameters(parameterList);
137 return parameterList;
139 var getSummaryList = function() {
140 switch (_this.componentId) {
141 case COMPONENT.NETWORK:
142 case COMPONENT.SERVICE:
144 case COMPONENT.VF_MODULE:
145 case COMPONENT.VOLUME_GROUP:
146 var summaryList = [ {
147 name : FIELD.NAME.SUBSCRIBER_NAME,
148 value : DataService.getSubscriberName()
150 name : FIELD.NAME.CUSTOMER_ID,
151 value : DataService.getGlobalCustomerId()
153 name : FIELD.NAME.SERVICE_UUID,
154 value : DataService.getServiceUuid()
156 name : FIELD.NAME.SERVICE_NAME,
157 value : DataService.getServiceName()
159 name : FIELD.NAME.USER_SERVICE_INSTANCE_NAME,
160 value : DataService.getUserServiceInstanceName()*/
163 _this.parameterList = new Array();
165 addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());
167 switch (_this.componentId) {
168 case COMPONENT.SERVICE:
169 addToList(FIELD.NAME.SERVICE_INVARIANT_UUID, DataService
170 .getModelInfo(_this.componentId)["modelInvariantId"]);
171 addToList(FIELD.NAME.SERVICE_VERSION, DataService
172 .getModelInfo(_this.componentId)["modelVersion"]);
173 addToList(FIELD.NAME.SERVICE_UUID, DataService
174 .getModelInfo(_this.componentId)["modelNameVersionId"]);
175 addToList(FIELD.NAME.SERVICE_DESCRIPTION, DataService
176 .getModelInfo(_this.componentId)["description"]);
177 addToList(FIELD.NAME.SERVICE_CATEGORY, DataService
178 .getModelInfo(_this.componentId)["category"]);
180 case COMPONENT.VF_MODULE:
181 addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
182 .getSubscriberName());
183 addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
184 .getServiceInstanceName());
185 addToList(FIELD.NAME.MODEL_NAME, DataService
186 .getModelInfo(_this.componentId)["modelName"]);
187 addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
188 .getModelInfo(_this.componentId)["modelInvariantId"]);
189 addToList(FIELD.NAME.MODEL_VERSION, DataService
190 .getModelInfo(_this.componentId)["modelVersion"]);
191 addToList(FIELD.NAME.MODEL_UUID, DataService
192 .getModelInfo(_this.componentId)["modelNameVersionId"]);
194 case COMPONENT.NETWORK:
196 case COMPONENT.VOLUME_GROUP:
197 addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
198 .getSubscriberName());
199 addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
200 .getServiceInstanceName());
201 addToList(FIELD.NAME.MODEL_NAME, DataService
202 .getModelInfo(_this.componentId)["modelName"]);
203 addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
204 .getModelInfo(_this.componentId)["modelInvariantId"]);
205 addToList(FIELD.NAME.MODEL_VERSION, DataService
206 .getModelInfo(_this.componentId)["modelVersion"]);
207 addToList(FIELD.NAME.MODEL_UUID, DataService
208 .getModelInfo(_this.componentId)["modelNameVersionId"]);
212 var additionalList = ComponentService.getInventoryParameterList(
213 _this.componentId, DataService.getInventoryItem());
215 return summaryList.concat(ComponentService
216 .getDisplayNames(additionalList));
220 var getMsoUrl = function() {
221 switch (_this.componentId) {
222 case COMPONENT.NETWORK:
223 return "mso_delete_nw_instance/"
224 + DataService.getServiceInstanceId() + "/networks/"
225 + DataService.getNetworkInstanceId();
226 case COMPONENT.SERVICE:
227 return "mso_delete_svc_instance/"
228 + DataService.getServiceInstanceId();
230 return "mso_delete_vnf_instance/"
231 + DataService.getServiceInstanceId() + "/vnfs/"
232 + DataService.getVnfInstanceId();
233 case COMPONENT.VF_MODULE:
234 return "mso_delete_vfmodule_instance/"
235 + DataService.getServiceInstanceId() + "/vnfs/"
236 + DataService.getVnfInstanceId() + "/vfModules/"
237 + DataService.getVfModuleInstanceId();
238 case COMPONENT.VOLUME_GROUP:
239 return "mso_delete_volumegroup_instance/"
240 + DataService.getServiceInstanceId() + "/vnfs/"
241 + DataService.getVnfInstanceId() + "/volumeGroups/"
242 + DataService.getVolumeGroupInstanceId();
246 var addToList = function(name, value) {
247 _this.parameterList.push({
253 var getMsoRequestDetails = function(parameterList) {
254 console.log("getMsoRequestDetails invoked");
255 var inventoryInfo = ComponentService.getInventoryInfo(
256 _this.componentId, DataService.getInventoryItem());
257 var modelInfo = DataService.getModelInfo(_this.componentId);
258 var requestDetails = {
260 modelType : _this.componentId,
261 modelInvariantId : modelInfo.modelInvariantId,
262 modelNameVersionId : modelInfo.modelNameVersionId,
263 modelName : modelInfo.modelName,
264 modelCustomizationName : modelInfo.modelCustomizationName,
265 modelVersion : modelInfo.modelVersion
272 switch (_this.componentId) {
273 case COMPONENT.SERVICE:
276 console.log("getMsoRequestDetails COMPONENT.VNF");
277 var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);
278 if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {
279 lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,
282 requestDetails.cloudConfiguration = {
283 lcpCloudRegionId : lcpRegion,
284 tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)
288 case COMPONENT.VF_MODULE:
289 var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);
290 if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {
291 lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,
294 requestDetails.cloudConfiguration = {
295 lcpCloudRegionId : lcpRegion,
296 tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)
299 case COMPONENT.VOLUME_GROUP:
300 var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);
301 if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {
302 lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,
305 requestDetails.cloudConfiguration = {
306 lcpCloudRegionId : lcpRegion,
307 tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)
312 requestDetails.cloudConfiguration = {
313 lcpCloudRegionId : DataService.getLcpRegion(),
314 tenantId : DataService.getTenant()
317 return requestDetails;
320 var getLcpRegion = function() {
321 var cloudRegionTenantList = DataService.getCloudRegionTenantList();
322 var parameter = FIELD.PARAMETER.LCP_REGION;
323 parameter.optionList = new Array();
324 for (var i = 0; i < cloudRegionTenantList.length; i++) {
325 for (var j = 0; j < parameter.optionList.length; j++) {
326 if (parameter.optionList[j].id === cloudRegionTenantList[i].cloudRegionId) {
330 if (j < parameter.optionList.length) {
333 parameter.optionList.push({
334 id : cloudRegionTenantList[i].cloudRegionId
340 var getTenantList = function(cloudRegionId) {
341 var cloudRegionTenantList = DataService.getCloudRegionTenantList();
342 var parameter = FIELD.PARAMETER.TENANT_ENABLED;
343 parameter.optionList = new Array();
344 for (var i = 0; i < cloudRegionTenantList.length; i++) {
345 if (cloudRegionTenantList[i].cloudRegionId === cloudRegionId) {
346 parameter.optionList.push({
347 id : cloudRegionTenantList[i].tenantId,
348 name : cloudRegionTenantList[i].tenantName
356 var addOptionList = function(parameter, optionSimpleArray) {
357 var optionList = new Array();
358 if (!angular.isArray(optionSimpleArray)) {
361 for (var i = 0; i < optionSimpleArray.length; i++) {
363 name : optionSimpleArray[i]
366 parameter.optionList = optionList;
370 var getValueFromList = function(id, parameterList) {
371 for (var i = 0; i < parameterList.length; i++) {
372 if (parameterList[i].id === id) {
373 return parameterList[i].value;
378 var updateUserParameterList = function(updatedId, parameterListControl) {
379 if (updatedId === FIELD.ID.LCP_REGION) {
380 var list = parameterListControl.getList(updatedId);
381 if (list[0].selectedIndex >= 0) {
383 .updateList([ getTenantList(list[0].value) ]);
386 .updateList([ FIELD.PARAMETER.TENANT_DISABLED ]);
388 if (list[0].value === FIELD.KEY.LCP_REGION_TEXT) {
390 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_VISIBLE ]);
393 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN ]);
395 } else if (updatedId === FIELD.ID.SUBSCRIBER_NAME) {
396 var list = parameterListControl.getList(updatedId);
397 if (list[0].selectedIndex >= 0) {
398 DataService.setGlobalCustomerId(list[0].value);
400 AaiService.getSubscriptionServiceTypeList(DataService
401 .getGlobalCustomerId(), function(response) {
402 DataService.setSubscriptionServiceTypeList(response);
403 var serviceTypeParameters = FIELD.PARAMETER.SERVICE_TYPE;
404 serviceTypeParameters.optionList = [];
406 for (var i = 0; i < response.length; i++) {
407 serviceTypeParameters.optionList.push({
412 parameterListControl.updateList([ serviceTypeParameters ]);
417 .updateList([ FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);
423 initializeComponent : function(componentId) {
424 _this.componentId = ComponentService.initialize(componentId);
426 getComponentDisplayName : ComponentService.getComponentDisplayName,
427 getSummaryList : getSummaryList,
428 getParameters : function(getParametersHandler) {
429 _this.getParametersHandler = getParametersHandler;
430 UtilityService.setHttpErrorHandler(_this.httpErrorHandler);
431 UtilityService.startAsyncOperations(getAsyncOperationList(),
432 internalGetParametersHandler);
434 updateUserParameterList : updateUserParameterList,
435 getMsoRequestDetails : getMsoRequestDetails,
436 getMsoUrl : getMsoUrl
440 app.factory("DeletionService", [ "$log", "AaiService", "AsdcService",
441 "DataService", "ComponentService", "COMPONENT", "FIELD",
442 "UtilityService", DeletionService ]);