036e8efc854634eee44d1b5d77b4056fa776cb7d
[clamp.git] / src / test / 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
21         <route id="update-policy-status-for-loop">
22                 <from uri="direct:update-policy-status-for-loop" />
23                 <setProperty propertyName="policyComponent">
24                         <simple>${exchangeProperty[loopObject].getComponent('POLICY')}
25                         </simple>
26                 </setProperty>
27                 <setProperty propertyName="policyFound">
28                         <simple resultType="java.lang.Boolean">true</simple>
29                 </setProperty>
30                 <setProperty propertyName="policyDeployed">
31                         <simple resultType="java.lang.Boolean">true</simple>
32                 </setProperty>
33                 <log loggingLevel="INFO"
34                         message="Processing all MICRO-SERVICES policies defined in loop ${exchangeProperty[loopObject].getName()}" />
35                 <split>
36                         <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
37                         </simple>
38                         <setProperty propertyName="policyName">
39                                 <simple>${body.getName()}</simple>
40                         </setProperty>
41                         <setProperty propertyName="policyType">
42                                 <simple>${body.getModelType()}</simple>
43                         </setProperty>
44                         <setProperty propertyName="policyVersion">
45                                 <simple>1.0.0</simple>
46                         </setProperty>
47                         <setBody>
48                                 <constant>null</constant>
49                         </setBody>
50                         <log loggingLevel="INFO"
51                                 message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
52                         <to uri="direct:verify-one-policy" />
53                 </split>
54                 <log loggingLevel="INFO"
55                         message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
56                 <split>
57                         <simple>${exchangeProperty[loopObject].getOperationalPolicies()}
58                         </simple>
59                         <setProperty propertyName="policyName">
60                                 <simple>${body.getName()}</simple>
61                         </setProperty>
62                         <setProperty propertyName="policyType">
63                                 <simple>onap.policies.controlloop.Operational</simple>
64                         </setProperty>
65                         <setProperty propertyName="policyVersion">
66                                 <simple>1</simple>
67                         </setProperty>
68                         <setProperty propertyName="operationalPolicy">
69                                 <simple>${body}</simple>
70                         </setProperty>
71                         <setBody>
72                                 <constant>null</constant>
73                         </setBody>
74                         <log loggingLevel="INFO"
75                                 message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
76                         <to uri="direct:verify-one-policy" />
77                         <log loggingLevel="INFO"
78                                 message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
79                         <split>
80                                 <simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
81                                 </simple>
82                                 <setProperty propertyName="policyName">
83                                         <simple>${body.getKey()}</simple>
84                                 </setProperty>
85                                 <setProperty propertyName="policyType">
86                                         <simple>onap.policies.controlloop.Guard</simple>
87                                 </setProperty>
88                                 <setProperty propertyName="policyVersion">
89                                         <simple>1</simple>
90                                 </setProperty>
91                                 <setBody>
92                                         <constant>null</constant>
93                                 </setBody>
94                                 <log loggingLevel="INFO"
95                                         message="Processing Guard Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
96                                 <to uri="direct:verify-one-policy" />
97                         </split>
98                 </split>
99                 <setProperty propertyName="policyState">
100                         <simple> ${exchangeProperty[policyComponent].getState()}
101                         </simple>
102                 </setProperty>
103                 <log loggingLevel="INFO"
104                         message="Policy state set to: ${exchangeProperty[policyState].getStateName()}" />
105                 <to
106                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Policy state set to: ${exchangeProperty[policyState].getStateName()}','INFO','POLICY',${exchangeProperty[loopObject]})" />
107         </route>
108         <route id="update-dcae-status-for-loop">
109                 <from uri="direct:update-dcae-status-for-loop" />
110                 <log loggingLevel="INFO"
111                         message="Updating DCAE status for loop: ${exchangeProperty[loopObject].getName()}" />
112                 <setProperty propertyName="dcaeComponent">
113                         <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple>
114                 </setProperty>
115                 <when>
116                         <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}
117                                 != null
118                         </simple>
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
133                 <setProperty propertyName="dcaeState">
134                         <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
135                         </simple>
136                 </setProperty>
137                 <log loggingLevel="INFO"
138                         message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
139                 <to
140                         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]})" />
141
142         </route>
143         <route id="direct:update-loop-state">
144                 <from uri="direct:update-loop-state" />
145                 <log loggingLevel="INFO"
146                         message="Updating status for loop: ${exchangeProperty[loopObject].getName()}" />
147                 <choice>
148                         <when>
149                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
150                                         'BLUEPRINT_DEPLOYED' and ${exchangeProperty['policyState'].getStateName()}
151                                         == 'NOT_SENT'
152                                 </simple>
153                                 <to
154                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DESIGN')" />
155                         </when>
156                         <when>
157                                 <simple>${exchangeProperty['dcaeState'].getStateName()} == 'IN_ERROR' or
158                                         ${exchangeProperty['dcaeState'].getStateName()} ==
159                                         'MICROSERVICE_INSTALLATION_FAILED'
160                                 </simple>
161                                 <to
162                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" />
163                         </when>
164                         <when>
165                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
166                                         'MICROSERVICE_UNINSTALLATION_FAILED' or
167                                         ${exchangeProperty['policyState'].getStateName()} == 'IN_ERROR'
168                                 </simple>
169                                 <to
170                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" />
171                         </when>
172                         <when>
173                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
174                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
175                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
176                                 </simple>
177                                 <to
178                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'RUNNING')" />
179                         </when>
180                         <when>
181                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
182                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
183                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT'
184                                 </simple>
185                                 <to
186                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'STOPPED')" />
187                         </when>
188                         <when>
189                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
190                                         'BLUEPRINT_DEPLOYED' or ${exchangeProperty['dcaeState'].getStateName()} ==
191                                         'MICROSERVICE_UNINSTALLED_SUCCESSFULLY' and
192                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
193                                 </simple>
194                                 <to
195                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'SUBMITTED')" />
196                         </when>
197                         <when>
198                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
199                                         'PROCESSING_MICROSERVICE_INSTALLATION' or
200                                         ${exchangeProperty['dcaeState'].getStateName()} ==
201                                         'PROCESSING_MICROSERVICE_UNINSTALLATION' and
202                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
203                                 </simple>
204                                 <to
205                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'WAITING')" />
206                         </when>
207                         <when>
208                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
209                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
210                                         ${exchangeProperty['policyState'].getStateName()} != 'NOT_SENT'
211                                 </simple>
212                                 <to
213                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DEPLOYED')" />
214                         </when>
215                 </choice>
216                 <log loggingLevel="INFO"
217                         message="New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}" />
218                 <to
219                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}','INFO',${exchangeProperty[loopObject]})" />
220
221         </route>
222 </routes>