From 02c63c550acb82bee8d360c01bb1723b10f8df9a Mon Sep 17 00:00:00 2001 From: "ramu.n" Date: Fri, 29 Sep 2017 06:32:52 +0530 Subject: [PATCH] Update VoLTE underlay JSON template *Add vrf-attribute configuration *Add BGP protocol type for ac Change-Id: I6deb5b4ec6d71b18e8d6b67aadaba18b7a27c47b Issue-Id: SDNC-108 Signed-off-by: Ramu N --- .../src/main/resources/l3smsitetemplate.json | 31 ++++++++++++++----- .../src/main/resources/l3smvpntemplate.json | 15 ++++++---- .../src/main/resources/l3smvrftemplate.json | 35 ++++++++++++++++++++++ .../plugins/restapicall/TestRestapiCallNode.java | 33 ++++++++++++++++++-- .../src/test/resources/l3smsitetemplate.json | 31 ++++++++++++++----- .../src/test/resources/l3smvpntemplate.json | 15 ++++++---- .../src/test/resources/l3smvrftemplate.json | 35 ++++++++++++++++++++++ 7 files changed, 167 insertions(+), 28 deletions(-) create mode 100644 restapi-call-node/provider/src/main/resources/l3smvrftemplate.json create mode 100644 restapi-call-node/provider/src/test/resources/l3smvrftemplate.json diff --git a/restapi-call-node/provider/src/main/resources/l3smsitetemplate.json b/restapi-call-node/provider/src/main/resources/l3smsitetemplate.json index e7b56928..3aa426be 100644 --- a/restapi-call-node/provider/src/main/resources/l3smsitetemplate.json +++ b/restapi-call-node/provider/src/main/resources/l3smsitetemplate.json @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * openECOMP : SDN-C + * ONAP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights * reserved. @@ -68,19 +68,28 @@ "routing-protocols": { "routing-protocol": [ { - "type": "huawei-ac-net-l3vpn-svc:static", + "type": ${prop.l3vpn.ac1_protocol}, "static": { "cascaded-lan-prefixes": [ { "ipv4-lan-prefixes": [ { - "ip-prefix": ${prop.l3vpn.sna1-route}, - "next-hop": ${prop.l3vpn.sna1-route} + "ip-prefix": ${prop.l3vpn.sna1-route.ip-prefix}, + "next-hop": ${prop.l3vpn.sna1-route.next-hop} } ] } ] } + "bgp": { + "peers": [ + { + "peer-ip": ${prop.l3vpn.peer1-ip}, + "remote-as": ${prop.l3vpn.ac1_protocol_bgp_as} + } + ] + } + } } ] }, @@ -138,19 +147,27 @@ "routing-protocols": { "routing-protocol": [ { - "type": "huawei-ac-net-l3vpn-svc:static", + "type": ${prop.l3vpn.ac2_protocol}, "static": { "cascaded-lan-prefixes": [ { "ipv4-lan-prefixes": [ { - "ip-prefix": ${prop.l3vpn.sna2-route}, - "next-hop": ${prop.l3vpn.sna2-route} + "ip-prefix": ${prop.l3vpn.sna2-route.ip-prefix}, + "next-hop": ${prop.l3vpn.sna2-route.next-hop} } ] } ] } + "bgp": { + "peers": [ + { + "peer-ip": ${prop.l3vpn.peer2-ip}, + "remote-as": ${prop.l3vpn.ac2_protocol_bgp_as} + } + ] + } } ] }, diff --git a/restapi-call-node/provider/src/main/resources/l3smvpntemplate.json b/restapi-call-node/provider/src/main/resources/l3smvpntemplate.json index c0a7c192..c0d13531 100644 --- a/restapi-call-node/provider/src/main/resources/l3smvpntemplate.json +++ b/restapi-call-node/provider/src/main/resources/l3smvpntemplate.json @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * openECOMP : SDN-C + * ONAP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights * reserved. @@ -20,9 +20,12 @@ */ { - "vpn-id": ${prop.l3vpn.name}, - "customer-name": "huawei", - "vpn-service-topology": ${prop.l3vpn.topology}, - "route-exchange-policy": "huawei-ac-net-l3vpn-svc:vpnv4-way" + "vpn-service": [ + { + "vpn-id": ${prop.l3vpn.name, + "customer-name": "huawei", + "vpn-service-topology": ${prop.l3vpn.topology, + "route-exchange-policy": "huawei-ac-net-l3vpn-svc:vpnv4-way" + } + ] } - diff --git a/restapi-call-node/provider/src/main/resources/l3smvrftemplate.json b/restapi-call-node/provider/src/main/resources/l3smvrftemplate.json new file mode 100644 index 00000000..732af278 --- /dev/null +++ b/restapi-call-node/provider/src/main/resources/l3smvrftemplate.json @@ -0,0 +1,35 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +{ + "vrf-attribute": [ + { + "vrf-attribute-id": ${prop.l3vpn.vrf1-id}, + "ne-id": ${prop.l3vpn.pe1_id}, + "vpn-policy-id": ${prop.l3vpn.vpn-policy1-id} + }, + { + "vrf-attribute-id": ${prop.l3vpn.vrf2-id}, + "ne-id": ${prop.l3vpn.pe2_id}, + "vpn-policy-id": ${prop.l3vpn.vpn-policy2-id} + } + ] +} diff --git a/restapi-call-node/provider/src/test/java/jtest/org/onap/ccsdk/sli/plugins/restapicall/TestRestapiCallNode.java b/restapi-call-node/provider/src/test/java/jtest/org/onap/ccsdk/sli/plugins/restapicall/TestRestapiCallNode.java index 1dcc97bc..2c2bde0f 100644 --- a/restapi-call-node/provider/src/test/java/jtest/org/onap/ccsdk/sli/plugins/restapicall/TestRestapiCallNode.java +++ b/restapi-call-node/provider/src/test/java/jtest/org/onap/ccsdk/sli/plugins/restapicall/TestRestapiCallNode.java @@ -23,6 +23,7 @@ package jtest.org.onap.ccsdk.sli.plugins.restapicall; import java.util.HashMap; import java.util.Map; + import org.junit.Test; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; @@ -229,7 +230,9 @@ public class TestRestapiCallNode { ctx.setAttribute("prop.l3vpn.ac1_id", "a8098c1a-f86e-11da-bd1a-00112444be1b"); ctx.setAttribute("prop.l3vpn.ac1-peer-ip", "192.168.1.1"); ctx.setAttribute("prop.l3vpn.ac1-ip", "192.168.1.2"); - ctx.setAttribute("prop.l3vpn.sna1-route", "192.168.1.4/24"); + ctx.setAttribute("prop.l3vpn.ac1_protocol", "static"); + ctx.setAttribute("prop.l3vpn.sna1-route.ip-prefix", "192.168.1.1/24"); + ctx.setAttribute("prop.l3vpn.sna1-route.next-hop", "192.168.1.4"); ctx.setAttribute("prop.l3vpn.site2_name", "10000000-0000-0000-0000-000000000005"); ctx.setAttribute("prop.l3vpn.vpn-policy2-id", "10000000-0000-0000-0000-000000000006"); @@ -239,7 +242,9 @@ public class TestRestapiCallNode { ctx.setAttribute("prop.l3vpn.ac2_id", "a8098c1a-f86e-11da-bd1a-00112444be1c"); ctx.setAttribute("prop.l3vpn.ac2-peer-ip", "192.168.1.5"); ctx.setAttribute("prop.l3vpn.ac2-ip", "192.168.1.5"); - ctx.setAttribute("prop.l3vpn.sna2-route", "192.168.1.8/24"); + ctx.setAttribute("prop.l3vpn.ac2_protocol", "bgp"); + ctx.setAttribute("prop.l3vpn.peer2-ip", "192.168.1.5"); + ctx.setAttribute("prop.l3vpn.ac2_protocol_bgp_as", "200"); Map p = new HashMap(); p.put("templateFileName", "src/test/resources/l3smsitetemplate.json"); @@ -255,6 +260,30 @@ public class TestRestapiCallNode { rcn.sendRequest(p, ctx); } + @Test + public void testVrfJsonTemplate() throws SvcLogicException { + SvcLogicContext ctx = new SvcLogicContext(); + ctx.setAttribute("prop.l3vpn.vrf1-id", "10000000-0000-0000-0000-000000000007"); + ctx.setAttribute("prop.l3vpn.vpn-policy1-id", "10000000-0000-0000-0000-000000000003"); + ctx.setAttribute("prop.l3vpn.pe1_id", "a8098c1a-f86e-11da-bd1a-00112444be1e"); + ctx.setAttribute("prop.l3vpn.vrf2-id", "10000000-0000-0000-0000-000000000009"); + ctx.setAttribute("prop.l3vpn.vpn-policy2-id", "10000000-0000-0000-0000-000000000006"); + ctx.setAttribute("prop.l3vpn.pe2_id", "a8098c1a-f86e-11da-bd1a-00112444be1a"); + + Map p = new HashMap(); + p.put("templateFileName", "src/test/resources/l3smvrftemplate.json"); + p.put("restapiUrl", "http://ipwan:18002/restconf/data/huawei-ac-net-l3vpn-svc:l3vpn-svc-cfg/vrf-attributes"); + p.put("restapiUser", "admin"); + p.put("restapiPassword", "admin123"); + p.put("format", "json"); + p.put("httpMethod", "post"); + p.put("responsePrefix", "restapi-result"); + p.put("skipSending", "true"); + + RestapiCallNode rcn = new RestapiCallNode(); + rcn.sendRequest(p, ctx); + } + @Test public void testL2DciTemplate() throws SvcLogicException { SvcLogicContext ctx = new SvcLogicContext(); diff --git a/restapi-call-node/provider/src/test/resources/l3smsitetemplate.json b/restapi-call-node/provider/src/test/resources/l3smsitetemplate.json index e7b56928..3aa426be 100644 --- a/restapi-call-node/provider/src/test/resources/l3smsitetemplate.json +++ b/restapi-call-node/provider/src/test/resources/l3smsitetemplate.json @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * openECOMP : SDN-C + * ONAP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights * reserved. @@ -68,19 +68,28 @@ "routing-protocols": { "routing-protocol": [ { - "type": "huawei-ac-net-l3vpn-svc:static", + "type": ${prop.l3vpn.ac1_protocol}, "static": { "cascaded-lan-prefixes": [ { "ipv4-lan-prefixes": [ { - "ip-prefix": ${prop.l3vpn.sna1-route}, - "next-hop": ${prop.l3vpn.sna1-route} + "ip-prefix": ${prop.l3vpn.sna1-route.ip-prefix}, + "next-hop": ${prop.l3vpn.sna1-route.next-hop} } ] } ] } + "bgp": { + "peers": [ + { + "peer-ip": ${prop.l3vpn.peer1-ip}, + "remote-as": ${prop.l3vpn.ac1_protocol_bgp_as} + } + ] + } + } } ] }, @@ -138,19 +147,27 @@ "routing-protocols": { "routing-protocol": [ { - "type": "huawei-ac-net-l3vpn-svc:static", + "type": ${prop.l3vpn.ac2_protocol}, "static": { "cascaded-lan-prefixes": [ { "ipv4-lan-prefixes": [ { - "ip-prefix": ${prop.l3vpn.sna2-route}, - "next-hop": ${prop.l3vpn.sna2-route} + "ip-prefix": ${prop.l3vpn.sna2-route.ip-prefix}, + "next-hop": ${prop.l3vpn.sna2-route.next-hop} } ] } ] } + "bgp": { + "peers": [ + { + "peer-ip": ${prop.l3vpn.peer2-ip}, + "remote-as": ${prop.l3vpn.ac2_protocol_bgp_as} + } + ] + } } ] }, diff --git a/restapi-call-node/provider/src/test/resources/l3smvpntemplate.json b/restapi-call-node/provider/src/test/resources/l3smvpntemplate.json index c0a7c192..c0d13531 100644 --- a/restapi-call-node/provider/src/test/resources/l3smvpntemplate.json +++ b/restapi-call-node/provider/src/test/resources/l3smvpntemplate.json @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * openECOMP : SDN-C + * ONAP : SDN-C * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights * reserved. @@ -20,9 +20,12 @@ */ { - "vpn-id": ${prop.l3vpn.name}, - "customer-name": "huawei", - "vpn-service-topology": ${prop.l3vpn.topology}, - "route-exchange-policy": "huawei-ac-net-l3vpn-svc:vpnv4-way" + "vpn-service": [ + { + "vpn-id": ${prop.l3vpn.name, + "customer-name": "huawei", + "vpn-service-topology": ${prop.l3vpn.topology, + "route-exchange-policy": "huawei-ac-net-l3vpn-svc:vpnv4-way" + } + ] } - diff --git a/restapi-call-node/provider/src/test/resources/l3smvrftemplate.json b/restapi-call-node/provider/src/test/resources/l3smvrftemplate.json new file mode 100644 index 00000000..732af278 --- /dev/null +++ b/restapi-call-node/provider/src/test/resources/l3smvrftemplate.json @@ -0,0 +1,35 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : SDN-C + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +{ + "vrf-attribute": [ + { + "vrf-attribute-id": ${prop.l3vpn.vrf1-id}, + "ne-id": ${prop.l3vpn.pe1_id}, + "vpn-policy-id": ${prop.l3vpn.vpn-policy1-id} + }, + { + "vrf-attribute-id": ${prop.l3vpn.vrf2-id}, + "ne-id": ${prop.l3vpn.pe2_id}, + "vpn-policy-id": ${prop.l3vpn.vpn-policy2-id} + } + ] +} -- 2.16.6