6c8ac58e326ce624519d256980bc316cf913d5e9
[appc.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * APPC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * Copyright (C) 2017 Amdocs
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  * 
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  * 
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
21  */
22
23 package org.openecomp.appc.executor.objects;
24
25
26 import org.apache.commons.lang3.StringUtils;
27 import org.openecomp.appc.domainmodel.lcm.Status;
28 import org.openecomp.appc.util.MessageFormatter;
29
30 import java.util.Map;
31
32 public enum LCMCommandStatus {
33
34     ACCEPTED(100,"ACCEPTED - request accepted"),
35
36     //ERROR(2xx) – request can’t be handled due to some technical error
37     UNEXPECTED_ERROR(200,"UNEXPECTED ERROR - ${errorMsg}"),
38
39     //REJECT(3xx) – request has been rejected due to some business reason (e.g. no such service-instance-id, command is not supported, etc)
40     REJECTED(300,"REJECTED - ${errorMsg}"),
41     INVALID_INPUT_PARAMETER(301,"INVALID INPUT PARAMETER - ${errorMsg}"),// TODO 77777777 to support "${paramName} with invalid value ${paramValue}"
42     MISSING_MANDATORY_PARAMETER(302,"MISSING MANDATORY PARAMETER - Parameter/s ${paramName} is/are missing" ),
43     REQUEST_PARSING_FAILED(303,"REQUEST PARSING FAILED - ${errorMsg}"),
44     NO_TRANSITION_DEFINE(304,"ACTION IS NOT ALLOWED - Action ${actionName} is not allowed for VNF in state ${currentState}"),
45     INVALID_VNF_STATE(305,"Request rejected because VNF status in A&AI is - ${currentState}" ),
46     VNF_NOT_FOUND(306,"VNF NOT FOUND - VNF with ID ${vnfId} was not found" ),
47     DG_WORKFLOW_NOT_FOUND(307,"DG WORKFLOW NOT FOUND - No DG workflow found for the combination of ${dgModule} module ${dgName} name and ${dgVersion} version"),//TODO need to support it
48     WORKFLOW_NOT_FOUND(308,"WORKFLOW NOT FOUND - No workflow found for VNF type ${vnfTypeVersion} and ${actionName} action"),
49         UNSTABLE_VNF(309,"UNSTABLE VNF - VNF ${vnfId} is not stable to accept the command"),
50     LOCKING_FAILURE(310,"LOCKING FAILURE - ${errorMsg}" ),
51         EXPIRED_REQUEST(311,"EXPIRED REQUEST"),
52     DUPLICATE_REQUEST(312,"DUPLICATE REQUEST"),
53     MISSING_VNF_DATA_IN_AAI(313,"MISSING VNF DATA IN A&AI - ${attributeName} not found for VNF ID = ${vnfId}"),
54
55     SUCCESS(400,"SUCCESS - request has been processed successfully"),
56
57
58     //        FAILURE(5xx) – request processing results with failure. The FAILURE response is always transmitted asynchronously, via DMaaP.
59     DG_FAILURE(401,"DG FAILURE - ${errorMsg}"),
60     NO_TRANSITION_DEFINE_FAILURE(402,"NO TRANSITION DEFINE - No Transition Defined for ${actionName} action and ${currentState} state"),
61     UPDATE_AAI_FAILURE(403,"UPDATE_AAI_FAILURE - failed to update AAI. ${errorMsg}"),
62     EXPIRED_REQUEST_FAILURE(404,"EXPIRED REQUEST FAILURE - failed after accepted because TTL expired"),
63     UNEXPECTED_FAILURE(405,"UNEXPECTED FAILURE - ${errorMsg}"),
64     UNSTABLE_VNF_FAILURE(406,"UNSTABLE VNF FAILURE - VNF ${vnfId} is not stable to accept the command"),
65
66         ;
67
68
69     public static final String errorDgMessageParamName = "errorDgMessage";
70
71         private int responseCode;
72         private String responseMessage;
73
74
75
76
77     LCMCommandStatus(int responseCode, String responseMessage) {
78         this.responseCode = responseCode;
79         this.responseMessage = responseMessage;
80             }
81
82     public String getResponseMessage() {
83                 return responseMessage;
84         }
85
86         public int getResponseCode() {
87                 return responseCode;
88         }
89
90
91         /**
92      *
93      * @return  messageTemplate
94      */
95
96
97     public String getFormattedMessage(Params params){
98             Map<String,Object> paramsMap = params != null ? params.getParams() : null;
99             return MessageFormatter.format(getResponseMessage(),paramsMap);
100
101         }
102
103     public String getFormattedMessageWithCode(Params params){
104         return getResponseCode()+"-" + getFormattedMessage(params);
105     }
106
107     @Override
108     public String toString() {
109         return "LCMCommandStatus{" +
110                 "responseCode=" + responseCode +
111                 ", responseMessage='" + responseMessage + '\'' +
112                 '}';
113     }
114
115     public Status toStatus(Params params) {
116         return new Status(responseCode, getFormattedMessage(params));
117     }
118 }
119