Fix op policy
[clamp.git] / src / main / java / org / onap / clamp / clds / model / properties / PolicyItem.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP CLAMP
4  * ================================================================================
5  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
6  *                             reserved.
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  * ===================================================================
21  * 
22  */
23
24 package org.onap.clamp.clds.model.properties;
25
26 import com.att.eelf.configuration.EELFLogger;
27 import com.att.eelf.configuration.EELFManager;
28 import com.fasterxml.jackson.databind.JsonNode;
29
30 import java.util.List;
31
32 /**
33  * Parse policyConfigurations from Policy json properties.
34  * <p>
35  * Example json:
36  * "Policy_005sny1":[[{"name":"timeout","value":"5"}],{"policyConfigurations":[[
37  * {"name":"recipe","value":["restart"]},{"name":"maxRetries","value":["3"]},{
38  * "name":"retryTimeLimit","value":["180"]},{"name":"_id","value":["vf3RtPi"]},{
39  * "name":"location","value":["san_diego"]},{"name":"resource","value":["vCTS"]}
40  * ,{"name":"onMaxRetriesLimit","value":[""]},{"name":"onTimeLimit","value":[""]
41  * },{"name":"onOtherFailure","value":[""]},{"name":"policy_parent","value":[""]
42  * }],[{"name":"recipe","value":["rebuild"]},{"name":"maxRetries","value":["3"]}
43  * ,{"name":"retryTimeLimit","value":["180"]},{"name":"_id","value":["89z8Ncl"]}
44  * ,{"name":"location","value":["san_diego"]},{"name":"resource","value":["vCTS"
45  * ]},{"name":"onMaxRetriesLimit","value":[""]},{"name":"onTimeLimit","value":[
46  * ""]},{"name":"onOtherFailure","value":[""]},{"name":"policy_parent","value":[
47  * "vf3RtPi"]},{"name":
48  * "targetResourceId","value":["Eace933104d443b496b8.nodes.heat.vpg"]}]]}]
49  */
50 public class PolicyItem implements Cloneable {
51
52     protected static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyItem.class);
53     protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
54     private String id;
55     private String recipe;
56     private int maxRetries;
57     private int retryTimeLimit;
58     private String parentPolicy;
59     private List<String> parentPolicyConditions;
60     private String actor;
61     private String targetResourceId;
62
63     /**
64      * Parse Policy given json node.
65      *
66      * @param node
67      */
68     public PolicyItem(JsonNode node) {
69         id = AbstractModelElement.getValueByName(node, "_id");
70         recipe = AbstractModelElement.getValueByName(node, "recipe");
71         maxRetries = AbstractModelElement.getIntValueByName(node, "maxRetries");
72         retryTimeLimit = AbstractModelElement.getIntValueByName(node, "retryTimeLimit");
73         parentPolicy = AbstractModelElement.getValueByName(node, "parentPolicy");
74         parentPolicyConditions = AbstractModelElement.getValuesByName(node, "parentPolicyConditions");
75         targetResourceId = AbstractModelElement.getValueByName(node, "targetResourceId");
76         if (targetResourceId != null && targetResourceId.isEmpty()) {
77             this.setTargetResourceId(null);
78         }
79     }
80
81     /**
82      * @return the id
83      */
84     public String getId() {
85         return id;
86     }
87
88     /**
89      * @return the recipe
90      */
91     public String getRecipe() {
92         return recipe;
93     }
94
95     /**
96      * @set the id
97      */
98     public void setId(String id) {
99         this.id = id;
100     }
101
102     /**
103      * @set the recipe
104      */
105     public void setRecipe(String recipe) {
106         this.recipe = recipe;
107     }
108
109     /**
110      * @set the parentPolicy
111      */
112     public void setParentPolicy(String parentPolicy) {
113         this.parentPolicy = parentPolicy;
114     }
115
116     /**
117      * @set the maxRetries
118      */
119     public void setMaxRetries(int maxRetries) {
120         this.maxRetries = maxRetries;
121     }
122
123     /**
124      * @set the retryTimeLimit
125      */
126     public void setRetryTimeLimit(int retryTimeLimit) {
127         this.retryTimeLimit = retryTimeLimit;
128     }
129
130     /**
131      * @set the parentPolicyConditions
132      */
133     public void setParentPolicyConditions(List<String> parentPolicyConditions) {
134         this.parentPolicyConditions = parentPolicyConditions;
135     }
136
137     /**
138      * @return the maxRetries
139      */
140     public int getMaxRetries() {
141         return maxRetries;
142     }
143
144     /**
145      * @return the retryTimeLimit
146      */
147     public int getRetryTimeLimit() {
148         return retryTimeLimit;
149     }
150
151     /**
152      * @return the parentPolicy
153      */
154     public String getParentPolicy() {
155         return parentPolicy;
156     }
157
158     /**
159      * @return the parentPolicyConditions
160      */
161     public List<String> getParentPolicyConditions() {
162         return parentPolicyConditions;
163     }
164
165     /**
166      * @return the actor
167      */
168     public String getActor() {
169         return actor;
170     }
171
172     /**
173      * @set the actor
174      */
175     public void setActor(String actor) {
176         this.actor = actor;
177     }
178
179     public String getTargetResourceId() {
180         return targetResourceId;
181     }
182
183     public void setTargetResourceId(String targetResourceId) {
184         this.targetResourceId = targetResourceId;
185     }
186
187     @Override
188     public Object clone() throws CloneNotSupportedException {
189         return super.clone();
190     }
191 }