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>