Moved bbs logic from network-topoly-operation to vnf
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_bbs-access-connectivity-vnf-topology-operation-create-huawei.xml
1 <service-logic\r
2     xmlns='http://www.onap.org/sdnc/svclogic'\r
3     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
4     <method rpc='bbs-access-connectivity-vnf-topology-operation-create-huawei' mode='sync'>\r
5         <block atomic="true">\r
6             <call module='GENERIC-RESOURCE-API' rpc='validate-bbs-vnf-input-parameters' mode='sync' ></call>\r
7             <set>\r
8                 <parameter name='vnf-input-parameters.' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.`' />\r
9                 <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value='https://172.30.0.55:26335' />\r
10                 <parameter name='prop.bbs.HsiPackage' value='50M' />\r
11                 <parameter name='prop.bbs.HsiType' value='IPoE' />\r
12             </set>\r
13             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
14                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
15                 <parameter name='contextPrefix' value='prop' />\r
16             </execute>\r
17             <for index='idx' start='0' end='`$vnf-input-parameters.param_length`' >\r
18                 <block>\r
19                     <switch test="`$vnf-input-parameters.param[$idx].name == 'remote_id'`">\r
20                         <outcome value='true'>\r
21                             <switch test='`$vnf-input-parameters.param[$idx].value`'>\r
22                                 <outcome value=''>\r
23                                     <return status='failure'>\r
24                                         <parameter name='ack-final' value='Y'/>\r
25                                         <parameter name="error-code" value="500" />\r
26                                         <parameter name="error-message" value="`$vnf-input-parameters.param[$idx].name  +' value is null, please check it.'`" />\r
27                                     </return>\r
28                                 </outcome>\r
29                                 <outcome value='Other'>\r
30                                     <set>\r
31                                         <parameter name='prop.bbs.remote_id' value='`$vnf-input-parameters.param[$idx].value`' />\r
32                                     </set>\r
33                                 </outcome>\r
34                             </switch>\r
35                         </outcome>\r
36                     </switch>\r
37                     <switch test="`$vnf-input-parameters.param[$idx].name == 'ONTSN'`">\r
38                         <outcome value='true'>\r
39                             <switch test='`$vnf-input-parameters.param[$idx].value`'>\r
40                                 <outcome value=''>\r
41                                     <return status='failure'>\r
42                                         <parameter name='ack-final' value='Y'/>\r
43                                         <parameter name="error-code" value="500" />\r
44                                         <parameter name="error-message" value="`$vnf-input-parameters.param[$idx].name  +' value is null, please check it.'`" />\r
45                                     </return>\r
46                                 </outcome>\r
47                                 <outcome value='Other'>\r
48                                     <set>\r
49                                         <parameter name='prop.bbs.ONTSN' value='`$vnf-input-parameters.param[$idx].value`' />\r
50                                     </set>\r
51                                 </outcome>\r
52                             </switch>\r
53                         </outcome>\r
54                     </switch>\r
55                     <switch test="`$vnf-input-parameters.param[$idx].name == 'CVLAN'`">\r
56                         <outcome value='true'>\r
57                             <switch test='`$vnf-input-parameters.param[$idx].value`'>\r
58                                 <outcome value=''>\r
59                                     <return status='failure'>\r
60                                         <parameter name='ack-final' value='Y'/>\r
61                                         <parameter name="error-code" value="500" />\r
62                                         <parameter name="error-message" value="`$vnf-input-parameters.param[$idx].name  +' value is null, please check it.'`" />\r
63                                     </return>\r
64                                 </outcome>\r
65                                 <outcome value='Other'>\r
66                                     <set>\r
67                                         <parameter name='prop.bbs.CVLAN' value='`$vnf-input-parameters.param[$idx].value`' />\r
68                                     </set>\r
69                                 </outcome>\r
70                             </switch>\r
71                         </outcome>\r
72                     </switch>\r
73                     <switch test="`$vnf-input-parameters.param[$idx].name == 'SVLAN'`">\r
74                         <outcome value='true'>\r
75                             <switch test='`$vnf-input-parameters.param[$idx].value`'>\r
76                                 <outcome value=''>\r
77                                     <return status='failure'>\r
78                                         <parameter name='ack-final' value='Y'/>\r
79                                         <parameter name="error-code" value="500" />\r
80                                         <parameter name="error-message" value="`$vnf-input-parameters.param[$idx].name  +' value is null, please check it.'`" />\r
81                                     </return>\r
82                                 </outcome>\r
83                                 <outcome value='Other'>\r
84                                     <set>\r
85                                         <parameter name='prop.bbs.SVLAN' value='`$vnf-input-parameters.param[$idx].value`' />\r
86                                     </set>\r
87                                 </outcome>\r
88                             </switch>\r
89                         </outcome>\r
90                     </switch>\r
91                 </block>\r
92             </for>\r
93             <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
94                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/bbs-token-template.json'`"/>\r
95                 <parameter name="restapiUrl" value="`'http://159.138.58.209:30335/rest/plat/smapp/v1/oauth/token'`"/>\r
96                 <parameter name="format" value="json"/>\r
97                 <parameter name="httpMethod" value="put"/>\r
98                 <parameter name="responsePrefix" value="token-result"/>\r
99                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
100                 <parameter name="trustStorePassword" value="adminadmin"/>\r
101                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
102                 <parameter name="keyStorePassword" value="adminadmin"/>\r
103                 <!--<parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url+'/rest/plat/smapp/v1/oauth/token'`"/>-->\r
104                 <outcome value='success'>\r
105                     <switch test='`$token-result.accessSession`'>\r
106                         <outcome value='Other'>\r
107                             <set>\r
108                                 <parameter name='prop.sdncRestApi.token_id' value='`$token-result.accessSession`' />\r
109                             </set>\r
110                         </outcome>\r
111                         <outcome value=''>\r
112                             <return status='failure'>\r
113                                 <parameter name='ack-final' value='Y'/>\r
114                                 <parameter name="error-code" value="500" />\r
115                                 <parameter name="error-message" value="Error executing queryTokenID,vaule is null" />\r
116                             </return>\r
117                         </outcome>\r
118                     </switch>\r
119                 </outcome>\r
120                 <outcome value='failure'>\r
121                     <return status='failure'>\r
122                         <parameter name='ack-final' value='Y'/>\r
123                         <parameter name="error-code" value="500" />\r
124                         <parameter name="error-message" value="Error failed to call queryTokenID" />\r
125                     </return>\r
126                 </outcome>\r
127             </execute>\r
128             <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">\r
129                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/bbs-access-connectivity-create.json'`" />\r
130                 <parameter name="restapiUrl" value="`'http://159.138.58.209:30335/ws/rest/1002/FanOpenAPI/ActiveOnt'`" />\r
131                 <parameter name="contentType" value="application/json"/>\r
132                 <parameter name="httpMethod" value="post"/>\r
133                 <parameter name="responsePrefix" value="service-result"/>\r
134                 <parameter name="customHttpHeaders" value="`'X-Auth-Token=' + $prop.sdncRestApi.token_id`"/>\r
135                 <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
136                 <parameter name="trustStorePassword" value="adminadmin"/>\r
137                 <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
138                 <parameter name="keyStorePassword" value="adminadmin"/>\r
139                 <!--<parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/ws/rest/1002/FanOpenAPI/ActiveOnt'`" />-->\r
140                 <outcome value='failure'>\r
141                     <return status='failure'>\r
142                         <parameter name='ack-final' value='Y'/>\r
143                         <parameter name="error-code" value="500" />\r
144                         <parameter name="error-message" value="Error failed to call  createAccessConnectivityService" />\r
145                     </return>\r
146                 </outcome>\r
147                 <outcome value='success'>\r
148                     <switch test="`$service-result.errors.error[0].error-message`">\r
149                         <outcome value='Other'>\r
150                             <return status='failure'>\r
151                                 <parameter name='ack-final' value='Y'/>\r
152                                 <parameter name="error-code" value="500" />\r
153                                 <parameter name="error-message" value="`'Error createAccessConnectivityService return: '+$service-result.errors.error[0].error-message`" />\r
154                             </return>\r
155                         </outcome>\r
156                         <outcome value=''>\r
157                             <block>\r
158                                 <set>\r
159                                     <parameter name='prop.bbs.serviceID' value="`$service-result.accessE2Eservice.serviceID`"/>\r
160                                 </set>\r
161                             </block>\r
162                         </outcome>\r
163                     </switch>\r
164                 </outcome>\r
165             </execute>\r
166             <block>\r
167                 <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">\r
168                     <parameter name="ctx-destination" value="prop.random-data"/>\r
169                     <outcome value='success'>\r
170                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
171                             <parameter name="ctx_memory_result_key" value="prop.random-data-list"/>\r
172                             <parameter name="original_string" value="`$prop.random-data`"/>\r
173                             <parameter name="regex" value="-"/>\r
174                             <outcome value='success'></outcome>\r
175                         </execute>\r
176                     </outcome>\r
177                 </execute>\r
178                 <set>\r
179                     <parameter name='vnf-id' value="`$prop.random-data-list[3]`"/>\r
180                     <parameter name='vnf-name' value="`'vnf-'+$prop.random-data-list[4]`"/>\r
181                 </set>\r
182                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="generic-vnf" key="generic-vnf.vnf-id = $vnf-id" >\r
183                     <parameter name= "vnf-id" value = "`$vnf-id`"/>\r
184                     <parameter name=  "vnf-name" value = "`$vnf-name`"/>\r
185                     <parameter name=  "vnf-type" value = "AccessConnectivity"/>\r
186                     <parameter name=  "service-id" value = "`$vnf-topology-operation-input.service-information.service-id`"/>\r
187                     <parameter name=  "prov-status" value = "ACTIVE"/>\r
188                     <parameter name=  "orchestration-status" value = "Active"/>\r
189                     <parameter name=  "is-closed-loop-disabled" value = "false" />\r
190                     <parameter name=  "model-invariant-id" value = "`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`"/>\r
191                     <parameter name=  "model-version-id" value = "`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`"/>\r
192                     <parameter name=  "model-customization-id" value = "`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`"/>\r
193                     <outcome value='failure'>\r
194                         <return status='failure'>\r
195                             <parameter name='ack-final' value='Y'/>\r
196                             <parameter name="error-code" value="500" />\r
197                             <parameter name="error-message" value="Failure calling AAI to save generic-vnf" />\r
198                         </return>\r
199                     </outcome>\r
200                     <outcome value='not-found'>\r
201                         <return status='failure'>\r
202                             <parameter name='ack-final' value='Y'/>\r
203                             <parameter name="error-code" value="500" />\r
204                             <parameter name="error-message" value="generic-vnf instance does not exist in AAI" />\r
205                         </return>\r
206                     </outcome>\r
207                     <outcome value='success'></outcome>\r
208                 </save>\r
209                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="service-instance:metadata"\r
210  key="service-instance.service-instance-id = $vnf-topology-operation-input.service-information.service-id  \r
211         AND customer.global-customer-id = $vnf-topology-operation-input.service-information.global-customer-id\r
212           AND service-subscription.service-type = $vnf-topology-operation-input.service-information.subscription-service-type\r
213           AND service-instance.service-instance-id =  $vnf-topology-operation-input.service-information.service-instance-id"  force="true" pfx="tmp.AnAI-data"\r
214     >\r
215                     <parameter name="metadata.metadatum[0].metaname" value="remote-id" />\r
216                     <parameter name="metadata.metadatum[0].metaval" value="`$prop.bbs.remote_id`" />\r
217                     <parameter name="metadata.metadatum[1].metaname" value="controller-service-id" />\r
218                     <parameter name="metadata.metadatum[1].metaval" value="`$prop.bbs.serviceID`" />\r
219                     <parameter name="metadata.metadatum[2].metaname" value="cvlan" />\r
220                     <parameter name="metadata.metadatum[2].metaval" value="`$prop.bbs.CVLAN`" />\r
221                     <parameter name="metadata.metadatum[3].metaname" value="svlan" />\r
222                     <parameter name="metadata.metadatum[3].metaval" value="`$prop.bbs.SVLAN`" />\r
223                     <parameter name="metadata.metadatum[4].metaname" value="expected-ont-id" />\r
224                     <parameter name="metadata.metadatum[4].metaval" value="`$prop.bbs.ONTSN`" />\r
225                     <!--<parameter name="metadata.metadatum[5].metaname" value="rgw-mac-address" />-->\r
226                     <!--<parameter name="metadata.metadatum[5].metaval" value="`$prop.bbs.mac`" />-->\r
227                     <outcome value='failure'>\r
228                         <return status='failure'>\r
229                             <parameter name='ack-final' value='Y'/>\r
230                             <parameter name="error-code" value="500" />\r
231                             <parameter name="error-message" value="Failure calling AAI to save metadatum" />\r
232                         </return>\r
233                     </outcome>\r
234                     <outcome value='not-found'>\r
235                         <return status='failure'>\r
236                             <parameter name='ack-final' value='Y'/>\r
237                             <parameter name="error-code" value="500" />\r
238                             <parameter name="error-message" value="metadatum instance does not exist in AAI" />\r
239                         </return>\r
240                     </outcome>\r
241                     <outcome value='success'></outcome>\r
242                 </save>\r
243                 <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="service-instance:relationship-list" \r
244       key="service-instance.service-instance-id =  $vnf-topology-operation-input.service-information.service-id\r
245          AND customer.global-customer-id = $vnf-topology-operation-input.service-information.global-customer-id\r
246          AND service-subscription.service-type =  $vnf-topology-operation-input.service-information.subscription-service-type \r
247          AND service-instance.service-instance-id =  $vnf-topology-operation-input.service-information.service-instance-id" force="true" pfx="tmp.AnAI-data">\r
248                     <parameter name="relationship-list.relationship[0].related-to" value="generic-vnf" />\r
249                     <parameter name="relationship-list.relationship[0].related-link" value="`'/network/generic-vnfs/generic-vnf/' + $vnf-id`" />\r
250                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="generic-vnf.vnf-id" />\r
251                     <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$vnf-id`" />\r
252                     <outcome value='failure'>\r
253                         <return status='failure'>\r
254                             <parameter name='ack-final' value='Y'/>\r
255                             <parameter name="error-code" value="500" />\r
256                             <parameter name="error-message" value="Failure calling AAI to save metadatum" />\r
257                         </return>\r
258                     </outcome>\r
259                     <outcome value='not-found'>\r
260                         <return status='failure'>\r
261                             <parameter name='ack-final' value='Y'/>\r
262                             <parameter name="error-code" value="500" />\r
263                             <parameter name="error-message" value="metadatum instance does not exist in AAI" />\r
264                         </return>\r
265                     </outcome>\r
266                     <outcome value='success'></outcome>\r
267                 </save>\r
268             </block>\r
269             <return status='success'>\r
270                 <parameter name="ack-final-indicator" value="Y" />\r
271                 <parameter name="error-code" value="200" />\r
272                 <parameter name="error-message" value="`$error-message`" />\r
273             </return>\r
274         </block>\r
275     </method>\r
276 </service-logic>