Bug 7848: Allow neutron port create with security disabled. 67/52267/8
authorIsaku Yamahata <isaku.yamahata@intel.com>
Mon, 27 Feb 2017 23:04:24 +0000 (15:04 -0800)
committerAchuth Maniyedath <achuth.m@altencalsoftlabs.com>
Fri, 3 Mar 2017 02:25:44 +0000 (07:55 +0530)
Add default parameters in test validation.

Change-Id: Id5fcf5701763d72274a96f1a0af29a7546bc24f8
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
Signed-off-by: Achuth Maniyedath <achuth.m@altencalsoftlabs.com>
12 files changed:
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronNetworkTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronPortTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronTrunkTests.java
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronAdminAttributes.java
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronBgpvpn.java
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronFirewallRule.java
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronNetwork.java
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronPort.java
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronRouter.java
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronSecurityGroup.java
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronSecurityRule.java
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronTrunk.java

index 660a4d26550ed3c6f6bb890605f47907e29073f9..6d3ce6054b69418e0b84eeab35f4df416bbbcf1e 100644 (file)
@@ -8,6 +8,8 @@
 
 package org.opendaylight.neutron.e2etest;
 
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
 import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.net.URL;
@@ -65,6 +67,39 @@ public class NeutronNetworkTests {
         ITNeutronE2E.test_fetch_with_one_query_item(url, createJsonString, "networks");
     }
 
+    public String singleton_default_network_create_test() {
+        String url = base + "/networks";
+        String content = "{ \"network\": {" + "\"name\": \"netdefault\", \"subnets\": [], "
+                + " \"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\", "
+                + " \"router:external\": false, \"segments\": [ " + " { \"provider:segmentation_id\": 2, "
+                + " \"provider:physical_network\": \"8bab8453-1bc9-45af-8c70-f83aa9b50453\", "
+                + " \"provider:network_type\": \"vlan\" }, { " + " \"provider:segmentation_id\": null, "
+                + " \"provider:physical_network\": \"8bab8453-1bc9-45af-8c70-f83aa9b50453\", "
+                + " \"provider:network_type\": \"stt\" } ], "
+                + " \"id\": \"de8e5957-d49f-d77b-de5b-d1f75b21c03c\" " + " } } ";
+        ITNeutronE2E.test_create(url, content, "Singleton Default Network Post Failed NB");
+        return content;
+    }
+
+    public void default_network_content_validation_test() {
+        //Validates Network default parameters are set.
+        //Default parameters: status,shared
+        String element = "status";
+        String url = base + "/networks/de8e5957-d49f-d77b-de5b-d1f75b21c03c?fields=" + element;
+        String expectedContent = "\"ACTIVE\"";
+        String context = "Network details do not match.";
+        JsonObject jsonObjectOutput = ITNeutronE2E.test_fetch_gson(url, context);
+        jsonObjectOutput = jsonObjectOutput.getAsJsonObject("network");
+        JsonElement jsonElementValue = jsonObjectOutput.get(element);
+        Assert.assertEquals(context, expectedContent, String.valueOf(jsonElementValue));
+        element = "shared";
+        url = base + "/networks/de8e5957-d49f-d77b-de5b-d1f75b21c03c?fields=" + element;
+        jsonObjectOutput = ITNeutronE2E.test_fetch_gson(url, context);
+        jsonObjectOutput = jsonObjectOutput.getAsJsonObject("network");
+        jsonElementValue = jsonObjectOutput.get(element);
+        Assert.assertEquals(context, false, jsonElementValue.getAsBoolean());
+    }
+
     //TODO handle SB check
     public void external_network_create_test() {
         String url = base + "/networks";
@@ -137,6 +172,8 @@ public class NeutronNetworkTests {
         networkTester.network_collection_get_test_with_wait();
         String createJsonString = networkTester.singleton_network_create_test();
         networkTester.singleton_network_get_with_one_query_item_test(createJsonString);
+        networkTester.singleton_default_network_create_test();
+        networkTester.default_network_content_validation_test();
         networkTester.external_network_create_test(); //needed for router test
         networkTester.bulk_network_create_test();
         networkTester.network_update_test();
index 882e42bcf826e666a9d7a640fd477c2499b24c22..52971948581358c05653af54a165ca081a4c1b9a 100644 (file)
@@ -29,6 +29,7 @@ public class NeutronPortTests {
         String url = base + "/ports";
         String content = "{ \"port\": { \"status\": \"DOWN\"," + "\"binding:host_id\": \"\","
                 + "\"name\": \"private-port\"," + "\"allowed_address_pairs\": []," + "\"admin_state_up\": true,"
+                + "\"port_security_enabled\": true,"
                 + "\"network_id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\","
                 + "\"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\"," + "\"binding:vif_details\": {},"
                 + "\"binding:vnic_type\": \"normal\"," + "\"binding:vif_type\": \"unbound\","
@@ -45,6 +46,47 @@ public class NeutronPortTests {
         ITNeutronE2E.test_fetch_with_one_query_item(url, createJsonString, "ports");
     }
 
+    public String singleton_default_port_create_test() {
+        String url = base + "/ports";
+        String content = "{ \"port\": { \"binding:host_id\": \"\","
+                + "\"name\": \"default-port\"," + "\"allowed_address_pairs\": [],"
+                + "\"network_id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\","
+                + "\"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\"," + "\"binding:vif_details\": {},"
+                + "\"binding:vnic_type\": \"normal\"," + "\"binding:vif_type\": \"unbound\","
+                + "\"device_owner\": \"\"," + "\"mac_address\": \"fa:16:3e:c9:cb:f0\"," + "\"binding:profile\": {},"
+                + "\"fixed_ips\": [ {" + "\"subnet_id\": \"3b80198d-4f7b-4f77-9ef5-774d54e17126\","
+                + "\"ip_address\": \"10.0.0.2\" } ]," + "\"id\": \"d5c0ee9f-d634-d522-d954-d1021b570b0d\","
+                + "\"security_groups\": [] ," + "\"device_id\": \"\" } }";
+        ITNeutronE2E.test_create(url, content, "Singleton Default Port Post Failed NB");
+        return content;
+    }
+
+    public void default_port_content_validation_test() {
+        //Validates NeutronPort default parameters are set.
+        //Default parameters: status,admin_state_up,port_security_enabled
+        String element = "status";
+        String url = base + "/ports/d5c0ee9f-d634-d522-d954-d1021b570b0d"
+                + "?fields=" + element;
+        String expectedContent = "\"ACTIVE\"";
+        String context = "Port details do not match.";
+        JsonObject jsonObjectOutput = ITNeutronE2E.test_fetch_gson(url, context);
+        jsonObjectOutput = jsonObjectOutput.getAsJsonObject("port");
+        JsonElement jsonElementValue = jsonObjectOutput.get(element);
+        Assert.assertEquals(context, expectedContent, String.valueOf(jsonElementValue));
+        element = "port_security_enabled";
+        url = base + "/ports/d5c0ee9f-d634-d522-d954-d1021b570b0d?fields=" + element;
+        jsonObjectOutput = ITNeutronE2E.test_fetch_gson(url, context);
+        jsonObjectOutput = jsonObjectOutput.getAsJsonObject("port");
+        jsonElementValue = jsonObjectOutput.get(element);
+        Assert.assertEquals(context, true, jsonElementValue.getAsBoolean());
+        element = "admin_state_up";
+        url = base + "/ports/d5c0ee9f-d634-d522-d954-d1021b570b0d?fields=" + element;
+        jsonObjectOutput = ITNeutronE2E.test_fetch_gson(url, context);
+        jsonObjectOutput = jsonObjectOutput.getAsJsonObject("port");
+        jsonElementValue = jsonObjectOutput.get(element);
+        Assert.assertEquals(context, true, jsonElementValue.getAsBoolean());
+    }
+
     //TODO handle SB check
     public void router_interface_port_create_test() {
         String url = base + "/ports";
@@ -83,6 +125,7 @@ public class NeutronPortTests {
                 + " \"id\": \"94225baa-9d3f-4b93-bf12-b41e7ce49cdb\", " + " \"security_groups\": [], "
                 + " \"device_id\": \"\" }, { " + " \"status\": \"DOWN\", " + " \"name\": \"sample_port_2\", "
                 + " \"allowed_address_pairs\": [], " + " \"admin_state_up\": false, "
+                + " \"port_security_enabled\": false,"
                 + " \"network_id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\", "
                 + " \"tenant_id\": \"d6700c0c9ffa4f1cb322cd4a1f3906fa\", " + " \"device_owner\": \"\", "
                 + " \"mac_address\": \"fa:16:3e:f4:73:df\", " + " \"fixed_ips\": [ { "
@@ -102,6 +145,7 @@ public class NeutronPortTests {
                 + "\"subnet_id\": \"3b80198d-4f7b-4f77-9ef5-774d54e17126\"," + " \"ip_address\": \"10.0.0.7\" } ], "
                 + " \"id\": \"43c831e0-19ce-4a76-9a49-57b57e69428b\", " + " \"security_groups\": [], "
                 + " \"device_id\": \"\", " + " \"name\": \"test-for-port-update\", " + " \"admin_state_up\": true, "
+                + " \"port_security_enabled\": true,"
                 + " \"network_id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\", "
                 + " \"tenant_id\": \"522eda8d23124b25bf03fe44f1986b74\", " + " \"binding:vif_details\": {}, "
                 + " \"binding:vnic_type\": \"normal\", " + " \"binding:vif_type\": \"binding_failed\", "
@@ -116,7 +160,7 @@ public class NeutronPortTests {
 
     public void port_element_get_with_query_test() {
         String url = base + "/ports/43c831e0-19ce-4a76-9a49-57b57e69428b"
-                + "?fields=id&fields=network_id&fields=name&fields=admin_state_up"
+                + "?fields=id&fields=network_id&fields=name&fields=admin_state_up&fields=port_seurity_enabled"
                 + "&fields=status&fields=mac_address&fields=device_id&fields=tenant_id"
                 + "&fields=device_owner&fields=limit&fields=marker&fields=page_reverse";
         ITNeutronE2E.test_fetch(url, true, "Port Element Get With Query Failed");
@@ -132,6 +176,12 @@ public class NeutronPortTests {
         jsonObjectOutput = jsonObjectOutput.getAsJsonObject("port");
         JsonElement jsonElementValue = jsonObjectOutput.get(element);
         Assert.assertEquals(context, expectedContent, String.valueOf(jsonElementValue));
+        element = "port_security_enabled";
+        url = base + "/ports/43c831e0-19ce-4a76-9a49-57b57e69428b" + "?fields=" + element;
+        jsonObjectOutput = ITNeutronE2E.test_fetch_gson(url, context);
+        jsonObjectOutput = jsonObjectOutput.getAsJsonObject("port");
+        jsonElementValue = jsonObjectOutput.get(element);
+        Assert.assertEquals(context, true,  jsonElementValue.getAsBoolean());
     }
 
     public void port_delete_test() {
@@ -148,6 +198,8 @@ public class NeutronPortTests {
         NeutronPortTests portTester = new NeutronPortTests(base);
         String createJsonString = portTester.singleton_port_create_test();
         portTester.singleton_port_get_with_one_query_item_test(createJsonString);
+        portTester.singleton_default_port_create_test();
+        portTester.default_port_content_validation_test();
         portTester.router_interface_port_create_test(); //needed for router test
         portTester.bulk_port_create_test();
         portTester.port_update_test();
index b4ffad82ce7da31d1e3a0660d81c9281a4757bfe..dc3cc40494e2654574d5a98f5d07c482ad025245 100644 (file)
@@ -8,6 +8,10 @@
 
 package org.opendaylight.neutron.e2etest;
 
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import org.junit.Assert;
+
 public class NeutronTrunkTests {
     String base;
 
@@ -39,6 +43,39 @@ public class NeutronTrunkTests {
         ITNeutronE2E.test_fetch_with_one_query_item(url, createJsonString, "trunks");
     }
 
+    public String singleton_default_trunk_create_test() {
+        String url = base + "/trunks";
+        String content = "{\"trunk\":{\"name\":\"trunkdefault\", "
+                + "\"tenant_id\":\"cc3641789c8a4304abaa841c64f638d9\", "
+                + "\"port_id\":\"60aac28d-1d3a-48d9-99bc-dd4bd62e50f2\", "
+                + "\"sub_ports\":[{\"segmentation_type\":\"vlan\", "
+                + "\"port_id\":\"dca33436-2a7c-415b-aa35-14769e7834e3\",\"segmentation_id\":101}, "
+                + "{\"segmentation_type\":\"vlan\",\"port_id\":\"be28febe-bdff-45cc-8a2d-872d54e62527\", "
+                + "\"segmentation_id\":102}],\"id\":\"d935240e-4aa6-d96a-d41c-d113c54499b9\", "
+                + "\"description\":\"test trunkdefault\"} }";
+        ITNeutronE2E.test_create(url, content, "Singleton Default Trunk Post Failed NB");
+        return content;
+    }
+
+    public void default_trunk_content_validation_test() {
+        //Validates NeutronTrunk default parmeters are set.
+        //Default parameters: status,admin_state_up
+        String element = "status";
+        String url = base + "/trunks/d935240e-4aa6-d96a-d41c-d113c54499b9?fields=" + element;
+        String expectedContent = "\"DOWN\"";
+        String context = "Trunk details do not match.";
+        JsonObject jsonObjectOutput = ITNeutronE2E.test_fetch_gson(url, context);
+        jsonObjectOutput = jsonObjectOutput.getAsJsonObject("trunk");
+        JsonElement jsonElementValue = jsonObjectOutput.get(element);
+        Assert.assertEquals(context, expectedContent, String.valueOf(jsonElementValue));
+        element = "admin_state_up";
+        url = base + "/trunks/d935240e-4aa6-d96a-d41c-d113c54499b9?fields=" + element;
+        jsonObjectOutput = ITNeutronE2E.test_fetch_gson(url, context);
+        jsonObjectOutput = jsonObjectOutput.getAsJsonObject("trunk");
+        jsonElementValue = jsonObjectOutput.get(element);
+        Assert.assertEquals(context, true, jsonElementValue.getAsBoolean());
+    }
+
     public void bulk_trunk_create_test() {
         String url = base + "/trunks";
         String content = "{\"trunks\":[{\"status\":\"DOWN\",\"name\":\"trunk1\",\"admin_state_up\":true, "
@@ -102,6 +139,8 @@ public class NeutronTrunkTests {
         trunkTester.trunk_collection_get_test();
         String createJsonString = trunkTester.singleton_trunk_create_test();
         trunkTester.singleton_trunk_get_with_one_query_item_test(createJsonString);
+        trunkTester.singleton_default_trunk_create_test();
+        trunkTester.default_trunk_content_validation_test();
         trunkTester.bulk_trunk_create_test();
         trunkTester.trunk_update_test();
         trunkTester.trunk_bulk_get_test();
index 0b1f701f2f6b98a248ac3de351b436bf06875ce2..ef28c1db02af40cd7dd116cfa53af33ef4237e60 100644 (file)
@@ -47,6 +47,16 @@ public abstract class NeutronAdminAttributes<T extends NeutronAdminAttributes> e
         this.status = status;
     }
 
+    @Override
+    public void initDefaults() {
+        if (adminStateUp == null) {
+            adminStateUp = true;
+        }
+        if (status == null) {
+            status = "ACTIVE";
+        }
+    }
+
     @Override
     protected void extractField(String field, T ans) {
         super.extractField(field, ans);
index b44db9f9287a1726ee29789fa4e3e3001dc785b4..8d6aff68bd770cb40810a2d5e19f7fc8aa32c8a3 100644 (file)
@@ -61,15 +61,10 @@ public final class NeutronBgpvpn extends NeutronAdminAttributes<NeutronBgpvpn> i
     }
 
     public void initDefaults() {
+        super.initDefaults();
         if (type == null) {
             type = "l3";
         }
-        if (status == null) {
-            status = "ACTIVE";
-        }
-        if (adminStateUp == null) {
-            adminStateUp = true;
-        }
         if (autoAggregate == null) {
             autoAggregate = false;
         }
index 83a62579915bdbcc98cd7e79459169c2b41a7f4b..6951b84c7e2ffbce4e81ce3ba68b57a2a6a6ab90 100644 (file)
@@ -248,8 +248,4 @@ public final class NeutronFirewallRule extends NeutronBaseAttributes<NeutronFire
                 + ", firewallRulePosition=" + firewallRulePosition + ", firewallRuleAction='" + firewallRuleAction
                 + '\'' + ", firewallRuleIsEnabled=" + firewallRuleIsEnabled + '}';
     }
-
-    @Override
-    public void initDefaults() {
-    }
 }
index 95bc7cfa0625799c6faeff16504d536eedb25e2c..c333a256e6a35d03b92e355e33c0110e5f80d40c 100644 (file)
@@ -63,12 +63,7 @@ public final class NeutronNetwork extends NeutronAdminAttributes<NeutronNetwork>
 
     @Override
     public void initDefaults() {
-        if (status == null) {
-            status = "ACTIVE";
-        }
-        if (adminStateUp == null) {
-            adminStateUp = true;
-        }
+        super.initDefaults();
         if (shared == null) {
             shared = false;
         }
index 3788590cf47de780c531bb46f398ba196d1d4450..b53492bb165b1919fd22b10bccaeb6e07552dc26 100644 (file)
@@ -263,10 +263,9 @@ public final class NeutronPort extends NeutronAdminAttributes<NeutronPort> imple
 
     @Override
     public void initDefaults() {
-        adminStateUp = true;
-        portSecurityEnabled = true;
-        if (status == null) {
-            status = "ACTIVE";
+        super.initDefaults();
+        if (portSecurityEnabled == null) {
+            portSecurityEnabled = true;
         }
         if (fixedIps == null) {
             fixedIps = new ArrayList<NeutronIps>();
index fe44919ca89a02133c535eddcf569c789abe41f3..983b0a9b354f8c3f5894bfd56645afd416d764a3 100644 (file)
@@ -106,11 +106,6 @@ public final class NeutronRouter extends NeutronAdminAttributes<NeutronRouter>
         return ans;
     }
 
-    @Override
-    public void initDefaults() {
-        adminStateUp = true;
-    }
-
     @Override
     public String toString() {
         return "NeutronRouter [" + "id=" + uuid + ", name=" + name + ", adminStateUp=" + adminStateUp + ", status="
index b36afe37cc0c51fb09ffe18decb81fe8f27148c2..b0634aff0bc40e6bdabfa716bb6a5e6699345c47 100644 (file)
@@ -46,9 +46,4 @@ public final class NeutronSecurityGroup extends NeutronBaseAttributes<NeutronSec
         return "NeutronSecurityGroup{" + "securityGroupUUID='" + uuid + '\'' + ", securityGroupName='"
                 + name + '\'' + ", securityGroupTenantID='" + tenantID + '\'' + "]";
     }
-
-    @Override
-    public void initDefaults() {
-        //TODO verify no defaults values are nessecary required.
-    }
 }
index ba792fd56ac64bec1459780c0dd14d15028e05c0..2a48fc95bcf2912226101f49bcf9cdb0deb964b5 100644 (file)
@@ -171,9 +171,4 @@ public final class NeutronSecurityRule extends NeutronObject<NeutronSecurityRule
                 + ", securityRuleGroupID='" + securityRuleGroupID + '\'' + ", securityRuleTenantID='" + tenantID + '\''
                 + '}';
     }
-
-    @Override
-    public void initDefaults() {
-        //TODO verify no defaults values are nessecary required.
-    }
 }
index 1d22124461f77042cb27d129b906f90e38f7c02f..8beae46abfaacd89ee27007f6c028df31f6f8278 100644 (file)
@@ -33,10 +33,12 @@ public final class NeutronTrunk extends NeutronAdminAttributes<NeutronTrunk> imp
 
     @Override
     public void initDefaults() {
-        adminStateUp = true;
+        // In order to override super.initDefaults()
+        // status needs to be checked before calling super.initDefaults()
         if (status == null) {
             status = "DOWN";
         }
+        super.initDefaults();
         if (subPorts == null) {
             subPorts = new ArrayList<>();
         }