1 <service-logic xmlns='http://www.openecomp.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.openecomp.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='network-topology-operation-create' mode='sync'>
\r
2 <block atomic="true">
\r
3 <call module='GENERIC-RESOURCE-API' rpc='validate-network-input-parameters' mode='sync' >
\r
4 </call><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
5 resource="esr-thirdparty-sdnc"
\r
6 key="esr-thirdparty-sdnc.thirdparty-sdnc-id = $tmp.thirdparty-sdnc-id AND
\r
8 pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >
\r
10 <outcome value='success'>
\r
11 <block atomic="true"></block></outcome><outcome value='not-found'>
\r
12 <return status='failure'>
\r
13 <parameter name='ack-final' value='Y'/>
\r
14 <parameter name="error-code" value="500" />
\r
15 <parameter name="error-message" value="Network model is_bound_to_vpn=true but no vpn_binding is present" />
\r
17 </return></outcome><outcome value='Other'>
\r
18 <return status='failure'>
\r
19 <parameter name='ack-final' value='Y'/>
\r
20 <parameter name="error-code" value="500" />
\r
21 <parameter name="error-message" value="Unexpected error retrieving vpn binding" />
\r
23 </return></outcome></get-resource><set>
\r
24 <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.serviceUrl`" />
\r
25 <parameter name='prop.sdncRestApi.templateDir' value='/opt/onap/sdnc/data' />
\r
26 <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.user-name`" />
\r
27 <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list[0].esr-system-info.password`" />
\r
28 </set><for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
\r
30 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'name'`">
\r
31 <outcome value='true'>
\r
33 <parameter name='prop.l3vpn.name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
34 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'service-type'`">
\r
35 <outcome value='true'>
\r
37 <parameter name='prop.l3vpn.service-type' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
38 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'topology'`">
\r
39 <outcome value='true'>
\r
41 <parameter name='prop.l3vpn.topology' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
42 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'technology'`">
\r
43 <outcome value='true'>
\r
45 <parameter name='prop.l3vpn.technology' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
46 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site1_name'`">
\r
47 <outcome value='true'>
\r
49 <parameter name='prop.l3vpn.site1_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
50 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'site2_name'`">
\r
51 <outcome value='true'>
\r
53 <parameter name='prop.l3vpn.site2_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
54 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'sna1_name'`">
\r
55 <outcome value='true'>
\r
57 <parameter name='prop.l3vpn.sna1_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
58 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'sna2_name'`">
\r
59 <outcome value='true'>
\r
61 <parameter name='prop.l3vpn.sna2_name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
62 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'pe1_id'`">
\r
63 <outcome value='true'>
\r
65 <parameter name='prop.l3vpn.pe1_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
66 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'pe2_id'`">
\r
67 <outcome value='true'>
\r
69 <parameter name='prop.l3vpn.pe2_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
70 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_id'`">
\r
71 <outcome value='true'>
\r
73 <parameter name='prop.l3vpn.ac1_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
74 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_id'`">
\r
75 <outcome value='true'>
\r
77 <parameter name='prop.l3vpn.ac2_id' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
78 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_ip'`">
\r
79 <outcome value='true'>
\r
81 <parameter name='prop.l3vpn.ac1_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
82 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_ip'`">
\r
83 <outcome value='true'>
\r
85 <parameter name='prop.l3vpn.ac2_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
86 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_peer_ip'`">
\r
87 <outcome value='true'>
\r
89 <parameter name='prop.l3vpn.ac1_peer_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
90 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_peer_ip'`">
\r
91 <outcome value='true'>
\r
93 <parameter name='prop.l3vpn.ac2_peer_ip' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
94 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_svlan'`">
\r
95 <outcome value='true'>
\r
97 <parameter name='prop.l3vpn.ac1_svlan' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
98 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_svlan'`">
\r
99 <outcome value='true'>
\r
101 <parameter name='prop.l3vpn.ac2_svlan' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
102 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_protocol'`">
\r
103 <outcome value='true'>
\r
105 <parameter name='prop.l3vpn.ac1_protocol' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
106 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_protocol'`">
\r
107 <outcome value='true'>
\r
109 <parameter name='prop.l3vpn.name' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
110 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac1_protocol_bgp_as'`">
\r
111 <outcome value='true'>
\r
113 <parameter name='prop.l3vpn.ac1_protocol_bgp_as' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
114 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'ac2_protocol_bgp_as'`">
\r
115 <outcome value='true'>
\r
117 <parameter name='prop.l3vpn.ac1_protocol_bgp_as' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
118 </set></outcome></switch><switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'af_type'`">
\r
119 <outcome value='true'>
\r
121 <parameter name='prop.l3vpn.af_type' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`' />
\r
122 </set></outcome></switch></block></for><execute plugin='com.att.sdnctl.sli.SliPluginUtils.SliPluginUtils' method='generateUUID' >
\r
123 <parameter name="ctx-destination" value="prop.l3vpn.vpn-policy-id"/>
\r
124 <outcome value='failure'>
\r
125 <return status='failure'>
\r
126 <parameter name='error-code' value='' />
\r
127 <parameter name='error-message' value="An error occured while generation vpn policy ID" />
\r
128 </return></outcome></execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
\r
129 <parameter name="templateFileName" value="$prop.sdncRestApi.tempDir +'/l3smvpntemplate.json'"/>
\r
130 <parameter name="restapiUrl" value="$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/vpn-services'"/>
\r
131 <parameter name="restapiUser" value="$prop.sdncRestApi.thirdpartySdnc.user"/>
\r
132 <parameter name="restapiPassword" value="$prop.sdncRestApi.thirdpartySdnc.password"/>
\r
133 <parameter name="format" value="json"/>
\r
134 <parameter name="httpMethod" value="post"/>
\r
135 <parameter name="responsePrefix" value="restapi-result"/></execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
\r
136 <parameter name="templateFileName" value="$prop.sdncRestApi.tempDir +'/l3smsitetemplate.json'"/>
\r
137 <parameter name="restapiUrl" value="$prop.sdncRestApi.thirdpartySdnc.url +'/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/sites'"/>
\r
138 <parameter name="restapiUser" value="$prop.sdncRestApi.thirdpartySdnc.user"/>
\r
139 <parameter name="restapiPassword" value="$prop.sdncRestApi.thirdpartySdnc.password"/>
\r
140 <parameter name="format" value="json"/>
\r
141 <parameter name="httpMethod" value="post"/>
\r
142 <parameter name="responsePrefix" value="restapi-result"/></execute></block></method></service-logic>