Generic resource API DG catch up
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_create-route-target-and-vpn-binding.xml
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_create-route-target-and-vpn-binding.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_create-route-target-and-vpn-binding.xml
new file mode 100755 (executable)
index 0000000..f9866fe
--- /dev/null
@@ -0,0 +1,437 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    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
+    <method rpc='create-route-target-and-vpn-binding' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$rt.aic-zone`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.resource`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.resource-value`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.network-name`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.network-instance-group-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.network-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.network-instance-group-vpn-binding`"/>\r
+                <parameter name="outputPath" value="tmp.vpn-binding-url"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$rt.service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.vpn-binding-url`"/>\r
+                <parameter name="outputPath" value="tmp.vpn-binding-url"/>\r
+                <parameter name="target" value="{network-instance-group-id}"/>\r
+                <parameter name="replacement" value="`$rt.network-instance-group-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.vpn-binding-url`"/>\r
+                <parameter name="outputPath" value="tmp.vpn-binding-url"/>\r
+                <parameter name="target" value="{network-id}"/>\r
+                <parameter name="replacement" value="`$rt.network-id`"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name="get-data-from-policy-input.policy-instance-name" value="`$get-complex-resource-service-model-output.vpn-binding-policy`" />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='get-data-from-policy' mode='sync' ></call>\r
+            <set>\r
+                <parameter name="vpn-binding.vpn-name" value="`$rt.network-name`" />\r
+                <parameter name="vpn-binding.asn" value="`$get-data-from-policy-output.asn`" />\r
+                <parameter name="vpn-binding.route-target-role" value="`$get-data-from-policy-output.route-target-role`" />\r
+                <parameter name="vpn-binding.aic-zone" value="`$rt.aic-zone`" />\r
+                <parameter name="vpn-binding.route-target-category" value="local" />\r
+                <parameter name="vpn-binding.resource" value="`$rt.resource`" />\r
+                <parameter name="vpn-binding.resource-value" value="`$rt.resource-value`" />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='generate-vpn-binding-id' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='vpn-binding.vpn-binding-id' value='`$tmp.return.generate-vpn-binding-id.uuid`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.vpn-binding-url`"/>\r
+                <parameter name="outputPath" value="tmp.vpn-binding-url"/>\r
+                <parameter name="target" value="{vpn-binding-id}"/>\r
+                <parameter name="replacement" value="`$vpn-binding.vpn-binding-id`"/>\r
+            </execute>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+               key="vpn-binding.vpn-id = $vpn-binding.vpn-binding-id" >\r
+                <parameter name="vpn-id" value="`$vpn-binding.vpn-binding-id`" />\r
+                <parameter name="vpn-name" value="`$vpn-binding.vpn-name`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error creating vpn-binding in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error creating vpn-binding in AAI" />\r
+                    </return>\r
+                </outcome>\r
+            </save>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.allocateRT`' />\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='POST' />\r
+                <parameter name="responsePrefix" value="msRT" />\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <switch test='`$msRT.responseCode`'>\r
+                            <outcome value='200'></outcome>\r
+                            <outcome value='Other'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="tmp.error-message" value="`'Error: calling allocate resource microservice - responseCode: ' + $msRT.responseCode + ' responseMsg: ' + $msRT.responseMessage + ' allocateRouteTargetStatus: ' + $msRT.allocateRouteTargetStatus `"/>\r
+                                    </set>\r
+                                    <block atomic='true'>\r
+                                        <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                            <outcome value='true'>\r
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                    <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                                    <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                                    <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                                    <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                                    <parameter name='format' value='json' />\r
+                                                    <parameter name='httpMethod' value='POST' />\r
+                                                    <parameter name="responsePrefix" value="msRT" />\r
+                                                </execute>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-url`' />\r
+                                            <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                            <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                            <parameter name='format' value='json' />\r
+                                            <parameter name='httpMethod' value='DELETE' />\r
+                                            <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                            <outcome value='failure'>\r
+                                                <block></block>\r
+                                            </outcome>\r
+                                            <outcome value='not-found'>\r
+                                                <block></block>\r
+                                            </outcome>\r
+                                        </execute>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500'/>\r
+                                            <parameter name='error-message' value="`'Error writing to vpn binding - ' + $tmp.error-message`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Error: calling allocate resource microservice"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                <outcome value='true'>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                        <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                        <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                        <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                        <parameter name='format' value='json' />\r
+                                        <parameter name='httpMethod' value='POST' />\r
+                                        <parameter name="responsePrefix" value="msRT" />\r
+                                    </execute>\r
+                                </outcome>\r
+                            </switch>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-url`' />\r
+                                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                <parameter name='format' value='json' />\r
+                                <parameter name='httpMethod' value='DELETE' />\r
+                                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                <outcome value='failure'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                            </execute>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to vpn binding - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name="vpn-binding.global-route-target" value="`$msRT.routeTargetID`" />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-url`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Error: failed to save vpn-binding in md-sal" />\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                <outcome value='true'>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                        <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                        <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                        <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                        <parameter name='format' value='json' />\r
+                                        <parameter name='httpMethod' value='POST' />\r
+                                        <parameter name="responsePrefix" value="msRT" />\r
+                                    </execute>\r
+                                </outcome>\r
+                            </switch>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-url`' />\r
+                                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                <parameter name='format' value='json' />\r
+                                <parameter name='httpMethod' value='DELETE' />\r
+                                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                <outcome value='failure'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                            </execute>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to vpn binding - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Error: failed to save vpn-binding in md-sal" />\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                <outcome value='true'>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                        <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                        <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                        <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                        <parameter name='format' value='json' />\r
+                                        <parameter name='httpMethod' value='POST' />\r
+                                        <parameter name="responsePrefix" value="msRT" />\r
+                                    </execute>\r
+                                </outcome>\r
+                            </switch>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-url`' />\r
+                                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                <parameter name='format' value='json' />\r
+                                <parameter name='httpMethod' value='DELETE' />\r
+                                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                <outcome value='failure'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                            </execute>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to vpn binding - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="route-target" \r
+               key="vpn-binding.vpn-binding-id = $vpn-binding.vpn-binding-id \r
+                       AND route-target.global-route-target = $vpn-binding.global-route-target\r
+                       AND route-target.route-target-role = $vpn-binding.route-target-role" >\r
+                <!-- Create route-target object -->\r
+                <parameter name="global-route-target" value="`$vpn-binding.global-route-target`" />\r
+                <parameter name="route-target-role" value="`$vpn-binding.route-target-role`" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Error: failed to save route target in AAI"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                <outcome value='true'>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                        <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                        <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                        <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                        <parameter name='format' value='json' />\r
+                                        <parameter name='httpMethod' value='POST' />\r
+                                        <parameter name="responsePrefix" value="msRT" />\r
+                                    </execute>\r
+                                </outcome>\r
+                            </switch>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-url`' />\r
+                                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                <parameter name='format' value='json' />\r
+                                <parameter name='httpMethod' value='DELETE' />\r
+                                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                <outcome value='failure'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                            </execute>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to vpn binding - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Error: failed to save route target in AAI"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                <outcome value='true'>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                        <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                        <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                        <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                        <parameter name='format' value='json' />\r
+                                        <parameter name='httpMethod' value='POST' />\r
+                                        <parameter name="responsePrefix" value="msRT" />\r
+                                    </execute>\r
+                                </outcome>\r
+                            </switch>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-url`' />\r
+                                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                <parameter name='format' value='json' />\r
+                                <parameter name='httpMethod' value='DELETE' />\r
+                                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                <outcome value='failure'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                            </execute>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to vpn binding - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </save>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file