Merge "Update deploy-loop route"
[clamp.git] / src / main / resources / clds / camel / routes / dcae-flows.xml
1 <routes xmlns="http://camel.apache.org/schema/spring">
2         <route id="deploy-loop">
3                 <from uri="direct:deploy-loop" />
4                 <choice>
5                         <when>
6                                 <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null
7                                 </simple>
8                                 <to uri="direct:deploy-loop-single-blueprint" />
9                         </when>
10                         <when>
11                                 <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null
12                                 </simple>
13                                 <to uri="direct:deploy-loop-multi-blueprint" />
14                         </when>
15                 </choice>
16         </route>
17         <route id="deploy-loop-multi-blueprint">
18                 <from uri="direct:deploy-loop-multi-blueprint" />
19                 <doTry>
20                         <log loggingLevel="INFO"
21                                 message="Deploying the blueprints for loop: ${exchangeProperty[loopObject].getName()}" />
22                         <to
23                                 uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Deploying the loop with multiple blueprints')" />
24                         <split>
25                                         <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
26                                         </simple>
27                                         <setProperty propertyName="microServicePolicy">
28                                                 <simple>${body}</simple>
29                                         </setProperty>
30                                         <log
31                                                 loggingLevel="INFO"
32                                                 message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
33                                         <setProperty propertyName="raiseHttpExceptionFlag">
34                                                 <simple resultType="java.lang.Boolean">false</simple>
35                                         </setProperty>
36                                         <setBody>
37                                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
38                                                         method="getDeployPayload(${exchangeProperty[loopObject]},${exchangeProperty[microServicePolicy].getName()})" />
39                                         </setBody>
40                                         <setProperty propertyName="dcaeDeploymentId">
41                                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
42                                                         method="generateDeploymentId()" />
43                                         </setProperty>
44                                         <setHeader headerName="CamelHttpMethod">
45                                                 <constant>PUT</constant>
46                                         </setHeader>
47                                         <setHeader headerName="Content-Type">
48                                                 <constant>application/json</constant>
49                                         </setHeader>
50                                         <setHeader headerName="X-ONAP-RequestID">
51                                                 <simple>${exchangeProperty[X-ONAP-RequestID]}
52                                                 </simple>
53                                         </setHeader>
54                                         <setHeader headerName="X-ONAP-InvocationID">
55                                                 <simple>${exchangeProperty[X-ONAP-InvocationID]}
56                                                 </simple>
57                                         </setHeader>
58                                         <setHeader headerName="X-ONAP-PartnerName">
59                                                 <simple>${exchangeProperty[X-ONAP-PartnerName]}
60                                                 </simple>
61                                         </setHeader>
62                                         <log loggingLevel="INFO"
63                                                 message="Endpoint to deploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}"></log>
64                                         <toD
65                                                 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" />
66                                         <convertBodyTo type="java.lang.String" />
67                                         <setProperty propertyName="dcaeResponse">
68                                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
69                                                         method="convertDcaeResponse(${body})" />
70                                         </setProperty>
71                                         <setProperty propertyName="dcaeStatusUrl">
72                                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
73                                                         method="getStatusUrl(${exchangeProperty[dcaeResponse]})" />
74                                         </setProperty>
75                                         <to
76                                                 uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})" />
77                         </split>
78                         <doCatch>
79                                 <exception>java.lang.Exception</exception>
80                                 <handled>
81                                         <constant>false</constant>
82                                 </handled>
83                                 <setProperty propertyName="logMessage">
84                                         <simple>DEPLOY loop status
85                                                 (Dep-id:${exchangeProperty[dcaeDeploymentId]},
86                                                 StatusUrl:${exchangeProperty[dcaeStatusUrl]})
87                                         </simple>
88                                 </setProperty>
89                                 <setProperty propertyName="logComponent">
90                                         <simple>DCAE</simple>
91                                 </setProperty>
92                                 <to uri="direct:dump-loop-log-http-response" />
93                         </doCatch>
94                         <doFinally>
95                                 <to uri="direct:reset-raise-http-exception-flag" />
96                                 <to
97                                         uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
98                         </doFinally>
99                 </doTry>
100         </route>
101         <route id="deploy-loop-single-blueprint">
102                 <from uri="direct:deploy-loop-single-blueprint" />
103                 <doTry>
104                         <log loggingLevel="INFO"
105                                 message="Deploying the loop: ${exchangeProperty[loopObject].getName()}" />
106                         <to
107                                 uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Deploying the loop')" />
108                         <setBody>
109                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
110                                         method="getDeployPayload(${exchangeProperty[loopObject]})" />
111                         </setBody>
112                         <setProperty propertyName="dcaeDeploymentId">
113                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
114                                         method="generateDeploymentId()" />
115                         </setProperty>
116                         <setHeader headerName="CamelHttpMethod">
117                                 <constant>PUT</constant>
118                         </setHeader>
119                         <setHeader headerName="Content-Type">
120                                 <constant>application/json</constant>
121                         </setHeader>
122                         <setHeader headerName="X-ONAP-RequestID">
123                                 <simple>${exchangeProperty[X-ONAP-RequestID]}
124                                 </simple>
125                         </setHeader>
126                         <setHeader headerName="X-ONAP-InvocationID">
127                                 <simple>${exchangeProperty[X-ONAP-InvocationID]}
128                                 </simple>
129                         </setHeader>
130                         <setHeader headerName="X-ONAP-PartnerName">
131                                 <simple>${exchangeProperty[X-ONAP-PartnerName]}
132                                 </simple>
133                         </setHeader>
134                         <log loggingLevel="INFO"
135                                 message="Endpoint to deploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}"></log>
136                         <toD
137                                 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" />
138                         <convertBodyTo type="java.lang.String" />
139                         <setProperty propertyName="dcaeResponse">
140                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
141                                         method="convertDcaeResponse(${body})" />
142                         </setProperty>
143                         
144
145                         <setProperty propertyName="dcaeStatusUrl">
146                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
147                                         method="getStatusUrl(${exchangeProperty[dcaeResponse]})" />
148                         </setProperty>
149                         <to
150                                 uri="bean:org.onap.clamp.loop.LoopService?method=updateDcaeDeploymentFields(${exchangeProperty[loopObject]},${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})" />
151                         <doFinally>
152                                 <to uri="direct:reset-raise-http-exception-flag" />
153                                 <to
154                                         uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
155                                 <setProperty propertyName="logMessage">
156                                         <simple>DEPLOY loop status
157                                                 (Dep-id:${exchangeProperty[dcaeDeploymentId]},
158                                                 StatusUrl:${exchangeProperty[dcaeStatusUrl]})
159                                         </simple>
160                                 </setProperty>
161                                 <setProperty propertyName="logComponent">
162                                         <simple>DCAE</simple>
163                                 </setProperty>
164                                 <to uri="direct:dump-loop-log-http-response" />
165                         </doFinally>
166                 </doTry>
167         </route>
168         <route id="undeploy-loop">
169                 <from uri="direct:undeploy-loop" />
170                 <log loggingLevel="INFO"
171                         message="Undeploying the loop: ${exchangeProperty[loopObject].getName()} : ${exchangeProperty[loopObject].getDcaeDeploymentId()}" />
172                 <to
173                         uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploying the loop')" />
174                 <choice>
175                         <when>
176                                 <simple>${exchangeProperty[loopObject].getDcaeDeploymentId()}
177                                         != null
178                                 </simple>
179                                 <doTry>
180                                         <setBody>
181                                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
182                                                         method="getUndeployPayload(${exchangeProperty[loopObject]})" />
183                                         </setBody>
184                                         <setHeader headerName="CamelHttpMethod">
185                                                 <constant>DELETE</constant>
186                                         </setHeader>
187                                         <setHeader headerName="Content-Type">
188                                                 <constant>application/json</constant>
189                                         </setHeader>
190
191                                         <setHeader headerName="X-ONAP-RequestID">
192                                                 <simple>${exchangeProperty[X-ONAP-RequestID]}
193                                                 </simple>
194                                         </setHeader>
195                                         <setHeader headerName="X-ONAP-InvocationID">
196                                                 <simple>${exchangeProperty[X-ONAP-InvocationID]}
197                                                 </simple>
198                                         </setHeader>
199                                         <setHeader headerName="X-ONAP-PartnerName">
200                                                 <simple>${exchangeProperty[X-ONAP-PartnerName]}
201                                                 </simple>
202                                         </setHeader>
203                                         <log loggingLevel="INFO"
204                                                 message="Endpoint to undeploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[loopObject].getDcaeDeploymentId()}"></log>
205                                         <toD
206                                                 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" />
207                                         <convertBodyTo type="java.lang.String" />
208                                         <setProperty propertyName="dcaeResponse">
209                                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
210                                                         method="convertDcaeResponse(${body})" />
211                                         </setProperty>
212                                         <setProperty propertyName="dcaeStatusUrl">
213                                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
214                                                         method="getStatusUrl(${exchangeProperty[dcaeResponse]})" />
215                                         </setProperty>
216                                         <to
217                                                 uri="bean:org.onap.clamp.loop.LoopService?method=updateDcaeDeploymentFields(${exchangeProperty[loopObject]},${exchangeProperty[loopObject].getDcaeDeploymentId()},${exchangeProperty[dcaeStatusUrl]})" />
218                                         <doFinally>
219                                                 <to uri="direct:reset-raise-http-exception-flag" />
220                                                 <to
221                                                         uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
222                                                 <setProperty propertyName="logMessage">
223                                                         <simple>UNDEPLOY loop status</simple>
224                                                 </setProperty>
225                                                 <setProperty propertyName="logComponent">
226                                                         <simple>DCAE</simple>
227                                                 </setProperty>
228                                                 <to uri="direct:dump-loop-log-http-response" />
229                                         </doFinally>
230                                 </doTry>
231                         </when>
232                         <otherwise>
233                                 <log loggingLevel="WARNING"
234                                         message="Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !" />
235                                 <to
236                                         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]})" />
237
238                         </otherwise>
239                 </choice>
240         </route>
241         <route id="get-dcae-deployment-status">
242                 <from uri="direct:get-dcae-deployment-status" />
243                 <log loggingLevel="INFO"
244                         message="Getting DCAE deployment status for loop: ${exchangeProperty[loopObject].getName()}" />
245                 <to
246                         uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting Deployment status')" />
247                 <doTry>
248                         <setHeader headerName="CamelHttpMethod">
249                                 <constant>GET</constant>
250                         </setHeader>
251                         <setHeader headerName="X-ONAP-RequestID">
252                                 <simple>${exchangeProperty[X-ONAP-RequestID]}
253                                 </simple>
254                         </setHeader>
255                         <setHeader headerName="X-ONAP-InvocationID">
256                                 <simple>${exchangeProperty[X-ONAP-InvocationID]}
257                                 </simple>
258                         </setHeader>
259                         <setHeader headerName="X-ONAP-PartnerName">
260                                 <simple>${exchangeProperty[X-ONAP-PartnerName]}
261                                 </simple>
262                         </setHeader>
263                         <log loggingLevel="INFO"
264                                 message="Endpoint to query Closed Loop status: ${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}"></log>
265                         <toD
266                                 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" />
267                         <doFinally>
268                                 <to uri="direct:reset-raise-http-exception-flag" />
269                                 <to
270                                         uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
271                                 <setProperty propertyName="logMessage">
272                                         <simple>DCAE deployment status</simple>
273                                 </setProperty>
274                                 <setProperty propertyName="logComponent">
275                                         <simple>DCAE</simple>
276                                 </setProperty>
277                                 <to uri="direct:dump-loop-log-http-response" />
278                         </doFinally>
279                 </doTry>
280         </route>
281         <route id="get-dcae-blueprint-inventory">
282                 <from uri="direct:get-dcae-blueprint-inventory" />
283                 <log loggingLevel="INFO"
284                         message="Getting DCAE blueprint id in inventory" />
285                 <to
286                         uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting blueprint id in inventory')" />
287                 <doTry>
288                         <setHeader headerName="CamelHttpMethod">
289                                 <constant>GET</constant>
290                         </setHeader>
291                         <setHeader headerName="X-ONAP-RequestID">
292                                 <simple>${exchangeProperty[X-ONAP-RequestID]}
293                                 </simple>
294                         </setHeader>
295                         <setHeader headerName="X-ONAP-InvocationID">
296                                 <simple>${exchangeProperty[X-ONAP-InvocationID]}
297                                 </simple>
298                         </setHeader>
299                         <setHeader headerName="X-ONAP-PartnerName">
300                                 <simple>${exchangeProperty[X-ONAP-PartnerName]}
301                                 </simple>
302                         </setHeader>
303                         <log loggingLevel="INFO"
304                                 message="Endpoint to query Dcae inventory Loop status: {{clamp.config.dcae.inventory.url}}/dcae-service-types?${header[CamelHttpQuery]}"></log>
305                         <toD
306                                 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" />
307                         <convertBodyTo type="java.lang.String" />
308                         <doFinally>
309                                 <to uri="direct:reset-raise-http-exception-flag" />
310                                 <to
311                                         uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
312                         </doFinally>
313                 </doTry>
314
315         </route>
316         <route id="get-all-dcae-blueprint-inventory">
317                 <from uri="direct:get-all-dcae-blueprint-inventory" />
318                 <log loggingLevel="INFO"
319                          message="Getting all DCAE blueprint from inventory" />
320                 <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting all blueprint from inventory')" />
321                 <doTry>
322                         <setHeader headerName="CamelHttpMethod">
323                                 <constant>GET</constant>
324                         </setHeader>
325                         <setHeader headerName="X-ONAP-RequestID">
326                                 <simple>${exchangeProperty[X-ONAP-RequestID]}
327                                 </simple>
328                         </setHeader>
329                         <setHeader headerName="X-ONAP-InvocationID">
330                                 <simple>${exchangeProperty[X-ONAP-InvocationID]}
331                                 </simple>
332                         </setHeader>
333                         <setHeader headerName="X-ONAP-PartnerName">
334                                 <simple>${exchangeProperty[X-ONAP-PartnerName]}
335                                 </simple>
336                         </setHeader>
337                         <log loggingLevel="INFO"
338                                  message="Endpoint to query Blueprints from DCAE inventory: {{clamp.config.dcae.inventory.url}}/dcae-service-types?${header[CamelHttpQuery]}"></log>
339                         <toD uri="{{clamp.config.dcae.inventory.url}}/dcae-service-types;bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
340                         <convertBodyTo type="java.lang.String" />
341                         <setProperty propertyName="dcaeResponseList">
342                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
343                                                 method="convertToDcaeInventoryResponse(${body})" />
344                         </setProperty>
345                         <split>
346                                 <simple>${exchangeProperty[dcaeResponseList]}</simple>
347                                 <convertBodyTo type="org.onap.clamp.clds.model.dcae.DcaeInventoryResponse" />
348                                 <setProperty propertyName="dcaeResponse">
349                                         <simple>${body}</simple>
350                                 </setProperty>
351                                 <to uri="bean:org.onap.clamp.clds.model.dcae.DcaeInventoryCache?method=addDcaeInventoryResponse(${exchangeProperty[dcaeResponse]})" />
352                         </split>
353                         <doFinally>
354                                 <to uri="direct:reset-raise-http-exception-flag" />
355                                 <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
356                         </doFinally>
357                 </doTry>
358         </route>
359 </routes>