2 * ============LICENSE_START=======================================================
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
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=========================================================
21 package org.onap.policy.xacml.std.pap;
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;
29 import java.util.Collections;
30 import java.util.HashSet;
32 import lombok.EqualsAndHashCode;
33 import lombok.ToString;
35 @EqualsAndHashCode(callSuper=false)
37 public class StdPDPGroupStatus implements PDPGroupStatus {
39 private Status status = Status.UNKNOWN;
41 private Set<String> loadErrors = new HashSet<>();
43 private Set<String> loadWarnings = new HashSet<>();
45 private Set<PDPPolicy> loadedPolicies = new HashSet<>();
47 private Set<PDPPolicy> failedPolicies = new HashSet<>();
49 private Set<PDPPIPConfig> loadedPIPConfigs = new HashSet<>();
51 private Set<PDPPIPConfig> failedPIPConfigs = new HashSet<>();
53 private Set<PDP> inSynchPDPs = new HashSet<>();
55 private Set<PDP> outOfSynchPDPs = new HashSet<>();
57 private Set<PDP> failedPDPs = new HashSet<>();
59 private Set<PDP> updatingPDPs = new HashSet<>();
61 private Set<PDP> lastUpdateFailedPDPs = new HashSet<>();
63 private Set<PDP> unknownPDPs = new HashSet<>();
65 public StdPDPGroupStatus() {
67 // Constructor needed for JSON deserialization
71 public StdPDPGroupStatus(Status status) {
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());
103 public Set<PDPPIPConfig> getLoadedPIPConfigs() {
104 return loadedPIPConfigs;
107 public void setLoadedPIPConfigs(Set<PDPPIPConfig> loadedPIPConfigs) {
108 this.loadedPIPConfigs = loadedPIPConfigs;
111 public Set<PDPPIPConfig> getFailedPIPConfigs() {
112 return failedPIPConfigs;
115 public void setFailedPIPConfigs(Set<PDPPIPConfig> failedPIPConfigs) {
116 this.failedPIPConfigs = failedPIPConfigs;
119 public Set<PDP> getUnknownPDPs() {
123 public void setUnknownPDPs(Set<PDP> unknownPDPs) {
124 this.unknownPDPs = unknownPDPs;
127 public void setLoadErrors(Set<String> loadErrors) {
128 this.loadErrors = loadErrors;
131 public void setLoadWarnings(Set<String> loadWarnings) {
132 this.loadWarnings = loadWarnings;
135 public void setLoadedPolicies(Set<PDPPolicy> loadedPolicies) {
136 this.loadedPolicies = loadedPolicies;
139 public void setFailedPolicies(Set<PDPPolicy> failedPolicies) {
140 this.failedPolicies = failedPolicies;
143 public void setInSynchPDPs(Set<PDP> inSynchPDPs) {
144 this.inSynchPDPs = inSynchPDPs;
147 public void setOutOfSynchPDPs(Set<PDP> outOfSynchPDPs) {
148 this.outOfSynchPDPs = outOfSynchPDPs;
151 public void setFailedPDPs(Set<PDP> failedPDPs) {
152 this.failedPDPs = failedPDPs;
155 public void setUpdatingPDPs(Set<PDP> updatingPDPs) {
156 this.updatingPDPs = updatingPDPs;
159 public void setLastUpdateFailedPDPs(Set<PDP> lastUpdateFailedPDPs) {
160 this.lastUpdateFailedPDPs = lastUpdateFailedPDPs;
164 public Status getStatus() {
168 public void setStatus(Status status) {
169 this.status = status;
173 public Set<String> getLoadErrors() {
174 return Collections.unmodifiableSet(this.loadErrors);
177 public void addLoadError(String error) {
178 this.loadErrors.add(error);
182 public Set<String> getLoadWarnings() {
183 return Collections.unmodifiableSet(this.loadWarnings);
186 public void addLoadWarning(String warning) {
187 this.loadWarnings.add(warning);
191 public Set<PDPPolicy> getLoadedPolicies() {
192 return Collections.unmodifiableSet(this.loadedPolicies);
195 public void addLoadedPolicy(PDPPolicy policy) {
196 this.loadedPolicies.add(policy);
200 public Set<PDPPolicy> getFailedPolicies() {
201 return Collections.unmodifiableSet(this.failedPolicies);
204 public void addFailedPolicy(PDPPolicy policy) {
205 this.failedPolicies.add(policy);
209 public boolean policiesOK() {
210 return this.failedPolicies.isEmpty();
214 public Set<PDPPIPConfig> getLoadedPipConfigs() {
215 return Collections.unmodifiableSet(this.loadedPIPConfigs);
218 public void addLoadedPipConfig(PDPPIPConfig config) {
219 this.loadedPIPConfigs.add(config);
223 public Set<PDPPIPConfig> getFailedPipConfigs() {
224 return Collections.unmodifiableSet(this.failedPIPConfigs);
227 public void addFailedPipConfig(PDPPIPConfig config) {
228 this.failedPIPConfigs.add(config);
232 public boolean pipConfigOK() {
233 return this.failedPIPConfigs.isEmpty();
237 public Set<PDP> getInSynchPDPs() {
238 return Collections.unmodifiableSet(this.inSynchPDPs);
241 public void addInSynchPDP(PDP pdp) {
242 this.inSynchPDPs.add(pdp);
246 public Set<PDP> getOutOfSynchPDPs() {
247 return Collections.unmodifiableSet(this.outOfSynchPDPs);
250 public void addOutOfSynchPDP(PDP pdp) {
251 this.outOfSynchPDPs.add(pdp);
255 public Set<PDP> getFailedPDPs() {
256 return Collections.unmodifiableSet(this.failedPDPs);
259 public void addFailedPDP(PDP pdp) {
260 this.failedPDPs.add(pdp);
264 public Set<PDP> getUpdatingPDPs() {
265 return Collections.unmodifiableSet(this.updatingPDPs);
268 public void addUpdatingPDP(PDP pdp) {
269 this.updatingPDPs.add(pdp);
273 public Set<PDP> getLastUpdateFailedPDPs() {
274 return Collections.unmodifiableSet(this.lastUpdateFailedPDPs);
277 public void addLastUpdateFailedPDP(PDP pdp) {
278 this.lastUpdateFailedPDPs.add(pdp);
283 public Set<PDP> getUnknownStatusPDPs() {
284 return Collections.unmodifiableSet(this.unknownPDPs);
287 public void addUnknownPDP(PDP pdp) {
288 this.unknownPDPs.add(pdp);
292 public boolean pdpsOK() {
293 if (!this.outOfSynchPDPs.isEmpty()) {
296 if (!this.failedPDPs.isEmpty()) {
299 if (!this.lastUpdateFailedPDPs.isEmpty()) {
302 return this.unknownPDPs.isEmpty();
307 public boolean isGroupOk() {
308 if (!this.policiesOK()) {
311 if (!this.pipConfigOK()) {
314 if (!this.pdpsOK()) {
317 if (!this.loadErrors.isEmpty()) {
320 return this.status == Status.OK;
326 public void reset() {
327 this.status = Status.OK;
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();