Release 5.0.5
[clamp.git] / src / main / resources / clds / camel / routes / loop-flows.xml
1 <routes xmlns="http://camel.apache.org/schema/spring">
2         <route id="load-loop">
3                 <from uri="direct:load-loop" />
4                 <setBody>
5                         <simple>${header.loopName}</simple>
6                 </setBody>
7                 <setProperty propertyName="loopObject">
8                         <method ref="org.onap.clamp.loop.LoopService" method="getLoop" />
9                 </setProperty>
10
11                 <when>
12                         <simple>${exchangeProperty[loopObject]} == null</simple>
13                         <setHeader headerName="CamelHttpResponseCode">
14                                 <constant>404</constant>
15                         </setHeader>
16                         <log loggingLevel="WARN" message="Loop not found in database: ${body}" />
17                         <stop />
18                 </when>
19         </route>
20         <route id="update-policy-status-for-loop">
21                 <from uri="direct:update-policy-status-for-loop" />
22                 <setProperty propertyName="policyComponent">
23                         <simple>${exchangeProperty[loopObject].getComponent('POLICY')}
24                         </simple>
25                 </setProperty>
26                 <setProperty propertyName="policyFound">
27                         <simple resultType="java.lang.Boolean">true</simple>
28                 </setProperty>
29                 <setProperty propertyName="policyDeployed">
30                         <simple resultType="java.lang.Boolean">true</simple>
31                 </setProperty>
32                 <log loggingLevel="INFO"
33                         message="Processing all MICRO-SERVICES policies defined in loop ${exchangeProperty[loopObject].getName()}" />
34                 <split>
35                         <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
36                         </simple>
37                         <setProperty propertyName="policyName">
38                                 <simple>${body.getName()}</simple>
39                         </setProperty>
40                         <setProperty propertyName="policyType">
41                                 <simple>${body.getPolicyModel().getPolicyModelType()}</simple>
42                         </setProperty>
43                         <setProperty propertyName="policyTypeVersion">
44                                 <simple>${body.getPolicyModel().getVersion()}</simple>
45                         </setProperty>
46                         <setProperty propertyName="policyVersion">
47                                 <simple>1.0.0</simple>
48                         </setProperty>
49                         <setBody>
50                                 <constant>null</constant>
51                         </setBody>
52                         <log loggingLevel="INFO"
53                                 message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
54                         <to uri="direct:verify-one-policy" />
55                 </split>
56                 <log loggingLevel="INFO"
57                         message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
58                 <split>
59                         <simple>${exchangeProperty[loopObject].getOperationalPolicies()}
60                         </simple>
61                         <setProperty propertyName="policyName">
62                                 <simple>${body.getName()}</simple>
63                         </setProperty>
64                         <setProperty propertyName="policyType">
65                                 <simple>${body.getPolicyModel().getPolicyModelType()}</simple>
66                         </setProperty>
67                         <setProperty propertyName="policyTypeVersion">
68                                 <simple>${body.getPolicyModel().getVersion()}</simple>
69                         </setProperty>
70                         <choice>
71                                 <when>
72                                         <simple>${body.isLegacy()} == true</simple>
73                                         <setProperty propertyName="policyVersion">
74                                                 <simple>1</simple>
75                                         </setProperty>
76                                 </when>
77                                 <otherwise>
78                                         <setProperty propertyName="policyVersion">
79                                                 <simple>1.0.0</simple>
80                                         </setProperty>
81                                 </otherwise>
82                         </choice>
83                         <setProperty propertyName="operationalPolicy">
84                                 <simple>${body}</simple>
85                         </setProperty>
86                         <setBody>
87                                 <constant>null</constant>
88                         </setBody>
89                         <log loggingLevel="INFO"
90                                 message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
91                         <to uri="direct:verify-one-policy" />
92                         <log loggingLevel="INFO"
93                                 message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
94                         <split>
95                                 <simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
96                                 </simple>
97                                 <setProperty propertyName="policyName">
98                                         <simple>${body.getKey()}</simple>
99                                 </setProperty>
100                                 <setProperty propertyName="policyType">
101                                         <simple>onap.policies.controlloop.Guard</simple>
102                                 </setProperty>
103                                 <setProperty propertyName="policyTypeVersion">
104                                         <simple>1.0.0</simple>
105                                 </setProperty>
106                                 <setProperty propertyName="policyVersion">
107                                         <simple>1</simple>
108                                 </setProperty>
109                                 <setBody>
110                                         <constant>null</constant>
111                                 </setBody>
112                                 <log loggingLevel="INFO"
113                                         message="Processing Guard Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
114                                 <to uri="direct:verify-one-policy" />
115                         </split>
116                 </split>
117                 <setProperty propertyName="policyState">
118                         <simple> ${exchangeProperty[policyComponent].getState()}
119                         </simple>
120                 </setProperty>
121                 <log loggingLevel="INFO"
122                         message="Policy state set to: ${exchangeProperty[policyState].getStateName()}" />
123                 <to
124                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Policy state set to: ${exchangeProperty[policyState].getStateName()}','INFO','POLICY',${exchangeProperty[loopObject]})" />
125         </route>
126         <route id="update-dcae-status-for-loop">
127                 <from uri="direct:update-dcae-status-for-loop" />
128                 <log loggingLevel="INFO"
129                         message="Updating DCAE status for loop: ${exchangeProperty[loopObject].getName()}" />
130                 <choice>
131                         <when>
132                                 <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
133                                 </simple>
134                                         <setProperty propertyName="dcaeComponent">
135                                                 <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple>
136                                         </setProperty>
137                                 <when>
138                                         <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()} != null
139                                         </simple>
140                                         <setProperty propertyName="getStatusUrl">
141                                                 <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}</simple>
142                                         </setProperty>
143                                         <setProperty propertyName="raiseHttpExceptionFlag">
144                                                 <simple resultType="java.lang.Boolean">false</simple>
145                                         </setProperty>
146                                         <to uri="direct:get-dcae-deployment-status" />
147                                         <when>
148                                                 <simple> ${header.CamelHttpResponseCode} == 200 </simple>
149                                                 <convertBodyTo type="java.lang.String" />
150                                                 <setProperty propertyName="dcaeResponse">
151                                                         <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
152                                                                 method="convertDcaeResponse(${body})" />
153                                                 </setProperty>
154                                         </when>
155                                 </when>
156                                 <setProperty propertyName="dcaeState">
157                                         <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
158                                         </simple>
159                                 </setProperty>
160                                 <log loggingLevel="INFO"
161                                         message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
162                                 <to
163                                         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]})" />
164                         </when>
165                         <when>
166                                 <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
167                                 </simple>
168                                 <split>
169                                         <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
170                                         </simple>
171                                         <setProperty propertyName="microServicePolicy">
172                                                 <simple>${body}</simple>
173                                         </setProperty>
174                                         <setProperty propertyName="dcaeComponent">
175                                                 <simple>${exchangeProperty[loopObject].getComponent('DCAE_' + ${exchangeProperty[microServicePolicy].getName()})}</simple>
176                                         </setProperty>
177                                         <when>
178                                                 <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()} != null
179                                                 </simple>
180                                                 <setProperty propertyName="getStatusUrl">
181                                                         <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()}</simple>
182                                                 </setProperty>
183                                                 <setProperty propertyName="raiseHttpExceptionFlag">
184                                                         <simple resultType="java.lang.Boolean">false</simple>
185                                                 </setProperty>
186                                                 <to uri="direct:get-dcae-deployment-status" />
187                                                 <when>
188                                                         <simple> ${header.CamelHttpResponseCode} == 200 </simple>
189                                                         <convertBodyTo type="java.lang.String" />
190                                                         <setProperty propertyName="dcaeResponse">
191                                                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
192                                                                         method="convertDcaeResponse(${body})" />
193                                                         </setProperty>
194                                                 </when>
195                                         </when>
196                                         <setProperty propertyName="dcaeState">
197                                                 <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
198                                                 </simple>
199                                         </setProperty>
200                                         <log loggingLevel="INFO"
201                                                 message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
202                                         <to
203                                                 uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - message: ${exchangeProperty[dcaeResponse].getError()}','INFO','DCAE',${exchangeProperty[microServicePolicy]})" />
204                                 </split>>
205                         </when>
206                 </choice>
207                 </route>
208         <route id="direct:update-loop-state">
209                 <from uri="direct:update-loop-state" />
210                 <log loggingLevel="INFO"
211                         message="Updating status for loop: ${exchangeProperty[loopObject].getName()}" />
212                 <choice>
213                         <when>
214                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
215                                         'BLUEPRINT_DEPLOYED' and ${exchangeProperty['policyState'].getStateName()}
216                                         == 'NOT_SENT'
217                                 </simple>
218                                 <to
219                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DESIGN')" />
220                         </when>
221                         <when>
222                                 <simple>${exchangeProperty['dcaeState'].getStateName()} == 'IN_ERROR' or
223                                         ${exchangeProperty['dcaeState'].getStateName()} ==
224                                         'MICROSERVICE_INSTALLATION_FAILED'
225                                 </simple>
226                                 <to
227                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" />
228                         </when>
229                         <when>
230                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
231                                         'MICROSERVICE_UNINSTALLATION_FAILED' or
232                                         ${exchangeProperty['policyState'].getStateName()} == 'IN_ERROR'
233                                 </simple>
234                                 <to
235                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" />
236                         </when>
237                         <when>
238                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
239                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
240                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
241                                 </simple>
242                                 <to
243                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'RUNNING')" />
244                         </when>
245                         <when>
246                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
247                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
248                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT'
249                                 </simple>
250                                 <to
251                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'STOPPED')" />
252                         </when>
253                         <when>
254                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
255                                         'BLUEPRINT_DEPLOYED' or ${exchangeProperty['dcaeState'].getStateName()} ==
256                                         'MICROSERVICE_UNINSTALLED_SUCCESSFULLY' and
257                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
258                                 </simple>
259                                 <to
260                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'SUBMITTED')" />
261                         </when>
262                         <when>
263                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
264                                         'PROCESSING_MICROSERVICE_INSTALLATION' or
265                                         ${exchangeProperty['dcaeState'].getStateName()} ==
266                                         'PROCESSING_MICROSERVICE_UNINSTALLATION' and
267                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
268                                 </simple>
269                                 <to
270                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'WAITING')" />
271                         </when>
272                         <when>
273                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
274                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
275                                         ${exchangeProperty['policyState'].getStateName()} != 'NOT_SENT'
276                                 </simple>
277                                 <to
278                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DEPLOYED')" />
279                         </when>
280                 </choice>
281                 <log loggingLevel="INFO"
282                         message="New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}" />
283                 <to
284                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}','INFO',${exchangeProperty[loopObject]})" />
285
286         </route>
287 </routes>