a4b6e2920fcc944e908c2f386a3d5b83cbde7df2
[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="policyVersion">
44                                 <simple>1.0.0</simple>
45                         </setProperty>
46                         <setBody>
47                                 <constant>null</constant>
48                         </setBody>
49                         <log loggingLevel="INFO"
50                                 message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
51                         <to uri="direct:verify-one-policy" />
52                 </split>
53                 <log loggingLevel="INFO"
54                         message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
55                 <split>
56                         <simple>${exchangeProperty[loopObject].getOperationalPolicies()}
57                         </simple>
58                         <setProperty propertyName="policyName">
59                                 <simple>${body.getName()}</simple>
60                         </setProperty>
61                         <setProperty propertyName="policyType">
62                                 <simple>onap.policies.controlloop.Operational</simple>
63                         </setProperty>
64                         <setProperty propertyName="policyVersion">
65                                 <simple>1</simple>
66                         </setProperty>
67                         <setProperty propertyName="operationalPolicy">
68                                 <simple>${body}</simple>
69                         </setProperty>
70                         <setBody>
71                                 <constant>null</constant>
72                         </setBody>
73                         <log loggingLevel="INFO"
74                                 message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
75                         <to uri="direct:verify-one-policy" />
76                         <log loggingLevel="INFO"
77                                 message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
78                         <split>
79                                 <simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
80                                 </simple>
81                                 <setProperty propertyName="policyName">
82                                         <simple>${body.getKey()}</simple>
83                                 </setProperty>
84                                 <setProperty propertyName="policyType">
85                                         <simple>onap.policies.controlloop.Guard</simple>
86                                 </setProperty>
87                                 <setProperty propertyName="policyVersion">
88                                         <simple>1</simple>
89                                 </setProperty>
90                                 <setBody>
91                                         <constant>null</constant>
92                                 </setBody>
93                                 <log loggingLevel="INFO"
94                                         message="Processing Guard Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
95                                 <to uri="direct:verify-one-policy" />
96                         </split>
97                 </split>
98                 <setProperty propertyName="policyState">
99                         <simple> ${exchangeProperty[policyComponent].getState()}
100                         </simple>
101                 </setProperty>
102                 <log loggingLevel="INFO"
103                         message="Policy state set to: ${exchangeProperty[policyState].getStateName()}" />
104                 <to
105                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Policy state set to: ${exchangeProperty[policyState].getStateName()}','INFO','POLICY',${exchangeProperty[loopObject]})" />
106         </route>
107         <route id="update-dcae-status-for-loop">
108                 <from uri="direct:update-dcae-status-for-loop" />
109                 <log loggingLevel="INFO"
110                         message="Updating DCAE status for loop: ${exchangeProperty[loopObject].getName()}" />
111                 <choice>
112                         <when>
113                                 <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == true
114                                 </simple>
115                                         <setProperty propertyName="dcaeComponent">
116                                                 <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple>
117                                         </setProperty>
118                                 <when>
119                                         <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()} != null
120                                         </simple>
121                                         <setProperty propertyName="getStatusUrl">
122                                                 <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}</simple>
123                                         </setProperty>
124                                         <setProperty propertyName="raiseHttpExceptionFlag">
125                                                 <simple resultType="java.lang.Boolean">false</simple>
126                                         </setProperty>
127                                         <to uri="direct:get-dcae-deployment-status" />
128                                         <when>
129                                                 <simple> ${header.CamelHttpResponseCode} == 200 </simple>
130                                                 <convertBodyTo type="java.lang.String" />
131                                                 <setProperty propertyName="dcaeResponse">
132                                                         <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
133                                                                 method="convertDcaeResponse(${body})" />
134                                                 </setProperty>
135                                         </when>
136                                 </when>
137                                 <setProperty propertyName="dcaeState">
138                                         <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
139                                         </simple>
140                                 </setProperty>
141                                 <log loggingLevel="INFO"
142                                         message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
143                                 <to
144                                         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]})" />
145                         </when>
146                         <when>
147                                 <simple>${exchangeProperty['loopObject'].getLoopTemplate().getUniqueBlueprint()} == false
148                                 </simple>
149                                 <split>
150                                         <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
151                                         </simple>
152                                         <setProperty propertyName="microServicePolicy">
153                                                 <simple>${body}</simple>
154                                         </setProperty>
155                                         <setProperty propertyName="dcaeComponent">
156                                                 <simple>${exchangeProperty[loopObject].getComponent('DCAE_' + ${exchangeProperty[microServicePolicy].getName()})}</simple>
157                                         </setProperty>
158                                         <when>
159                                                 <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()} != null
160                                                 </simple>
161                                                 <setProperty propertyName="getStatusUrl">
162                                                         <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentStatusUrl()}</simple>
163                                                 </setProperty>
164                                                 <setProperty propertyName="raiseHttpExceptionFlag">
165                                                         <simple resultType="java.lang.Boolean">false</simple>
166                                                 </setProperty>
167                                                 <to uri="direct:get-dcae-deployment-status" />
168                                                 <when>
169                                                         <simple> ${header.CamelHttpResponseCode} == 200 </simple>
170                                                         <convertBodyTo type="java.lang.String" />
171                                                         <setProperty propertyName="dcaeResponse">
172                                                                 <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
173                                                                         method="convertDcaeResponse(${body})" />
174                                                         </setProperty>
175                                                 </when>
176                                         </when>
177                                         <setProperty propertyName="dcaeState">
178                                                 <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
179                                                 </simple>
180                                         </setProperty>
181                                         <log loggingLevel="INFO"
182                                                 message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
183                                         <to
184                                                 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]})" />
185                                 </split>>
186                         </when>
187                 </choice>
188                 </route>
189         <route id="direct:update-loop-state">
190                 <from uri="direct:update-loop-state" />
191                 <log loggingLevel="INFO"
192                         message="Updating status for loop: ${exchangeProperty[loopObject].getName()}" />
193                 <choice>
194                         <when>
195                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
196                                         'BLUEPRINT_DEPLOYED' and ${exchangeProperty['policyState'].getStateName()}
197                                         == 'NOT_SENT'
198                                 </simple>
199                                 <to
200                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DESIGN')" />
201                         </when>
202                         <when>
203                                 <simple>${exchangeProperty['dcaeState'].getStateName()} == 'IN_ERROR' or
204                                         ${exchangeProperty['dcaeState'].getStateName()} ==
205                                         'MICROSERVICE_INSTALLATION_FAILED'
206                                 </simple>
207                                 <to
208                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" />
209                         </when>
210                         <when>
211                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
212                                         'MICROSERVICE_UNINSTALLATION_FAILED' or
213                                         ${exchangeProperty['policyState'].getStateName()} == 'IN_ERROR'
214                                 </simple>
215                                 <to
216                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" />
217                         </when>
218                         <when>
219                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
220                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
221                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
222                                 </simple>
223                                 <to
224                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'RUNNING')" />
225                         </when>
226                         <when>
227                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
228                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
229                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT'
230                                 </simple>
231                                 <to
232                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'STOPPED')" />
233                         </when>
234                         <when>
235                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
236                                         'BLUEPRINT_DEPLOYED' or ${exchangeProperty['dcaeState'].getStateName()} ==
237                                         'MICROSERVICE_UNINSTALLED_SUCCESSFULLY' and
238                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
239                                 </simple>
240                                 <to
241                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'SUBMITTED')" />
242                         </when>
243                         <when>
244                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
245                                         'PROCESSING_MICROSERVICE_INSTALLATION' or
246                                         ${exchangeProperty['dcaeState'].getStateName()} ==
247                                         'PROCESSING_MICROSERVICE_UNINSTALLATION' and
248                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
249                                 </simple>
250                                 <to
251                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'WAITING')" />
252                         </when>
253                         <when>
254                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
255                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
256                                         ${exchangeProperty['policyState'].getStateName()} != 'NOT_SENT'
257                                 </simple>
258                                 <to
259                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DEPLOYED')" />
260                         </when>
261                 </choice>
262                 <log loggingLevel="INFO"
263                         message="New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}" />
264                 <to
265                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}','INFO',${exchangeProperty[loopObject]})" />
266
267         </route>
268 </routes>