Fix the DCAE query
[clamp.git] / src / main / resources / clds / camel / routes / dcae-flows.xml
index d71db17..65849e9 100644 (file)
 <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>
-                               <to uri="direct:deploy-loop-single-blueprint" />
-                       </when>
-                       <when>
-                               <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
-                               </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]})" />
-                                       </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&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;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]})" />
-                                       <to
-                                               uri="bean:org.onap.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 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()}" />
-                       <to
-                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Deploying the loop')" />
-                       <setBody>
-                               <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
-                                       method="getDeployPayload(${exchangeProperty[loopObject]})" />
-                       </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&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
-                       <convertBodyTo type="java.lang.String" />
-                       <setProperty propertyName="dcaeResponse">
-                               <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
-                                       method="convertDcaeResponse(${body})" />
-                       </setProperty>
-                       
+    <route id="deploy-loop">
+        <from uri="direct:deploy-loop"/>
+        <choice>
+            <when>
+                <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
+                </simple>
+                <to uri="direct:deploy-loop-single-blueprint"/>
+            </when>
+            <when>
+                <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
+                </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]})"/>
+                </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&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;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]})"/>
+                <to
+                        uri="bean:org.onap.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 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()}"/>
+            <to
+                    uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Deploying the loop')"/>
+            <setBody>
+                <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+                        method="getDeployPayload(${exchangeProperty[loopObject]})"/>
+            </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&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;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.loop.LoopService?method=updateDcaeDeploymentFields(${exchangeProperty[loopObject]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})" />
-                       <doFinally>
-                               <to uri="direct:reset-raise-http-exception-flag" />
-                               <to
-                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
-                               <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" />
-                       </doFinally>
-               </doTry>
-       </route>
-       <route id="undeploy-loop">
-               <from uri="direct:undeploy-loop" />
-               <choice>
-                       <when>
-                               <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
-                               </simple>
-                               <to uri="direct:undeploy-loop-single-blueprint" />
-                       </when>
-                       <when>
-                               <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
-                               </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&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;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]},null,${exchangeProperty[dcaeStatusUrl]})" />
-                                               <to
-                                                       uri="bean:org.onap.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="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=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 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
-                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploying the loop')" />
-               <choice>
-                       <when>
-                               <simple>${exchangeProperty[loopObject].getDcaeDeploymentId()}
-                                       != null
-                               </simple>
-                               <doTry>
-                                       <setBody>
-                                               <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
-                                                       method="getUndeployPayload(${exchangeProperty[loopObject]})" />
-                                       </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[loopObject].getDcaeDeploymentId()}"></log>
-                                       <toD
-                                               uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;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.loop.LoopService?method=updateDcaeDeploymentFields(${exchangeProperty[loopObject]},null,${exchangeProperty[dcaeStatusUrl]})" />
-                                       <doFinally>
-                                               <to uri="direct:reset-raise-http-exception-flag" />
-                                               <to
-                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
-                                               <setProperty propertyName="logMessage">
-                                                       <simple>UNDEPLOY loop status</simple>
-                                               </setProperty>
-                                               <setProperty propertyName="logComponent">
-                                                       <simple>DCAE</simple>
-                                               </setProperty>
-                                               <to uri="direct:dump-loop-log-http-response" />
-                                       </doFinally>
-                               </doTry>
-                       </when>
-                       <otherwise>
-                               <log loggingLevel="WARNING"
-                                       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>
-       <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.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting Deployment status')" />
-               <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 Closed Loop status: ${exchangeProperty[getStatusUrl]}"></log>
-                       <toD
-                               uri="${exchangeProperty[getStatusUrl]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
-                       <doCatch>
-                               <exception>java.lang.Exception</exception>
-                               <handled>
-                                       <constant>true</constant>
-                               </handled>
+            <setProperty propertyName="dcaeStatusUrl">
+                <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+                        method="getStatusUrl(${exchangeProperty[dcaeResponse]})"/>
+            </setProperty>
+            <to
+                    uri="bean:org.onap.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.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+                <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"/>
+            </doFinally>
+        </doTry>
+    </route>
+    <route id="undeploy-loop">
+        <from uri="direct:undeploy-loop"/>
+        <choice>
+            <when>
+                <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
+                </simple>
+                <to uri="direct:undeploy-loop-single-blueprint"/>
+            </when>
+            <when>
+                <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
+                </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&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;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]},null,${exchangeProperty[dcaeStatusUrl]})"/>
+                        <to
+                                uri="bean:org.onap.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="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=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 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
+                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploying the loop')"/>
+        <choice>
+            <when>
+                <simple>${exchangeProperty[loopObject].getDcaeDeploymentId()}
+                    != null
+                </simple>
+                <doTry>
+                    <setBody>
+                        <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+                                method="getUndeployPayload(${exchangeProperty[loopObject]})"/>
+                    </setBody>
+                    <setHeader headerName="CamelHttpMethod">
+                        <constant>DELETE</constant>
+                    </setHeader>
+                    <setHeader headerName="Content-Type">
+                        <constant>application/json</constant>
+                    </setHeader>
 
-                               <log loggingLevel="ERROR"
-                                        message="GET DCAE deployment request FAILED for loop: ${header.loopName}, ${exception.stacktrace}" />
-                               <to
-                                               uri="bean:org.onap.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.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
-                               <setProperty propertyName="logMessage">
-                                       <simple>DCAE deployment status</simple>
-                               </setProperty>
-                               <setProperty propertyName="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.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting blueprint id in 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 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]}&amp;asdcServiceId=${exchangeProperty[blueprintServiceId]}&amp;typeName=${exchangeProperty[blueprintName]}&amp;bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
-                       <convertBodyTo type="java.lang.String" />
-                       <doFinally>
-                               <to uri="direct:reset-raise-http-exception-flag" />
-                               <to
-                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
-                       </doFinally>
-               </doTry>
+                    <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[loopObject].getDcaeDeploymentId()}"></log>
+                    <toD
+                            uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;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.loop.LoopService?method=updateDcaeDeploymentFields(${exchangeProperty[loopObject]},null,${exchangeProperty[dcaeStatusUrl]})"/>
+                    <doFinally>
+                        <to uri="direct:reset-raise-http-exception-flag"/>
+                        <to
+                                uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+                        <setProperty propertyName="logMessage">
+                            <simple>UNDEPLOY loop status</simple>
+                        </setProperty>
+                        <setProperty propertyName="logComponent">
+                            <simple>DCAE</simple>
+                        </setProperty>
+                        <to uri="direct:dump-loop-log-http-response"/>
+                    </doFinally>
+                </doTry>
+            </when>
+            <otherwise>
+                <log loggingLevel="WARNING"
+                     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>
+    <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.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting Deployment status')"/>
+        <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 microservice deployment status: ${exchangeProperty[getStatusUrlModified]}"></log>
+            <choice>
+                <when>
+                    <simple>${exchangeProperty[getStatusUrl].contains("?")} == true
+                    </simple>
+                    <setProperty propertyName="uriSeparator">
+                        <simple>&amp;</simple>
+                    </setProperty>
+                </when>
+                <otherwise>
+                    <setProperty propertyName="uriSeparator">
+                        <simple>?</simple>
+                    </setProperty>
+                </otherwise>
+            </choice>
+            <toD
+                    uri="${exchangeProperty[getStatusUrl]}${exchangeProperty[uriSeparator]}bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+            <doCatch>
+                <exception>java.lang.Exception</exception>
+                <handled>
+                    <constant>true</constant>
+                </handled>
 
-       </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&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;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>
+                <log loggingLevel="ERROR"
+                     message="GET DCAE deployment request FAILED for loop: ${header.loopName}, ${exception.stacktrace}"/>
+                <to
+                        uri="bean:org.onap.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.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()"/>
+                <setProperty propertyName="logMessage">
+                    <simple>DCAE deployment status</simple>
+                </setProperty>
+                <setProperty propertyName="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.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting blueprint id in 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 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]}&amp;asdcServiceId=${exchangeProperty[blueprintServiceId]}&amp;typeName=${exchangeProperty[blueprintName]}&amp;bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true"/>
+            <convertBodyTo type="java.lang.String"/>
+            <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="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&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;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