Fix the log status
[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
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                         <setBody>
45                                 <constant>null</constant>
46                         </setBody>
47                         <log loggingLevel="INFO"
48                                 message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
49                         <to uri="direct:verify-one-policy" />
50                 </split>
51                 <log loggingLevel="INFO"
52                         message="Processing all OPERATIONAL policies defined in loop ${exchangeProperty[loopObject].getName()}" />
53                 <split>
54                         <simple>${exchangeProperty[loopObject].getOperationalPolicies()}
55                         </simple>
56                         <setProperty propertyName="policyName">
57                                 <simple>${body.getName()}</simple>
58                         </setProperty>
59                         <setProperty propertyName="policyType">
60                                 <simple>onap.policies.controlloop.Operational</simple>
61                         </setProperty>
62                         <setProperty propertyName="operationalPolicy">
63                                 <simple>${body}</simple>
64                         </setProperty>
65                         <setBody>
66                                 <constant>null</constant>
67                         </setBody>
68                         <log loggingLevel="INFO"
69                                 message="Processing Micro Service Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
70                         <to uri="direct:verify-one-policy" />
71                         <log loggingLevel="INFO"
72                                 message="Processing all GUARD policies defined in loop ${exchangeProperty[loopObject].getName()}" />
73                         <split>
74                                 <simple>${exchangeProperty[operationalPolicy].createGuardPolicyPayloads().entrySet()}
75                                 </simple>
76                                 <setProperty propertyName="policyName">
77                                         <simple>${body.getKey()}</simple>
78                                 </setProperty>
79                                 <setProperty propertyName="policyType">
80                                         <simple>onap.policies.controlloop.Guard</simple>
81                                 </setProperty>
82                                 <setBody>
83                                         <constant>null</constant>
84                                 </setBody>
85                                 <log loggingLevel="INFO"
86                                         message="Processing Guard Policy: ${exchangeProperty[policyName]} of type ${exchangeProperty[policyType]}" />
87                                 <to uri="direct:verify-one-policy" />
88                         </split>
89                 </split>
90                 <setProperty propertyName="policyState">
91                         <simple> ${exchangeProperty[policyComponent].getState()}
92                         </simple>
93                 </setProperty>
94                 <log loggingLevel="INFO"
95                         message="Policy state set to: ${exchangeProperty[policyState].getStateName()}" />
96                 <to
97                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLogForComponent('Policy state set to: ${exchangeProperty[policyState].getStateName()}','INFO','POLICY',${exchangeProperty[loopObject]})" />
98         </route>
99         <route id="update-dcae-status-for-loop">
100                 <from uri="direct:update-dcae-status-for-loop" />
101                 <log loggingLevel="INFO"
102                         message="Updating DCAE status for loop: ${exchangeProperty[loopObject].getName()}" />
103                 <setProperty propertyName="dcaeComponent">
104                         <simple>${exchangeProperty[loopObject].getComponent('DCAE')}</simple>
105                 </setProperty>
106                 <when>
107                         <simple>${exchangeProperty[loopObject].getDcaeDeploymentStatusUrl()}
108                                 != null
109                         </simple>
110                         <setProperty propertyName="raiseHttpExceptionFlag">
111                                 <simple resultType="java.lang.Boolean">false</simple>
112                         </setProperty>
113                         <to uri="direct:get-dcae-deployment-status" />
114                         <when>
115                                 <simple> ${header.CamelHttpResponseCode} == 200 </simple>
116                                 <convertBodyTo type="java.lang.String" />
117                                 <setProperty propertyName="dcaeResponse">
118                                         <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
119                                                 method="convertDcaeResponse(${body})" />
120                                 </setProperty>
121                         </when>
122                 </when>
123
124                 <setProperty propertyName="dcaeState">
125                         <simple> ${exchangeProperty[dcaeComponent].computeState(*)}
126                         </simple>
127                 </setProperty>
128                 <log loggingLevel="INFO"
129                         message="DCAE state set to: ${exchangeProperty[dcaeState].getStateName()} - DCAE message: ${exchangeProperty[dcaeResponse].getError()}" />
130                 <to
131                         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]})" />
132
133         </route>
134         <route id="direct:update-loop-state">
135                 <from uri="direct:update-loop-state" />
136                 <log loggingLevel="INFO"
137                         message="Updating status for loop: ${exchangeProperty[loopObject].getName()}" />
138                 <choice>
139                         <when>
140                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
141                                         'BLUEPRINT_DEPLOYED' and ${exchangeProperty['policyState'].getStateName()}
142                                         == 'NOT_SENT'
143                                 </simple>
144                                 <to
145                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DESIGN')" />
146                         </when>
147                         <when>
148                                 <simple>${exchangeProperty['dcaeState'].getStateName()} == 'IN_ERROR' or
149                                         ${exchangeProperty['dcaeState'].getStateName()} ==
150                                         'MICROSERVICE_INSTALLATION_FAILED'
151                                 </simple>
152                                 <to
153                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'IN_ERROR')" />
154                         </when>
155                         <when>
156                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
157                                         'MICROSERVICE_UNINSTALLATION_FAILED' or
158                                         ${exchangeProperty['policyState'].getStateName()} == 'IN_ERROR'
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_INSTALLED_SUCCESSFULLY' and
166                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
167                                 </simple>
168                                 <to
169                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'RUNNING')" />
170                         </when>
171                         <when>
172                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
173                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
174                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT'
175                                 </simple>
176                                 <to
177                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'STOPPED')" />
178                         </when>
179                         <when>
180                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
181                                         'BLUEPRINT_DEPLOYED' or ${exchangeProperty['dcaeState'].getStateName()} ==
182                                         'MICROSERVICE_UNINSTALLED_SUCCESSFULLY' and
183                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
184                                 </simple>
185                                 <to
186                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'SUBMITTED')" />
187                         </when>
188                         <when>
189                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
190                                         'PROCESSING_MICROSERVICE_INSTALLATION' or
191                                         ${exchangeProperty['dcaeState'].getStateName()} ==
192                                         'PROCESSING_MICROSERVICE_UNINSTALLATION' and
193                                         ${exchangeProperty['policyState'].getStateName()} == 'SENT_AND_DEPLOYED'
194                                 </simple>
195                                 <to
196                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'WAITING')" />
197                         </when>
198                         <when>
199                                 <simple>${exchangeProperty['dcaeState'].getStateName()} ==
200                                         'MICROSERVICE_INSTALLED_SUCCESSFULLY' and
201                                         ${exchangeProperty['policyState'].getStateName()} != 'NOT_SENT'
202                                 </simple>
203                                 <to
204                                         uri="bean:org.onap.clamp.loop.LoopService?method=updateLoopState(${exchangeProperty[loopObject]},'DEPLOYED')" />
205                         </when>
206                 </choice>
207                 <log loggingLevel="INFO"
208                         message="New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}" />
209                 <to
210                         uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('New loop state is: ${exchangeProperty[loopObject].getLastComputedState().toString()}','INFO',${exchangeProperty[loopObject]})" />
211
212         </route>
213 </routes>