Merge "default maven build of vid-webpack-master to run build and unit tests"
[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 - 2019 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                         console.log ("PROVSTATUS: " + vnfInstance.object[FIELD.ID.PROV_STATUS].toLowerCase());\r
47                         \r
48                         status.orchestrationStatus = vnfInstance.object[FIELD.ID.ORCHESTRATION_STATUS].toLowerCase();\r
49                         console.log ("ORCHESTRATION STATUS: " + vnfInstance.object[FIELD.ID.ORCHESTRATION_STATUS].toLowerCase());\r
50                         \r
51                         status.inMaint = vnfInstance.object[FIELD.ID.IN_MAINT];\r
52                         console.log ("IN MAINT: " + vnfInstance.object[FIELD.ID.IN_MAINT]);\r
53                         \r
54                         if ( UtilityService.hasContents(vnfInstance.object[FIELD.ID.OPERATIONAL_STATUS]) ) {\r
55                                 status.operationalStatus = vnfInstance.object[FIELD.ID.OPERATIONAL_STATUS].toLowerCase();\r
56                         }\r
57                         var i = VIDCONFIGURATION.VNF_VALID_STATUS_LIST.length;\r
58                     if ( i > 0 ) {\r
59                             while (i--) {\r
60                                 var item = VIDCONFIGURATION.VNF_VALID_STATUS_LIST[i];\r
61                                 if ( (item.provStatus === status.provStatus) && (item.inMaint === status.inMaint ) \r
62                                                 && (item.orchestrationStatus === status.orchestrationStatus) )  {\r
63                                         if (UtilityService.hasContents(vnfInstance.object[FIELD.ID.OPERATIONAL_STATUS])) {\r
64                                                 if (status.operationalStatus === "") { status.operationalStatus = null }\r
65                                                 if ( item.operationalStatus === status.operationalStatus ) {\r
66                                                         return ("");\r
67                                                 }\r
68                                         }\r
69                                         else {\r
70                                                 // no contents\r
71                                                 if ( item.operationalStatus === null ) {\r
72                                                         return ("");\r
73                                                 }\r
74                                         }\r
75                                }\r
76                             }\r
77                     }\r
78                         \r
79                         return (errorInvalidCombinationMsg);\r
80                 }\r
81                 else {\r
82                         return (errorAaiStatusMsg);\r
83                 }\r
84         };\r
85         var isVnfListStatusValid = function(vnfArray) {\r
86                 var msg = "";\r
87                 for(var i = 0; i < vnfArray.length; i++) {\r
88                         var vnf = vnfArray[i];\r
89                         msg = isVnfStatusValid (vnf);\r
90                         if ( msg != "" ) {\r
91                                 return (msg);\r
92                         } \r
93                 }\r
94                 return (msg);\r
95         };\r
96         return {\r
97                 isVnfStatusValid: isVnfStatusValid,\r
98                 isVnfListStatusValid : isVnfListStatusValid\r
99         }\r
100 };\r
101 \r
102 appDS2.factory("VnfService", [ "$http", "$log", "VIDCONFIGURATION", "FIELD",\r
103                             "UtilityService", VnfService ]);\r