Fix the bugs in loop state logic
[clamp.git] / src / main / resources / clds / camel / routes / flexible-flow.xml
index 808e1d8..a116c56 100644 (file)
                <setBody>
                        <simple>${header.loopName}</simple>
                </setBody>
-               <setHeader headerName="LoopObject">
+               <setProperty propertyName="loopObject">
                        <method
                                ref="org.onap.clamp.loop.LoopService"
                                method="getLoop" />
-               </setHeader>
+               </setProperty>
 
                <when>
-                       <simple>${header.LoopObject} == null</simple>
+                       <simple>${exchangeProperty[loopObject]} == null</simple>
                        <setHeader headerName="CamelHttpResponseCode">
                                <constant>404</constant>
                        </setHeader>
                        <stop />
                </when>
        </route>
+
        <route id="create-micro-service-policy">
                <from uri="direct:create-micro-service-policy" />
-               
-               <log
-                       loggingLevel="INFO"
-                       message="Creating Micro Service Policy: ${header.microServicePolicy.getName()}" />
-               <to
-                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Micro Service Policy')" />
-               <setBody>
-                       <simple>${header.microServicePolicy.createPolicyPayload()}
-                       </simple>
-               </setBody>
-               <setHeader headerName="CamelHttpMethod">
-                       <constant>POST</constant>
-               </setHeader>
-               <setHeader headerName="Content-Type">
-                       <constant>application/json</constant>
-               </setHeader>
-               <setHeader headerName="CamelHttpUri">
-                       <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/${header.microServicePolicy.getModelType()}/versions/1.0.0/policies
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-RequestID">
-                       <simple>${header.X-ONAP-REAUESTID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-InvocationID">
-                       <simple>${header.X-ONAP-InvocationID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-PartnerName">
-                       <simple>${header.X-ONAP-PartnerName}
-                       </simple>
-               </setHeader>
-               <log
-                       loggingLevel="INFO"
-                       message="Endpoint to create microservice policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
-               <toD
-                       uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
-               <to
-                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('MicroService policy created successfully','INFO',${header.LoopObject})" />
-               <to uri="direct:reset-raise-http-exception-flag" />
-       <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+               <doTry>
+                       <log
+                               loggingLevel="INFO"
+                               message="Creating Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
+                       <to
+                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Micro Service Policy')" />
+                       <setBody>
+                               <simple>${exchangeProperty[microServicePolicy].createPolicyPayload()}
+                               </simple>
+                       </setBody>
+                       <setHeader headerName="CamelHttpMethod">
+                               <constant>POST</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 create microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies"></log>
+                       <toD
+                               uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies?bridgeEndpoint=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}" />
+                       <doFinally>
+                               <to uri="direct:reset-raise-http-exception-flag" />
+                               <to
+                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+                               <setProperty propertyName="logMessage">
+                                       <simple>${exchangeProperty[microServicePolicy].getName()} creation
+                                               status
+                                       </simple>
+                               </setProperty>
+                               <to uri="direct:dump-loop-log-http-response" />
+                       </doFinally>
+               </doTry>
        </route>
+
        <route id="delete-micro-service-policy">
                <from uri="direct:delete-micro-service-policy" />
-               
-               <log
-                       loggingLevel="INFO"
-                       message="Deleting Micro Service Policy: ${header.microServicePolicy.getName()}" />
-               <to
-                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Micro Service Policy')" />
-               <setBody>
-                       <constant>null</constant>
-               </setBody>
-               <setHeader headerName="CamelHttpMethod">
-                       <constant>DELETE</constant>
-               </setHeader>
-               <setHeader headerName="CamelHttpUri">
-                       <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/${header.microServicePolicy.getModelType()}/versions/1.0.0/policies/${header.microServicePolicy.getName()}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-RequestID">
-                       <simple>${header.X-ONAP-REAUESTID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-InvocationID">
-                       <simple>${header.X-ONAP-InvocationID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-PartnerName">
-                       <simple>${header.X-ONAP-PartnerName}
-                       </simple>
-               </setHeader>
-               <log
-                       loggingLevel="INFO"
-                       message="Endpoint to delete microservice policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
-               <toD
-                       uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
-               <to
-                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('MicroService policy deleted successfully','INFO',${header.LoopObject})" />
-               <to uri="direct:reset-raise-http-exception-flag" />
-               <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+               <doTry>
+                       <log
+                               loggingLevel="INFO"
+                               message="Deleting Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
+                       <to
+                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Micro Service Policy')" />
+                       <setBody>
+                               <constant>null</constant>
+                       </setBody>
+                       <setHeader headerName="CamelHttpMethod">
+                               <constant>DELETE</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 delete microservice policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0"></log>
+                       <toD
+                               uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[microServicePolicy].getModelType()}/versions/1.0.0/policies/${exchangeProperty[microServicePolicy].getName()}/versions/1.0.0?bridgeEndpoint=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}" />
+
+                       <doFinally>
+                               <to uri="direct:reset-raise-http-exception-flag" />
+                               <to
+                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+                               <setProperty propertyName="logMessage">
+                                       <simple>${exchangeProperty[microServicePolicy].getName()} removal
+                                               status
+                                       </simple>
+                               </setProperty>
+                               <to uri="direct:dump-loop-log-http-response" />
+                       </doFinally>
+               </doTry>
        </route>
 
        <route id="create-operational-policy">
                <from uri="direct:create-operational-policy" />
-               
-               <log
-                       loggingLevel="INFO"
-                       message="Creating Operational Policy: ${header.operationalPolicy.getName()}" />
-               <to
-                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Operational Policy')" />
-               <setBody>
-                       <simple>${header.operationalPolicy.createPolicyPayload()}
-                       </simple>
-               </setBody>
-               <setHeader headerName="CamelHttpMethod">
-                       <constant>POST</constant>
-               </setHeader>
-               <setHeader headerName="Content-Type">
-                       <constant>application/yaml; legacy-version</constant>
-               </setHeader>
-               <setHeader headerName="CamelHttpUri">
-                       <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/onap.policies.controloop.operational/versions/1.0.0/policies
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-RequestID">
-                       <simple>${header.X-ONAP-REAUESTID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-InvocationID">
-                       <simple>${header.X-ONAP-InvocationID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-PartnerName">
-                       <simple>${header.X-ONAP-PartnerName}
-                       </simple>
-               </setHeader>
-               <log
-                       loggingLevel="INFO"
-                       message="Endpoint to create operational policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
-               <toD
-                       uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
-               <to
-                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Operational policy created successfully','INFO',${header.LoopObject})" />
-               <to uri="direct:reset-raise-http-exception-flag" />
-               <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+               <doTry>
+                       <log
+                               loggingLevel="INFO"
+                               message="Creating Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
+                       <to
+                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Operational Policy')" />
+                       <setBody>
+                               <simple>${exchangeProperty[operationalPolicy].createPolicyPayload()}
+                               </simple>
+                       </setBody>
+                       <setHeader headerName="CamelHttpMethod">
+                               <constant>POST</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 create operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policy.controlloop.operational/versions/1.0.0/policies"></log>
+                       <toD
+                               uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policy.controlloop.operational/versions/1.0.0/policies?bridgeEndpoint=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}" />
+                       <doFinally>
+                               <to uri="direct:reset-raise-http-exception-flag" />
+                               <to
+                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+                               <setProperty propertyName="logMessage">
+                                       <simple>${exchangeProperty[operationalPolicy].getName()} creation
+                                               status
+                                       </simple>
+                               </setProperty>
+                               <to uri="direct:dump-loop-log-http-response" />
+                       </doFinally>
+               </doTry>
        </route>
+
        <route id="delete-operational-policy">
                <from uri="direct:delete-operational-policy" />
-               
-               <log
-                       loggingLevel="INFO"
-                       message="Deleting Operational Policy: ${header.operationalPolicy.getName()}" />
-               <to
-                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Operational Policy')" />
-               <setBody>
-                       <constant>null</constant>
-               </setBody>
-               <setHeader headerName="CamelHttpMethod">
-                       <constant>DELETE</constant>
-               </setHeader>
-               <setHeader headerName="CamelHttpUri">
-                       <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/onap.policies.controloop.operational/versions/1.0.0/policies/${header.operationalPolicy.getName()}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-RequestID">
-                       <simple>${header.X-ONAP-REAUESTID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-InvocationID">
-                       <simple>${header.X-ONAP-InvocationID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-PartnerName">
-                       <simple>${header.X-ONAP-PartnerName}
-                       </simple>
-               </setHeader>
-               <log
-                       loggingLevel="INFO"
-                       message="Endpoint to delete operational policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
-               <toD
-                       uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
-               <to
-                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Operational policy deleted successfully','INFO',${header.LoopObject})" />
-               <to uri="direct:reset-raise-http-exception-flag" />
-               <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+               <doTry>
+                       <log
+                               loggingLevel="INFO"
+                               message="Deleting Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
+                       <to
+                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Operational Policy')" />
+                       <setBody>
+                               <constant>null</constant>
+                       </setBody>
+                       <setHeader headerName="CamelHttpMethod">
+                               <constant>DELETE</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 delete operational policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policy.controlloop.operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1.0.0"></log>
+                       <toD
+                               uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policy.controlloop.operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1.0.0?bridgeEndpoint=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}" />
+                       <doFinally>
+                               <to uri="direct:reset-raise-http-exception-flag" />
+                               <to
+                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+                               <setProperty propertyName="logMessage">
+                                       <simple>${exchangeProperty[operationalPolicy].getName()} removal
+                                               status
+                                       </simple>
+                               </setProperty>
+                               <to uri="direct:dump-loop-log-http-response" />
+                       </doFinally>
+               </doTry>
        </route>
 
        <route id="create-guard-policy">
                <from uri="direct:create-guard-policy" />
-               
-               <log
-                       loggingLevel="INFO"
-                       message="Creating Guard Policy: ${header.guardPolicy.getKey()}" />
-               <to
-                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')" />
-               <setBody>
-                       <simple>${header.guardPolicy.getValue()}
-                       </simple>
-               </setBody>
-               <setHeader headerName="CamelHttpMethod">
-                       <constant>POST</constant>
-               </setHeader>
-               <setHeader headerName="Content-Type">
-                       <constant>application/json</constant>
-               </setHeader>
-               <setHeader headerName="CamelHttpUri">
-                       <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/onap.policies.controlloop.Guard/versions/1.0.0/policies
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-RequestID">
-                       <simple>${header.X-ONAP-REAUESTID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-InvocationID">
-                       <simple>${header.X-ONAP-InvocationID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-PartnerName">
-                       <simple>${header.X-ONAP-PartnerName}
-                       </simple>
-               </setHeader>
-               <log
-                       loggingLevel="INFO"
-                       message="Endpoint to create guard policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
-               <toD
-                       uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
-               <to
-                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Guard policy created successfully','INFO',${header.LoopObject})" />
-               <to uri="direct:reset-raise-http-exception-flag" />
-               <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+               <doTry>
+                       <log
+                               loggingLevel="INFO"
+                               message="Creating Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
+                       <to
+                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Create Guard Policy')" />
+                       <setBody>
+                               <simple>${exchangeProperty[guardPolicy].getValue()}
+                               </simple>
+                       </setBody>
+                       <setHeader headerName="CamelHttpMethod">
+                               <constant>POST</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 create guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policy.controlloop.guard/versions/1.0.0/policies"></log>
+                       <toD
+                               uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policy.controlloop.guard/versions/1.0.0/policies?bridgeEndpoint=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}" />
+                       <doFinally>
+                               <to uri="direct:reset-raise-http-exception-flag" />
+                               <to
+                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+                               <setProperty propertyName="logMessage">
+                                       <simple>${exchangeProperty[guardPolicy].getKey()} creation status
+                                       </simple>
+                               </setProperty>
+                               <to uri="direct:dump-loop-log-http-response" />
+                       </doFinally>
+               </doTry>
        </route>
+
        <route id="delete-guard-policy">
                <from uri="direct:delete-guard-policy" />
-               
-               <log
-                       loggingLevel="INFO"
-                       message="Deleting Guard Policy: ${header.guardPolicy.getKey()}" />
-               <to
-                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')" />
-               <setBody>
-                       <constant>null</constant>
-               </setBody>
-               <setHeader headerName="CamelHttpMethod">
-                       <constant>DELETE</constant>
-               </setHeader>
-               <setHeader headerName="CamelHttpUri">
-                       <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${header.guardPolicy.getKey()}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-RequestID">
-                       <simple>${header.X-ONAP-REAUESTID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-InvocationID">
-                       <simple>${header.X-ONAP-InvocationID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-PartnerName">
-                       <simple>${header.X-ONAP-PartnerName}
-                       </simple>
-               </setHeader>
-               <log
-                       loggingLevel="INFO"
-                       message="Endpoint to delete guard policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
-               <toD
-                       uri="http4://policyhost:8085?throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
-               <to
-                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Guard policy deleted successfully','INFO',${header.LoopObject})" />
-               <to uri="direct:reset-raise-http-exception-flag" />
-               <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+               <doTry>
+                       <log
+                               loggingLevel="INFO"
+                               message="Deleting Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
+                       <to
+                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Delete Guard Policy')" />
+                       <setBody>
+                               <constant>null</constant>
+                       </setBody>
+                       <setHeader headerName="CamelHttpMethod">
+                               <constant>DELETE</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 delete guard policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policy.controlloop.guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1.0.0"></log>
+                       <toD
+                               uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policy.controlloop.guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1.0.0?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}" />
+
+                       <doFinally>
+                               <to uri="direct:reset-raise-http-exception-flag" />
+                               <to
+                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+                               <setProperty propertyName="logMessage">
+                                       <simple>${exchangeProperty[guardPolicy].getKey()} removal status
+                                       </simple>
+                               </setProperty>
+                               <to uri="direct:dump-loop-log-http-response" />
+                       </doFinally>
+               </doTry>
        </route>
+
        <route id="add-all-to-active-pdp-group">
                <from uri="direct:add-all-to-active-pdp-group" />
-               
-               <log
-                       loggingLevel="INFO"
-                       message="Adding loop policies to PDP Group: ${header.LoopObject.getName()}" />
-               <to
-                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')" />
-               <setBody>
-                       <simple>${header.LoopObject.createPoliciesPayloadPdpGroup()}
-                       </simple>
-               </setBody>
-               <setHeader headerName="CamelHttpMethod">
-                       <constant>POST</constant>
-               </setHeader>
-               <setHeader headerName="Content-Type">
-                       <constant>application/json</constant>
-               </setHeader>
-               <setHeader headerName="CamelHttpUri">
-                       <simple>{{clamp.config.policy.url}}/policy/pap/v1/pdps
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-RequestID">
-                       <simple>${header.X-ONAP-REAUESTID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-InvocationID">
-                       <simple>${header.X-ONAP-InvocationID}
-                       </simple>
-               </setHeader>
-               <setHeader headerName="X-ONAP-PartnerName">
-                       <simple>${header.X-ONAP-PartnerName}
-                       </simple>
-               </setHeader>
-               <log
-                       loggingLevel="INFO"
-                       message="Endpoint to add policies to PDP Group: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
-               <toD
-                       uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
-               <to
-                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Policies pushed to PDP Group successfully','INFO',${header.LoopObject})" />
-               <to uri="direct:reset-raise-http-exception-flag" />
-               <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+               <doTry>
+                       <log
+                               loggingLevel="INFO"
+                               message="Adding loop policies to PDP Group: ${exchangeProperty[loopObject].getName()}" />
+                       <to
+                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Add policies to PDP group')" />
+                       <setBody>
+                               <simple>${exchangeProperty[loopObject].createPoliciesPayloadPdpGroup()}
+                               </simple>
+                       </setBody>
+                       <setHeader headerName="CamelHttpMethod">
+                               <constant>POST</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 add policies to PDP Group: {{clamp.config.policy.pap.url}}/policy/pap/v1/pdps"></log>
+                       <toD
+                               uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps?throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}" />
+
+                       <doFinally>
+                               <to uri="direct:reset-raise-http-exception-flag" />
+                               <to
+                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+                               <setProperty propertyName="logMessage">
+                                       <simple>PDP Group push ALL status</simple>
+                               </setProperty>
+                               <to uri="direct:dump-loop-log-http-response" />
+                       </doFinally>
+               </doTry>
        </route>
 
        <route id="remove-all-policy-from-active-pdp-group">
                <from uri="direct:remove-all-policy-from-active-pdp-group" />
-               <log
-                       loggingLevel="INFO"
-                       message="Removing policies from active PDP group for loop: ${header.LoopObject.getName()}" />
-               <to
-                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing policies PDP group')" />
-               <split>
-                       <simple>${header.LoopObject.listPolicyNamesPdpGroup()}</simple>
-                       <setHeader headerName="PolicyName">
+               <doTry>
+                       <log
+                               loggingLevel="INFO"
+                               message="Removing policies from active PDP group for loop: ${exchangeProperty[loopObject].getName()}" />
+                       <to
+                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Removing policies PDP group')" />
+                       <split>
+                               <simple>${exchangeProperty[loopObject].listPolicyNamesPdpGroup()}
+                               </simple>
+                               <setProperty propertyName="policyName">
+                                       <simple>${body}</simple>
+                               </setProperty>
+                               <setBody>
+                                       <constant>null</constant>
+                               </setBody>
+                               <setHeader headerName="CamelHttpMethod">
+                                       <constant>DELETE</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 delete policy from PDP Group: {{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0"></log>
+                               <toD
+                                       uri="{{clamp.config.policy.pap.url}}/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}" />
+                               <setProperty propertyName="logMessage">
+                                       <simple>${exchangeProperty[policyName]} PDP Group removal status
+                                       </simple>
+                               </setProperty>
+                               <to uri="direct:dump-loop-log-http-response" />
+                       </split>
+                       <doCatch>
+                               <exception>java.lang.Exception</exception>
+                               <handled>
+                                       <constant>false</constant>
+                               </handled>
+                               <setProperty propertyName="logMessage">
+                                       <simple>${exchangeProperty[policyName]} PDP Group removal status
+                                       </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-closedloop">
+               <from uri="direct:deploy-closedloop" />
+               <doTry>
+                       <log
+                               loggingLevel="INFO"
+                               message="Deploy the closed loop: ${exchangeProperty[loopObject].getName()}" />
+                       <to
+                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Deploy closed loop')" />
+                       <simple>${exchangeProperty[loopObject].getOperationalPolicies()}
+                       </simple>
+                       <setProperty propertyName="operationalPolicy">
                                <simple>${body}</simple>
+                       </setProperty>
+                       <setBody>
+                               <method ref="org.onap.clamp.loop.LoopOperation"
+                                       method="getDeployPayload(${exchangeProperty[loopObject]})" />
+                       </setBody>
+                       <setProperty propertyName="deploymentId">
+                               <method ref="org.onap.clamp.loop.LoopOperation"
+                                       method="getDeploymentId(${exchangeProperty[loopObject]})" />
+                       </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 closed loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[deploymentId]}"></log>
+                       <toD
+                               uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[deploymentId]}?bridgeEndpoint=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[RaiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}" />
+                       <to
+                               uri="bean:org.onap.clamp.loop.LoopOperation?method=updateLoopInfo(*,${exchangeProperty[loopObject]},${exchangeProperty[deploymentId]})" />
+                       <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 closed loop status</simple>
+                               </setProperty>
+                               <to uri="direct:dump-loop-log-http-response" />
+                       </doFinally>
+               </doTry>
+       </route>
+
+       <route id="undeploy-closedloop">
+               <from uri="direct:undeploy-closedloop" />
+               <doTry>
+                       <log
+                               loggingLevel="INFO"
+                               message="UNdeploy the closed loop: ${exchangeProperty[loopObject].getName()} : ${exchangeProperty[loopObject].getDcaeDeploymentId()}" />
+                       <to
+                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploy closed loop')" />
+
                        <setBody>
-                               <constant>null</constant>
+                               <simple>{\"serviceTypeId\": \"${exchangeProperty[loopObject].getDcaeBlueprintId()}\"}
+                               </simple>
                        </setBody>
                        <setHeader headerName="CamelHttpMethod">
                                <constant>DELETE</constant>
                        </setHeader>
-                       <setHeader headerName="CamelHttpUri">
-                               <simple>{{clamp.config.policy.url}}/pdps/policies/${header.PolicyName}/versions/1.0.0
-                               </simple>
+                       <setHeader headerName="Content-Type">
+                               <constant>application/json</constant>
                        </setHeader>
                        <setHeader headerName="X-ONAP-RequestID">
-                               <simple>${header.X-ONAP-REAUESTID}
+                               <simple>${exchangeProperty[X-ONAP-RequestID]}
                                </simple>
                        </setHeader>
                        <setHeader headerName="X-ONAP-InvocationID">
-                               <simple>${header.X-ONAP-InvocationID}
+                               <simple>${exchangeProperty[X-ONAP-InvocationID]}
                                </simple>
                        </setHeader>
                        <setHeader headerName="X-ONAP-PartnerName">
-                               <simple>${header.X-ONAP-PartnerName}
+                               <simple>${exchangeProperty[X-ONAP-PartnerName]}
                                </simple>
                        </setHeader>
                        <log
                                loggingLevel="INFO"
-                               message="Endpoint to delete policy from PDP Group: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
+                               message="Endpoint to undeploy closed loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}"></log>
                        <toD
-                               uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
+                               uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}?bridgeEndpoint=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[RaiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}" />
+                       <to
+                               uri="bean:org.onap.clamp.loop.LoopOperation?method=updateLoopInfo(*,${exchangeProperty[loopObject]},null)" />
+                       <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 closed loop status</simple>
+                               </setProperty>
+                               <to uri="direct:dump-loop-log-http-response" />
+                       </doFinally>
+               </doTry>
+       </route>
+       <route id="get-status-from-policy">
+               <from uri="direct:get-status-from-policy" />
+               <doTry>
+                       <log
+                               loggingLevel="INFO"
+                               message="Query Closed Loop status from policy DPD: ${exchangeProperty[loopObject].getName()}" />
                        <to
-                               uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog(${header.PolicyName}' Policy removed from PDP Group successfully','INFO',${header.LoopObject})" />
-               </split>
-               <to uri="direct:reset-raise-http-exception-flag" />
-               <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+                               uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Query operational policies to PDP group')" />
+                       <setProperty propertyName="operationalPolicyName">
+                               <method ref="org.onap.clamp.loop.LoopOperation"
+                                       method="getOperationalPolicyName(${exchangeProperty[loopObject]})" />
+                       </setProperty>
+                       <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 from Policy DPD: {{clamp.config.policy.pap.url}}/policy/api/v1/policytypes/onap.policies.controlloop.operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicyName]}/versions/deployed"></log>
+                       <toD
+                               uri="{{clamp.config.policy.pap.url}}/policy/api/v1/policytypes/onap.policies.controlloop.operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicyName]}/versions/deployed?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}" />
+                       <doFinally>
+                               <to uri="direct:reset-raise-http-exception-flag" />
+                               <to
+                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+                               <setProperty propertyName="logMessage">
+                                       <simple>Query closed loop from Policy status</simple>
+                               </setProperty>
+                               <setProperty propertyName="policyStatus">
+                                       <method ref="org.onap.clamp.loop.LoopOperation"
+                                       method="analysePolicyResponse(${header.CamelHttpResponseCode})" />
+                               </setProperty>
+                               <to uri="direct:dump-loop-log-http-response" />
+                       </doFinally>
+               </doTry>
+       </route>
+       <route id="get-status-from-dcae">
+               <from uri="direct:get-status-from-dcae" />
+               <log
+                       loggingLevel="INFO"
+                       message="Query Closed Loop status from DCAE ${exchangeProperty[loopObject].getName()}" />
+               <choice>
+                       <when>
+                               <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()} == null
+                               </simple>
+                               <setProperty propertyName="dcaeStatus">
+                                       <method ref="org.onap.clamp.loop.LoopOperation"
+                                       method="analyseDcaeResponse(*,null)" />
+                               </setProperty>
+                               <log
+                                               loggingLevel="INFO"
+                                               message="dcae status: ${exchangeProperty[dcaeStatus]}"></log>
+                       </when>
+                       <otherwise>
+                               <doTry>
+                                       <log
+                                               loggingLevel="INFO"
+                                               message="Query Closed Loop status from Dcae" />
+                                       <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[loopObject].getDcaeDeploymentStatusUrl()}"></log>
+                                       <toD
+                                               uri="${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;httpClient.connectTimeout=10000&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}" />
+                                       <doFinally>
+                                               <to uri="direct:reset-raise-http-exception-flag" />
+                                               <to
+                                                       uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+                                               <setProperty propertyName="logMessage">
+                                                       <simple>Query closed loop from DCAE status</simple>
+                                               </setProperty>
+                                               <setProperty propertyName="dcaeStatus">
+                                                       <method ref="org.onap.clamp.loop.LoopOperation"
+                                                       method="analyseDcaeResponse(*,${header.CamelHttpResponseCode})" />
+                                               </setProperty>
+                                               <log
+                                               loggingLevel="INFO"
+                                               message="dcae status: ${exchangeProperty[dcaeStatus]}"></log>
+                                               <to uri="direct:dump-loop-log-http-response" />
+                                       </doFinally>
+                               </doTry>
+                       </otherwise>
+               </choice>
        </route>
        <route id="reset-raise-http-exception-flag">
                <from uri="direct:reset-raise-http-exception-flag" />
-               <setHeader headerName="RaiseHttpExceptionFlag">
+               <setProperty propertyName="raiseHttpExceptionFlag">
                        <simple resultType="java.lang.Boolean">true</simple>
-               </setHeader>
+               </setProperty>
+       </route>
+
+       <route id="dump-loop-log-http-response">
+               <from uri="direct:dump-loop-log-http-response" />
+               <to
+                       uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog(${exchangeProperty[logMessage]} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText},'INFO',${exchangeProperty[loopObject]})" />
        </route>
 </routes>
\ No newline at end of file