package org.onap.clamp.loop;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose;
import java.io.Serializable;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;
-import org.apache.commons.lang3.RandomStringUtils;
import org.hibernate.annotations.SortNatural;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
-import org.onap.clamp.clds.util.drawing.SvgLoopGenerator;
+import org.onap.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
import org.onap.clamp.dao.model.jsontype.StringJsonUserType;
import org.onap.clamp.loop.common.AuditEntity;
import org.onap.clamp.loop.components.external.DcaeComponent;
import org.onap.clamp.loop.components.external.ExternalComponent;
import org.onap.clamp.loop.components.external.PolicyComponent;
+import org.onap.clamp.loop.deploy.DcaeDeployParameters;
import org.onap.clamp.loop.log.LoopLog;
import org.onap.clamp.loop.service.Service;
import org.onap.clamp.loop.template.LoopElementModel;
import org.onap.clamp.loop.template.LoopTemplate;
-import org.onap.clamp.policy.Policy;
import org.onap.clamp.policy.microservice.MicroServicePolicy;
import org.onap.clamp.policy.operational.OperationalPolicy;
*/
private static final long serialVersionUID = -286522707701388642L;
- @Transient
- private static final EELFLogger logger = EELFManager.getInstance().getLogger(Loop.class);
-
@Id
@Expose
@Column(nullable = false, name = "name", unique = true)
@Column(name = "dcae_deployment_status_url")
private String dcaeDeploymentStatusUrl;
- @Column(columnDefinition = "MEDIUMTEXT", name = "svg_representation")
- private String svgRepresentation;
-
@Expose
@Type(type = "json")
@Column(columnDefinition = "json", name = "global_properties_json")
/**
* Constructor.
*/
- public Loop(String name, String svgRepresentation) {
+ public Loop(String name) {
this.name = name;
- this.svgRepresentation = svgRepresentation;
this.lastComputedState = LoopState.DESIGN;
this.globalPropertiesJson = new JsonObject();
initializeExternalComponents();
* @param name The loop name
* @param loopTemplate The loop template from which a new loop instance must be created
*/
- public Loop(String name, LoopTemplate loopTemplate) {
- this(name,"");
+ public Loop(String name, LoopTemplate loopTemplate, ToscaConverterWithDictionarySupport toscaConverter) {
+ this(name);
this.setLoopTemplate(loopTemplate);
this.setModelService(loopTemplate.getModelService());
loopTemplate.getLoopElementModelsUsed().forEach(element -> {
if (LoopElementModel.MICRO_SERVICE_TYPE.equals(element.getLoopElementModel().getLoopElementType())) {
- this.addMicroServicePolicy(new MicroServicePolicy(Policy.generatePolicyName("MICROSERVICE_",
- loopTemplate.getModelService().getName(),loopTemplate.getModelService().getVersion(),
- RandomStringUtils.randomAlphanumeric(3),RandomStringUtils.randomAlphanumeric(3)),
- element.getLoopElementModel().getPolicyModels().first(), false, element.getLoopElementModel()));
- } else if (LoopElementModel.OPERATIONAL_POLICY_TYPE
+ this.addMicroServicePolicy((MicroServicePolicy) element.getLoopElementModel()
+ .createPolicyInstance(this, toscaConverter));
+ }
+ else if (LoopElementModel.OPERATIONAL_POLICY_TYPE
.equals(element.getLoopElementModel().getLoopElementType())) {
- this.addOperationalPolicy(new OperationalPolicy(Policy.generatePolicyName("OPERATIONAL_",
- loopTemplate.getModelService().getName(),loopTemplate.getModelService().getVersion(),
- RandomStringUtils.randomAlphanumeric(3),RandomStringUtils.randomAlphanumeric(3)), null,
- new JsonObject(),
- element.getLoopElementModel().getPolicyModels().first(), element.getLoopElementModel(),
- null,null));
+ this.addOperationalPolicy((OperationalPolicy) element.getLoopElementModel()
+ .createPolicyInstance(this, toscaConverter));
}
});
+ this.setGlobalPropertiesJson(DcaeDeployParameters.getDcaeDeploymentParametersInJson(this));
}
public String getName() {
this.dcaeDeploymentStatusUrl = dcaeDeploymentStatusUrl;
}
- public String getSvgRepresentation() {
- return svgRepresentation;
- }
-
- void setSvgRepresentation(String svgRepresentation) {
- this.svgRepresentation = svgRepresentation;
- }
-
public LoopState getLastComputedState() {
return lastComputedState;
}
/**
* This method adds an operational policy to the loop.
- * It re-computes the Svg as well.
*
* @param opPolicy the operationalPolicy to add
*/
public void addOperationalPolicy(OperationalPolicy opPolicy) {
operationalPolicies.add(opPolicy);
opPolicy.setLoop(this);
- this.setSvgRepresentation(SvgLoopGenerator.getSvgImage(this));
+ }
+
+ /**
+ * This method removes an operational policy to the loop.
+ *
+ * @param opPolicy the operationalPolicy to add
+ */
+ public void removeOperationalPolicy(OperationalPolicy opPolicy) {
+ operationalPolicies.remove(opPolicy);
}
/**
* This method adds an micro service policy to the loop.
- * It re-computes the Svg as well.
*
* @param microServicePolicy the micro service to add
*/
public void addMicroServicePolicy(MicroServicePolicy microServicePolicy) {
microServicePolicies.add(microServicePolicy);
microServicePolicy.getUsedByLoops().add(this);
- this.setSvgRepresentation(SvgLoopGenerator.getSvgImage(this));
}
public void addLog(LoopLog log) {
}
}
+ /**
+ * Return the operationalPolicy object with the opPolicyName.
+ *
+ * @param opPolicyName The operationalPolicy name
+ * @return The OperationalPolicy object found in loop object
+ */
+ public OperationalPolicy getOperationalPolicy(String opPolicyName) {
+ for (OperationalPolicy operationalPolicy : this.getOperationalPolicies()) {
+ if (operationalPolicy.getName().equals(opPolicyName)) {
+ return operationalPolicy;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return the microServicePolicy object with the msPolicyName.
+ *
+ * @param msPolicyName The microServicePolicy name
+ * @return The MicroServicePolicy object found in loop object
+ */
+ public MicroServicePolicy getMicroServicePolicy(String msPolicyName) {
+ for (MicroServicePolicy microServicePolicy : this.getMicroServicePolicies()) {
+ if (microServicePolicy.getName().equals(msPolicyName)) {
+ return microServicePolicy;
+ }
+ }
+ return null;
+ }
+
/**
* Generate the loop name.
*
if (other.name != null) {
return false;
}
- } else if (!name.equals(other.name)) {
+ }
+ else if (!name.equals(other.name)) {
return false;
}
return true;