diff options
Diffstat (limited to 'src/main')
11 files changed, 386 insertions, 37 deletions
diff --git a/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java b/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java index 558102c5d..19bc23d5e 100644 --- a/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java +++ b/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryCache.java @@ -36,7 +36,7 @@ import java.util.concurrent.ConcurrentHashMap; */ public class DcaeInventoryCache { - private Map<String, Set<DcaeInventoryResponse>> blueprintsMap = new ConcurrentHashMap<>(); + private static Map<String, Set<DcaeInventoryResponse>> blueprintsMap = new ConcurrentHashMap<>(); /** * Add Dcae inventory response. diff --git a/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryResponse.java b/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryResponse.java index bdf6e70f5..67bd026d0 100644 --- a/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryResponse.java +++ b/src/main/java/org/onap/clamp/clds/model/dcae/DcaeInventoryResponse.java @@ -53,9 +53,6 @@ public class DcaeInventoryResponse implements Comparable<DcaeInventoryResponse> @Expose private String asdcResourceId; - @Expose - private String selfLink; - public String getTypeName() { return typeName; } @@ -96,14 +93,6 @@ public class DcaeInventoryResponse implements Comparable<DcaeInventoryResponse> this.asdcResourceId = asdcResourceId; } - public String getSelfLink() { - return selfLink; - } - - public void setSelfLink(String selfLink) { - this.selfLink = selfLink; - } - @Override public int compareTo(DcaeInventoryResponse otherResponse) { int thisResourceId = Integer.parseInt(this.asdcResourceId); 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..acb7190f7 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 @@ -24,13 +24,21 @@ package org.onap.clamp.loop.components.external; import com.google.gson.JsonObject; - +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; import java.util.UUID; - import org.apache.camel.Exchange; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +import org.onap.clamp.clds.model.dcae.DcaeInventoryResponse; 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 +92,6 @@ public class DcaeComponent extends ExternalComponent { return null; } } - /** * Generate the deployment id, it's random. * @@ -126,6 +133,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 @@ -137,6 +165,18 @@ public class DcaeComponent extends ExternalComponent { return rootObject.toString(); } + /** + * Return the uninstallation payload for DCAE. + * + * @param microServicePolicy The microServicePolicy object + * @return The payload in string (json) + */ + public static String getUndeployPayload(MicroServicePolicy policy) { + JsonObject rootObject = new JsonObject(); + rootObject.addProperty(DCAE_SERVICETYPE_ID, policy.getDcaeBlueprintId()); + return rootObject.toString(); + } + @Override public ExternalComponentState computeState(Exchange camelExchange) { @@ -164,4 +204,26 @@ public class DcaeComponent extends ExternalComponent { } return this.getState(); } + + /** + * Convert the json response to a DcaeInventoryResponse. + * + * @param responseBody The DCAE response Json paylaod + * @return list of DcaeInventoryResponse + * @throws ParseException In case of issues with the Json parsing + */ + public static List<DcaeInventoryResponse> convertToDcaeInventoryResponse(String responseBody) + throws ParseException { + JSONParser parser = new JSONParser(); + JSONObject jsonObj = (JSONObject) parser.parse(responseBody); + JSONArray itemsArray = (JSONArray) jsonObj.get("items"); + Iterator it = itemsArray.iterator(); + List<DcaeInventoryResponse> inventoryResponseList = new LinkedList<>(); + while (it.hasNext()) { + JSONObject item = (JSONObject) it.next(); + DcaeInventoryResponse response = JsonUtils.GSON.fromJson(item.toString(), DcaeInventoryResponse.class); + inventoryResponseList.add(response); + } + return inventoryResponseList; + } } 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); + } } diff --git a/src/main/resources/clds/camel/routes/dcae-flows.xml b/src/main/resources/clds/camel/routes/dcae-flows.xml index fb3bc90ec..7137bab92 100644 --- a/src/main/resources/clds/camel/routes/dcae-flows.xml +++ b/src/main/resources/clds/camel/routes/dcae-flows.xml @@ -1,6 +1,112 @@ <routes xmlns="http://camel.apache.org/schema/spring"> <route id="deploy-loop"> <from uri="direct:deploy-loop" /> + <choice> + <when> + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null + </simple> + <to uri="direct:deploy-loop-single-blueprint" /> + </when> + <when> + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null + </simple> + <to uri="direct:deploy-loop-multi-blueprint" /> + </when> + </choice> + </route> + <route id="deploy-loop-multi-blueprint"> + <from uri="direct:deploy-loop-multi-blueprint" /> + <doTry> + <log loggingLevel="INFO" + message="Deploying the blueprints for loop: ${exchangeProperty[loopObject].getName()}" /> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Deploying the loop with multiple blueprints')" /> + <split> + <simple>${exchangeProperty[loopObject].getMicroServicePolicies()} + </simple> + <setProperty propertyName="microServicePolicy"> + <simple>${body}</simple> + </setProperty> + <log + loggingLevel="INFO" + message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" /> + <setProperty propertyName="raiseHttpExceptionFlag"> + <simple resultType="java.lang.Boolean">false</simple> + </setProperty> + <setBody> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="getDeployPayload(${exchangeProperty[loopObject]},${exchangeProperty[microServicePolicy].getName()})" /> + </setBody> + <setProperty propertyName="dcaeDeploymentId"> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="generateDeploymentId()" /> + </setProperty> + <setHeader headerName="CamelHttpMethod"> + <constant>PUT</constant> + </setHeader> + <setHeader headerName="Content-Type"> + <constant>application/json</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to deploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}"></log> + <toD + uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=300000&authenticationPreemptive=true&connectionClose=true" /> + <convertBodyTo type="java.lang.String" /> + <setProperty propertyName="dcaeResponse"> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="convertDcaeResponse(${body})" /> + </setProperty> + <setProperty propertyName="dcaeStatusUrl"> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="getStatusUrl(${exchangeProperty[dcaeResponse]})" /> + </setProperty> + <to + uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})" /> + <setProperty propertyName="logMessage"> + <simple>DEPLOY loop status + (Dep-id:${exchangeProperty[dcaeDeploymentId]}, + StatusUrl:${exchangeProperty[dcaeStatusUrl]}) + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>DCAE</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response" /> + </split> + <doCatch> + <setProperty propertyName="logMessage"> + <simple>DEPLOY micro service failed + (MicroService name:${exchangeProperty[microServicePolicy].getName()}), + Dep-id:${exchangeProperty[dcaeDeploymentId]}, + StatusUrl:${exchangeProperty[dcaeStatusUrl]}) + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>DCAE</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response" /> + </doCatch> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag" /> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> + </doFinally> + </doTry> + </route> + <route id="deploy-loop-single-blueprint"> + <from uri="direct:deploy-loop-single-blueprint" /> <doTry> <log loggingLevel="INFO" message="Deploying the loop: ${exchangeProperty[loopObject].getName()}" /> @@ -41,6 +147,8 @@ <method ref="org.onap.clamp.loop.components.external.DcaeComponent" method="convertDcaeResponse(${body})" /> </setProperty> + + <setProperty propertyName="dcaeStatusUrl"> <method ref="org.onap.clamp.loop.components.external.DcaeComponent" method="getStatusUrl(${exchangeProperty[dcaeResponse]})" /> @@ -64,9 +172,116 @@ </doFinally> </doTry> </route> - <route id="undeploy-loop"> <from uri="direct:undeploy-loop" /> + <choice> + <when> + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null + </simple> + <to uri="direct:undeploy-loop-single-blueprint" /> + </when> + <when> + <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null + </simple> + <to uri="direct:undeploy-loop-multi-blueprint" /> + </when> + </choice> + </route> + <route id="undeploy-loop-multi-blueprint"> + <from uri="direct:undeploy-loop-multi-blueprint" /> + <doTry> + <log loggingLevel="INFO" + message="Undeploying the blueprints for loop: ${exchangeProperty[loopObject].getName()}" /> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploying the loop with multiple blueprints')" /> + <split> + <simple>${exchangeProperty[loopObject].getMicroServicePolicies()} + </simple> + <setProperty propertyName="microServicePolicy"> + <simple>${body}</simple> + </setProperty> + <log + loggingLevel="INFO" + message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" /> + <choice> + <when> + <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentId()} != null + </simple> + <setBody> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="getUndeployPayload(${exchangeProperty[microServicePolicy]})" /> + </setBody> + <setHeader headerName="CamelHttpMethod"> + <constant>DELETE</constant> + </setHeader> + <setHeader headerName="Content-Type"> + <constant>application/json</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to undeploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[microServicePolicy].getDcaeDeploymentId()}"></log> + <toD + uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[microServicePolicy].getDcaeDeploymentId()}?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=300000&authenticationPreemptive=true&connectionClose=true" /> + <convertBodyTo type="java.lang.String" /> + <setProperty propertyName="dcaeResponse"> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="convertDcaeResponse(${body})" /> + </setProperty> + <setProperty propertyName="dcaeStatusUrl"> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="getStatusUrl(${exchangeProperty[dcaeResponse]})" /> + </setProperty> + <to + uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[microServicePolicy].getDcaeDeploymentId()},${exchangeProperty[dcaeStatusUrl]})" /> + <setProperty propertyName="logMessage"> + <simple>UNDEPLOY micro service successful + (MicroService name:${exchangeProperty[microServicePolicy].getName()}) + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>DCAE</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response" /> + </when> + <otherwise> + <log loggingLevel="WARNING" + message="Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING',${exchangeProperty[loopObject]})" /> + </otherwise> + </choice> + </split> + <doCatch> + <setProperty propertyName="logMessage"> + <simple>UNDEPLOY micro service failed + (MicroService name:${exchangeProperty[microServicePolicy].getName()}) + </simple> + </setProperty> + <setProperty propertyName="logComponent"> + <simple>DCAE</simple> + </setProperty> + <to uri="direct:dump-loop-log-http-response" /> + </doCatch> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag" /> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> + </doFinally> + </doTry> + </route> + <route id="undeploy-loop-single-blueprint"> + <from uri="direct:undeploy-loop-single-blueprint" /> <log loggingLevel="INFO" message="Undeploying the loop: ${exchangeProperty[loopObject].getName()} : ${exchangeProperty[loopObject].getDcaeDeploymentId()}" /> <to @@ -134,7 +349,6 @@ message="Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !" /> <to uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !','WARNING',${exchangeProperty[loopObject]})" /> - </otherwise> </choice> </route> @@ -213,4 +427,47 @@ </doTry> </route> + <route id="get-all-dcae-blueprint-inventory"> + <from uri="direct:get-all-dcae-blueprint-inventory" /> + <log loggingLevel="INFO" + message="Getting all DCAE blueprint from inventory" /> + <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting all blueprint from inventory')" /> + <doTry> + <setHeader headerName="CamelHttpMethod"> + <constant>GET</constant> + </setHeader> + <setHeader headerName="X-ONAP-RequestID"> + <simple>${exchangeProperty[X-ONAP-RequestID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-InvocationID"> + <simple>${exchangeProperty[X-ONAP-InvocationID]} + </simple> + </setHeader> + <setHeader headerName="X-ONAP-PartnerName"> + <simple>${exchangeProperty[X-ONAP-PartnerName]} + </simple> + </setHeader> + <log loggingLevel="INFO" + message="Endpoint to query Blueprints from DCAE inventory: {{clamp.config.dcae.inventory.url}}/dcae-service-types?${header[CamelHttpQuery]}"></log> + <toD uri="{{clamp.config.dcae.inventory.url}}/dcae-service-types;bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=30000&authenticationPreemptive=true&connectionClose=true" /> + <convertBodyTo type="java.lang.String" /> + <setProperty propertyName="dcaeResponseList"> + <method ref="org.onap.clamp.loop.components.external.DcaeComponent" + method="convertToDcaeInventoryResponse(${body})" /> + </setProperty> + <split> + <simple>${exchangeProperty[dcaeResponseList]}</simple> + <convertBodyTo type="org.onap.clamp.clds.model.dcae.DcaeInventoryResponse" /> + <setProperty propertyName="dcaeResponse"> + <simple>${body}</simple> + </setProperty> + <to uri="bean:org.onap.clamp.clds.model.dcae.DcaeInventoryCache?method=addDcaeInventoryResponse(${exchangeProperty[dcaeResponse]})" /> + </split> + <doFinally> + <to uri="direct:reset-raise-http-exception-flag" /> + <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" /> + </doFinally> + </doTry> + </route> </routes>
\ No newline at end of file diff --git a/src/main/resources/clds/camel/routes/policy-flows.xml b/src/main/resources/clds/camel/routes/policy-flows.xml index 223498e81..97416a6cc 100644 --- a/src/main/resources/clds/camel/routes/policy-flows.xml +++ b/src/main/resources/clds/camel/routes/policy-flows.xml @@ -99,7 +99,7 @@ <log loggingLevel="INFO" message="Endpoint to get policy deployment status: {{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0"></log> <toD - uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> + uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/policies/deployed/${exchangeProperty[policyName]}/1.0.0?bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.policy.api.userName}}&authPassword={{clamp.config.policy.api.password}}&connectionTimeToLive=5000&httpClient.connectTimeout=10000&httpClient.socketTimeout=20000&authenticationPreemptive=true&connectionClose=true" /> <doFinally> <to uri="direct:reset-raise-http-exception-flag" /> <to |