DCAE inventory calls in camel

Move the HTTP/HTTPS calls to camel so that there is no issue with the
previous code that does not support the config required for HTTP4 Camel

Issue-ID: CLAMP-532
Change-Id: I83db0da5bbe6906890d0d6aa9b529c264e5f9b20
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
diff --git a/src/test/resources/clds/camel/rest/clamp-api-v2.xml b/src/test/resources/clds/camel/rest/clamp-api-v2.xml
new file mode 100644
index 0000000..cf99625
--- /dev/null
+++ b/src/test/resources/clds/camel/rest/clamp-api-v2.xml
@@ -0,0 +1,617 @@
+<rests xmlns="http://camel.apache.org/schema/spring">
+	<rest>
+		<get
+			uri="/v2/loop/getAllNames"
+			outType="java.lang.String[]"
+			produces="application/json">
+			<route>
+				<removeHeaders pattern="*" />
+				<doTry>
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET ALL Loop')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','read')" />
+					<to
+						uri="bean:org.onap.clamp.loop.LoopController?method=getLoopNames()" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+					</doCatch>
+				</doTry>
+			</route>
+		</get>
+		<get
+			uri="/v2/loop/{loopName}"
+			outType="org.onap.clamp.loop.Loop"
+			produces="application/json">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET Loop')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','read')" />
+					<to
+						uri="bean:org.onap.clamp.loop.LoopController?method=getLoop(${header.loopName})" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+					</doCatch>
+				</doTry>
+			</route>
+		</get>
+		<get
+			uri="/v2/loop/svgRepresentation/{loopName}"
+			outType="java.lang.String"
+			produces="application/xml">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Get SVG Representation')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','read')" />
+					<to
+						uri="bean:org.onap.clamp.loop.LoopController?method=getSvgRepresentation(${header.loopName})" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+					</doCatch>
+				</doTry>
+			</route>
+		</get>
+
+		<post
+			uri="/v2/loop/updateGlobalProperties/{loopName}"
+			type="com.google.gson.JsonObject"
+			consumes="application/json"
+			outType="org.onap.clamp.loop.Loop"
+			produces="application/json">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update the global properties')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+					<setHeader headerName="GlobalPropertiesJson">
+						<simple>${body}</simple>
+					</setHeader>
+					<to uri="direct:load-loop" />
+					<to
+						uri="bean:org.onap.clamp.loop.LoopController?method=updateGlobalPropertiesJson(${header.loopName},${header.GlobalPropertiesJson})" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Global Properties UPDATED','INFO',${exchangeProperty[loopObject]})" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+					</doCatch>
+				</doTry>
+			</route>
+		</post>
+		<post
+			uri="/v2/loop/updateOperationalPolicies/{loopName}"
+			type="com.google.gson.JsonArray"
+			consumes="application/json"
+			outType="org.onap.clamp.loop.Loop"
+			produces="application/json">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update operational policies')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+					<setHeader headerName="OperationalPoliciesArray">
+						<simple>${body}</simple>
+					</setHeader>
+					<to uri="direct:load-loop" />
+					<to
+						uri="bean:org.onap.clamp.loop.LoopController?method=updateOperationalPolicies(${header.loopName},${header.OperationalPoliciesArray})" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Operational and Guard policies UPDATED','INFO',${exchangeProperty[loopObject]})" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+					</doCatch>
+				</doTry>
+			</route>
+		</post>
+		<post
+			uri="/v2/loop/updateMicroservicePolicy/{loopName}"
+			type="org.onap.clamp.policy.microservice.MicroServicePolicy"
+			consumes="application/json"
+			outType="org.onap.clamp.policy.microservice.MicroServicePolicy"
+			produces="application/json">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'Update Microservice policies')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+					<setProperty propertyName="MicroServicePolicyObject">
+						<simple>${body}</simple>
+					</setProperty>
+
+					<to uri="direct:load-loop" />
+					<to
+						uri="bean:org.onap.clamp.loop.LoopController?method=updateMicroservicePolicy(${header.loopName},${exchangeProperty[MicroServicePolicyObject]})" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Micro Service policies UPDATED','INFO',${exchangeProperty[loopObject]})" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+					</doCatch>
+				</doTry>
+			</route>
+		</post>
+		<put
+			uri="/v2/loop/deploy/{loopName}"
+			outType="org.onap.clamp.loop.Loop"
+			produces="application/json">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<log
+						loggingLevel="INFO"
+						message="DCAE DEPLOY request for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'DCAE DEPLOY request')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+					<to uri="direct:load-loop" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DCAE DEPLOY request','INFO',${exchangeProperty[loopObject]})" />
+
+					<to uri="direct:deploy-loop" />
+
+					<log
+						loggingLevel="INFO"
+						message="DEPLOY request successfully executed for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DEPLOY request successfully executed','INFO',${exchangeProperty[loopObject]})" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+						<log
+							loggingLevel="ERROR"
+							message="DEPLOY request failed for loop: ${header.loopName}" />
+						<to
+							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DEPLOY request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+					</doCatch>
+				</doTry>
+			</route>
+		</put>
+		<put
+			uri="/v2/loop/undeploy/{loopName}"
+			outType="org.onap.clamp.loop.Loop"
+			produces="application/json">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<log
+						loggingLevel="INFO"
+						message="DCAE UNDEPLOY request for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'DCAE UNDEPLOY request')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+					<to uri="direct:load-loop" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DCAE UNDEPLOY request','INFO',${exchangeProperty[loopObject]})" />
+					<to uri="direct:undeploy-loop" />
+
+					<log
+						loggingLevel="INFO"
+						message="UNDEPLOY request successfully executed for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('UNDEPLOY request successfully executed','INFO',${exchangeProperty[loopObject]})" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+						<log
+							loggingLevel="ERROR"
+							message="UNDEPLOY request failed for loop: ${header.loopName}" />
+						<to
+							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('UNDEPLOY request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+					</doCatch>
+				</doTry>
+			</route>
+		</put>
+		<put
+			uri="/v2/loop/stop/{loopName}"
+			outType="org.onap.clamp.loop.Loop"
+			produces="application/json">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<log
+						loggingLevel="INFO"
+						message="STOP request for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*,'STOP request')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+					<to uri="direct:load-loop" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('STOP request','INFO',${exchangeProperty[loopObject]})" />
+
+					<to uri="direct:remove-all-policy-from-active-pdp-group" />
+					<log
+						loggingLevel="INFO"
+						message="STOP request successfully executed for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('STOP request successfully executed','INFO',${exchangeProperty[loopObject]})" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+						<log
+							loggingLevel="ERROR"
+							message="STOP request failed for loop: $${header.loopName}" />
+						<to
+							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('STOP request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+					</doCatch>
+				</doTry>
+			</route>
+		</put>
+		<put
+			uri="/v2/loop/restart/{loopName}"
+			outType="org.onap.clamp.loop.Loop"
+			produces="application/json">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<log
+						loggingLevel="INFO"
+						message="RESTART request for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*,'RESTART request')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+					<to uri="direct:load-loop" />
+
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('RESTART request','INFO',${exchangeProperty[loopObject]})" />
+
+					<to uri="direct:add-all-to-active-pdp-group" />
+					<log
+						loggingLevel="INFO"
+						message="RESTART request successfully executed for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('RESTART request successfully executed','INFO',${exchangeProperty[loopObject]})" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+						<log
+							loggingLevel="ERROR"
+							message="RESTART request failed for loop: ${header.loopName}" />
+						<to
+							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('RESTART request failed, Error reported: ${exception} - Body: ${exception.responseBody}','INFO',${exchangeProperty[loopObject]})" />
+					</doCatch>
+				</doTry>
+			</route>
+		</put>
+		<put
+			uri="/v2/loop/submit/{loopName}"
+			outType="org.onap.clamp.loop.Loop"
+			produces="application/json">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<log
+						loggingLevel="INFO"
+						message="POLICY SUBMIT request for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'POLICY SUBMIT request')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+					<to uri="direct:load-loop" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('POLICY SUBMIT request','INFO',${exchangeProperty[loopObject]})" />
+					<setProperty propertyName="raiseHttpExceptionFlag">
+						<simple resultType="java.lang.Boolean">false</simple>
+					</setProperty>
+					<to uri="direct:remove-all-policy-from-active-pdp-group" />
+					<log
+						loggingLevel="INFO"
+						message="Processing all MICRO-SERVICES policies defined in loop ${exchangeProperty[loopObject].getName()}" />
+					<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>
+						<to uri="direct:delete-micro-service-policy" />
+						<to uri="direct:create-micro-service-policy" />
+					</split>
+					<log
+						loggingLevel="INFO"
+						message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
+					<split>
+						<simple>${exchangeProperty[loopObject].getOperationalPolicies()}
+						</simple>
+						<setProperty propertyName="operationalPolicy">
+							<simple>${body}</simple>
+						</setProperty>
+						<log
+							loggingLevel="INFO"
+							message="Processing Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
+						<setProperty propertyName="raiseHttpExceptionFlag">
+							<simple resultType="java.lang.Boolean">false</simple>
+						</setProperty>
+
+						<to uri="direct:delete-operational-policy" />
+						<to uri="direct:create-operational-policy" />
+
+						<log
+							loggingLevel="INFO"
+							message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
+						<split>
+							<simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
+							</simple>
+							<setProperty propertyName="guardPolicy">
+								<simple>${body}</simple>
+							</setProperty>
+							<log
+								loggingLevel="INFO"
+								message="Processing Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
+
+							<setProperty propertyName="raiseHttpExceptionFlag">
+								<simple resultType="java.lang.Boolean">false</simple>
+							</setProperty>
+							<to uri="direct:delete-guard-policy" />
+							<to uri="direct:create-guard-policy" />
+						</split>
+					</split>
+
+					<delay>
+						<constant>3000</constant>
+					</delay>
+
+					<to uri="direct:add-all-to-active-pdp-group" />
+
+					<log
+						loggingLevel="INFO"
+						message="SUBMIT request successfully executed for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('SUBMIT request successfully executed','INFO',${exchangeProperty[loopObject]})" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+						<log
+							loggingLevel="ERROR"
+							message="SUBMIT request failed for loop: ${header.loopName}" />
+						<to
+							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('SUBMIT request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+					</doCatch>
+				</doTry>
+			</route>
+		</put>
+		<put uri="/v2/loop/delete/{loopName}">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<log
+						loggingLevel="INFO"
+						message="DELETE request for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*,'DELETE request')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" />
+					<to uri="direct:load-loop" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DELETE request','INFO',${exchangeProperty[loopObject]})" />
+					<to uri="direct:undeploy-loop" />
+					<to uri="direct:remove-all-policy-from-active-pdp-group" />
+					<split>
+						<simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
+						</simple>
+						<setProperty propertyName="microServicePolicy">
+							<simple>${body}</simple>
+						</setProperty>
+						<log
+							loggingLevel="INFO"
+							message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
+						<to uri="direct:delete-micro-service-policy" />
+					</split>
+
+					<log
+						loggingLevel="INFO"
+						message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
+					<split>
+						<simple>${exchangeProperty[loopObject].getOperationalPolicies()}
+						</simple>
+						<setProperty propertyName="operationalPolicy">
+							<simple>${body}</simple>
+						</setProperty>
+						<log
+							loggingLevel="INFO"
+							message="Processing Operational Policy: ${exchangeProperty[operationalPolicy].getName()}" />
+						<to uri="direct:delete-operational-policy" />
+						<log
+							loggingLevel="INFO"
+							message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
+						<split>
+							<simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
+							</simple>
+							<setProperty propertyName="guardPolicy">
+								<simple>${body}</simple>
+							</setProperty>
+							<log
+								loggingLevel="INFO"
+								message="Processing Guard Policy: ${exchangeProperty[guardPolicy].getKey()}" />
+							<to uri="direct:delete-guard-policy" />
+						</split>
+					</split>
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopService?method=deleteLoop(${header.loopName})" />
+					<log
+						loggingLevel="INFO"
+						message="DELETE request successfully executed for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DELETE request successfully executed','INFO',${exchangeProperty[loopObject]})" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+						<log
+							loggingLevel="ERROR"
+							message="DELETE request failed for loop: ${header.loopName}" />
+						<to
+							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('DELETE request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+					</doCatch>
+				</doTry>
+			</route>
+		</put>
+		<get
+			uri="/v2/loop/getstatus/{loopName}"
+			outType="org.onap.clamp.loop.Loop"
+			produces="application/json">
+			<route>
+				<removeHeaders
+					pattern="*"
+					excludePattern="loopName" />
+				<doTry>
+					<log
+						loggingLevel="INFO"
+						message="GET STATUS request for loop: ${header.loopName}" />
+					<to
+						uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'GET STATUS request')" />
+					<to
+						uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','read')" />
+					<to uri="direct:load-loop" />
+					<to
+						uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('GET STATUS request','INFO',${exchangeProperty[loopObject]})" />
+					<doTry>
+						<to uri="direct:update-policy-status-for-loop" />
+						<to uri="direct:update-dcae-status-for-loop" />
+						<to uri="direct:update-loop-state" />
+
+						<to
+							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Get Status request successfully executed','INFO',${exchangeProperty[loopObject]})" />
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" />
+					</doTry>
+					<doCatch>
+						<exception>java.lang.Exception</exception>
+						<handled>
+							<constant>false</constant>
+						</handled>
+						<to
+							uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" />
+						<log
+							loggingLevel="ERROR"
+							message="Get Status request failed for loop: ${header.loopName}" />
+						<to
+							uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Get Status request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" />
+					</doCatch>
+					<doFinally>
+						<setBody>
+							<simple>${exchangeProperty[loopObject]}</simple>
+						</setBody>
+					</doFinally>
+				</doTry>
+			</route>
+		</get>
+	</rest>
+</rests>
diff --git a/src/test/resources/clds/camel/rest/clds-services.xml b/src/test/resources/clds/camel/rest/clds-services.xml
new file mode 100644
index 0000000..dd3a4bf
--- /dev/null
+++ b/src/test/resources/clds/camel/rest/clds-services.xml
@@ -0,0 +1,29 @@
+<rests xmlns="http://camel.apache.org/schema/spring">
+	<rest>
+		<get uri="/v1/clds/cldsInfo" outType="org.onap.clamp.clds.model.CldsInfo"
+			produces="application/json">
+			<to
+				uri="bean:org.onap.clamp.clds.service.CldsService?method=getCldsInfo()" />
+		</get>
+		<get uri="/v1/healthcheck" produces="application/json"
+			outType="org.onap.clamp.clds.model.CldsHealthCheck">
+			<route>
+				<setBody>
+					<method ref="org.onap.clamp.clds.service.CldsHealthcheckService"
+						method="gethealthcheck()" />
+				</setBody>
+				<when>
+					<simple> ${body} == 'NOT-OK'</simple>
+					<setHeader headerName="CamelHttpResponseCode">
+						<constant>404</constant>
+					</setHeader>
+					<log loggingLevel="ERROR" message="HealthCheck failed" />
+				</when>
+			</route>
+		</get>
+
+		<get uri="/v1/user/getUser" produces="text/plain">
+			<to uri="bean:org.onap.clamp.clds.service.UserService?method=getUser()" />
+		</get>
+	</rest>
+</rests>
diff --git a/src/test/resources/clds/camel/routes/dcae-flows.xml b/src/test/resources/clds/camel/routes/dcae-flows.xml
new file mode 100644
index 0000000..fb3bc90
--- /dev/null
+++ b/src/test/resources/clds/camel/routes/dcae-flows.xml
@@ -0,0 +1,216 @@
+<routes xmlns="http://camel.apache.org/schema/spring">
+	<route id="deploy-loop">
+		<from uri="direct:deploy-loop" />
+		<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>
+			<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" />
+		<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]},${exchangeProperty[loopObject].getDcaeDeploymentId()},${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()}" />
+		<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[loopObject].getDcaeDeploymentStatusUrl()}"></log>
+			<toD
+				uri="${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}?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" />
+			<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>
+
+	</route>
+</routes>
\ No newline at end of file
diff --git a/src/test/resources/clds/camel/routes/flexible-flow.xml b/src/test/resources/clds/camel/routes/flexible-flow.xml
deleted file mode 100644
index 2103b4a..0000000
--- a/src/test/resources/clds/camel/routes/flexible-flow.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<routes xmlns="http://camel.apache.org/schema/spring">
-		<route id="submit">
-				<from uri="direct:processSubmit" />
-				<choice>
-						<when>
-								<simple> ${exchangeProperty.actionCd} == 'SUBMIT' || ${exchangeProperty.actionCd} == 'RESUBMIT'</simple>
-								<to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'INITIATED')" />
-								<to uri="bean:org.onap.clamp.clds.client.TcaPolicyDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.HolmesPolicyDelegate" />
-								<delay>
-										<constant>30000</constant>
-								</delay>
-								<to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.GuardPolicyDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'COMPLETED')" />
-						</when>
-						<when>
-								<simple> ${exchangeProperty.actionCd} == 'DELETE'</simple>
-								<to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'INITIATED')" />
-								<to uri="bean:org.onap.clamp.clds.client.TcaPolicyDeleteDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.HolmesPolicyDeleteDelegate" />
-								<delay>
-										<constant>30000</constant>
-								</delay>
-								<to
-										uri="bean:org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.GuardPolicyDeleteDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.ModelDeleteDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'COMPLETED')" />
-						</when>
-						<when>
-								<simple> ${exchangeProperty.actionCd} == 'UPDATE'</simple>
-								<to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'INITIATED')" />
-								<to uri="bean:org.onap.clamp.clds.client.TcaPolicyDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.HolmesPolicyDelegate" />
-								<delay>
-										<constant>30000</constant>
-								</delay>
-								<to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.GuardPolicyDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'COMPLETED')" />
-						</when>
-						<when>
-								<simple> ${exchangeProperty.actionCd} == 'STOP'</simple>
-								<to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'INITIATED')" />
-								<to
-										uri="bean:org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.GuardPolicyDeleteDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'COMPLETED')" />
-						</when>
-						<when>
-								<simple> ${exchangeProperty.actionCd} == 'RESTART'</simple>
-								<to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'INITIATED')" />
-								<to uri="bean:org.onap.clamp.clds.client.GuardPolicyDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
-								<to uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'COMPLETED')" />
-						</when>
-				</choice>
-		</route>
-
-</routes>
\ No newline at end of file
diff --git a/src/test/resources/clds/camel/routes/loop-flows.xml b/src/test/resources/clds/camel/routes/loop-flows.xml
new file mode 100644
index 0000000..036e8ef
--- /dev/null
+++ b/src/test/resources/clds/camel/routes/loop-flows.xml
@@ -0,0 +1,222 @@
+<routes xmlns="http://camel.apache.org/schema/spring">
+	<route id="load-loop">
+		<from uri="direct:load-loop" />
+		<setBody>
+			<simple>${header.loopName}</simple>
+		</setBody>
+		<setProperty propertyName="loopObject">
+			<method ref="org.onap.clamp.loop.LoopService" method="getLoop" />
+		</setProperty>
+
+		<when>
+			<simple>${exchangeProperty[loopObject]} == null</simple>
+			<setHeader headerName="CamelHttpResponseCode">
+				<constant>404</constant>
+			</setHeader>
+			<log loggingLevel="WARN" message="Loop not found in database: ${body}" />
+			<stop />
+		</when>
+	</route>
+
+	<route id="update-policy-status-for-loop">
+		<from uri="direct:update-policy-status-for-loop" />
+		<setProperty propertyName="policyComponent">
+			<simple>${exchangeProperty[loopObject].getComponent('POLICY')}
+			</simple>
+		</setProperty>
+		<setProperty propertyName="policyFound">
+			<simple resultType="java.lang.Boolean">true</simple>
+		</setProperty>
+		<setProperty propertyName="policyDeployed">
+			<simple resultType="java.lang.Boolean">true</simple>
+		</setProperty>
+		<log loggingLevel="INFO"
+			message="Processing all MICRO-SERVICES policies defined in loop ${exchangeProperty[loopObject].getName()}" />
+		<split>
+			<simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
+			</simple>
+			<setProperty propertyName="policyName">
+				<simple>${body.getName()}</simple>
+			</setProperty>
+			<setProperty propertyName="policyType">
+				<simple>${body.getModelType()}</simple>
+			</setProperty>
+			<setProperty propertyName="policyVersion">
+				<simple>1.0.0</simple>
+			</setProperty>
+			<setBody>
+				<constant>null</constant>
+			</setBody>
+			<log loggingLevel="INFO"
+				message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
+			<to uri="direct:verify-one-policy" />
+		</split>
+		<log loggingLevel="INFO"
+			message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
+		<split>
+			<simple>${exchangeProperty[loopObject].getOperationalPolicies()}
+			</simple>
+			<setProperty propertyName="policyName">
+				<simple>${body.getName()}</simple>
+			</setProperty>
+			<setProperty propertyName="policyType">
+				<simple>onap.policies.controlloop.Operational</simple>
+			</setProperty>
+			<setProperty propertyName="policyVersion">
+				<simple>1</simple>
+			</setProperty>
+			<setProperty propertyName="operationalPolicy">
+				<simple>${body}</simple>
+			</setProperty>
+			<setBody>
+				<constant>null</constant>
+			</setBody>
+			<log loggingLevel="INFO"
+				message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
+			<to uri="direct:verify-one-policy" />
+			<log loggingLevel="INFO"
+				message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
+			<split>
+				<simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
+				</simple>
+				<setProperty propertyName="policyName">
+					<simple>${body.getKey()}</simple>
+				</setProperty>
+				<setProperty propertyName="policyType">
+					<simple>onap.policies.controlloop.Guard</simple>
+				</setProperty>
+				<setProperty propertyName="policyVersion">
+					<simple>1</simple>
+				</setProperty>
+				<setBody>
+					<constant>null</constant>
+				</setBody>
+				<log loggingLevel="INFO"
+					message="Processing Guard Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
+				<to uri="direct:verify-one-policy" />
+			</split>
+		</split>
+		<setProperty propertyName="policyState">
+			<simple> ${exchangeProperty[policyComponent].getState()}
+			</simple>
+		</setProperty>
+		<log loggingLevel="INFO"
+			message="Policy state set to: ${exchangeProperty[policyState].getStateName()}" />
+		<to
+			uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Policy state set to: ${exchangeProperty[policyState].getStateName()}','INFO','POLICY',${exchangeProperty[loopObject]})" />
+	</route>
+	<route id="update-dcae-status-for-loop">
+		<from uri="direct:update-dcae-status-for-loop" />
+		<log loggingLevel="INFO"
+			message="Updating DCAE status for loop: ${exchangeProperty[loopObject].getName()}" />
+		<setProperty propertyName="dcaeComponent">
+			<simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple>
+		</setProperty>
+		<when>
+			<simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}
+				!= null
+			</simple>
+			<setProperty propertyName="raiseHttpExceptionFlag">
+				<simple resultType="java.lang.Boolean">false</simple>
+			</setProperty>
+			<to uri="direct:get-dcae-deployment-status" />
+			<when>
+				<simple> ${header.CamelHttpResponseCode} == 200 </simple>
+				<convertBodyTo type="java.lang.String" />
+				<setProperty propertyName="dcaeResponse">
+					<method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+						method="convertDcaeResponse(${body})" />
+				</setProperty>
+			</when>
+		</when>
+
+		<setProperty propertyName="dcaeState">
+			<simple> ${exchangeProperty[dcaeComponent].computeState(*)}
+			</simple>
+		</setProperty>
+		<log loggingLevel="INFO"
+			message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
+		<to
+			uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[loopObject]})" />
+
+	</route>
+	<route id="direct:update-loop-state">
+		<from uri="direct:update-loop-state" />
+		<log loggingLevel="INFO"
+			message="Updating status for loop: ${exchangeProperty[loopObject].getName()}" />
+		<choice>
+			<when>
+				<simple>${exchangeProperty['dcaeState'].getStateName()} ==
+					'BLUEPRINT_DEPLOYED' and ${exchangeProperty['policyState'].getStateName()}
+					== 'NOT_SENT'
+				</simple>
+				<to
+					uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DESIGN')" />
+			</when>
+			<when>
+				<simple>${exchangeProperty['dcaeState'].getStateName()} == 'IN_ERROR' or
+					${exchangeProperty['dcaeState'].getStateName()} ==
+					'MICROSERVICE_INSTALLATION_FAILED'
+				</simple>
+				<to
+					uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" />
+			</when>
+			<when>
+				<simple>${exchangeProperty['dcaeState'].getStateName()} ==
+					'MICROSERVICE_UNINSTALLATION_FAILED' or
+					${exchangeProperty['policyState'].getStateName()} == 'IN_ERROR'
+				</simple>
+				<to
+					uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" />
+			</when>
+			<when>
+				<simple>${exchangeProperty['dcaeState'].getStateName()} ==
+					'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
+					${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
+				</simple>
+				<to
+					uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'RUNNING')" />
+			</when>
+			<when>
+				<simple>${exchangeProperty['dcaeState'].getStateName()} ==
+					'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
+					${exchangeProperty['policyState'].getStateName()} == 'SENT'
+				</simple>
+				<to
+					uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'STOPPED')" />
+			</when>
+			<when>
+				<simple>${exchangeProperty['dcaeState'].getStateName()} ==
+					'BLUEPRINT_DEPLOYED' or ${exchangeProperty['dcaeState'].getStateName()} ==
+					'MICROSERVICE_UNINSTALLED_SUCCESSFULLY' and
+					${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
+				</simple>
+				<to
+					uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'SUBMITTED')" />
+			</when>
+			<when>
+				<simple>${exchangeProperty['dcaeState'].getStateName()} ==
+					'PROCESSING_MICROSERVICE_INSTALLATION' or
+					${exchangeProperty['dcaeState'].getStateName()} ==
+					'PROCESSING_MICROSERVICE_UNINSTALLATION' and
+					${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
+				</simple>
+				<to
+					uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'WAITING')" />
+			</when>
+			<when>
+				<simple>${exchangeProperty['dcaeState'].getStateName()} ==
+					'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
+					${exchangeProperty['policyState'].getStateName()} != 'NOT_SENT'
+				</simple>
+				<to
+					uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DEPLOYED')" />
+			</when>
+		</choice>
+		<log loggingLevel="INFO"
+			message="New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}" />
+		<to
+			uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}','INFO',${exchangeProperty[loopObject]})" />
+
+	</route>
+</routes>
\ No newline at end of file
diff --git a/src/test/resources/clds/camel/routes/policy-flows.xml b/src/test/resources/clds/camel/routes/policy-flows.xml
new file mode 100644
index 0000000..75ac66c
--- /dev/null
+++ b/src/test/resources/clds/camel/routes/policy-flows.xml
@@ -0,0 +1,520 @@
+
+<routes xmlns="http://camel.apache.org/schema/spring">
+	<route id="verify-one-policy">
+		<from uri="direct:verify-one-policy" />
+		<setProperty propertyName="raiseHttpExceptionFlag">
+			<simple resultType="java.lang.Boolean">false</simple>
+		</setProperty>
+		<to uri="direct:get-policy" />
+		<when>
+			<simple> ${header.CamelHttpResponseCode} != 200 </simple>
+			<setProperty propertyName="policyFound">
+				<simple resultType="java.lang.Boolean">false</simple>
+			</setProperty>
+			<log loggingLevel="WARN"
+				message="At least one policy has not been found on policy engine: ${exchangeProperty[policyName]}" />
+		</when>
+		<setProperty propertyName="raiseHttpExceptionFlag">
+			<simple resultType="java.lang.Boolean">false</simple>
+		</setProperty>
+		<to uri="direct:get-deployment-policy" />
+		<when>
+			<simple> ${header.CamelHttpResponseCode} != 200 </simple>
+			<setProperty propertyName="policyDeployed">
+				<simple resultType="java.lang.Boolean">false</simple>
+			</setProperty>
+			<log loggingLevel="WARN"
+				message="At least one policy has not been deployed on policy engine: ${exchangeProperty[policyName]}" />
+		</when>
+		<setProperty propertyName="newPolicyState">
+			<simple>${exchangeProperty[policyComponent].computeState(*)}</simple>
+		</setProperty>
+	</route>
+
+	<route id="get-policy">
+		<from uri="direct:get-policy" />
+		<doTry>
+			<log loggingLevel="INFO"
+				message="Getting Policy: ${exchangeProperty[policyName]}" />
+			<to
+				uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Get Policy')" />
+			<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 get policy: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}"></log>
+			<toD
+				uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/${exchangeProperty[policyVersion]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+			<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[policyName]} GET
+						Policy status
+					</simple>
+				</setProperty>
+				<setProperty propertyName="logComponent">
+					<simple>POLICY</simple>
+				</setProperty>
+				<to uri="direct:dump-loop-log-http-response" />
+			</doFinally>
+		</doTry>
+	</route>
+
+	<route id="get-deployment-policy">
+		<from uri="direct:get-deployment-policy" />
+		<doTry>
+			<log loggingLevel="INFO"
+				message="Getting the policy deployment in PDP: ${exchangeProperty[policyName]}" />
+			<to
+				uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('Policy', 'Getting the policy deployment in PDP')" />
+			<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 get policy deployment status: {{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/deployed"></log>
+			<toD
+				uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/${exchangeProperty[policyType]}/versions/1.0.0/policies/${exchangeProperty[policyName]}/versions/deployed?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+			<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[policyName]} GET Policy deployment
+						status
+					</simple>
+				</setProperty>
+				<setProperty propertyName="logComponent">
+					<simple>POLICY</simple>
+				</setProperty>
+				<to uri="direct:dump-loop-log-http-response" />
+			</doFinally>
+		</doTry>
+	</route>
+	<route id="create-micro-service-policy">
+		<from uri="direct:create-micro-service-policy" />
+		<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;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+			<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>
+				<setProperty propertyName="logComponent">
+					<simple>POLICY</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" />
+		<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;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+
+			<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>
+				<setProperty propertyName="logComponent">
+					<simple>POLICY</simple>
+				</setProperty>
+				<to uri="direct:dump-loop-log-http-response" />
+			</doFinally>
+		</doTry>
+	</route>
+
+	<route id="create-operational-policy">
+		<from uri="direct:create-operational-policy" />
+		<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.policies.controlloop.Operational/versions/1.0.0/policies"></log>
+			<toD
+				uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+			<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>
+				<setProperty propertyName="logComponent">
+					<simple>POLICY</simple>
+				</setProperty>
+				<to uri="direct:dump-loop-log-http-response" />
+			</doFinally>
+		</doTry>
+	</route>
+
+	<route id="delete-operational-policy">
+		<from uri="direct:delete-operational-policy" />
+		<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.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1"></log>
+			<toD
+				uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/${exchangeProperty[operationalPolicy].getName()}/versions/1?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+			<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>
+				<setProperty propertyName="logComponent">
+					<simple>POLICY</simple>
+				</setProperty>
+				<to uri="direct:dump-loop-log-http-response" />
+			</doFinally>
+		</doTry>
+	</route>
+
+	<route id="create-guard-policy">
+		<from uri="direct:create-guard-policy" />
+		<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.policies.controlloop.Guard/versions/1.0.0/policies"></log>
+			<toD
+				uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+			<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>
+				<setProperty propertyName="logComponent">
+					<simple>POLICY</simple>
+				</setProperty>
+				<to uri="direct:dump-loop-log-http-response" />
+			</doFinally>
+		</doTry>
+	</route>
+
+	<route id="delete-guard-policy">
+		<from uri="direct:delete-guard-policy" />
+		<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.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1"></log>
+			<toD
+				uri="{{clamp.config.policy.api.url}}/policy/api/v1/policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${exchangeProperty[guardPolicy].getKey()}/versions/1?bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.api.userName}}&amp;authPassword={{clamp.config.policy.api.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+
+			<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>
+				<setProperty propertyName="logComponent">
+					<simple>POLICY</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" />
+		<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].getComponent("POLICY").createPoliciesPayloadPdpGroup(exchangeProperty[loopObject])}
+				</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/policies"></log>
+			<toD
+				uri="{{clamp.config.policy.pap.url}}/policy/pap/v1/pdps/policies?bridgeEndpoint=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;useSystemProperties=true&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+
+			<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>
+				<setProperty propertyName="logComponent">
+					<simple>POLICY</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" />
+		<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].getComponent("POLICY").listPolicyNamesPdpGroup(exchangeProperty[loopObject])}
+				</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}}/policy/pap/v1/pdps/policies/${exchangeProperty[policyName]}/versions/1.0.0?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.policy.pap.userName}}&amp;authPassword={{clamp.config.policy.pap.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=20000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+				<setProperty propertyName="logMessage">
+					<simple>${exchangeProperty[policyName]} PDP Group removal status
+					</simple>
+				</setProperty>
+				<setProperty propertyName="logComponent">
+					<simple>POLICY</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>PDP Group removal, Error reported: ${exception}</simple>
+				</setProperty>
+				<setProperty propertyName="logComponent">
+					<simple>POLICY</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>
+</routes>
\ No newline at end of file
diff --git a/src/test/resources/clds/camel/routes/utils-flows.xml b/src/test/resources/clds/camel/routes/utils-flows.xml
new file mode 100644
index 0000000..bbbc46a
--- /dev/null
+++ b/src/test/resources/clds/camel/routes/utils-flows.xml
@@ -0,0 +1,28 @@
+<routes xmlns="http://camel.apache.org/schema/spring">
+	<route id="reset-raise-http-exception-flag">
+		<from uri="direct:reset-raise-http-exception-flag" />
+		<setProperty propertyName="raiseHttpExceptionFlag">
+			<simple resultType="java.lang.Boolean">true</simple>
+		</setProperty>
+	</route>
+
+	<route id="dump-loop-log-http-response">
+		<from uri="direct:dump-loop-log-http-response" />
+		<log loggingLevel="INFO"
+			message="${exchangeProperty[logMessage]} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}" />
+		<choice>
+			<when>
+				<simple>${exchangeProperty[logComponent]} == null</simple>
+				<to
+					uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('${exchangeProperty[logMessage]} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO',${exchangeProperty[loopObject]})" />
+			</when>
+			<otherwise>
+				<to
+					uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('${exchangeProperty[logMessage]} - ${header.CamelHttpResponseCode} : ${header.CamelHttpResponseText}','INFO','${exchangeProperty[logComponent]}',${exchangeProperty[loopObject]})" />
+				<setProperty propertyName="logComponent">
+					<constant>null</constant>
+				</setProperty>
+			</otherwise>
+		</choice>
+	</route>
+</routes>
\ No newline at end of file