2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
20 package org.onap.policy.xacml.std.pap;
22 import java.util.Collections;
23 import java.util.HashSet;
26 import com.att.research.xacml.api.pap.PDP;
27 import com.att.research.xacml.api.pap.PDPGroupStatus;
28 import com.att.research.xacml.api.pap.PDPPIPConfig;
29 import com.att.research.xacml.api.pap.PDPPolicy;
30 import com.fasterxml.jackson.annotation.JsonIgnore;
32 public class StdPDPGroupStatus implements PDPGroupStatus {
34 private Status status = Status.UNKNOWN;
36 private Set<String> loadErrors = new HashSet<>();
38 private Set<String> loadWarnings = new HashSet<>();
40 private Set<PDPPolicy> loadedPolicies = new HashSet<>();
42 private Set<PDPPolicy> failedPolicies = new HashSet<>();
44 private Set<PDPPIPConfig> loadedPIPConfigs = new HashSet<>();
46 private Set<PDPPIPConfig> failedPIPConfigs = new HashSet<>();
48 private Set<PDP> inSynchPDPs = new HashSet<>();
50 private Set<PDP> outOfSynchPDPs = new HashSet<>();
52 private Set<PDP> failedPDPs = new HashSet<>();
54 private Set<PDP> updatingPDPs = new HashSet<>();
56 private Set<PDP> lastUpdateFailedPDPs = new HashSet<>();
58 private Set<PDP> unknownPDPs = new HashSet<>();
62 public StdPDPGroupStatus() {
64 // Constructor needed for JSON deserialization
68 public StdPDPGroupStatus(Status status) {
72 public StdPDPGroupStatus(PDPGroupStatus stat) {
73 this.status = stat.getStatus();
74 this.failedPDPs.clear(); this.failedPDPs.addAll(stat.getFailedPDPs());
75 this.failedPIPConfigs.clear(); this.failedPIPConfigs.addAll(stat.getFailedPipConfigs());
76 this.failedPolicies.clear(); this.failedPolicies.addAll(stat.getFailedPolicies());
77 this.inSynchPDPs.clear(); this.inSynchPDPs.addAll(stat.getInSynchPDPs());
78 this.lastUpdateFailedPDPs.clear(); this.lastUpdateFailedPDPs.addAll(stat.getLastUpdateFailedPDPs());
79 this.loadedPIPConfigs.clear(); this.loadedPIPConfigs.addAll(stat.getLoadedPipConfigs());
80 this.loadedPolicies.clear(); this.loadedPolicies.addAll(stat.getLoadedPolicies());
81 this.loadErrors.clear(); this.loadErrors.addAll(stat.getLoadErrors());
82 this.loadWarnings.clear(); this.loadWarnings.addAll(stat.getLoadWarnings());
83 this.outOfSynchPDPs.clear(); this.outOfSynchPDPs.addAll(stat.getOutOfSynchPDPs());
84 this.unknownPDPs.clear(); this.unknownPDPs.addAll(stat.getUpdatingPDPs());
85 this.updatingPDPs.clear(); this.updatingPDPs.addAll(stat.getUpdatingPDPs());
88 public Set<PDPPIPConfig> getLoadedPIPConfigs() {
89 return loadedPIPConfigs;
91 public void setLoadedPIPConfigs(Set<PDPPIPConfig> loadedPIPConfigs) {
92 this.loadedPIPConfigs = loadedPIPConfigs;
94 public Set<PDPPIPConfig> getFailedPIPConfigs() {
95 return failedPIPConfigs;
97 public void setFailedPIPConfigs(Set<PDPPIPConfig> failedPIPConfigs) {
98 this.failedPIPConfigs = failedPIPConfigs;
100 public Set<PDP> getUnknownPDPs() {
103 public void setUnknownPDPs(Set<PDP> unknownPDPs) {
104 this.unknownPDPs = unknownPDPs;
106 public void setLoadErrors(Set<String> loadErrors) {
107 this.loadErrors = loadErrors;
109 public void setLoadWarnings(Set<String> loadWarnings) {
110 this.loadWarnings = loadWarnings;
112 public void setLoadedPolicies(Set<PDPPolicy> loadedPolicies) {
113 this.loadedPolicies = loadedPolicies;
115 public void setFailedPolicies(Set<PDPPolicy> failedPolicies) {
116 this.failedPolicies = failedPolicies;
118 public void setInSynchPDPs(Set<PDP> inSynchPDPs) {
119 this.inSynchPDPs = inSynchPDPs;
121 public void setOutOfSynchPDPs(Set<PDP> outOfSynchPDPs) {
122 this.outOfSynchPDPs = outOfSynchPDPs;
124 public void setFailedPDPs(Set<PDP> failedPDPs) {
125 this.failedPDPs = failedPDPs;
127 public void setUpdatingPDPs(Set<PDP> updatingPDPs) {
128 this.updatingPDPs = updatingPDPs;
130 public void setLastUpdateFailedPDPs(Set<PDP> lastUpdateFailedPDPs) {
131 this.lastUpdateFailedPDPs = lastUpdateFailedPDPs;
136 public Status getStatus() {
140 public void setStatus(Status status) {
141 this.status = status;
145 public Set<String> getLoadErrors() {
146 return Collections.unmodifiableSet(this.loadErrors);
149 public void addLoadError(String error) {
150 this.loadErrors.add(error);
154 public Set<String> getLoadWarnings() {
155 return Collections.unmodifiableSet(this.loadWarnings);
158 public void addLoadWarning(String warning) {
159 this.loadWarnings.add(warning);
163 public Set<PDPPolicy> getLoadedPolicies() {
164 return Collections.unmodifiableSet(this.loadedPolicies);
167 public void addLoadedPolicy(PDPPolicy policy) {
168 this.loadedPolicies.add(policy);
172 public Set<PDPPolicy> getFailedPolicies() {
173 return Collections.unmodifiableSet(this.failedPolicies);
176 public void addFailedPolicy(PDPPolicy policy) {
177 this.failedPolicies.add(policy);
181 public boolean policiesOK() {
182 if (!this.failedPolicies.isEmpty()) {
189 public Set<PDPPIPConfig> getLoadedPipConfigs() {
190 return Collections.unmodifiableSet(this.loadedPIPConfigs);
193 public void addLoadedPipConfig(PDPPIPConfig config) {
194 this.loadedPIPConfigs.add(config);
198 public Set<PDPPIPConfig> getFailedPipConfigs() {
199 return Collections.unmodifiableSet(this.failedPIPConfigs);
202 public void addFailedPipConfig(PDPPIPConfig config) {
203 this.failedPIPConfigs.add(config);
207 public boolean pipConfigOK() {
208 if (!this.failedPIPConfigs.isEmpty()) {
215 public Set<PDP> getInSynchPDPs() {
216 return Collections.unmodifiableSet(this.inSynchPDPs);
219 public void addInSynchPDP(PDP pdp) {
220 this.inSynchPDPs.add(pdp);
224 public Set<PDP> getOutOfSynchPDPs() {
225 return Collections.unmodifiableSet(this.outOfSynchPDPs);
228 public void addOutOfSynchPDP(PDP pdp) {
229 this.outOfSynchPDPs.add(pdp);
233 public Set<PDP> getFailedPDPs() {
234 return Collections.unmodifiableSet(this.failedPDPs);
237 public void addFailedPDP(PDP pdp) {
238 this.failedPDPs.add(pdp);
242 public Set<PDP> getUpdatingPDPs() {
243 return Collections.unmodifiableSet(this.updatingPDPs);
246 public void addUpdatingPDP(PDP pdp) {
247 this.updatingPDPs.add(pdp);
251 public Set<PDP> getLastUpdateFailedPDPs() {
252 return Collections.unmodifiableSet(this.lastUpdateFailedPDPs);
255 public void addLastUpdateFailedPDP(PDP pdp) {
256 this.lastUpdateFailedPDPs.add(pdp);
261 public Set<PDP> getUnknownStatusPDPs() {
262 return Collections.unmodifiableSet(this.unknownPDPs);
265 public void addUnknownPDP(PDP pdp) {
266 this.unknownPDPs.add(pdp);
270 public boolean pdpsOK() {
271 if (!this.outOfSynchPDPs.isEmpty()) {
274 if (!this.failedPDPs.isEmpty()) {
277 if (!this.lastUpdateFailedPDPs.isEmpty()) {
280 if (!this.unknownPDPs.isEmpty()) {
288 public boolean isGroupOk() {
289 if (this.policiesOK() == false) {
292 if (this.pipConfigOK() == false) {
295 if (this.pdpsOK() == false) {
298 if (this.loadErrors.isEmpty() == false) {
301 return this.status == Status.OK;
304 public void reset() {
305 this.status = Status.OK;
307 this.loadErrors.clear();
308 this.loadWarnings.clear();
309 this.loadedPolicies.clear();
310 this.failedPolicies.clear();
311 this.loadedPIPConfigs.clear();
312 this.failedPIPConfigs.clear();
313 this.inSynchPDPs.clear();
314 this.outOfSynchPDPs.clear();
315 this.failedPDPs.clear();
316 this.updatingPDPs.clear();
317 this.lastUpdateFailedPDPs.clear();
318 this.unknownPDPs.clear();
322 public int hashCode() {
323 final int prime = 31;
325 result = prime * result
326 + (failedPDPs.hashCode());
329 + (failedPIPConfigs.hashCode());
330 result = prime * result
331 + (failedPolicies.hashCode());
332 result = prime * result
333 + (inSynchPDPs.hashCode());
336 + (lastUpdateFailedPDPs.hashCode());
337 result = prime * result
338 + (loadErrors.hashCode());
339 result = prime * result
340 + (loadWarnings.hashCode());
343 + (loadedPIPConfigs.hashCode());
344 result = prime * result
345 + (loadedPolicies.hashCode());
346 result = prime * result
347 + (outOfSynchPDPs.hashCode());
348 result = prime * result + (status.hashCode());
349 result = prime * result
350 + (unknownPDPs.hashCode());
351 result = prime * result
352 + (updatingPDPs.hashCode());
357 public boolean equals(Object obj) {
362 if (getClass() != obj.getClass())
364 StdPDPGroupStatus other = (StdPDPGroupStatus) obj;
365 if (!failedPDPs.equals(other.failedPDPs))
367 if (!failedPIPConfigs.equals(other.failedPIPConfigs))
369 if (!failedPolicies.equals(other.failedPolicies))
371 if (!inSynchPDPs.equals(other.inSynchPDPs))
373 if (!lastUpdateFailedPDPs.equals(other.lastUpdateFailedPDPs))
375 if (!loadErrors.equals(other.loadErrors))
377 if (!loadWarnings.equals(other.loadWarnings))
379 if (!loadedPIPConfigs.equals(other.loadedPIPConfigs))
381 if (!loadedPolicies.equals(other.loadedPolicies))
383 if (!outOfSynchPDPs.equals(other.outOfSynchPDPs))
385 if (status != other.status)
387 if (!unknownPDPs.equals(other.unknownPDPs))
389 if (!updatingPDPs.equals(other.updatingPDPs))
395 public String toString() {
396 return "StdPDPGroupStatus [status=" + status + ", loadErrors="
397 + loadErrors + ", loadWarnings=" + loadWarnings
398 + ", loadedPolicies=" + loadedPolicies + ", failedPolicies="
399 + failedPolicies + ", loadedPIPConfigs=" + loadedPIPConfigs
400 + ", failedPIPConfigs=" + failedPIPConfigs + ", inSynchPDPs="
401 + inSynchPDPs + ", outOfSynchPDPs=" + outOfSynchPDPs
402 + ", failedPDPs=" + failedPDPs + ", updatingPDPs="
403 + updatingPDPs + ", lastUpdateFailedPDPs="
404 + lastUpdateFailedPDPs + ", unknownPDPs=" + unknownPDPs + "]";