diff options
author | shashikanth.vh <shashikanth.vh@huawei.com> | 2019-05-17 12:43:31 +0000 |
---|---|---|
committer | shashikanth.vh <shashikanth.vh@huawei.com> | 2019-05-17 12:43:39 +0000 |
commit | cfafc04471d16f31cedbbb01337fb66ee0cfb46d (patch) | |
tree | 66267aec548b02085f04b1075381b91bf29a66eb /platform-logic/generic-resource-api/src/main/xml | |
parent | 9fda47895727309b1bfa5b67d3d87defa2633d51 (diff) |
Fixed SDWAN bandwidth change issue
1. update svc-action not handle in vf-module-topology-operation DG
causing bandwidth change failure.
2.sdwan-bandwidth-policy-change node link to get ESR missing so could not get controller IP
3.Update code to send request based on IPMode
Change-Id: I837f98c9199ddb34644e8c5af1679598ac123fc4
Issue-ID: SDNC-767
Signed-off-by: shashikanth.vh <shashikanth.vh@huawei.com>
Former-commit-id: e151fc707c1426e2c8563726a8b396de0e0b65c9
Diffstat (limited to 'platform-logic/generic-resource-api/src/main/xml')
2 files changed, 148 insertions, 56 deletions
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation.xml index e2e986fa..24863d44 100644 --- a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation.xml +++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation.xml @@ -1,6 +1,6 @@ <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}'>
+ 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='vf-module-topology-operation' mode='sync'>
<block atomic="true">
<call module='GENERIC-RESOURCE-API' rpc='validate-vf-module-input' mode='sync' ></call>
@@ -116,6 +116,18 @@ </switch>
</block>
</outcome>
+ <outcome value='update'>
+ <block atomic="true">
+ <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>
+ <outcome value='SdwanBandwidthChange'>
+ <call module='GENERIC-RESOURCE-API' rpc='sdwan-bandwidth-policy-change' mode='sync' ></call>
+ </outcome>
+ <outcome value='Other'>
+ <block></block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
<outcome value='Other'>
<return status='failure'>
<parameter name='ack-final' value='Y'/>
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-bandwidth-policy-change.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-bandwidth-policy-change.xml index 8653689c..3774e0c1 100644 --- a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-bandwidth-policy-change.xml +++ b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-bandwidth-policy-change.xml @@ -42,6 +42,10 @@ </set>
</outcome>
</switch>
+ <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+ <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+ <parameter name='contextPrefix' value='prop' />
+ </execute>
<for index='idx' start='0' end='`$vf-module-length`' >
<block atomic="true">
<switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSDWANPortInstance'`">
@@ -57,6 +61,7 @@ </record>
<set>
<parameter name='tmp.wanPortVidx' value='`$idx`' />
+ <parameter name='tmp.vidx' value='`$idx`' />
<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />
</set>
<set>
@@ -128,7 +133,7 @@ </block>
</outcome>
</switch>
- <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSiteInstance'`">
+ <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANSiteInstance'`">
<outcome value='true'>
<set>
<parameter name='tmp.siteVidx' value='`$vfidx`' />
@@ -176,23 +181,57 @@ </switch>
</block>
</for>
- <set>
- <parameter name='prop.tenant-id' value='d9511b64-61ae-446e-96a1-6adbff09582c' />
- </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="esr-thirdparty-sdnc"
+ key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND
+ depth = '1'"
+ pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >
+ <outcome value='success'>
+ <set>
+ <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />
+ <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />
+ <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />
+ </return>
+ </outcome>
+ </get-resource>
<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
<parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />
- <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants/authorization/' + $prop.tenant-id`" />
- <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
- <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
+ <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />
<parameter name="format" value="json"/>
- <parameter name="httpMethod" value="put"/>
- <parameter name="responsePrefix" value="tenant-result"/>
+ <parameter name="httpMethod" value="post"/>
+ <parameter name="responsePrefix" value="token-result"/>
<parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
<parameter name="trustStorePassword" value="adminadmin"/>
<parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
<parameter name="keyStorePassword" value="adminadmin"/>
- <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
+ <outcome value='success'>
+ <set>
+ <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />
+ </set>
+ </outcome>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error executing get token rest api" />
+ </return>
+ </outcome>
</execute>
+ <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>
<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
<parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/network-orchestration-resources'`" />
<parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
@@ -263,51 +302,92 @@ </switch>
</block>
</for>
- <switch test="`$prop.wanPortUpdate`">
- <outcome value=''>
- <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
- <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-wan-port.json'`" />
- <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports'`" />
- <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
- <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
- <parameter name="format" value="json"/>
- <parameter name="httpMethod" value="put"/>
- <parameter name="responsePrefix" value="wanPortResp"/>
- <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
- <parameter name="trustStorePassword" value="adminadmin"/>
- <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
- <parameter name="keyStorePassword" value="adminadmin"/>
- <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
- <outcome value='failure'>
- <block atomic="true"></block>
- </outcome>
- <outcome value='success'>
- <block atomic="true"></block>
+ <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>
+ <block>
+ <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`">
+ <outcome value='true'>
+ <block atomic="true">
+ <switch test="`Static == $prop.wan.IPMode`">
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <parameter name='prop.wan.IpMode' value="static" />
+ <parameter name='prop.wan.ipAddress' value='`$prop.wan.ip-address`' />
+ <parameter name='prop.route.nextHopType' value="ip-address" />
+ </set>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-wan-port-static.json'`" />
+ <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports'`" />
+ <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
+ <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
+ <parameter name="format" value="json"/>
+ <parameter name="httpMethod" value="put"/>
+ <parameter name="responsePrefix" value="wanPortResp"/>
+ <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
+ <parameter name="trustStorePassword" value="adminadmin"/>
+ <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
+ <parameter name="keyStorePassword" value="adminadmin"/>
+ <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
+ <outcome value='failure'>
+ <block atomic="true">
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error executing Create wan port rest api" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block atomic="true"></block>
+ </outcome>
+ </execute>
+ </block>
+ </outcome>
+ </switch>
+ <switch test="`DHCP == $prop.wan.IPMode`">
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <parameter name='prop.wan.ipAddress' value="" />
+ <parameter name='prop.wan.prefixLength' value="" />
+ <parameter name='prop.wan.providerIpAddress' value="" />
+ <parameter name='prop.wan.IpMode' value="DHCP" />
+ <parameter name='prop.route.nextHopType' value="outbound-interface" />
+ </set>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-wan-port-dhcp.json'`" />
+ <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports'`" />
+ <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
+ <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
+ <parameter name="format" value="json"/>
+ <parameter name="httpMethod" value="put"/>
+ <parameter name="responsePrefix" value="wanPortResp"/>
+ <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
+ <parameter name="trustStorePassword" value="adminadmin"/>
+ <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
+ <parameter name="keyStorePassword" value="adminadmin"/>
+ <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
+ <outcome value='failure'>
+ <block atomic="true">
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error executing Create wan port rest api" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block atomic="true"></block>
+ </outcome>
+ </execute>
+ </block>
+ </outcome>
+ </switch>
+ </block>
</outcome>
- </execute>
- </outcome>
- </switch>
- <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >
- <parameter name="ctx-destination" value="prop.bandwidth.bandwidth-policyId"/>
- </execute>
- <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='bandwidth-history'
- key='sdwan-bandwidth-policy-id = $prop.bandwidth.bandwidth-policyId' >
- <parameter name="sdwan-bandwidth-policy-id" value="`$prop.bandwidth.bandwidth-policyId`" />
- <parameter name="sdwan-bandwidth-policy-name" value="`$prop.bandwidth.bandwidth-policyId`" />
- <parameter name="bandwidth-value" value="`$prop.wan.inputBandwidth`" />
- <parameter name="bandwidth-change-time" value="`$prop.wan.bandwidth-change-time`" />
- <parameter name="vpn-id" value="`$prop.bandwidth.vpnId`" />
- <!--parameter name='model-customization-id' value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' /><parameter name='model-invariant-id' value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' /><parameter name='model-version-id' value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' /-->
- <outcome value='success'>
- <block atomic="true"></block>
- </outcome>
- <outcome value='failure'>
- <return status='failure'>
- <parameter name='error-code' value='' />
- <parameter name='error-message' value="Falied to add AAI bandwidth history record" />
- </return>
- </outcome>
- </save>
+ </switch>
+ </block>
+ </for>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
<parameter name="error-code" value="200" />
|