Format ONAP-XACML and add JUnit
[policy/engine.git] / ONAP-XACML / src / main / java / org / onap / policy / xacml / std / pap / StdPDPGroupStatus.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP-XACML
4  * ================================================================================
5  * Copyright (C) 2017-2019 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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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=========================================================
19  */
20
21 package org.onap.policy.xacml.std.pap;
22
23 import com.att.research.xacml.api.pap.PDP;
24 import com.att.research.xacml.api.pap.PDPGroupStatus;
25 import com.att.research.xacml.api.pap.PDPPIPConfig;
26 import com.att.research.xacml.api.pap.PDPPolicy;
27 import com.fasterxml.jackson.annotation.JsonIgnore;
28
29 import java.util.Collections;
30 import java.util.HashSet;
31 import java.util.Set;
32 import lombok.EqualsAndHashCode;
33 import lombok.ToString;
34
35 @EqualsAndHashCode(callSuper=false)
36 @ToString
37 public class StdPDPGroupStatus implements PDPGroupStatus {
38
39     private Status status = Status.UNKNOWN;
40
41     private Set<String> loadErrors = new HashSet<>();
42
43     private Set<String> loadWarnings = new HashSet<>();
44
45     private Set<PDPPolicy> loadedPolicies = new HashSet<>();
46
47     private Set<PDPPolicy> failedPolicies = new HashSet<>();
48
49     private Set<PDPPIPConfig> loadedPIPConfigs = new HashSet<>();
50
51     private Set<PDPPIPConfig> failedPIPConfigs = new HashSet<>();
52
53     private Set<PDP> inSynchPDPs = new HashSet<>();
54
55     private Set<PDP> outOfSynchPDPs = new HashSet<>();
56
57     private Set<PDP> failedPDPs = new HashSet<>();
58
59     private Set<PDP> updatingPDPs = new HashSet<>();
60
61     private Set<PDP> lastUpdateFailedPDPs = new HashSet<>();
62
63     private Set<PDP> unknownPDPs = new HashSet<>();
64
65     public StdPDPGroupStatus() {
66         //
67         // Constructor needed for JSON deserialization
68         //
69     }
70
71     public StdPDPGroupStatus(Status status) {
72         this.status = status;
73     }
74
75     public StdPDPGroupStatus(PDPGroupStatus stat) {
76         this.status = stat.getStatus();
77         this.failedPDPs.clear();
78         this.failedPDPs.addAll(stat.getFailedPDPs());
79         this.failedPIPConfigs.clear();
80         this.failedPIPConfigs.addAll(stat.getFailedPipConfigs());
81         this.failedPolicies.clear();
82         this.failedPolicies.addAll(stat.getFailedPolicies());
83         this.inSynchPDPs.clear();
84         this.inSynchPDPs.addAll(stat.getInSynchPDPs());
85         this.lastUpdateFailedPDPs.clear();
86         this.lastUpdateFailedPDPs.addAll(stat.getLastUpdateFailedPDPs());
87         this.loadedPIPConfigs.clear();
88         this.loadedPIPConfigs.addAll(stat.getLoadedPipConfigs());
89         this.loadedPolicies.clear();
90         this.loadedPolicies.addAll(stat.getLoadedPolicies());
91         this.loadErrors.clear();
92         this.loadErrors.addAll(stat.getLoadErrors());
93         this.loadWarnings.clear();
94         this.loadWarnings.addAll(stat.getLoadWarnings());
95         this.outOfSynchPDPs.clear();
96         this.outOfSynchPDPs.addAll(stat.getOutOfSynchPDPs());
97         this.unknownPDPs.clear();
98         this.unknownPDPs.addAll(stat.getUpdatingPDPs());
99         this.updatingPDPs.clear();
100         this.updatingPDPs.addAll(stat.getUpdatingPDPs());
101     }
102
103     public Set<PDPPIPConfig> getLoadedPIPConfigs() {
104         return loadedPIPConfigs;
105     }
106
107     public void setLoadedPIPConfigs(Set<PDPPIPConfig> loadedPIPConfigs) {
108         this.loadedPIPConfigs = loadedPIPConfigs;
109     }
110
111     public Set<PDPPIPConfig> getFailedPIPConfigs() {
112         return failedPIPConfigs;
113     }
114
115     public void setFailedPIPConfigs(Set<PDPPIPConfig> failedPIPConfigs) {
116         this.failedPIPConfigs = failedPIPConfigs;
117     }
118
119     public Set<PDP> getUnknownPDPs() {
120         return unknownPDPs;
121     }
122
123     public void setUnknownPDPs(Set<PDP> unknownPDPs) {
124         this.unknownPDPs = unknownPDPs;
125     }
126
127     public void setLoadErrors(Set<String> loadErrors) {
128         this.loadErrors = loadErrors;
129     }
130
131     public void setLoadWarnings(Set<String> loadWarnings) {
132         this.loadWarnings = loadWarnings;
133     }
134
135     public void setLoadedPolicies(Set<PDPPolicy> loadedPolicies) {
136         this.loadedPolicies = loadedPolicies;
137     }
138
139     public void setFailedPolicies(Set<PDPPolicy> failedPolicies) {
140         this.failedPolicies = failedPolicies;
141     }
142
143     public void setInSynchPDPs(Set<PDP> inSynchPDPs) {
144         this.inSynchPDPs = inSynchPDPs;
145     }
146
147     public void setOutOfSynchPDPs(Set<PDP> outOfSynchPDPs) {
148         this.outOfSynchPDPs = outOfSynchPDPs;
149     }
150
151     public void setFailedPDPs(Set<PDP> failedPDPs) {
152         this.failedPDPs = failedPDPs;
153     }
154
155     public void setUpdatingPDPs(Set<PDP> updatingPDPs) {
156         this.updatingPDPs = updatingPDPs;
157     }
158
159     public void setLastUpdateFailedPDPs(Set<PDP> lastUpdateFailedPDPs) {
160         this.lastUpdateFailedPDPs = lastUpdateFailedPDPs;
161     }
162
163     @Override
164     public Status getStatus() {
165         return status;
166     }
167
168     public void setStatus(Status status) {
169         this.status = status;
170     }
171
172     @Override
173     public Set<String> getLoadErrors() {
174         return Collections.unmodifiableSet(this.loadErrors);
175     }
176
177     public void addLoadError(String error) {
178         this.loadErrors.add(error);
179     }
180
181     @Override
182     public Set<String> getLoadWarnings() {
183         return Collections.unmodifiableSet(this.loadWarnings);
184     }
185
186     public void addLoadWarning(String warning) {
187         this.loadWarnings.add(warning);
188     }
189
190     @Override
191     public Set<PDPPolicy> getLoadedPolicies() {
192         return Collections.unmodifiableSet(this.loadedPolicies);
193     }
194
195     public void addLoadedPolicy(PDPPolicy policy) {
196         this.loadedPolicies.add(policy);
197     }
198
199     @Override
200     public Set<PDPPolicy> getFailedPolicies() {
201         return Collections.unmodifiableSet(this.failedPolicies);
202     }
203
204     public void addFailedPolicy(PDPPolicy policy) {
205         this.failedPolicies.add(policy);
206     }
207
208     @Override
209     public boolean policiesOK() {
210         return this.failedPolicies.isEmpty();
211     }
212
213     @Override
214     public Set<PDPPIPConfig> getLoadedPipConfigs() {
215         return Collections.unmodifiableSet(this.loadedPIPConfigs);
216     }
217
218     public void addLoadedPipConfig(PDPPIPConfig config) {
219         this.loadedPIPConfigs.add(config);
220     }
221
222     @Override
223     public Set<PDPPIPConfig> getFailedPipConfigs() {
224         return Collections.unmodifiableSet(this.failedPIPConfigs);
225     }
226
227     public void addFailedPipConfig(PDPPIPConfig config) {
228         this.failedPIPConfigs.add(config);
229     }
230
231     @Override
232     public boolean pipConfigOK() {
233         return this.failedPIPConfigs.isEmpty();
234     }
235
236     @Override
237     public Set<PDP> getInSynchPDPs() {
238         return Collections.unmodifiableSet(this.inSynchPDPs);
239     }
240
241     public void addInSynchPDP(PDP pdp) {
242         this.inSynchPDPs.add(pdp);
243     }
244
245     @Override
246     public Set<PDP> getOutOfSynchPDPs() {
247         return Collections.unmodifiableSet(this.outOfSynchPDPs);
248     }
249
250     public void addOutOfSynchPDP(PDP pdp) {
251         this.outOfSynchPDPs.add(pdp);
252     }
253
254     @Override
255     public Set<PDP> getFailedPDPs() {
256         return Collections.unmodifiableSet(this.failedPDPs);
257     }
258
259     public void addFailedPDP(PDP pdp) {
260         this.failedPDPs.add(pdp);
261     }
262
263     @Override
264     public Set<PDP> getUpdatingPDPs() {
265         return Collections.unmodifiableSet(this.updatingPDPs);
266     }
267
268     public void addUpdatingPDP(PDP pdp) {
269         this.updatingPDPs.add(pdp);
270     }
271
272     @Override
273     public Set<PDP> getLastUpdateFailedPDPs() {
274         return Collections.unmodifiableSet(this.lastUpdateFailedPDPs);
275     }
276
277     public void addLastUpdateFailedPDP(PDP pdp) {
278         this.lastUpdateFailedPDPs.add(pdp);
279     }
280
281     @Override
282     @JsonIgnore
283     public Set<PDP> getUnknownStatusPDPs() {
284         return Collections.unmodifiableSet(this.unknownPDPs);
285     }
286
287     public void addUnknownPDP(PDP pdp) {
288         this.unknownPDPs.add(pdp);
289     }
290
291     @Override
292     public boolean pdpsOK() {
293         if (!this.outOfSynchPDPs.isEmpty()) {
294             return false;
295         }
296         if (!this.failedPDPs.isEmpty()) {
297             return false;
298         }
299         if (!this.lastUpdateFailedPDPs.isEmpty()) {
300             return false;
301         }
302         return this.unknownPDPs.isEmpty();
303     }
304
305     @Override
306     @JsonIgnore
307     public boolean isGroupOk() {
308         if (!this.policiesOK()) {
309             return false;
310         }
311         if (!this.pipConfigOK()) {
312             return false;
313         }
314         if (!this.pdpsOK()) {
315             return false;
316         }
317         if (!this.loadErrors.isEmpty()) {
318             return false;
319         }
320         return this.status == Status.OK;
321     }
322
323     /**
324      * reset.
325      */
326     public void reset() {
327         this.status = Status.OK;
328
329         this.loadErrors.clear();
330         this.loadWarnings.clear();
331         this.loadedPolicies.clear();
332         this.failedPolicies.clear();
333         this.loadedPIPConfigs.clear();
334         this.failedPIPConfigs.clear();
335         this.inSynchPDPs.clear();
336         this.outOfSynchPDPs.clear();
337         this.failedPDPs.clear();
338         this.updatingPDPs.clear();
339         this.lastUpdateFailedPDPs.clear();
340         this.unknownPDPs.clear();
341     }
342
343 }