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