<routes xmlns="http://camel.apache.org/schema/spring"> <route id="deploy-loop"> <from uri="direct:deploy-loop"/> <choice> <when> <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true </simple> <setProperty name="raiseHttpExceptionFlag"> <simple resultType="java.lang.Boolean">true</simple> </setProperty> <to uri="direct:deploy-loop-single-blueprint"/> </when> <when> <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false </simple> <setProperty name="raiseHttpExceptionFlag"> <simple resultType="java.lang.Boolean">true</simple> </setProperty> <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.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Deploying the loop with multiple blueprints')"/> <split> <simple>${exchangeProperty[loopObject].getMicroServicePolicies()} </simple> <setProperty name="microServicePolicy"> <simple>${body}</simple> </setProperty> <log loggingLevel="INFO" message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}"/> <setProperty name="raiseHttpExceptionFlag"> <simple resultType="java.lang.Boolean">false</simple> </setProperty> <setBody> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="getDeployPayload(${exchangeProperty[loopObject]},${exchangeProperty[microServicePolicy]})"/> </setBody> <setProperty name="dcaeDeploymentId"> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="generateDeploymentId()"/> </setProperty> <setHeader name="CamelHttpMethod"> <constant>PUT</constant> </setHeader> <setHeader name="Content-Type"> <constant>application/json</constant> </setHeader> <setHeader name="X-ONAP-RequestID"> <simple>${exchangeProperty[X-ONAP-RequestID]} </simple> </setHeader> <setHeader name="X-ONAP-InvocationID"> <simple>${exchangeProperty[X-ONAP-InvocationID]} </simple> </setHeader> <setHeader name="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}}&authenticationPreemptive=true&connectionClose=true"/> <convertBodyTo type="java.lang.String"/> <setProperty name="dcaeResponse"> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="convertDcaeResponse(${body})"/> </setProperty> <setProperty name="dcaeStatusUrl"> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/> </setProperty> <to uri="bean:org.onap.policy.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})"/> <to uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLogForComponent('Deploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})"/> </split> <doCatch> <exception>java.lang.Exception</exception> <handled> <constant>false</constant> </handled> <setProperty name="logMessage"> <simple>DEPLOY micro service failed (MicroService name:${exchangeProperty[microServicePolicy].getName()}), Dep-id:${exchangeProperty[dcaeDeploymentId]}, StatusUrl:${exchangeProperty[dcaeStatusUrl]}) </simple> </setProperty> <setProperty name="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.policy.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()}"/> <to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Deploying the loop')"/> <setBody> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="getDeployPayload(${exchangeProperty[loopObject]})"/> </setBody> <setProperty name="dcaeDeploymentId"> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="generateDeploymentId()"/> </setProperty> <setHeader name="CamelHttpMethod"> <constant>PUT</constant> </setHeader> <setHeader name="Content-Type"> <constant>application/json</constant> </setHeader> <setHeader name="X-ONAP-RequestID"> <simple>${exchangeProperty[X-ONAP-RequestID]} </simple> </setHeader> <setHeader name="X-ONAP-InvocationID"> <simple>${exchangeProperty[X-ONAP-InvocationID]} </simple> </setHeader> <setHeader name="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}}&authenticationPreemptive=true&connectionClose=true"/> <convertBodyTo type="java.lang.String"/> <setProperty name="dcaeResponse"> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="convertDcaeResponse(${body})"/> </setProperty> <setProperty name="dcaeStatusUrl"> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/> </setProperty> <to uri="bean:org.onap.policy.clamp.loop.LoopService?method=updateDcaeDeploymentFields(${exchangeProperty[loopObject]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})"/> <doFinally> <to uri="direct:reset-raise-http-exception-flag"/> <to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> <setProperty name="logMessage"> <simple>DEPLOY loop status (Dep-id:${exchangeProperty[dcaeDeploymentId]}, StatusUrl:${exchangeProperty[dcaeStatusUrl]}) </simple> </setProperty> <setProperty name="logComponent"> <simple>DCAE</simple> </setProperty> <to uri="direct:dump-loop-log-http-response"/> </doFinally> </doTry> </route> <route id="undeploy-loop"> <from uri="direct:undeploy-loop"/> <choice> <when> <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true </simple> <setProperty name="raiseHttpExceptionFlag"> <simple resultType="java.lang.Boolean">true</simple> </setProperty> <to uri="direct:undeploy-loop-single-blueprint"/> </when> <when> <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false </simple> <setProperty name="raiseHttpExceptionFlag"> <simple resultType="java.lang.Boolean">true</simple> </setProperty> <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.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploying the loop with multiple blueprints')"/> <split> <simple>${exchangeProperty[loopObject].getMicroServicePolicies()} </simple> <setProperty name="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.policy.clamp.loop.components.external.DcaeComponent" method="getUndeployPayload(${exchangeProperty[microServicePolicy]})"/> </setBody> <setHeader name="CamelHttpMethod"> <constant>DELETE</constant> </setHeader> <setHeader name="Content-Type"> <constant>application/json</constant> </setHeader> <setHeader name="X-ONAP-RequestID"> <simple>${exchangeProperty[X-ONAP-RequestID]} </simple> </setHeader> <setHeader name="X-ONAP-InvocationID"> <simple>${exchangeProperty[X-ONAP-InvocationID]} </simple> </setHeader> <setHeader name="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}}&authenticationPreemptive=true&connectionClose=true"/> <convertBodyTo type="java.lang.String"/> <setProperty name="dcaeResponse"> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="convertDcaeResponse(${body})"/> </setProperty> <setProperty name="dcaeStatusUrl"> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/> </setProperty> <to uri="bean:org.onap.policy.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},null,${exchangeProperty[dcaeStatusUrl]})"/> <to uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLogForComponent('Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','DCAE',${exchangeProperty[loopObject]})"/> </when> <otherwise> <log loggingLevel="WARN" message="Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !"/> <to uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLogForComponent('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING','DCAE',${exchangeProperty[loopObject]})"/> </otherwise> </choice> </split> <doCatch> <exception>java.lang.Exception</exception> <handled> <constant>false</constant> </handled> <setProperty name="logMessage"> <simple>UNDEPLOY micro service failed (MicroService name:${exchangeProperty[microServicePolicy].getName()}) </simple> </setProperty> <setProperty name="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.policy.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 uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploying the loop')"/> <choice> <when> <simple>${exchangeProperty[loopObject].getDcaeDeploymentId()} != null</simple> <doTry> <setBody> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="getUndeployPayload(${exchangeProperty[loopObject]})"/> </setBody> <setHeader name="CamelHttpMethod"> <constant>DELETE</constant> </setHeader> <setHeader name="Content-Type"> <constant>application/json</constant> </setHeader> <setHeader name="X-ONAP-RequestID"> <simple>${exchangeProperty[X-ONAP-RequestID]} </simple> </setHeader> <setHeader name="X-ONAP-InvocationID"> <simple>${exchangeProperty[X-ONAP-InvocationID]} </simple> </setHeader> <setHeader name="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[loopObject].getDcaeDeploymentId()}"></log> <toD uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}?bridgeEndpoint=true&useSystemProperties=true&mapHttpMessageHeaders=false&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&authenticationPreemptive=true&connectionClose=true"/> <convertBodyTo type="java.lang.String"/> <setProperty name="dcaeResponse"> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="convertDcaeResponse(${body})"/> </setProperty> <setProperty name="dcaeStatusUrl"> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/> </setProperty> <to uri="bean:org.onap.policy.clamp.loop.LoopService?method=updateDcaeDeploymentFields(${exchangeProperty[loopObject]},null,${exchangeProperty[dcaeStatusUrl]})"/> <doFinally> <to uri="direct:reset-raise-http-exception-flag"/> <to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> <setProperty name="logMessage"> <simple>UNDEPLOY loop status</simple> </setProperty> <setProperty name="logComponent"> <simple>DCAE</simple> </setProperty> <to uri="direct:dump-loop-log-http-response"/> </doFinally> </doTry> </when> <otherwise> <log loggingLevel="WARN" message="Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !"/> <to uri="bean:org.onap.policy.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> <route id="get-dcae-deployment-status"> <from uri="direct:get-dcae-deployment-status"/> <log loggingLevel="INFO" message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()} - ${exchangeProperty[dcaeComponent].getComponentName()}"/> <to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting Deployment status')"/> <doTry> <setHeader name="CamelHttpMethod"> <constant>GET</constant> </setHeader> <setHeader name="X-ONAP-RequestID"> <simple>${exchangeProperty[X-ONAP-RequestID]} </simple> </setHeader> <setHeader name="X-ONAP-InvocationID"> <simple>${exchangeProperty[X-ONAP-InvocationID]} </simple> </setHeader> <setHeader name="X-ONAP-PartnerName"> <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> <log loggingLevel="INFO" message="Endpoint to query microservice deployment status: ${exchangeProperty[getStatusUrlModified]}"></log> <choice> <when> <simple>${exchangeProperty[getStatusUrl].contains("?")} == true </simple> <setProperty name="uriSeparator"> <simple>&</simple> </setProperty> </when> <otherwise> <setProperty name="uriSeparator"> <simple>?</simple> </setProperty> </otherwise> </choice> <toD uri="${exchangeProperty[getStatusUrl]}${exchangeProperty[uriSeparator]}bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&authenticationPreemptive=true&connectionClose=true"/> <doCatch> <exception>java.lang.Exception</exception> <handled> <constant>true</constant> </handled> <log loggingLevel="ERROR" message="GET DCAE deployment request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/> <to uri="bean:org.onap.policy.clamp.loop.log.LoopLogService?method=addLog('GET DCAE deployment request failed, Error reported: ${exception.message}','ERROR',${exchangeProperty[loopObject]})"/> </doCatch> <doFinally> <to uri="direct:reset-raise-http-exception-flag"/> <to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> <setProperty name="logMessage"> <simple>DCAE deployment status</simple> </setProperty> <setProperty name="logComponent"> <simple>DCAE</simple> </setProperty> <to uri="direct:dump-loop-log-http-response"/> </doFinally> </doTry> </route> <route id="get-dcae-blueprint-inventory"> <from uri="direct:get-dcae-blueprint-inventory"/> <log loggingLevel="INFO" message="Getting DCAE blueprint id in inventory"/> <to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting blueprint id in inventory')"/> <doTry> <setHeader name="CamelHttpMethod"> <constant>GET</constant> </setHeader> <setHeader name="X-ONAP-RequestID"> <simple>${exchangeProperty[X-ONAP-RequestID]} </simple> </setHeader> <setHeader name="X-ONAP-InvocationID"> <simple>${exchangeProperty[X-ONAP-InvocationID]} </simple> </setHeader> <setHeader name="X-ONAP-PartnerName"> <simple>${exchangeProperty[X-ONAP-PartnerName]} </simple> </setHeader> <log loggingLevel="INFO" message="Endpoint to query Dcae inventory Loop status: {{clamp.config.dcae.inventory.url}}/dcae-service-types?${header[CamelHttpQuery]}"></log> <toD uri="{{clamp.config.dcae.inventory.url}}/dcae-service-types?asdcResourceId=${exchangeProperty[blueprintResourceId]}&asdcServiceId=${exchangeProperty[blueprintServiceId]}&typeName=${exchangeProperty[blueprintName]}&bridgeEndpoint=true&useSystemProperties=true&throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&authMethod=Basic&authUsername={{clamp.config.dcae.deployment.userName}}&authPassword={{clamp.config.dcae.deployment.password}}&authenticationPreemptive=true&connectionClose=true"/> <convertBodyTo type="java.lang.String"/> <doFinally> <to uri="direct:reset-raise-http-exception-flag"/> <to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> </doFinally> </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.policy.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting all blueprint from inventory')"/> <doTry> <setHeader name="CamelHttpMethod"> <constant>GET</constant> </setHeader> <setHeader name="X-ONAP-RequestID"> <simple>${exchangeProperty[X-ONAP-RequestID]} </simple> </setHeader> <setHeader name="X-ONAP-InvocationID"> <simple>${exchangeProperty[X-ONAP-InvocationID]} </simple> </setHeader> <setHeader name="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}}&authenticationPreemptive=true&connectionClose=true"/> <convertBodyTo type="java.lang.String"/> <setProperty name="dcaeResponseList"> <method ref="org.onap.policy.clamp.loop.components.external.DcaeComponent" method="convertToDcaeInventoryResponse(${body})"/> </setProperty> <split> <simple>${exchangeProperty[dcaeResponseList]}</simple> <convertBodyTo type="org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse"/> <setProperty name="dcaeResponse"> <simple>${body}</simple> </setProperty> <to uri="bean:org.onap.policy.clamp.clds.model.dcae.DcaeInventoryCache?method=addDcaeInventoryResponse(${exchangeProperty[dcaeResponse]})"/> </split> <doFinally> <to uri="direct:reset-raise-http-exception-flag"/> <to uri="bean:org.onap.policy.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/> </doFinally> </doTry> </route> </routes>