Introduce Camel route

Camel route for Submit operation using http4 component

Issue-ID: CLAMP-303
Change-Id: I29804a7db6286dfa84f7eed63813f25299a385e6
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
diff --git a/src/main/resources/clds/camel/routes/flexible-flow.xml b/src/main/resources/clds/camel/routes/flexible-flow.xml
index 2103b4a..b824499 100644
--- a/src/main/resources/clds/camel/routes/flexible-flow.xml
+++ b/src/main/resources/clds/camel/routes/flexible-flow.xml
@@ -1,61 +1,117 @@
 <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>
+	<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>
+	<route id="delete-micro-service">
+		<from uri="direct:delete-micro-service" />
+
+		<setHeader headerName="CamelHttpMethod">
+			<constant>DELETE</constant>
+		</setHeader>
+		<setHeader headerName="CamelHttpUri">
+			<simple>{{clamp.config.policy.url}}/policyTypes/${body.getModelType()}/versions/1.0.0/policies/${body.getName()}
+			</simple>
+		</setHeader>
+		<setBody>
+			<constant>null</constant>
+		</setBody>
+		<!--<convertBodyTo type="org.onap.clamp.policy.microservice.MicroServicePolicy"/> -->
+		<log
+			loggingLevel="INFO"
+			message="Policy Endpoint for microservice: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
+		<toD
+			uri="http4://policyhost:8085?throwExceptionOnFailure=${header.HttpQueryException}" />
+
+	</route>
+	<route id="create-micro-service">
+		<from uri="direct:create-micro-service" />
+
+		<setHeader headerName="CamelHttpMethod">
+			<constant>POST</constant>
+		</setHeader>
+		<setHeader headerName="CamelHttpUri">
+			<simple>{{clamp.config.policy.url}}/policyTypes/${body.getModelType()}/versions/1.0.0/policies
+			</simple>
+		</setHeader>
+		<!--<convertBodyTo type="org.onap.clamp.policy.microservice.MicroServicePolicy"/> -->
+		<log
+			loggingLevel="INFO"
+			message="Policy Endpoint for microservice: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
+		<toD
+			uri="http4://policyhost:8085?throwExceptionOnFailure=${header.HttpQueryException}" />
+	</route>
 
 </routes>
\ No newline at end of file