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
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
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
17 <for index='idx' start='0' end='`$vnf-input-parameters.param_length`' >
\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
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
29 <outcome value='Other'>
\r
31 <parameter name='prop.bbs.remote_id' value='`$vnf-input-parameters.param[$idx].value`' />
\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
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
47 <outcome value='Other'>
\r
49 <parameter name='prop.bbs.ONTSN' value='`$vnf-input-parameters.param[$idx].value`' />
\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
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
65 <outcome value='Other'>
\r
67 <parameter name='prop.bbs.CVLAN' value='`$vnf-input-parameters.param[$idx].value`' />
\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
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
83 <outcome value='Other'>
\r
85 <parameter name='prop.bbs.SVLAN' value='`$vnf-input-parameters.param[$idx].value`' />
\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
108 <parameter name='prop.sdncRestApi.token_id' value='`$token-result.accessSession`' />
\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
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
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
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
159 <parameter name='prop.bbs.serviceID' value="`$service-result.accessE2Eservice.serviceID`"/>
\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
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
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
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
207 <outcome value='success'></outcome>
\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
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
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
241 <outcome value='success'></outcome>
\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
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
266 <outcome value='success'></outcome>
\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