2     xmlns='http://www.onap.org/sdnc/svclogic'
 
   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}'>
 
   4     <method rpc='contrail-route-topology-operation-unassign' mode='sync'>
 
   7                 <parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
 
   8                 <parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
 
  11                 <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'
 
  12  + $tmp.ar.allotted-resource-id
 
  13  + '/allotted-resource-data/contrail-route-topology/'` " />
 
  15             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
 
  16                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
 
  17                 <parameter name='contextPrefix' value='prop' />
 
  19             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
 
  20                 <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>
 
  21                 <parameter name="outputPath" value="tmp.ar-url"/>
 
  22                 <parameter name="target" value="{allotted-resource-id}"/>
 
  23                 <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
 
  25             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
 
  26                 <parameter name="source" value="`$prop.restapi.parent-provided-resource`"/>
 
  27                 <parameter name="outputPath" value="tmp.parent-ar-url"/>
 
  28                 <parameter name="target" value="{service-instance-id}"/>
 
  29                 <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
 
  31             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
 
  32                 <parameter name="source" value="`$tmp.parent-ar-url`"/>
 
  33                 <parameter name="outputPath" value="tmp.parent-ar-url"/>
 
  34                 <parameter name="target" value="{allotted-resource-id}"/>
 
  35                 <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
 
  37             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
 
  38                 <parameter name="source" value="`$prop.restapi.network`"/>
 
  39                 <parameter name="outputPath" value="tmp.ar-parentnetwork-url"/>
 
  40                 <parameter name="target" value="{service-instance-id}"/>
 
  41                 <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
 
  43             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
 
  44                 <parameter name="source" value="`$prop.restapi.network-provided-resource`"/>
 
  45                 <parameter name="outputPath" value="tmp.network-ar-url"/>
 
  46                 <parameter name="target" value="{service-instance-id}"/>
 
  47                 <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
 
  49             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
 
  50                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
 
  51                 <parameter name='restapiUser' value='`$prop.controller.user`' />
 
  52                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
 
  53                 <parameter name='format' value='json' />
 
  54                 <parameter name='httpMethod' value='GET' />
 
  55                 <parameter name="responsePrefix" value="mdsal-ar" />
 
  56                 <outcome value='success'>
 
  58                         <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>
 
  62                                         <parameter name='bk-cr-ar' value='$mdsal-ar.' />
 
  65                                         <parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />
 
  67                                     <switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
 
  68                                         <outcome value='Created'>
 
  69                                             <return status='failure'>
 
  70                                                 <parameter name='ack-final' value='Y'/>
 
  71                                                 <parameter name="error-code" value="500" />
 
  72                                                 <parameter name="error-message" 
 
  73     value="`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />
 
  76                                         <outcome value='Other'>
 
  81                                         <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />
 
  82                                         <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />
 
  83                                         <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />
 
  87                             <outcome value='Other'>
 
  88                                 <return status='failure'>
 
  89                                     <parameter name='ack-final' value='Y'/>
 
  90                                     <parameter name="error-code" value="404" />
 
  91                                     <parameter name="error-message" value="Error: Contrail Route not found" />
 
  97                 <outcome value='Other'>
 
  99                         <return status='failure'>
 
 100                             <parameter name='ack-final' value='Y'/>
 
 101                             <parameter name="error-code" value="404" />
 
 102                             <parameter name="error-message" value="Error: Contrail Route not found" />
 
 108                 <parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
 
 109                 <parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />
 
 110                 <parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />
 
 111                 <parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />
 
 112                 <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />
 
 113                 <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />
 
 114                 <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />
 
 115                 <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />
 
 116                 <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />
 
 117                 <parameter name='tmp.dest-network-id' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id`' />
 
 119             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
 
 120                 <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />
 
 121                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />
 
 122                 <parameter name='restapiUser' value='`$prop.controller.user`' />
 
 123                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
 
 124                 <parameter name='format' value='json' />
 
 125                 <parameter name='httpMethod' value='DELETE' />
 
 126                 <parameter name="responsePrefix" value="parent" />
 
 127                 <outcome value='success'>
 
 130                 <outcome value='failure'>
 
 131                     <return status='failure'>
 
 132                         <parameter name='ack-final' value='Y'/>
 
 133                         <parameter name="error-code" value="500" />
 
 134                         <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
 
 137                 <outcome value='not-found'>
 
 138                     <return status='failure'>
 
 139                         <parameter name='ack-final' value='Y'/>
 
 140                         <parameter name="error-code" value="500" />
 
 141                         <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
 
 145             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
 
 146                 <parameter name="source" value="`$tmp.network-ar-url`"/>
 
 147                 <parameter name="outputPath" value="tmp.network-ar-url"/>
 
 148                 <parameter name="target" value="{network-id}"/>
 
 149                 <parameter name="replacement" value="`$tmp.dest-network-id`"/>
 
 151             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
 
 152                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
 
 153                 <parameter name='restapiUser' value='`$prop.controller.user`' />
 
 154                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
 
 155                 <parameter name='format' value='json' />
 
 156                 <parameter name='httpMethod' value='GET' />
 
 157                 <parameter name="responsePrefix" value="net-ar" />
 
 158                 <outcome value='success'>
 
 159                     <block atomic="true">
 
 161                             <parameter name='tmp.found-nidx' value='false' />
 
 163                         <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>
 
 165                                 <block atomic="true"></block>
 
 167                             <outcome value='Other'>
 
 168                                 <block atomic="true">
 
 169                                     <for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >
 
 170                                         <switch test="`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`">
 
 171                                             <outcome value='true'>
 
 172                                                 <block atomic="true">
 
 174                                                         <parameter name='tmp.found-nidx' value='true' />
 
 175                                                         <parameter name='tmp.nidx' value='`$nidx`' />
 
 182                                     <switch test='`$tmp.found-nidx`'>
 
 183                                         <outcome value='true'>
 
 184                                             <block atomic="true">
 
 185                                                 <for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >
 
 186                                                     <block atomic="true">
 
 188                                                             <parameter name="tmp.newidx" value="`$snidx - 1`"/>
 
 191                                                             <parameter name="$net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.newidx]" value="$net-ar.network-provided-allotted-resources.network-provided-ar-id[$snidx]" />
 
 196                                                     <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length - 1`' />
 
 198                                                 <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length == 0`'>
 
 199                                                     <outcome value='true'>
 
 200                                                         <block atomic="true">
 
 201                                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
 
 202                                                                 <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
 
 203                                                                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
 
 204                                                                 <parameter name='restapiUser' value='`$prop.controller.user`' />
 
 205                                                                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
 
 206                                                                 <parameter name='format' value='json' />
 
 207                                                                 <parameter name='httpMethod' value='DELETE' />
 
 208                                                                 <parameter name="responsePrefix" value="p-network-ar" />
 
 209                                                                 <outcome value='success'>
 
 212                                                                 <outcome value='failure'>
 
 215                                                                 <outcome value='not-found'>
 
 221                                                     <outcome value='false'>
 
 222                                                         <block atomic="true">
 
 223                                                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
 
 224                                                                 <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
 
 225                                                                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
 
 226                                                                 <parameter name='restapiUser' value='`$prop.controller.user`' />
 
 227                                                                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
 
 228                                                                 <parameter name='format' value='json' />
 
 229                                                                 <parameter name='httpMethod' value='PUT' />
 
 230                                                                 <parameter name="responsePrefix" value="p-network-ar" />
 
 231                                                                 <outcome value='success'>
 
 234                                                                 <outcome value='failure'>
 
 237                                                                 <outcome value='not-found'>
 
 252                 <outcome value='not-found'>
 
 253                     <block atomic="true"></block>
 
 255                 <outcome value='failure'>
 
 256                     <block atomic="true"></block>
 
 259             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
 
 260                 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
 
 261                 <parameter name='restapiUser' value='`$prop.controller.user`' />
 
 262                 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
 
 263                 <parameter name='format' value='json' />
 
 264                 <parameter name='httpMethod' value='DELETE' />
 
 265                 <parameter name="responsePrefix" value="mdsal-ar" />
 
 266                 <outcome value='success'>
 
 267                     <block atomic="true"></block>
 
 269                 <outcome value='not-found'>
 
 270                     <block atomic="true"></block>
 
 272                 <outcome value='failure'>
 
 273                     <block atomic="true"></block>
 
 276             <for silentFailure='true' index='snidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >
 
 277                 <block atomic="true">
 
 278                     <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$sdix].allotted-resource-id == $tmp.ar.allotted-resource-id`'>
 
 279                         <outcome value='true'>
 
 280                             <block atomic="true">
 
 282                                     <parameter name="tmp.sdidx" value="`$snidx`"/>
 
 290             <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>
 
 292                     <block atomic="true">
 
 294                             <parameter name="service-data.consumed-allotted-resources." value=""/>
 
 297                             <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource_length" value="0"/>
 
 301                 <outcome value='Other'>
 
 302                     <block atomic="true">
 
 304                             <parameter name="tmp.new_length" value="`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`"/>
 
 306                         <for silentFailure='true' index='snidx' start='`$tmp.sdidx + 1`' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >
 
 307                             <block atomic="true">
 
 309                                     <parameter name="tmp.newidx" value="`$snidx - 1`"/>
 
 312                                     <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.newidx]." value="$service-data.consumed-allotted-resources.consumed-allotted-resource[$snidx]." />
 
 317                             <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource_length" value="`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`"/>
 
 320                             <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.new_length]." value=""/>
 
 326                 <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
 
 327                 <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
 
 328  + $contrail-route-topology-operation-input.service-information.service-instance-id
 
 329  + '/service-data/service-topology/'`"/>
 
 331             <return status='success'>
 
 332                 <parameter name="ack-final-indicator" value="Y" />
 
 333                 <parameter name="error-code" value="200" />
 
 334                 <parameter name="error-message" value="`$error-message`" />