1 <service-logic xmlns='http://www.onap.org/sdnc/svclogic' 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}'><method rpc='network-topology-operation-unassign' mode='sync'>
\r
2 <block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
\r
3 key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $service-data.networks.network[$nidx].network-data.network-information.onap-model-information.model-customization-uuid
\r
4 and service_uuid = $service-data.networks.network[$nidx].network-data.service-information.onap-model-information.model-uuid'
\r
8 <parameter name="tmp.level1-key-value" value=""/>
\r
9 <parameter name="tmp.level1inuse" value="false" />
\r
10 <parameter name="pidx" value="0" />
\r
11 <parameter name="pidx-len" value="0" />
\r
14 plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
\r
16 key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.network_id = $network-topology-operation-input.network-information.network-id and s.entity_id = k.entity_id ; "
\r
17 pfx='tmp.eipam-subnet-row[]'>
\r
19 <outcome value='failure'>
\r
20 <return status="failure">
\r
21 <parameter name="tmp.eipam-error" value="true" />
\r
22 <parameter name="error-code" value="500"/>
\r
23 <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />
\r
24 </return></outcome><outcome value='success'>
\r
25 <block atomic='true'><for silentFailure='true' index='esidx' start='0' end='`$tmp.eipam-subnet-row_length`' >
\r
26 <block atomic="true"><switch test='`$tmp.eipam-subnet-row[$esidx].level`'>
\r
28 <block atomic="true"><set>
\r
29 <parameter name="tmp.level1-key-value[$pidx]" value="`$tmp.eipam-subnet-row[$esidx].key-value`"/>
\r
33 <parameter name="tmp.plan-name[$pidx]" value="`$tmp.eipam-subnet-row[$esidx].plan-name`"/>
\r
37 <parameter name="pidx" value="`$pidx + 1`"/>
\r
41 <parameter name="pidx-len" value="`$pidx`"/>
\r
44 </set></block></outcome><outcome value='Other'>
\r
45 <block atomic="true"></block></outcome></switch></block></for></block></outcome><outcome value="not-found"><block atomic='true'></block></outcome></get-resource><set>
\r
46 <parameter name="eipam-ip-block.network-id" value="`$network-topology-operation-input.network-information.network-id`" />
\r
47 <parameter name="eipam-ip-block.level" value='2' />
\r
48 <parameter name="eipam-ip-block.entity-id" value='' /></set><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateAllSubnets">
\r
49 <outcome value='failure'><return status="failure">
\r
50 <parameter name="tmp.eipam-error" value="true" />
\r
51 <parameter name="error-code" value="500"/>
\r
52 <parameter name="error-message" value="An error occured while deallocating subnets in EIPAM." />
\r
53 </return></outcome></execute><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">
\r
54 <outcome value='failure'><return status="failure">
\r
55 <parameter name="tmp.eipam-error" value="true" />
\r
56 <parameter name="error-code" value="500"/>
\r
57 <parameter name="error-message" value="An error occured while deleting level 2 plans in EIPAM." />
\r
58 </return></outcome></execute><for silentFailure='true' index='npidx' start='0' end='`$pidx-len`' >
\r
59 <block atomic="true"><set>
\r
60 <parameter name="tmp.level1-key-value" value="`$tmp.level1-key-value[$npidx]`" />
\r
61 <parameter name="tmp.plan-name" value="`$tmp.plan-name[$npidx]`" />
\r
63 </set><switch test='`$tmp.level1-key-value`'>
\r
65 <block atomic='true'></block></outcome><outcome value='Other'>
\r
66 <block atomic='true'><switch test='`$network-model`'>
\r
67 <outcome value=''></outcome><outcome value='Other'>
\r
68 <block atomic='true'><switch test="`$network-model.use-ipv4`"><outcome value='Y'><block atomic="true"><set>
\r
69 <parameter name='tmp.plan-name' value='`$network-model.eipam-v4-address-plan`' />
\r
72 plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
\r
74 key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k
\r
76 and p.plan_name = $tmp.plan-name
\r
78 and p.pool_id = s.pool_id and s.entity_id = k.entity_id
\r
79 and k.key_value = $tmp.level1-key-value ; "
\r
80 pfx='tmp.level2pool[]'>
\r
84 <outcome value='failure'>
\r
85 <return status="failure">
\r
86 <parameter name="tmp.eipam-error" value="true" />
\r
87 <parameter name="error-code" value="500"/>
\r
88 <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />
\r
89 </return></outcome><outcome value='success'>
\r
90 <block atomic='true'><set>
\r
91 <parameter name="tmp.level1inuse" value="true" />
\r
93 </set></block></outcome><outcome value="not-found"><block atomic='true'><get-resource
\r
94 plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
\r
96 key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k
\r
98 and p.plan_name = $tmp.plan-name
\r
100 and p.pool_id = s.pool_id and s.entity_id = k.entity_id
\r
101 and k.key_value = $tmp.level1-key-value ; "
\r
102 pfx='tmp.level1pool[]'>
\r
104 <outcome value='failure'>
\r
105 <return status="failure">
\r
106 <parameter name="tmp.eipam-error" value="true" />
\r
107 <parameter name="error-code" value="500"/>
\r
108 <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />
\r
109 </return></outcome><outcome value='success'>
\r
110 <block atomic='true'><for silentFailure='true' index='lidx' start='0' end='`$tmp.level1pool_length`' >
\r
111 <block atomic='true'><set>
\r
112 <parameter name='eipam-ip-block.entity-id' value='`$tmp.level1pool[$lidx].entity-id`' />
\r
113 <parameter name='eipam-ip-block.ip-address' value='`$tmp.level1pool[$lidx].ip-address`' />
\r
114 <parameter name='eipam-ip-block.mask' value='`$tmp.level1pool[$lidx].prefix-length`' />
\r
115 <parameter name="eipam-ip-block.network-id" value="`$tmp.level1pool[$lidx].network-id`" />
\r
116 <parameter name="eipam-ip-block.pool-id" value="`$tmp.level1pool[$lidx].pool-id`" />
\r
117 <parameter name="eipam-ip-block.level" value='1' />
\r
119 </set><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateSubnet">
\r
120 <outcome value='failure'><return status="failure">
\r
121 <parameter name="tmp.eipam-error" value="true" />
\r
122 <parameter name="error-code" value="500"/>
\r
123 <parameter name="error-message" value="An error occured while deallocating subnet in EIPAM." />
\r
124 </return></outcome></execute><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByPoolId">
\r
125 <outcome value='failure'><return status="failure">
\r
126 <parameter name="tmp.eipam-error" value="true" />
\r
127 <parameter name="error-code" value="500"/>
\r
128 <parameter name="error-message" value="An error occured while deleting pool in EIPAM." />
\r
129 </return></outcome></execute></block></for></block></outcome><outcome value="not-found"><block atomic='true'></block></outcome></get-resource></block></outcome></get-resource></block></outcome></switch><switch test="`$network-model.use-ipv6`"><outcome value='Y'><block atomic="true"><set>
\r
130 <parameter name='tmp.plan-name' value='`$network-model.eipam-v6-address-plan`' />
\r
132 </set><get-resource
\r
133 plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
\r
135 key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k
\r
137 and p.plan_name = $tmp.plan-name
\r
139 and p.pool_id = s.pool_id and s.entity_id = k.entity_id
\r
140 and k.key_value = $tmp.level1-key-value ; "
\r
141 pfx='tmp.level2pool[]'>
\r
145 <outcome value='failure'>
\r
146 <return status="failure">
\r
147 <parameter name="tmp.eipam-error" value="true" />
\r
148 <parameter name="error-code" value="500"/>
\r
149 <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />
\r
150 </return></outcome><outcome value='success'>
\r
151 <block atomic='true'><set>
\r
152 <parameter name="tmp.level1inuse" value="true" />
\r
154 </set></block></outcome><outcome value="not-found"><block atomic='true'><get-resource
\r
155 plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
\r
157 key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k
\r
159 and p.plan_name = $tmp.plan-name
\r
161 and p.pool_id = s.pool_id and s.entity_id = k.entity_id
\r
162 and k.key_value = $tmp.level1-key-value ; "
\r
163 pfx='tmp.level1pool[]'>
\r
165 <outcome value='failure'>
\r
166 <return status="failure">
\r
167 <parameter name="tmp.eipam-error" value="true" />
\r
168 <parameter name="error-code" value="500"/>
\r
169 <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />
\r
170 </return></outcome><outcome value='success'>
\r
171 <block atomic='true'><for silentFailure='true' index='lidx' start='0' end='`$tmp.level1pool_length`' >
\r
172 <block atomic='true'><set>
\r
173 <parameter name='eipam-ip-block.entity-id' value='`$tmp.level1pool[$lidx].entity-id`' />
\r
174 <parameter name='eipam-ip-block.ip-address' value='`$tmp.level1pool[$lidx].ip-address`' />
\r
175 <parameter name='eipam-ip-block.mask' value='`$tmp.level1pool[$lidx].prefix-length`' />
\r
176 <parameter name="eipam-ip-block.network-id" value="`$tmp.level1pool[$lidx].network-id`" />
\r
177 <parameter name="eipam-ip-block.pool-id" value="`$tmp.level1pool[$lidx].pool-id`" />
\r
178 <parameter name="eipam-ip-block.level" value='1' />
\r
180 </set><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateSubnet">
\r
181 <outcome value='failure'><return status="failure">
\r
182 <parameter name="tmp.eipam-error" value="true" />
\r
183 <parameter name="error-code" value="500"/>
\r
184 <parameter name="error-message" value="An error occured while deallocating subnet in EIPAM." />
\r
185 </return></outcome></execute><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByPoolId">
\r
186 <outcome value='failure'><return status="failure">
\r
187 <parameter name="tmp.eipam-error" value="true" />
\r
188 <parameter name="error-code" value="500"/>
\r
189 <parameter name="error-message" value="An error occured while deleting pool in EIPAM." />
\r
190 </return></outcome></execute></block></for></block></outcome><outcome value="not-found"><block atomic='true'></block></outcome></get-resource></block></outcome></get-resource></block></outcome></switch></block></outcome></switch></block></outcome></switch></block></for><switch test='`$service-data.networks.network_length`'>
\r
191 <outcome value='1'>
\r
192 <block atomic="true"><set>
\r
193 <parameter name="service-data.networks." value=""/>
\r
196 <parameter name="service-data.networks.network_length" value="0"/>
\r
199 </set></block></outcome><outcome value='Other'>
\r
200 <block atomic="true"><set>
\r
201 <parameter name="tmp.new_length" value="`$service-data.networks.network_length - 1`"/>
\r
204 </set><for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$service-data.networks.network_length`' >
\r
205 <block atomic="true"><set>
\r
206 <parameter name="tmp.newidx" value="`$snidx - 1`"/>
\r
210 <parameter name="service-data.networks.network[$tmp.newidx]." value="$service-data.networks.network[$snidx]." />
\r
212 </set></block></for><set>
\r
213 <parameter name="service-data.networks.network_length" value="`$service-data.networks.network_length - 1`"/>
\r
217 <parameter name="service-data.networks.network[$tmp.new_length]." value=""/>
\r
219 </set></block></outcome></switch><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
220 resource="l3-network"
\r
221 key="l3-network.network-id = $network-topology-operation-input.network-information.network-id"><outcome value='failure'>
\r
222 <return status="failure">
\r
223 <parameter name="error-code" value="500"/>
\r
224 <parameter name="error-message" value="An error occured while deleting network from AAI" />
\r
225 </return></outcome></delete><return status='success'>
\r
226 <parameter name="ack-final-indicator" value="Y" />
\r
227 <parameter name="error-code" value="200" />
\r
228 <parameter name="error-message" value="`$error-message`" />
\r
229 </return></block></method></service-logic>