683737af3620007d7bb21207709ce8f132b80c22
[clamp.git] / src / main / resources / clds / camel / routes / flexible-flow.xml
1 <routes xmlns="http://camel.apache.org/schema/spring">
2         <route id="submit">
3                 <from uri="direct:processSubmit" />
4                 <choice>
5                         <when>
6                                 <simple> ${exchangeProperty.actionCd} == 'SUBMIT' ||
7                                         ${exchangeProperty.actionCd} == 'RESUBMIT'
8                                 </simple>
9                                 <to
10                                         uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'INITIATED')" />
11                                 <to uri="bean:org.onap.clamp.clds.client.TcaPolicyDelegate" />
12                                 <to uri="bean:org.onap.clamp.clds.client.HolmesPolicyDelegate" />
13                                 <delay>
14                                         <constant>30000</constant>
15                                 </delay>
16                                 <to
17                                         uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
18                                 <to uri="bean:org.onap.clamp.clds.client.GuardPolicyDelegate" />
19                                 <to
20                                         uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'COMPLETED')" />
21                         </when>
22                         <when>
23                                 <simple> ${exchangeProperty.actionCd} == 'DELETE'</simple>
24                                 <to
25                                         uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'INITIATED')" />
26                                 <to uri="bean:org.onap.clamp.clds.client.TcaPolicyDeleteDelegate" />
27                                 <to
28                                         uri="bean:org.onap.clamp.clds.client.HolmesPolicyDeleteDelegate" />
29                                 <delay>
30                                         <constant>30000</constant>
31                                 </delay>
32                                 <to
33                                         uri="bean:org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate" />
34                                 <to
35                                         uri="bean:org.onap.clamp.clds.client.GuardPolicyDeleteDelegate" />
36                                 <to uri="bean:org.onap.clamp.clds.client.ModelDeleteDelegate" />
37                                 <to
38                                         uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'COMPLETED')" />
39                         </when>
40                         <when>
41                                 <simple> ${exchangeProperty.actionCd} == 'UPDATE'</simple>
42                                 <to
43                                         uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'INITIATED')" />
44                                 <to uri="bean:org.onap.clamp.clds.client.TcaPolicyDelegate" />
45                                 <to uri="bean:org.onap.clamp.clds.client.HolmesPolicyDelegate" />
46                                 <delay>
47                                         <constant>30000</constant>
48                                 </delay>
49                                 <to
50                                         uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
51                                 <to uri="bean:org.onap.clamp.clds.client.GuardPolicyDelegate" />
52                                 <to
53                                         uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'COMPLETED')" />
54                         </when>
55                         <when>
56                                 <simple> ${exchangeProperty.actionCd} == 'STOP'</simple>
57                                 <to
58                                         uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'INITIATED')" />
59                                 <to
60                                         uri="bean:org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate" />
61                                 <to
62                                         uri="bean:org.onap.clamp.clds.client.GuardPolicyDeleteDelegate" />
63                                 <to
64                                         uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'COMPLETED')" />
65                         </when>
66                         <when>
67                                 <simple> ${exchangeProperty.actionCd} == 'RESTART'</simple>
68                                 <to
69                                         uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'INITIATED')" />
70                                 <to uri="bean:org.onap.clamp.clds.client.GuardPolicyDelegate" />
71                                 <to
72                                         uri="bean:org.onap.clamp.clds.client.OperationalPolicyDelegate" />
73                                 <to
74                                         uri="bean:org.onap.clamp.clds.client.CldsEventDelegate?method=addEvent(*,'COMPLETED')" />
75                         </when>
76                 </choice>
77         </route>
78
79         <route id="load-loop">
80                 <from uri="direct:load-loop" />
81                 <setBody>
82                         <simple>${header.loopName}</simple>
83                 </setBody>
84                 <setHeader headerName="LoopObject">
85                         <method
86                                 ref="org.onap.clamp.loop.LoopService"
87                                 method="getLoop" />
88                 </setHeader>
89
90                 <when>
91                         <simple>${header.LoopObject} == null</simple>
92                         <setHeader headerName="CamelHttpResponseCode">
93                                 <constant>404</constant>
94                         </setHeader>
95                         <log
96                                 loggingLevel="WARNING"
97                                 message="Loop not found in database: ${body}" />
98                         <stop />
99                 </when>
100         </route>
101
102         <route id="create-micro-service-policy">
103                 <from uri="direct:create-micro-service-policy" />
104                 
105                 <log
106                         loggingLevel="INFO"
107                         message="Creating Micro Service Policy: ${header.microServicePolicy.getName()}" />
108                 <setBody>
109                         <simple>${header.microServicePolicy.createPolicyPayload()}
110                         </simple>
111                 </setBody>
112                 <setHeader headerName="CamelHttpMethod">
113                         <constant>POST</constant>
114                 </setHeader>
115                 <setHeader headerName="Content-Type">
116                         <constant>application/json</constant>
117                 </setHeader>
118                 <setHeader headerName="CamelHttpUri">
119                         <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/${header.microServicePolicy.getModelType()}/versions/1.0.0/policies
120                         </simple>
121                 </setHeader>
122                 <log
123                         loggingLevel="INFO"
124                         message="Endpoint to create microservice policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
125                 <toD
126                         uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
127                 <to
128                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('MicroService policy created successfully','INFO',${header.LoopObject})" />
129                 <to uri="direct:reset-raise-http-exception-flag" />
130         </route>
131         <route id="delete-micro-service-policy">
132                 <from uri="direct:delete-micro-service-policy" />
133                 
134                 <log
135                         loggingLevel="INFO"
136                         message="Deleting Micro Service Policy: ${header.microServicePolicy.getName()}" />
137                 <setBody>
138                         <constant>null</constant>
139                 </setBody>
140                 <setHeader headerName="CamelHttpMethod">
141                         <constant>DELETE</constant>
142                 </setHeader>
143                 <setHeader headerName="CamelHttpUri">
144                         <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/${header.microServicePolicy.getModelType()}/versions/1.0.0/policies/${header.microServicePolicy.getName()}
145                         </simple>
146                 </setHeader>
147                 <log
148                         loggingLevel="INFO"
149                         message="Endpoint to delete microservice policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
150                 <toD
151                         uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
152                 <to
153                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('MicroService policy deleted successfully','INFO',${header.LoopObject})" />
154                 <to uri="direct:reset-raise-http-exception-flag" />
155         </route>
156
157         <route id="create-operational-policy">
158                 <from uri="direct:create-operational-policy" />
159                 
160                 <log
161                         loggingLevel="INFO"
162                         message="Creating Operational Policy: ${header.operationalPolicy.getName()}" />
163                 <setBody>
164                         <simple>${header.operationalPolicy.createPolicyPayload()}
165                         </simple>
166                 </setBody>
167                 <setHeader headerName="CamelHttpMethod">
168                         <constant>POST</constant>
169                 </setHeader>
170                 <setHeader headerName="Content-Type">
171                         <constant>application/yaml; legacy-version</constant>
172                 </setHeader>
173                 <setHeader headerName="CamelHttpUri">
174                         <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/onap.policies.controloop.operational/versions/1.0.0/policies
175                         </simple>
176                 </setHeader>
177                 <log
178                         loggingLevel="INFO"
179                         message="Endpoint to create operational policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
180                 <toD
181                         uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
182                 <to
183                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Operational policy created successfully','INFO',${header.LoopObject})" />
184                 <to uri="direct:reset-raise-http-exception-flag" />
185         </route>
186         <route id="delete-operational-policy">
187                 <from uri="direct:delete-operational-policy" />
188                 
189                 <log
190                         loggingLevel="INFO"
191                         message="Deleting Operational Policy: ${header.operationalPolicy.getName()}" />
192                 <setBody>
193                         <constant>null</constant>
194                 </setBody>
195                 <setHeader headerName="CamelHttpMethod">
196                         <constant>DELETE</constant>
197                 </setHeader>
198                 <setHeader headerName="CamelHttpUri">
199                         <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/onap.policies.controloop.operational/versions/1.0.0/policies/${header.operationalPolicy.getName()}
200                         </simple>
201                 </setHeader>
202                 <log
203                         loggingLevel="INFO"
204                         message="Endpoint to delete operational policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
205                 <toD
206                         uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
207                 <to
208                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Operational policy deleted successfully','INFO',${header.LoopObject})" />
209                 <to uri="direct:reset-raise-http-exception-flag" />
210         </route>
211
212         <route id="create-guard-policy">
213                 <from uri="direct:create-guard-policy" />
214                 
215                 <log
216                         loggingLevel="INFO"
217                         message="Creating Guard Policy: ${header.guardPolicy.getKey()}" />
218                 <setBody>
219                         <simple>${header.guardPolicy.getValue()}
220                         </simple>
221                 </setBody>
222                 <setHeader headerName="CamelHttpMethod">
223                         <constant>POST</constant>
224                 </setHeader>
225                 <setHeader headerName="Content-Type">
226                         <constant>application/json</constant>
227                 </setHeader>
228                 <setHeader headerName="CamelHttpUri">
229                         <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/onap.policies.controlloop.Guard/versions/1.0.0/policies
230                         </simple>
231                 </setHeader>
232                 <log
233                         loggingLevel="INFO"
234                         message="Endpoint to create guard policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
235                 <toD
236                         uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
237                 <to
238                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Guard policy created successfully','INFO',${header.LoopObject})" />
239                 <to uri="direct:reset-raise-http-exception-flag" />
240         </route>
241         <route id="delete-guard-policy">
242                 <from uri="direct:delete-guard-policy" />
243                 
244                 <log
245                         loggingLevel="INFO"
246                         message="Deleting Guard Policy: ${header.guardPolicy.getKey()}" />
247                 <setBody>
248                         <constant>null</constant>
249                 </setBody>
250                 <setHeader headerName="CamelHttpMethod">
251                         <constant>DELETE</constant>
252                 </setHeader>
253                 <setHeader headerName="CamelHttpUri">
254                         <simple>{{clamp.config.policy.url}}/policy/api/v1/policyTypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/${header.guardPolicy.getKey()}
255                         </simple>
256                 </setHeader>
257                 <log
258                         loggingLevel="INFO"
259                         message="Endpoint to delete guard policy: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
260                 <toD
261                         uri="http4://policyhost:8085?throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;deleteWithBody=false&amp;mapHttpMessageBody=false&amp;mapHttpMessageFormUrlEncodedBody=false&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
262                 <to
263                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Guard policy deleted successfully','INFO',${header.LoopObject})" />
264                 <to uri="direct:reset-raise-http-exception-flag" />
265         </route>
266         <route id="add-all-to-active-pdp-group">
267                 <from uri="direct:add-all-to-active-pdp-group" />
268                 
269                 <log
270                         loggingLevel="INFO"
271                         message="Adding loop policies to PDP Group: ${header.LoopObject.getName()}" />
272                 <setBody>
273                         <simple>${header.LoopObject.createPoliciesPayloadPdpGroup()}
274                         </simple>
275                 </setBody>
276                 <setHeader headerName="CamelHttpMethod">
277                         <constant>POST</constant>
278                 </setHeader>
279                 <setHeader headerName="Content-Type">
280                         <constant>application/json</constant>
281                 </setHeader>
282                 <setHeader headerName="CamelHttpUri">
283                         <simple>{{clamp.config.policy.url}}/policy/pap/v1/pdps
284                         </simple>
285                 </setHeader>
286                 <log
287                         loggingLevel="INFO"
288                         message="Endpoint to add policies to PDP Group: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
289                 <toD
290                         uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
291                 <to
292                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Policies pushed to PDP Group successfully','INFO',${header.LoopObject})" />
293                 <to uri="direct:reset-raise-http-exception-flag" />
294         </route>
295
296         <route id="remove-all-policy-from-active-pdp-group">
297                 <from uri="direct:remove-all-policy-from-active-pdp-group" />
298                 <log
299                         loggingLevel="INFO"
300                         message="Removing policies from active PDP group for loop: ${header.LoopObject.getName()}" />
301                 <split>
302                         <simple>${header.LoopObject.listPolicyNamesPdpGroup()}</simple>
303                         <setHeader headerName="PolicyName">
304                                 <simple>${body}</simple>
305                         </setHeader>
306                         <setBody>
307                                 <constant>null</constant>
308                         </setBody>
309                         <setHeader headerName="CamelHttpMethod">
310                                 <constant>DELETE</constant>
311                         </setHeader>
312                         <setHeader headerName="CamelHttpUri">
313                                 <simple>{{clamp.config.policy.url}}/pdps/policies/${header.PolicyName}/versions/1.0.0
314                                 </simple>
315                         </setHeader>
316                         <log
317                                 loggingLevel="INFO"
318                                 message="Endpoint to delete policy from PDP Group: ${header.CamelHttpMethod} ${header.CamelHttpUri}"></log>
319                         <toD
320                                 uri="http4://policyhost:8085?mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${header.RaiseHttpExceptionFlag}&amp;httpClient.connectTimeout=10000&amp;authUsername={{clamp.config.policy.userName}}&amp;authPassword={{clamp.config.policy.password}}" />
321                         <to
322                                 uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog(${header.PolicyName}' Policy removed from PDP Group successfully','INFO',${header.LoopObject})" />
323                 </split>
324                 <to uri="direct:reset-raise-http-exception-flag" />
325         </route>
326
327         <route id="reset-raise-http-exception-flag">
328                 <from uri="direct:reset-raise-http-exception-flag" />
329                 <setHeader headerName="RaiseHttpExceptionFlag">
330                         <simple resultType="java.lang.Boolean">true</simple>
331                 </setHeader>
332         </route>
333 </routes>