diff options
author | xuegao <xg353y@intl.att.com> | 2020-01-27 12:10:32 +0100 |
---|---|---|
committer | sebdet <sebastien.determe@intl.att.com> | 2020-01-30 11:38:52 +0100 |
commit | 9e01ce3b97e602fa7236bd9bc8a484807382f83b (patch) | |
tree | 472e202175f5de03c7b46b82f7a288ee3961085b /src/main/java | |
parent | f332e2e4ce3d8de200fd90076f6d4da8bdade2d6 (diff) |
Update deploy-loop route
Update deploy-loop to support multiple blueprint deployments
Issue-ID: CLAMP-571
Change-Id: If98e9305c36a01f86a522db002174f92f6ff5996
Signed-off-by: xuegao <xg353y@intl.att.com>
Diffstat (limited to 'src/main/java')
7 files changed, 82 insertions, 20 deletions
diff --git a/src/main/java/org/onap/clamp/loop/LoopController.java b/src/main/java/org/onap/clamp/loop/LoopController.java index 64874a32d..c161c550e 100644 --- a/src/main/java/org/onap/clamp/loop/LoopController.java +++ b/src/main/java/org/onap/clamp/loop/LoopController.java @@ -40,10 +40,10 @@ import org.springframework.stereotype.Controller; public class LoopController { private final LoopService loopService; - private static final Type OPERATIONAL_POLICY_TYPE = new TypeToken<List<OperationalPolicy>>() { - }.getType(); - private static final Type MICROSERVICE_POLICY_TYPE = new TypeToken<List<MicroServicePolicy>>() { - }.getType(); + private static final Type OPERATIONAL_POLICY_TYPE = new TypeToken<List<OperationalPolicy>>() {} + .getType(); + private static final Type MICROSERVICE_POLICY_TYPE = new TypeToken<List<MicroServicePolicy>>() {} + .getType(); @Autowired public LoopController(LoopService loopService) { diff --git a/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java b/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java index 9b131299b..5d62e7151 100644 --- a/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java +++ b/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java @@ -31,6 +31,7 @@ import org.apache.camel.Exchange; import org.onap.clamp.clds.model.dcae.DcaeOperationStatusResponse; import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.loop.Loop; +import org.onap.clamp.policy.microservice.MicroServicePolicy; public class DcaeComponent extends ExternalComponent { @@ -84,7 +85,6 @@ public class DcaeComponent extends ExternalComponent { return null; } } - /** * Generate the deployment id, it's random. * @@ -126,6 +126,27 @@ public class DcaeComponent extends ExternalComponent { } /** + * Return the deploy payload for DCAE. + * + * @param loop The loop object + * @param microServiceName The micro service name + * @return The payload used to send deploy closed loop request + */ + public static String getDeployPayload(Loop loop, String microServiceName) { + JsonObject globalProp = loop.getGlobalPropertiesJson(); + JsonObject deploymentProp = globalProp.getAsJsonObject(DEPLOYMENT_PARAMETER).getAsJsonObject(microServiceName); + + String serviceTypeId = loop.getDcaeBlueprintId(); + + JsonObject rootObject = new JsonObject(); + rootObject.addProperty(DCAE_SERVICETYPE_ID, serviceTypeId); + if (deploymentProp != null) { + rootObject.add(DCAE_INPUTS, deploymentProp); + } + return rootObject.toString(); + } + + /** * Return the uninstallation payload for DCAE. * * @param loop The loop object diff --git a/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java b/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java index c22ca1a67..7f00c42ea 100644 --- a/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java +++ b/src/main/java/org/onap/clamp/loop/template/LoopElementModel.java @@ -70,7 +70,7 @@ public class LoopElementModel extends AuditEntity implements Serializable { private String blueprint; /** - * The type of element + * The type of element. */ @Column(nullable = false, name = "loop_element_type") private String loopElementType; @@ -103,7 +103,7 @@ public class LoopElementModel extends AuditEntity implements Serializable { /** * Method to add a new policyModel to the list. * - * @param policyModel + * @param policyModel The policy model */ public void addPolicyModel(PolicyModel policyModel) { policyModels.add(policyModel); @@ -147,6 +147,8 @@ public class LoopElementModel extends AuditEntity implements Serializable { } /** + * loopElementType getter. + * * @return the loopElementType */ public String getLoopElementType() { @@ -154,6 +156,8 @@ public class LoopElementModel extends AuditEntity implements Serializable { } /** + * loopElementType setter. + * * @param loopElementType the loopElementType to set */ public void setLoopElementType(String loopElementType) { diff --git a/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java b/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java index 20574ff6c..7c059e19a 100644 --- a/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java +++ b/src/main/java/org/onap/clamp/loop/template/LoopTemplate.java @@ -62,7 +62,7 @@ public class LoopTemplate extends AuditEntity implements Serializable { * other option would be to have independent blueprint for each microservices. * In that case they are stored in each MicroServiceModel */ - @Column(columnDefinition = "MEDIUMTEXT", nullable = false, name = "blueprint_yaml") + @Column(columnDefinition = "MEDIUMTEXT", name = "blueprint_yaml") private String blueprint; @Expose diff --git a/src/main/java/org/onap/clamp/loop/template/PolicyModel.java b/src/main/java/org/onap/clamp/loop/template/PolicyModel.java index 00d58a822..886e8c806 100644 --- a/src/main/java/org/onap/clamp/loop/template/PolicyModel.java +++ b/src/main/java/org/onap/clamp/loop/template/PolicyModel.java @@ -82,6 +82,8 @@ public class PolicyModel extends AuditEntity implements Serializable, Comparable private Set<LoopElementModel> usedByElementModels = new HashSet<>(); /** + * usedByElementModels getter. + * * @return the usedByElementModels */ public Set<LoopElementModel> getUsedByElementModels() { @@ -170,10 +172,10 @@ public class PolicyModel extends AuditEntity implements Serializable, Comparable /** * Constructor. * - * @param policyType The policyType (referenced in the blueprint) + * @param policyType The policyType (referenced in the blueprint * @param policyModelTosca The policy tosca model in yaml * @param version the version like 1.0.0 - * @param policyVariant Subtype for policy if it exists (could be used by UI) + * @param policyAcronym Subtype for policy if it exists (could be used by UI) */ public PolicyModel(String policyType, String policyModelTosca, String version, String policyAcronym) { this.policyModelType = policyType; diff --git a/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java index 445c1d5dd..43c8d6e05 100644 --- a/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java +++ b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicy.java @@ -101,6 +101,10 @@ public class MicroServicePolicy extends Policy implements Serializable { @Column(name = "dcae_deployment_status_url") private String dcaeDeploymentStatusUrl; + @Expose + @Column(name = "dcae_blueprint_id") + private String dcaeBlueprintId; + public MicroServicePolicy() { // serialization } @@ -253,6 +257,24 @@ public class MicroServicePolicy extends Policy implements Serializable { this.dcaeDeploymentStatusUrl = dcaeDeploymentStatusUrl; } + /** + * dcaeBlueprintId getter. + * + * @return the dcaeBlueprintId + */ + public String getDcaeBlueprintId() { + return dcaeBlueprintId; + } + + /** + * dcaeBlueprintId setter. + * + * @param dcaeBlueprintId the dcaeBlueprintId to set + */ + void setDcaeBlueprintId(String dcaeBlueprintId) { + this.dcaeBlueprintId = dcaeBlueprintId; + } + @Override public int hashCode() { final int prime = 31; diff --git a/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyService.java b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyService.java index c431767f0..29a4e56d0 100644 --- a/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyService.java +++ b/src/main/java/org/onap/clamp/policy/microservice/MicroServicePolicyService.java @@ -47,7 +47,7 @@ public class MicroServicePolicyService implements PolicyService<MicroServicePoli @Override public Set<MicroServicePolicy> updatePolicies(Loop loop, List<MicroServicePolicy> newMicroservicePolicies) { return newMicroservicePolicies.stream().map(policy -> getAndUpdateMicroServicePolicy(loop, policy)) - .collect(Collectors.toSet()); + .collect(Collectors.toSet()); } @Override @@ -58,25 +58,38 @@ public class MicroServicePolicyService implements PolicyService<MicroServicePoli /** * Get and update the MicroService policy properties. * - * @param loop - * The loop - * @param policy - * The new MicroService policy + * @param loop The loop + * @param policy The new MicroService policy * @return The updated MicroService policy */ public MicroServicePolicy getAndUpdateMicroServicePolicy(Loop loop, MicroServicePolicy policy) { - return repository - .save(repository.findById(policy.getName()).map(p -> updateMicroservicePolicyProperties(p, policy, loop)) - .orElse(new MicroServicePolicy(policy.getName(), policy.getModelType(), policy.getPolicyTosca(), - policy.getShared(), policy.getJsonRepresentation(), Sets.newHashSet(loop)))); + return repository.save( + repository.findById(policy.getName()).map(p -> updateMicroservicePolicyProperties(p, policy, loop)) + .orElse(new MicroServicePolicy(policy.getName(), policy.getModelType(), policy.getPolicyTosca(), + policy.getShared(), policy.getJsonRepresentation(), Sets.newHashSet(loop)))); } private MicroServicePolicy updateMicroservicePolicyProperties(MicroServicePolicy oldPolicy, - MicroServicePolicy newPolicy, Loop loop) { + MicroServicePolicy newPolicy, Loop loop) { oldPolicy.setConfigurationsJson(newPolicy.getConfigurationsJson()); if (!oldPolicy.getUsedByLoops().contains(loop)) { oldPolicy.getUsedByLoops().add(loop); } return oldPolicy; } + + /** + * Update the MicroService policy deployment related parameters. + * + * @param microServicePolicy The micro service policy + * @param deploymentId The deployment ID as returned by DCAE + * @param deploymentUrl The Deployment URL as returned by DCAE + * @throws MicroServicePolicy doesn't exist in DB + */ + public void updateDcaeDeploymentFields(MicroServicePolicy microServicePolicy, String deploymentId, + String deploymentUrl) { + microServicePolicy.setDcaeDeploymentId(deploymentId); + microServicePolicy.setDcaeDeploymentStatusUrl(deploymentUrl); + repository.save(microServicePolicy); + } } |