[VID-6] Initial rebase push
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / vnfService.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 var VnfService = function($http, $log, VIDCONFIGURATION, FIELD, UtilityService) {\r
24         var isVnfStatusValid = function(vnfInstance) {\r
25 \r
26                 if ( (UtilityService.isObjectEmpty(vnfInstance)) || (UtilityService.isObjectEmpty(vnfInstance.object)) ) {\r
27                         return (errorInternalMsg);\r
28                 }\r
29                 var status = {\r
30                                 "provStatus": "",\r
31                                 "orchestrationStatus": "",\r
32                                 "inMaint": false,\r
33                                 "operationalStatus": null\r
34                 };\r
35                 var errorAaiStatusMsg = "The prov-status, orchestration-status or in-maint fields are not captured correctly in A&AI for this VNF: "\r
36                         + vnfInstance.object['vnf-name'] + ". Please update these statuses in A&AI before attempting this change.";\r
37                 var errorInvalidCombinationMsg = "The VNF: " +  vnfInstance.object['vnf-name'] + \r
38                 ", has reached a status where further changes cannot be made in VID. Additional changes should be made through the Change Management Processes.";\r
39                 var errorInternalMsg = "Internal VID Error: The VNF Instance is not populated."\r
40                         \r
41                 if ( ( UtilityService.hasContents ( vnfInstance.object[FIELD.ID.ORCHESTRATION_STATUS] ) ) &&\r
42                                 ( UtilityService.hasContents ( vnfInstance.object[FIELD.ID.IN_MAINT] ) ) &&\r
43                                 ( UtilityService.hasContents ( vnfInstance.object[FIELD.ID.PROV_STATUS] ) ) ) {\r
44 \r
45                         status.provStatus = vnfInstance.object[FIELD.ID.PROV_STATUS].toLowerCase();\r
46                         status.orchestrationStatus = vnfInstance.object[FIELD.ID.ORCHESTRATION_STATUS].toLowerCase();\r
47                         status.inMaint = vnfInstance.object[FIELD.ID.IN_MAINT];\r
48 \r
49                         if ( UtilityService.hasContents(vnfInstance.object[FIELD.ID.OPERATIONAL_STATUS]) ) {\r
50                                 status.operationalStatus = vnfInstance.object[FIELD.ID.OPERATIONAL_STATUS].toLowerCase();\r
51                         }\r
52 \r
53                         if ( UtilityService.arrayContains ( VIDCONFIGURATION.VNF_VALID_STATUS_LIST, status ) ) {\r
54                                 return ("");\r
55                         }\r
56                         else {\r
57                                 return (errorInvalidCombinationMsg);\r
58                         }\r
59                 }\r
60                 else {\r
61                         return (errorAaiStatusMsg);\r
62                 }\r
63         };\r
64         var isVnfListStatusValid = function(vnfArray) {\r
65                 var msg = "";\r
66                 for(var i = 0; i < vnfArray.length; i++) {\r
67                         var vnf = vnfArray[i];\r
68                         msg = isVnfStatusValid (vnf);\r
69                         if ( msg != "" ) {\r
70                                 return (msg);\r
71                         } \r
72                 }\r
73                 return (msg);\r
74         };\r
75         return {\r
76                 isVnfStatusValid: isVnfStatusValid,\r
77                 isVnfListStatusValid : isVnfListStatusValid\r
78         }\r
79 };\r
80 \r
81 appDS2.factory("VnfService", [ "$http", "$log", "VIDCONFIGURATION", "FIELD",\r
82                             "UtilityService", VnfService ]);\r