NEUTRON-162: vlan_transparent attribute is missing in network_attributes 98/72198/4
authorShashidhar Raja <shashidharr@altencalsoftlabs.com>
Mon, 21 May 2018 09:36:49 +0000 (15:06 +0530)
committerShashidhar Raja <shashidharr@altencalsoftlabs.com>
Thu, 24 May 2018 09:20:59 +0000 (14:50 +0530)
Added support for vlan_transparent in network_attributes

Change-Id: I9006f3a63baa8edf9d72eafef866793451720036
Signed-off-by: Shashidhar Raja <shashidharr@altencalsoftlabs.com>
integration/test-standalone/src/main/java/org/opendaylight/neutron/e2etest/NeutronNetworkTests.java
model/src/main/yang/neutron-networks.yang
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronNetwork.java
neutron-spi/src/test/java/org/opendaylight/neutron/spi/NeutronNetworkJAXBTest.java
transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronNetworkInterface.java

index 9610b022a61f69b8876dcc7dc6d8cae049b52005..32a7c84a77a942275351e4a38c079472c6d5dfc8 100644 (file)
@@ -65,7 +65,8 @@ public class NeutronNetworkTests {
                 + " \"provider:network_type\": \"vlan\" }, { " + " \"provider:segmentation_id\": null, "
                 + " \"provider:physical_network\": \"8bab8453-1bc9-45af-8c70-f83aa9b50453\", "
                 + " \"provider:network_type\": \"stt\" } ], "
-                + " \"shared\": false, \"id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\" " + " } } ";
+                + " \"shared\": false, \"vlan_transparent\": false, "
+                + " \"id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\" " + " } } ";
         HttpUtils.test_create(url, content, "Singleton Network Post Failed NB");
         return content;
     }
@@ -106,6 +107,12 @@ public class NeutronNetworkTests {
         jsonObjectOutput = jsonObjectOutput.getAsJsonObject("network");
         jsonElementValue = jsonObjectOutput.get(element);
         Assert.assertEquals(context, false, jsonElementValue.getAsBoolean());
+        element = "vlan_transparent";
+        url = base + "/networks/de8e5957-d49f-d77b-de5b-d1f75b21c03c?fields=" + element;
+        jsonObjectOutput = HttpUtils.test_fetch_gson(url, context);
+        jsonObjectOutput = jsonObjectOutput.getAsJsonObject("network");
+        jsonElementValue = jsonObjectOutput.get(element);
+        Assert.assertEquals(context, false, jsonElementValue.getAsBoolean());
     }
 
     //TODO handle SB check
@@ -114,7 +121,7 @@ public class NeutronNetworkTests {
         String content = "{ \"network\": {" + " \"status\": \"ACTIVE\", \"subnets\": [], "
                 + " \"name\": \"external1\", \"admin_state_up\": true, "
                 + " \"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\", "
-                + " \"router:external\": true, \"shared\": false, "
+                + " \"router:external\": true, \"shared\": false, \"vlan_transparent\": false,"
                 + " \"id\": \"8ca37218-28ff-41cb-9b10-039601ea7e6b\" } } ";
         HttpUtils.test_create(url, content, "External Network Post Failed NB");
     }
@@ -125,13 +132,13 @@ public class NeutronNetworkTests {
         String content = "{ \"networks\": [ { " + "\"status\": \"ACTIVE\", \"subnets\": [], "
                 + "\"name\": \"sample_network3\", " + "\"provider:physical_network\": null, "
                 + "\"admin_state_up\": true, " + "\"tenant_id\": \"4fd44f30292945e481c7b8a0c8908869\", "
-                + "\"provider:network_type\": \"local\", " + "\"shared\": false, "
+                + "\"provider:network_type\": \"local\", " + "\"shared\": false, \"vlan_transparent\": false, "
                 + "\"id\": \"bc1a76cb-8767-4c3a-bb95-018b822f2130\", " + "\"provider:segmentation_id\": null }, { "
                 + "\"status\": \"ACTIVE\", " + "\"subnets\": [], " + "\"name\": \"sample_network4\", "
                 + "\"provider:physical_network\": null, " + "\"admin_state_up\": true, "
                 + "\"tenant_id\": \"4fd44f30292945e481c7b8a0c8908869\", " + "\"provider:network_type\": \"local\", "
-                + "\"shared\": false, " + "\"id\": \"af374017-c9ae-4a1d-b799-ab73111476e2\", "
-                + "\"provider:segmentation_id\": null } ] } ";
+                + "\"shared\": false, " + "\"vlan_transparent\": false, "
+                + "\"id\": \"af374017-c9ae-4a1d-b799-ab73111476e2\", " + "\"provider:segmentation_id\": null } ] } ";
         HttpUtils.test_create(url, content, "Bulk Network Post Failed");
     }
 
@@ -142,7 +149,7 @@ public class NeutronNetworkTests {
                 + "\"name\": \"sample_network_5_updated\", " + "\"provider:physical_network\": null, "
                 + "\"admin_state_up\": true, " + "\"tenant_id\": \"4fd44f30292945e481c7b8a0c8908869\", "
                 + "\"provider:network_type\": \"local\", " + "\"router:external\": false, " + "\"shared\": false, "
-                + "\"provider:segmentation_id\": null } } ";
+                + "\"vlan_transparent\": false, " + "\"provider:segmentation_id\": null } } ";
         HttpUtils.test_modify(url, content, "Network Put Failed");
     }
 
@@ -161,7 +168,7 @@ public class NeutronNetworkTests {
                 + "?fields=status&fields=subnets&fields=name"
                 + "&fields=provider:physical_network&fields=admin_state_up"
                 + "&fields=tenant_id&fields=provides:network_type"
-                + "&fields=router:external&fields=shared&fields=provider:segmentation_id";
+                + "&fields=router:external&fields=shared&fields=vlan_transparent&fields=provider:segmentation_id";
         HttpUtils.test_fetch(url, true, "Network Element with query Get Failed");
     }
 
index 58555ba0e34dbbe2a29026ff19b79411daf3a078..d065fdd8264b6169565a770a2278f751e3dcd0b9 100644 (file)
@@ -81,6 +81,13 @@ module neutron-networks {
                                 value.";
                 }
 
+                leaf vlan-transparent {
+                    type boolean;
+                    default "false";
+                    description "The state of the network, which is VLAN transparent (true) or
+                                not VLAN transparent (false)";
+                }
+
                 uses attrs:base-attributes;
                 uses attrs:admin-attributes;
             }
index 174575163d8a8dc8e0a0face6c34ffaef93b1760..40acdb669f8461ed8a4b2299528f0ba198bd281d 100644 (file)
@@ -172,6 +172,9 @@ public final class NeutronNetwork extends NeutronAdminAttributes<NeutronNetwork>
             case "shared":
                 ans.setShared(isShared());
                 break;
+            case "vlan_transparent":
+                ans.setVlanTransparent(this.getVlanTransparent());
+                break;
             case "external":
                 ans.setRouterExternal(this.getRouterExternal());
                 break;
@@ -196,9 +199,10 @@ public final class NeutronNetwork extends NeutronAdminAttributes<NeutronNetwork>
     @Override
     public String toString() {
         return "NeutronNetwork [networkUUID=" + uuid + ", networkName=" + name + ", adminStateUp=" + adminStateUp
-                + ", shared=" + shared + ", tenantID=" + tenantID + ", routerExternal=" + routerExternal
-                + ", providerNetworkType=" + providerNetworkType + ", providerPhysicalNetwork="
-                + providerPhysicalNetwork + ", providerSegmentationID=" + providerSegmentationID + ", status=" + status
-                + ", qosPolicyId =" + qosPolicyId + ", segments = " + segments + "]";
+                + ", shared=" + shared + ", vlanTransparent=" + vlanTransparent + ", tenantID=" + tenantID
+                + ", routerExternal=" + routerExternal + ", providerNetworkType=" + providerNetworkType
+                + ", providerPhysicalNetwork=" + providerPhysicalNetwork + ", providerSegmentationID="
+                + providerSegmentationID + ", status=" + status + ", qosPolicyId =" + qosPolicyId
+                + ", segments = " + segments + "]";
     }
 }
index af4cb599831d0e50680050563c48e73bb7efd37d..f8e344dadc8c64e6cfc6252acd0d941415ec87cc 100644 (file)
@@ -20,7 +20,7 @@ public class NeutronNetworkJAXBTest {
             + "\"admin_state_up\": true, " + "\"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\", "
             + "\"router:external\": false, " + "\"provider:segmentation_id\": \"2\", "
             + "\"provider:physical_network\": \"8bab8453-1bc9-45af-8c70-f83aa9b50453\", "
-            + "\"provider:network_type\": \"vlan\", " + "\"shared\": false, "
+            + "\"provider:network_type\": \"vlan\", " + "\"shared\": false, " + "\"vlan_transparent\": false, "
             + "\"id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\" }";
 
     @Test
@@ -51,6 +51,9 @@ public class NeutronNetworkJAXBTest {
 
         Assert.assertEquals("NeutronNetwork JAXB Test 11: Testing shared failed", false, testObject.getShared());
 
+        Assert.assertEquals("NeutronNetwork JAXB Test 12: Testing vlan_transparent failed", false,
+                testObject.getVlanTransparent());
+
         Assert.assertEquals("NeutronNetwork JAXB Test 2: Testing tenant_id failed",
                 "9bacb3c5d39d41a79512987f338cf177", testObject.getTenantID());
     }
@@ -62,7 +65,7 @@ public class NeutronNetworkJAXBTest {
             + "\"provider:physical_network\": \"8bab8453-1bc9-45af-8c70-f83aa9b50453\", "
             + "\"provider:network_type\": \"vlan\" }, " + "{ \"provider:segmentation_id\": null, "
             + "\"provider:physical_network\": \"8bab8453-1bc9-45af-8c70-f83aa9b50454\", "
-            + "\"provider:network_type\": \"stt\" } ], " + "\"shared\": false, "
+            + "\"provider:network_type\": \"stt\" } ], " + "\"shared\": false, " + "\"vlan_transparent\": false, "
             + "\"id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\" }";
 
     @Test
@@ -84,26 +87,29 @@ public class NeutronNetworkJAXBTest {
 
         Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing shared failed", false, testObject.getShared());
 
+        Assert.assertEquals("NeutronNetwork JAXB Test 9: Testing vlan_transparent failed", false,
+                testObject.getVlanTransparent());
+
         List<NeutronNetworkSegment> segments = testObject.getSegments();
-        Assert.assertEquals("NeutronNetwork JAXB Test 9.1: Testing segments list length failed", 2,
+        Assert.assertEquals("NeutronNetwork JAXB Test 10.1: Testing segments list length failed", 2,
                 segments.size());
 
-        Assert.assertEquals("NeutronNetwork JAXB Test 9.2: Testing segment index 0 segmentation id failed", "2",
+        Assert.assertEquals("NeutronNetwork JAXB Test 10.2: Testing segment index 0 segmentation id failed", "2",
                 segments.get(0).getProviderSegmentationID());
 
-        Assert.assertEquals("NeutronNetwork JAXB Test 9.3: Testing segment index 0 physical network failed",
+        Assert.assertEquals("NeutronNetwork JAXB Test 10.3: Testing segment index 0 physical network failed",
                 "8bab8453-1bc9-45af-8c70-f83aa9b50453", segments.get(0).getProviderPhysicalNetwork());
 
-        Assert.assertEquals("NeutronNetwork JAXB Test 9.4: Testing segment index 0 network type failed", "vlan",
+        Assert.assertEquals("NeutronNetwork JAXB Test 10.4: Testing segment index 0 network type failed", "vlan",
                 segments.get(0).getProviderNetworkType());
 
-        Assert.assertEquals("NeutronNetwork JAXB Test 9.5: Testing segment index 1 segmentation id failed", null,
+        Assert.assertEquals("NeutronNetwork JAXB Test 10.5: Testing segment index 1 segmentation id failed", null,
                 segments.get(1).getProviderSegmentationID());
 
-        Assert.assertEquals("NeutronNetwork JAXB Test 9.3: Testing segment index 1 physical network failed",
+        Assert.assertEquals("NeutronNetwork JAXB Test 10.3: Testing segment index 1 physical network failed",
                 "8bab8453-1bc9-45af-8c70-f83aa9b50454", segments.get(1).getProviderPhysicalNetwork());
 
-        Assert.assertEquals("NeutronNetwork JAXB Test 9.4: Testing segment index 1 network type failed", "stt",
+        Assert.assertEquals("NeutronNetwork JAXB Test 10.4: Testing segment index 1 network type failed", "stt",
                 segments.get(1).getProviderNetworkType());
 
         Assert.assertEquals("NeutronNetwork JAXB Test 2: Testing tenant_id failed",
@@ -113,7 +119,7 @@ public class NeutronNetworkJAXBTest {
     private static final String NEUTRON_NETWORK_L3_HA_SOURCE_JSON = "{"
             + "\"name\": \"HA network tenant c15340eb65804b20af2dd0fd3beddc8c\", "
             + "\"provider:physical_network\": null, " + "\"admin_state_up\": true, " + "\"tenant_id\": \"\", "
-            + "\"mtu\": 0, " + "\"router:external\": false, " + "\"shared\": false, " + "\"vlan_transparent\": null, "
+            + "\"mtu\": 0, " + "\"router:external\": false, " + "\"shared\": false, " + "\"vlan_transparent\": false, "
             + "\"port_security_enabled\": true, " + "\"provider:network_type\": \"vxlan\", "
             + "\"id\": \"d3a2beea-c6ca-4e76-ba7d-e947c5df0c0e\", " + "\"provider:segmentation_id\": 1018 " + "}";
 
@@ -138,6 +144,9 @@ public class NeutronNetworkJAXBTest {
         Assert.assertEquals("NeutronNetwork JAXB Test 7: Testing provider segmentation id failed", "1018",
                 testObject.getProviderSegmentationID());
 
+        Assert.assertEquals("NeutronNetwork JAXB Test 8: Testing vlan_transparent failed", false,
+                testObject.getVlanTransparent());
+
         // Bug 4775: tenantId is null when json provides it as empty string
         Assert.assertNull("NeutronNetwork JAXB Test 2: Testing tenant_id failed", testObject.getTenantID());
     }
index 7075e7221bf08a4cd5ac38031036a12953cb9c37..8e9894e0c7dfd189653f01472102ffc7beed1c17 100644 (file)
@@ -63,6 +63,7 @@ public final class NeutronNetworkInterface
         result.initDefaults();
         fromMdAdminAttributes(network, result);
         result.setShared(network.isShared());
+        result.setVlanTransparent(network.isVlanTransparent());
 
         final NetworkL3Extension l3Extension = network.getAugmentation(NetworkL3Extension.class);
         result.setRouterExternal(l3Extension.isExternal());
@@ -150,6 +151,11 @@ public final class NeutronNetworkInterface
         if (network.getShared() != null) {
             networkBuilder.setShared(network.getShared());
         }
+
+        if (network.getVlanTransparent() != null) {
+            networkBuilder.setVlanTransparent(network.getVlanTransparent());
+        }
+
         return networkBuilder.build();
     }
 }