Merge "Add template and tosca model entities and repositories"
[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.getModelType()}</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                 <setProperty propertyName="dcaeComponent">
112                         <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple>
113                 </setProperty>
114                 <when>
115                         <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}
116                                 != null
117                         </simple>
118                         <setProperty propertyName="raiseHttpExceptionFlag">
119                                 <simple resultType="java.lang.Boolean">false</simple>
120                         </setProperty>
121                         <to uri="direct:get-dcae-deployment-status" />
122                         <when>
123                                 <simple> ${header.CamelHttpResponseCode} == 200 </simple>
124                                 <convertBodyTo type="java.lang.String" />
125                                 <setProperty propertyName="dcaeResponse">
126                                         <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
127                                                 method="convertDcaeResponse(${body})" />
128                                 </setProperty>
129                         </when>
130                 </when>
131
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
141         </route>
142         <route id="direct:update-loop-state">
143                 <from uri="direct:update-loop-state" />
144                 <log loggingLevel="INFO"
145                         message="Updating status for loop: ${exchangeProperty[loopObject].getName()}" />
146                 <choice>
147                         <when>
148                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
149                                         'BLUEPRINT_DEPLOYED' and ${exchangeProperty['policyState'].getStateName()}
150                                         == 'NOT_SENT'
151                                 </simple>
152                                 <to
153                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DESIGN')" />
154                         </when>
155                         <when>
156                                 <simple>${exchangeProperty['dcaeState'].getStateName()} == 'IN_ERROR' or
157                                         ${exchangeProperty['dcaeState'].getStateName()} ==
158                                         'MICROSERVICE_INSTALLATION_FAILED'
159                                 </simple>
160                                 <to
161                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" />
162                         </when>
163                         <when>
164                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
165                                         'MICROSERVICE_UNINSTALLATION_FAILED' or
166                                         ${exchangeProperty['policyState'].getStateName()} == 'IN_ERROR'
167                                 </simple>
168                                 <to
169                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" />
170                         </when>
171                         <when>
172                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
173                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
174                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
175                                 </simple>
176                                 <to
177                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'RUNNING')" />
178                         </when>
179                         <when>
180                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
181                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
182                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT'
183                                 </simple>
184                                 <to
185                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'STOPPED')" />
186                         </when>
187                         <when>
188                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
189                                         'BLUEPRINT_DEPLOYED' or ${exchangeProperty['dcaeState'].getStateName()} ==
190                                         'MICROSERVICE_UNINSTALLED_SUCCESSFULLY' and
191                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
192                                 </simple>
193                                 <to
194                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'SUBMITTED')" />
195                         </when>
196                         <when>
197                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
198                                         'PROCESSING_MICROSERVICE_INSTALLATION' or
199                                         ${exchangeProperty['dcaeState'].getStateName()} ==
200                                         'PROCESSING_MICROSERVICE_UNINSTALLATION' and
201                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
202                                 </simple>
203                                 <to
204                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'WAITING')" />
205                         </when>
206                         <when>
207                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
208                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
209                                         ${exchangeProperty['policyState'].getStateName()} != 'NOT_SENT'
210                                 </simple>
211                                 <to
212                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DEPLOYED')" />
213                         </when>
214                 </choice>
215                 <log loggingLevel="INFO"
216                         message="New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}" />
217                 <to
218                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}','INFO',${exchangeProperty[loopObject]})" />
219
220         </route>
221 </routes>