aboutsummaryrefslogtreecommitdiffstats
path: root/ECOMP-ControlloopPolicy/src/main/java/org/openecomp/policy/controlloop/policy/builder/impl/ControlLoopPolicyBuilderImpl.java
diff options
context:
space:
mode:
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.java230
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);
}