diff options
Diffstat (limited to 'ECOMP-ControlloopPolicy/src/main/java/org/openecomp/policy/controlloop/policy/builder/impl/ControlLoopPolicyBuilderImpl.java')
-rw-r--r-- | ECOMP-ControlloopPolicy/src/main/java/org/openecomp/policy/controlloop/policy/builder/impl/ControlLoopPolicyBuilderImpl.java | 230 |
1 files changed, 170 insertions, 60 deletions
diff --git a/ECOMP-ControlloopPolicy/src/main/java/org/openecomp/policy/controlloop/policy/builder/impl/ControlLoopPolicyBuilderImpl.java b/ECOMP-ControlloopPolicy/src/main/java/org/openecomp/policy/controlloop/policy/builder/impl/ControlLoopPolicyBuilderImpl.java index be34a0a24..523054dce 100644 --- a/ECOMP-ControlloopPolicy/src/main/java/org/openecomp/policy/controlloop/policy/builder/impl/ControlLoopPolicyBuilderImpl.java +++ b/ECOMP-ControlloopPolicy/src/main/java/org/openecomp/policy/controlloop/policy/builder/impl/ControlLoopPolicyBuilderImpl.java @@ -24,6 +24,8 @@ import java.util.LinkedList; import java.util.Map; import java.util.UUID; +import org.openecomp.policy.asdc.Resource; +import org.openecomp.policy.asdc.Service; import org.openecomp.policy.controlloop.compiler.CompilerException; import org.openecomp.policy.controlloop.compiler.ControlLoopCompiler; import org.openecomp.policy.controlloop.compiler.ControlLoopCompilerCallback; @@ -48,9 +50,89 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { public ControlLoopPolicyBuilderImpl(String controlLoopName, Integer timeout) throws BuilderException { policy = new ControlLoopPolicy(); - policy.controlLoop = new ControlLoop(); - policy.controlLoop.controlLoopName = controlLoopName; - policy.controlLoop.timeout = timeout; + ControlLoop controlLoop = new ControlLoop(); + controlLoop.setControlLoopName(controlLoopName); + controlLoop.setTimeout(timeout); + policy.setControlLoop(controlLoop); + } + + public ControlLoopPolicyBuilderImpl(String controlLoopName, Integer timeout, Resource resource, Service... services) throws BuilderException { + this(controlLoopName, timeout); + this.addResource(resource); + this.addService(services); + } + + public ControlLoopPolicyBuilderImpl(String controlLoopName, Integer timeout, Service service, Resource[] resources) throws BuilderException { + this(controlLoopName, timeout); + this.addService(service); + this.addResource(resources); + } + + @Override + public ControlLoopPolicyBuilder addService(Service... services) throws BuilderException { + if (services == null) { + throw new BuilderException("Service must not be null"); + } + for (Service service : services) { + if (service.getServiceUUID() == null) { + if (service.getServiceName() == null || service.getServiceName().length() < 1) { + throw new BuilderException("Invalid service - need either a serviceUUID or serviceName"); + } + if(policy.getControlLoop().getServices()==null){ + policy.getControlLoop().setServices(new LinkedList<>()); + } + policy.getControlLoop().getServices().add(service); + } + } + return this; + } + + @Override + public ControlLoopPolicyBuilder removeService(Service... services) throws BuilderException { + if (services == null) { + throw new BuilderException("Service must not be null"); + } + if (policy.getControlLoop().getServices() == null) { + throw new BuilderException("No existing services to remove"); + } + for (Service service : services) { + if (service.getServiceUUID() == null) { + if (service.getServiceName() == null || service.getServiceName().length() < 1) { + throw new BuilderException("Invalid service - need either a serviceUUID or serviceName"); + } + } + boolean removed = policy.getControlLoop().getServices().remove(service); + if (!removed) { + throw new BuilderException("Unknown service " + service.getServiceName()); + } + } + return this; + } + + @Override + public ControlLoopPolicyBuilder removeAllServices() throws BuilderException { + policy.getControlLoop().getServices().clear(); + return this; + } + + + @Override + public ControlLoopPolicyBuilder addResource(Resource... resources) throws BuilderException { + if (resources == null) { + throw new BuilderException("resources must not be null"); + } + for (Resource resource : resources) { + if (resource.getResourceUUID() == null) { + if (resource.getResourceName() == null || resource.getResourceName().length() <= 0) { + throw new BuilderException("Invalid resource - need either resourceUUID or resourceName"); + } + } + if(policy.getControlLoop().getResources()==null){ + policy.getControlLoop().setResources(new LinkedList<>()); + } + policy.getControlLoop().getResources().add(resource); + } + return this; } @Override @@ -58,13 +140,13 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { if (abatement == null) { throw new BuilderException("abatement must not be null"); } - policy.controlLoop.abatement = abatement; + policy.getControlLoop().setAbatement(abatement); return this; } @Override public ControlLoopPolicyBuilder setTimeout(Integer timeout) { - policy.controlLoop.timeout = timeout; + policy.getControlLoop().setTimeout(timeout); return this; } @@ -74,7 +156,7 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { Policy trigger = new Policy(UUID.randomUUID().toString(), name, description, actor, payload, target, recipe, retries, timeout); - policy.controlLoop.trigger_policy = trigger.id; + policy.getControlLoop().setTrigger_policy(trigger.getId()); this.addNewPolicy(trigger); // @@ -103,22 +185,22 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { for (PolicyResult result : results) { switch (result) { case FAILURE: - existingPolicy.failure = newPolicy.id; + existingPolicy.setFailure(newPolicy.getId()); break; case FAILURE_EXCEPTION: - existingPolicy.failure_exception = newPolicy.id; + existingPolicy.setFailure_exception(newPolicy.getId()); break; case FAILURE_RETRIES: - existingPolicy.failure_retries = newPolicy.id; + existingPolicy.setFailure_retries(newPolicy.getId()); break; case FAILURE_TIMEOUT: - existingPolicy.failure_timeout = newPolicy.id; + existingPolicy.setFailure_timeout(newPolicy.getId()); break; case FAILURE_GUARD: - existingPolicy.failure_guard = newPolicy.id; + existingPolicy.setFailure_guard(newPolicy.getId()); break; case SUCCESS: - existingPolicy.success = newPolicy.id; + existingPolicy.setSuccess(newPolicy.getId()); break; default: throw new BuilderException("Invalid PolicyResult " + result); @@ -127,7 +209,7 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { // // Add it to our list // - this.policy.policies.add(newPolicy); + this.policy.getPolicies().add(newPolicy); // // Return a policy to them // @@ -136,7 +218,7 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { private class BuilderCompilerCallback implements ControlLoopCompilerCallback { - public ResultsImpl results = new ResultsImpl(); + private ResultsImpl results = new ResultsImpl(); @Override public boolean onWarning(String message) { @@ -181,15 +263,15 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { } private void addNewPolicy(Policy policy) { - if (this.policy.policies == null) { - this.policy.policies = new LinkedList<Policy>(); + if (this.policy.getPolicies() == null) { + this.policy.setPolicies(new LinkedList<>()); } - this.policy.policies.add(policy); + this.policy.getPolicies().add(policy); } private Policy findPolicy(String id) { - for (Policy policy : this.policy.policies) { - if (policy.id.equals(id)) { + for (Policy policy : this.policy.getPolicies()) { + if (policy.getId().equals(id)) { return policy; } } @@ -197,10 +279,38 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { } @Override + public ControlLoopPolicyBuilder removeResource(Resource... resources) throws BuilderException { + if (resources == null) { + throw new BuilderException("Resource must not be null"); + } + if (policy.getControlLoop().getResources() == null) { + throw new BuilderException("No existing resources to remove"); + } + for (Resource resource : resources) { + if (resource.getResourceUUID() == null) { + if (resource.getResourceName() == null || resource.getResourceName().length() < 1) { + throw new BuilderException("Invalid resource - need either a resourceUUID or resourceName"); + } + } + boolean removed = policy.getControlLoop().getResources().remove(resource); + if (!removed) { + throw new BuilderException("Unknown resource " + resource.getResourceName()); + } + } + return this; + } + + @Override + public ControlLoopPolicyBuilder removeAllResources() throws BuilderException { + policy.getControlLoop().getResources().clear(); + return this; + } + + @Override public Integer calculateTimeout() { int sum = 0; - for (Policy policy : this.policy.policies) { - sum += policy.timeout.intValue(); + for (Policy policy : this.policy.getPolicies()) { + sum += policy.getTimeout().intValue(); } return new Integer(sum); } @@ -215,14 +325,14 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { throw new BuilderException("Unknown policy " + id); } else { - this.policy.controlLoop.trigger_policy = id; + this.policy.getControlLoop().setTrigger_policy(id); } - return new ControlLoop(this.policy.controlLoop); + return new ControlLoop(this.policy.getControlLoop()); } @Override public boolean isOpenLoop() { - if (this.policy.controlLoop.trigger_policy.equals(FinalResult.FINAL_OPENLOOP.toString())) { + if (this.policy.getControlLoop().getTrigger_policy().equals(FinalResult.FINAL_OPENLOOP.toString())) { return true; } else { @@ -232,18 +342,18 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { @Override public Policy getTriggerPolicy() throws BuilderException { - if (this.policy.controlLoop.trigger_policy.equals(FinalResult.FINAL_OPENLOOP.toString())) { + if (this.policy.getControlLoop().getTrigger_policy().equals(FinalResult.FINAL_OPENLOOP.toString())) { return null; } else { - Policy trigger = new Policy(this.findPolicy(this.policy.controlLoop.trigger_policy)); + Policy trigger = new Policy(this.findPolicy(this.policy.getControlLoop().getTrigger_policy())); return trigger; } } @Override public ControlLoop getControlLoop() { - ControlLoop loop = new ControlLoop(this.policy.controlLoop); + ControlLoop loop = new ControlLoop(this.policy.getControlLoop()); return loop; } @@ -266,22 +376,22 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { for (PolicyResult result : results) { switch (result) { case FAILURE: - existingPolicy.failure = policyResultID; + existingPolicy.setFailure(policyResultID); break; case FAILURE_EXCEPTION: - existingPolicy.failure_exception = policyResultID; + existingPolicy.setFailure_exception(policyResultID); break; case FAILURE_RETRIES: - existingPolicy.failure_retries = policyResultID; + existingPolicy.setFailure_retries(policyResultID); break; case FAILURE_TIMEOUT: - existingPolicy.failure_timeout = policyResultID; + existingPolicy.setFailure_timeout(policyResultID); break; case FAILURE_GUARD: - existingPolicy.failure_guard = policyResultID; + existingPolicy.setFailure_guard(policyResultID); break; case SUCCESS: - existingPolicy.success = policyResultID; + existingPolicy.setSuccess(policyResultID); break; default: throw new BuilderException("Invalid PolicyResult " + result); @@ -299,40 +409,40 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { // // Check if the policy to remove is trigger_policy // - if (this.policy.controlLoop.trigger_policy.equals(policyID)) { - this.policy.controlLoop.trigger_policy = FinalResult.FINAL_OPENLOOP.toString(); + if (this.policy.getControlLoop().getTrigger_policy().equals(policyID)) { + this.policy.getControlLoop().setTrigger_policy(FinalResult.FINAL_OPENLOOP.toString()); } else { // // Update policies // - for (Policy policy : this.policy.policies) { - int index = this.policy.policies.indexOf(policy); - if (policy.success.equals(policyID)) { - policy.success = FinalResult.FINAL_SUCCESS.toString(); + for (Policy policy : this.policy.getPolicies()) { + int index = this.policy.getPolicies().indexOf(policy); + if (policy.getSuccess().equals(policyID)) { + policy.setSuccess(FinalResult.FINAL_SUCCESS.toString()); } - if (policy.failure.equals(policyID)) { - policy.failure = FinalResult.FINAL_FAILURE.toString(); + if (policy.getFailure().equals(policyID)) { + policy.setFailure(FinalResult.FINAL_FAILURE.toString()); } - if (policy.failure_retries.equals(policyID)) { - policy.failure_retries = FinalResult.FINAL_FAILURE_RETRIES.toString(); + if (policy.getFailure_retries().equals(policyID)) { + policy.setFailure_retries(FinalResult.FINAL_FAILURE_RETRIES.toString()); } - if (policy.failure_timeout.equals(policyID)) { - policy.failure_timeout = FinalResult.FINAL_FAILURE_TIMEOUT.toString(); + if (policy.getFailure_timeout().equals(policyID)) { + policy.setFailure_timeout(FinalResult.FINAL_FAILURE_TIMEOUT.toString()); } - if (policy.failure_exception.equals(policyID)) { - policy.failure_exception = FinalResult.FINAL_FAILURE_EXCEPTION.toString(); + if (policy.getFailure_exception().equals(policyID)) { + policy.setFailure_exception(FinalResult.FINAL_FAILURE_EXCEPTION.toString()); } - if (policy.failure_guard.equals(policyID)) { - policy.failure_guard = FinalResult.FINAL_FAILURE_GUARD.toString(); + if (policy.getFailure_guard().equals(policyID)) { + policy.setFailure_guard(FinalResult.FINAL_FAILURE_GUARD.toString()); } - this.policy.policies.set(index, policy); + this.policy.getPolicies().set(index, policy); } } // // remove the policy // - boolean removed = this.policy.policies.remove(existingPolicy); + boolean removed = this.policy.getPolicies().remove(existingPolicy); return removed; } @@ -345,12 +455,12 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { // // reset policy results // - existingPolicy.success = FinalResult.FINAL_SUCCESS.toString(); - existingPolicy.failure = FinalResult.FINAL_FAILURE.toString(); - existingPolicy.failure_retries = FinalResult.FINAL_FAILURE_RETRIES.toString(); - existingPolicy.failure_timeout = FinalResult.FINAL_FAILURE_TIMEOUT.toString(); - existingPolicy.failure_exception = FinalResult.FINAL_FAILURE_EXCEPTION.toString(); - existingPolicy.failure_guard = FinalResult.FINAL_FAILURE_GUARD.toString(); + existingPolicy.setSuccess(FinalResult.FINAL_SUCCESS.toString()); + existingPolicy.setFailure(FinalResult.FINAL_FAILURE.toString()); + existingPolicy.setFailure_retries(FinalResult.FINAL_FAILURE_RETRIES.toString()); + existingPolicy.setFailure_timeout(FinalResult.FINAL_FAILURE_TIMEOUT.toString()); + existingPolicy.setFailure_exception(FinalResult.FINAL_FAILURE_EXCEPTION.toString()); + existingPolicy.setFailure_guard(FinalResult.FINAL_FAILURE_GUARD.toString()); return new Policy(existingPolicy); } @@ -359,11 +469,11 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { // // Remove all existing operational policies // - this.policy.policies.clear(); + this.policy.getPolicies().clear(); // // Revert controlLoop back to an open loop // - this.policy.controlLoop.trigger_policy = FinalResult.FINAL_OPENLOOP.toString(); + this.policy.getControlLoop().setTrigger_policy(FinalResult.FINAL_OPENLOOP.toString()); return this; } @@ -376,7 +486,7 @@ public class ControlLoopPolicyBuilderImpl implements ControlLoopPolicyBuilder { // // Add operationsAccumulateParams to existingPolicy // - existingPolicy.operationsAccumulateParams = operationsAccumulateParams; + existingPolicy.setOperationsAccumulateParams(operationsAccumulateParams); return new Policy(existingPolicy); } |