1 <?xml version="1.0" encoding="UTF-8"?>
\r 
   2 <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="1.2.1-SNAPSHOT">
\r 
   3    <method rpc="sotn-network-topology-operation-create" mode="sync">
\r 
   4       <block atomic="true">
\r 
   5          <call module="GENERIC-RESOURCE-API" rpc="validate-sotn-network-input-parameters" mode="sync" />
\r 
   6          <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">
\r 
   7             <parameter name="ctx-destination" value="prop.sotn.network-id" />
\r 
   9          <for index="idx" start="0" end="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">
\r 
  11                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'name'`">
\r 
  12                   <outcome value="true">
\r 
  14                         <parameter name="prop.sotn.etht-svc-name" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  18                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'description'`">
\r 
  19                   <outcome value="true">
\r 
  21                         <parameter name="prop.sotn.etht-svc-descr" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  25                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'tenantId'`">
\r 
  26                   <outcome value="true">
\r 
  28                         <parameter name="prop.sotn.tenantId" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  32                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'vpnType'`">
\r 
  33                   <outcome value="true">
\r 
  35                         <parameter name="prop.sotn.vpnType" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  39                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'CIR'`">
\r 
  40                   <outcome value="true">
\r 
  42                         <parameter name="prop.sotn.cir" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  46                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'EIR'`">
\r 
  47                   <outcome value="true">
\r 
  49                         <parameter name="prop.sotn.eir" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  53                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'CBS'`">
\r 
  54                   <outcome value="true">
\r 
  56                         <parameter name="prop.sotn.cbs" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  60                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'PBS'`">
\r 
  61                   <outcome value="true">
\r 
  63                         <parameter name="prop.sotn.pbs" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  67                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'color-aware'`">
\r 
  68                   <outcome value="true">
\r 
  70                         <parameter name="prop.sotn.colorAware" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  74                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'coupling-flag'`">
\r 
  75                   <outcome value="true">
\r 
  77                         <parameter name="prop.sotn.couplingFlag" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  81                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-provider-id'`">
\r 
  82                   <outcome value="true">
\r 
  84                         <parameter name="prop.sotn.access-provider-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  88                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-client-id'`">
\r 
  89                   <outcome value="true">
\r 
  91                         <parameter name="prop.sotn.access-client-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
  95                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-topology-id'`">
\r 
  96                   <outcome value="true">
\r 
  98                         <parameter name="prop.sotn.access-topology-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
 102                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-node-id'`">
\r 
 103                   <outcome value="true">
\r 
 105                         <parameter name="prop.sotn.access-node-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
 109                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'access-ltp-id'`">
\r 
 110                   <outcome value="true">
\r 
 112                         <parameter name="prop.sotn.access-ltp-id" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
 116                <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'cVLAN'`">
\r 
 117                   <outcome value="true">
\r 
 119                         <parameter name="prop.sotn.cVLAN" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`" />
\r 
 125          <switch test="`$service-data.networks.network_length`">
\r 
 128                   <parameter name="nidx" value="0" />
\r 
 131             <outcome value="Other">
\r 
 134                      <parameter name="nidx" value="`$service-data.networks.network_length`" />
\r 
 136                   <for index="idx" start="0" end="`$nidx`">
\r 
 137                      <switch test="`$service-data.networks.network[$idx].network-id == $network-topology-operation-input.network-information.network-id`">
\r 
 138                         <outcome value="true">
\r 
 139                            <return status="failure">
\r 
 140                               <parameter name="ack-final" value="Y" />
\r 
 141                               <parameter name="error-code" value="500" />
\r 
 142                               <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id already found in service-data" />
\r 
 150          <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
\r 
 151             <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log" />
\r 
 152             <parameter name="field1" value="__TIMESTAMP__" />
\r 
 153             <parameter name="field2" value="sotn-network-topology-operation-create" />
\r 
 154             <parameter name="field3" value="SOTN-Config" />
\r 
 157             <parameter name="service-data.networks.network[$nidx].network-id" value="`$prop.sotn.network-id`" />
\r 
 158             <parameter name="service-data.networks.network[$nidx].network-data.sdnc-request-header." value="`$network-topology-operation-input.sdnc-request-header.`" />
\r 
 159             <parameter name="service-data.networks.network[$nidx].network-data.request-information." value="`$network-topology-operation-input.request-information.`" />
\r 
 160             <parameter name="service-data.networks.network[$nidx].network-data.service-information." value="`$network-topology-operation-input.service-information.`" />
\r 
 161             <parameter name="service-data.networks.network[$nidx].network-data.network-information." value="`$network-topology-operation-input.network-information.`" />
\r 
 162             <parameter name="service-data.networks.network[$nidx].network-data.network-request-input." value="`$network-topology-operation-input.network-request-input.`" />
\r 
 163             <parameter name="service-data.networks.network_length" value="`$nidx+1`" />
\r 
 166             <parameter name="networkId" value="`$prop.sotn.network-id`" />
\r 
 167             <parameter name="network-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $network-topology-operation-input.service-information.service-instance-id  + '/service-data/networks/network/'  + $prop.sotn.network-id  + '/network-data/'` " />
\r 
 170             <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status" value="Created" />
\r 
 171             <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action" value="`$network-topology-operation-input.sdnc-request-header.svc-action`" />
\r 
 172             <parameter name="service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action" value="`$network-topology-operation-input.request-information.request-action`" />
\r 
 174          <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration" key="configuration.configuration-id = $prop.sotn.network-id">
\r 
 175             <parameter name="configuration-id" value="`$prop.sotn.network-id`" />
\r 
 176             <parameter name="configuration-name" value="`$prop.sotn.client-svc-name`" />
\r 
 177             <parameter name="configuration-type" value="`$prop.sotn.client-svc-descr`" />
\r 
 178             <parameter name="configuration-sub-type" value="`$prop.sotn.tenantId`" />
\r 
 179             <parameter name="orchestration-status" value="`$prop.sotn.vpnType`" />
\r 
 180             <parameter name="management-option" value="`$prop.sotn.cir`" />
\r 
 181             <parameter name="operational-status" value="Created" />
\r 
 182             <parameter name="model-customization-id" value="`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`" />
\r 
 183             <parameter name="model-invariant-id" value="`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`" />
\r 
 184             <parameter name="model-version-id" value="`$network-topology-operation-input.network-information.onap-model-information.model-uuid`" />
\r 
 185             <parameter name="configuration-selflink" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $network-topology-operation-input.service-information.service-instance-id  + '/service-data/networks/network/'  + $prop.sotn.network-id  + '/network-data/'` " />
\r 
 187          <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="service-instance:relationship-list" key="service-instance.service-instance-id = $service-data.service-information.service-instance-id           AND customer.global-customer-id = $service-data.networks.network[$nidx].network-data.service-information.global-customer-id           AND service-subscription.service-type = $service-data.networks.network[$nidx].network-data.service-information.subscription-service-type" force="true" pfx="tmp.AnAI-data">
\r 
 188             <parameter name="relationship-list.relationship[0].related-to" value="configuration" />
\r 
 189             <parameter name="relationship-list.relationship[0].related-link" value="`'/network/configurations/configuration/' + $prop.sotn.network-id`" />
\r 
 190             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="configuration.configuration-id" />
\r 
 191             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.sotn.network-id`" />
\r 
 194             <parameter name="unique-src-ltpId" value="`'nodeId-' + $prop.sotn.src-access-node-id + '-ltpId-' + $prop.sotn.src-access-ltp-id`" />
\r 
 196          <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="configuration:relationship-list" key="configuration.configuration-id = $prop.sotn.network-id" force="true" pfx="tmp.AnAI-data">
\r 
 197             <parameter name="relationship-list.relationship[0].related-to" value="logical-link" />
\r 
 198             <parameter name="relationship-list.relationship[0].related-link" value="`'/network/logical-links/logical-link/' + $unique-src-ltpId`" />
\r 
 199             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="logical-link.link-id" />
\r 
 200             <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$unique-src-ltpId`" />
\r 
 202          <return status="success">
\r 
 203             <parameter name="ack-final-indicator" value="Y" />
\r 
 204             <parameter name="error-code" value="200" />
\r 
 205             <parameter name="error-message" value="`$error-message`" />
\r