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