Clean up IT and address Bug 3812 80/23180/4
authorRyan Moats <rmoats@us.ibm.com>
Tue, 23 Jun 2015 15:46:01 +0000 (10:46 -0500)
committerRyan Moats <rmoats@us.ibm.com>
Tue, 23 Jun 2015 19:19:42 +0000 (14:19 -0500)
Change-Id: If6e125ec87f0341cc5b34c91375b603e18a875fd
Signed-off-by: Ryan Moats <rmoats@us.ibm.com>
22 files changed:
integration/test/src/test/java/org/opendaylight/neutron/e2etest/ITNeutronE2E.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronFloatingIPTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronIKEPoliciesTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronIPSECPoliciesTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronIPSECSiteConnectionTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronLBHealthMonitorTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronLBListenerTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronLBPoolMembersTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronLBPoolTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronLoadBalancerTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronMeteringLabelTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronMeteringRuleTests.java
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/NeutronRouterTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronSecurityGroupTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronSecurityRuleTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronSubnetTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/NeutronVPNServicesTests.java
integration/test/src/test/java/org/opendaylight/neutron/e2etest/Neutron_Bug3812_Tests.java [new file with mode: 0644]
neutron-spi/src/main/java/org/opendaylight/neutron/spi/NeutronSubnet.java
transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronSubnetInterface.java

index 42e1323ea01c9ea110ede290309f418fc2398e95..708013561edff41e9a8d58887be7cef65f867e4b 100644 (file)
@@ -148,5 +148,95 @@ public class ITNeutronE2E {
 
         NeutronIPSECSiteConnectionTests ipsec_siteConnection_test = new NeutronIPSECSiteConnectionTests(base);
         ipsec_siteConnection_test.ipsecSiteConnection_collection_get_test();
+
+    // tests related to bug 3812
+       Neutron_Bug3812_Tests bugTest = new Neutron_Bug3812_Tests(base);
+       bugTest.check_bug3812();
+    }
+
+    static HttpURLConnection HttpURLConnectionFactoryGet(URL url) throws Exception {
+        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
+        httpConn.setRequestMethod("GET");
+        httpConn.setRequestProperty("Content-Type", "application/json");
+        httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
+        return(httpConn);
+    }
+
+    static HttpURLConnection HttpURLConnectionFactoryDelete(URL url) throws Exception {
+        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
+        httpConn.setRequestMethod("DELETE");
+        httpConn.setRequestProperty("Content-Type", "application/json");
+        httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
+        return(httpConn);
+    }
+
+    static HttpURLConnection HttpURLConnectionFactoryPost(URL url, String content) throws Exception {
+        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
+        httpConn.setRequestMethod("POST");
+        httpConn.setRequestProperty("Content-Type", "application/json");
+        httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
+        httpConn.setDoOutput(true);
+        OutputStreamWriter out = new OutputStreamWriter(
+            httpConn.getOutputStream());
+        out.write(content);
+        out.close();
+        return(httpConn);
+    }
+
+    static HttpURLConnection HttpURLConnectionFactoryPut(URL url, String content) throws Exception {
+        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
+        httpConn.setRequestMethod("PUT");
+        httpConn.setRequestProperty("Content-Type", "application/json");
+        httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
+        httpConn.setDoOutput(true);
+        OutputStreamWriter out = new OutputStreamWriter(
+            httpConn.getOutputStream());
+        out.write(content);
+        out.close();
+        return(httpConn);
+    }
+
+    static void test_create(String url_s, String content, String context) {
+        try {
+            URL url = new URL(url_s);
+            HttpURLConnection httpConn = HttpURLConnectionFactoryPost(url, content);
+            Assert.assertEquals(context, 201, httpConn.getResponseCode());
+        } catch (Exception e) {
+            e.printStackTrace(); // temporary, remove me
+            Assert.assertFalse("E2E Tests Failed", true);
+        }
+    }
+
+    static void test_modify(String url_s, String content, String context) {
+        try {
+            URL url = new URL(url_s);
+            HttpURLConnection httpConn = HttpURLConnectionFactoryPut(url, content);
+            Assert.assertEquals(context, 200, httpConn.getResponseCode());
+        } catch (Exception e) {
+            e.printStackTrace(); // temporary, remove me
+            Assert.assertFalse("E2E Tests Failed", true);
+        }
+    }
+
+    static void test_fetch(String url_s, String context) {
+        try {
+            URL url = new URL(url_s);
+            HttpURLConnection httpConn = HttpURLConnectionFactoryGet(url);
+            Assert.assertEquals(context, 200, httpConn.getResponseCode());
+        } catch (Exception e) {
+            e.printStackTrace(); // temporary, remove me
+            Assert.assertFalse("E2E Tests Failed", true);
+        }
+    }
+
+    static void test_delete(String url_s, String context) {
+        try {
+            URL url = new URL(url_s);
+            HttpURLConnection httpConn = HttpURLConnectionFactoryDelete(url);
+            Assert.assertEquals(context, 204, httpConn.getResponseCode());
+        } catch (Exception e) {
+            e.printStackTrace(); // temporary, remove me
+            Assert.assertFalse("E2E Tests Failed", true);
+        }
     }
 }
index 6d961e50d86239cdd0de8ddd5bd41610ee74fab1..4327dbcf1f9f21d5dec2c5ec42d59c1d87185b09 100644 (file)
@@ -25,17 +25,7 @@ public class NeutronFloatingIPTests {
     }
 
     public void floatingIP_collection_get_test() {
-        String url_s = base + "/floatingips";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("FloatingIP Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/floatingips";
+        ITNeutronE2E.test_fetch(url,"FloatingIP Collection GET failed");
     }
 }
index 2b8763e7cb379ec09fb1c2e45cfbcba90062c35e..3d36fbb7b30d604820c017d2ccd5d592feaf9bb1 100644 (file)
@@ -25,17 +25,7 @@ public class NeutronIKEPoliciesTests {
     }
 
     public void ikePolicy_collection_get_test() {
-        String url_s = base + "/vpn/ikepolicies";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("IKE Policy GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/vpn/ikepolicies";
+        ITNeutronE2E.test_fetch(url, "IKE Policy GET failed");
     }
 }
index 2391372201c16cb0b2a7eaec4e8541bbf6d126c0..7bb815b0872470257768d19b59eedc8c5fb7df57 100644 (file)
@@ -25,17 +25,7 @@ public class NeutronIPSECPoliciesTests {
     }
 
     public void ipsecPolicy_collection_get_test() {
-        String url_s = base + "/vpn/ipsecpolicies";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("IPSEC Policy Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/vpn/ipsecpolicies";
+        ITNeutronE2E.test_fetch(url, "IPSEC Policy Collection GET failed");
     }
 }
index 75016a967720d7ff78f1358c63c72b6d9e94b8ac..788707813ed1ca364d1ecf8cde68524086e1b721 100644 (file)
@@ -25,17 +25,7 @@ public class NeutronIPSECSiteConnectionTests {
     }
 
     public void ipsecSiteConnection_collection_get_test() {
-        String url_s = base + "/vpn/ipsecsiteconnections";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("IPSEC Site Connection Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/vpn/ipsecsiteconnections";
+        ITNeutronE2E.test_fetch(url, "IPSEC Site Connection Collection GET failed");
     }
 }
index 545cd6edce528902675e7c97ef1d721982d7d7f1..eaa18e2a1748a7926b51c1821f5c87bff3bbbe00 100644 (file)
@@ -25,17 +25,7 @@ public class NeutronLBHealthMonitorTests {
     }
 
     public void healthMonitor_collection_get_test() {
-        String url_s = base + "/lbaas/healthmonitors";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("LB Health Monitor Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/lbaas/healthmonitors";
+        ITNeutronE2E.test_fetch(url, "LB Health Monitor Collection GET failed");
     }
 }
index a18082624bc774decfb92550ebb009913257b5fe..1514a8ac0bb567477702abf5613ddc7d3003d30f 100644 (file)
@@ -25,23 +25,13 @@ public class NeutronLBListenerTests {
     }
 
     public void listener_collection_get_test() {
-        String url_s = base + "/lbaas/listeners";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("LB Listener Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/lbaas/listeners";
+        ITNeutronE2E.test_fetch(url, "LB Listener Collection GET failed");
     }
 
     //TODO handle SB check
     public void singleton_lb_listener_create_test() {
-        String url_s = base + "/lbaas/listeners";
+        String url = base + "/lbaas/listeners";
         String content = "{ \"listener\": { " +
             "\"admin_state_up\": true, " +
             "\"connection_limit\": 100, " +
@@ -54,22 +44,6 @@ public class NeutronLBListenerTests {
             "\"protocol\": \"HTTP\", " +
             "\"protocol_port\": 80, " +
             "\"tenant_id\": \"b7c1a69e88bf4b21a8148f787aef2081\" } }";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("Singleton LB Listener Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content, "Singleton LB Listener Post Failed NB");
     }
 }
index 273b72866f689497d905f1e98265a6970e4676da..05af34b66f474878614fa848906cb01ebbaf1145 100644 (file)
@@ -30,10 +30,7 @@ public class NeutronLBPoolMembersTests {
         String url_s = base + "/pools";
         try {
             URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
+            HttpURLConnection httpConn = ITNeutronE2E.HttpURLConnectionFactoryGet(url);
             Assert.assertEquals("LB Pool Collection GET failed",
                         200, httpConn.getResponseCode());
         } catch (Exception e) {
index 10c226f5d2a5efabb191553131a169a2cf186ace..f9ee7c19f1e695b59614185bad06a63bc138e724 100644 (file)
@@ -25,23 +25,13 @@ public class NeutronLBPoolTests {
     }
 
     public void pool_collection_get_test() {
-        String url_s = base + "/lbaas/pools";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("LB Pool Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/lbaas/pools";
+        ITNeutronE2E.test_fetch(url, "LB Pool Collection GET failed");
     }
 
     //TODO handle SB check
     public void singleton_lb_pool_create_test() {
-        String url_s = base + "/lbaas/pools";
+        String url = base + "/lbaas/pools";
         String content = "{ \"pool\": { " +
             "\"admin_state_up\": true, " +
             "\"description\": \"simple pool\", " +
@@ -57,23 +47,7 @@ public class NeutronLBPoolTests {
                 "\"cookie_name\": \"my_cookie\", " +
                 "\"type\": \"APP_COOKIE\" }, " +
             "\"tenant_id\": \"b7c1a69e88bf4b21a8148f787aef2081\" } }";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("Singleton LB Pool Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content, "Singleton LB Pool Post Failed NB");
     }
 
 }
index 7c880c39259721a7e909a301f1d4ad25b107b261..a1f5d6a1e3992661d1eb5a3c6a90c73f736059cb 100644 (file)
@@ -25,23 +25,13 @@ public class NeutronLoadBalancerTests {
     }
 
     public void loadBalancer_collection_get_test() {
-        String url_s = base + "/lbaas/loadbalancers";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("Load Balancer Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/lbaas/loadbalancers";
+        ITNeutronE2E.test_fetch(url, "Load Balancer Collection GET failed");
     }
 
     //TODO handle SB check
     public void singleton_loadbalancer_create_test() {
-        String url_s = base + "/lbaas/loadbalancers";
+        String url = base + "/lbaas/loadbalancers";
         String content = "{ \"loadbalancer\": { " +
             "\"admin_state_up\": true, " +
             "\"description\": \"simple lb\", " +
@@ -53,22 +43,6 @@ public class NeutronLoadBalancerTests {
             "\"tenant_id\": \"b7c1a69e88bf4b21a8148f787aef2081\", " +
             "\"vip_address\": \"10.0.0.4\", " +
             "\"vip_subnet_id\": \"013d3059-87a4-45a5-91e9-d721068ae0b2\" } }";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("Singleton Load Balancer Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content, "Singleton Load Balancer Post Failed NB");
     }
 }
index 254c23259e51fdf35fc8fdbb01efb7b954a84ceb..baded5e943a315fb8a682f5119ff5746cb13fb11 100644 (file)
@@ -25,44 +25,18 @@ public class NeutronMeteringLabelTests {
     }
 
     public void meteringLabel_collection_get_test() {
-        String url_s = base + "/metering/metering-labels";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("Metering Label Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/metering/metering-labels";
+        ITNeutronE2E.test_fetch(url, "Metering Label Collection GET failed");
     }
 
     //TODO handle SB check
     public void singleton_meteringLabel_create_test() {
-        String url_s = base + "/metering/metering-labels";
+        String url = base + "/metering/metering-labels";
         String content = "{ \"metering_label\": { " +
             "\"tenant_id\": \"45345b0ee1ea477fac0f541b2cb79cd4\", " +
             "\"description\": \"description of label1\", " +
             "\"name\": \"label1\", " +
             "\"id\": \"bc91b832-8465-40a7-a5d8-ba87de442266\" } }";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("Singleton Metering Label Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content, "Singleton Metering Label Post Failed NB");
     }
 }
index 2e3a7b1ba4167679094f767283c3c89b744c37f7..272c2d733f2fa2e37c546a227ea1f7ac8fb5b597 100644 (file)
@@ -25,45 +25,19 @@ public class NeutronMeteringRuleTests {
     }
 
     public void meteringRule_collection_get_test() {
-        String url_s = base + "/metering/metering-label-rules";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("Metering Rule Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/metering/metering-label-rules";
+        ITNeutronE2E.test_fetch(url, "Metering Rule Collection GET failed");
     }
 
     //TODO handle SB check
     public void singleton_meteringLabel_create_test() {
-        String url_s = base + "/metering/metering-label-rules";
+        String url = base + "/metering/metering-label-rules";
         String content = "{ \"metering_label_rule\": { " +
             "\"remote_ip_prefix\": \"10.0.1.0/24\", " +
             "\"direction\": \"ingress\", " +
             "\"metering_label_id\": \"bc91b832-8465-40a7-a5d8-ba87de442266\", " +
             "\"id\": \"00e13b58-b4f2-4579-9c9c-7ac94615f9ae\", " +
             "\"excluded\": false } }";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("Singleton Metering Rule Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content, "Singleton Metering Rule Post Failed NB");
     }
 }
index 87de779005d4b0c363ab2981b53459a48201cade..4ad302938afbada386ee85ebda5fc9dcbf3294fd 100644 (file)
@@ -30,10 +30,7 @@ public class NeutronNetworkTests {
             int i = 0;
             while (i < 60) {
                 URL url = new URL(url_s);
-                HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-                httpConn.setRequestMethod("GET");
-                httpConn.setRequestProperty("Content-Type", "application/json");
-                httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
+                HttpURLConnection httpConn = ITNeutronE2E.HttpURLConnectionFactoryGet(url);
                 if (httpConn.getResponseCode() != 200) {
                     System.out.println("trial "+Integer.toString(i)+": failed with: " +
                                        Integer.toString(httpConn.getResponseCode()));
@@ -53,7 +50,7 @@ public class NeutronNetworkTests {
 
     //TODO handle SB check
     public void singleton_network_create_test() {
-        String url_s = base + "/networks";
+        String url = base + "/networks";
         String content = "{ \"network\": {" +
             " \"status\": \"ACTIVE\", \"subnets\": [], " +
             " \"name\": \"net1\", \"admin_state_up\": true, " +
@@ -67,50 +64,18 @@ public class NeutronNetworkTests {
             " \"provider:network_type\": \"stt\" } ], " +
             " \"shared\": false, \"id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\" " +
             " } } ";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("Singleton Network Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content,"Singleton Network Post Failed NB");
     }
 
     //TODO handle SB check
     public void external_network_create_test() {
-        String url_s = base + "/networks";
+        String url = base + "/networks";
         String content = "{ \"network\": {" +
             " \"status\": \"ACTIVE\", \"subnets\": [], " +
             " \"name\": \"external1\", \"admin_state_up\": true, " +
             " \"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\", " +
             " \"router:external\": true, \"shared\": false, " +
             " \"id\": \"8ca37218-28ff-41cb-9b10-039601ea7e6b\" } } ";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("External Network Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content,"External Network Post Failed NB");
     }
 }
index 87e14a13f2ba76fe2795342239faee97caf9ba4d..453a299632352184b7d507375c41dfe84df64b76 100644 (file)
@@ -25,23 +25,13 @@ public class NeutronPortTests {
     }
 
     public void port_collection_get_test() {
-        String url_s = base + "/ports";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("Ports Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/ports";
+        ITNeutronE2E.test_fetch(url, "Ports Collection GET failed");
     }
 
     //TODO handle SB check
     public void singleton_port_create_test() {
-        String url_s = base + "/ports";
+        String url = base + "/ports";
         String content = "{ \"port\": { \"status\": \"DOWN\","+
             "\"binding:host_id\": \"\","+
             "\"name\": \"private-port\","+
@@ -61,45 +51,13 @@ public class NeutronPortTests {
             "\"id\": \"65c0ee9f-d634-4522-8954-51021b570b0d\","+
             "\"security_groups\": [ \"f0ac4394-7e4a-4409-9701-ba8be283dbc3\" ],"+
             "\"device_id\": \"\" } }";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("Singleton Port Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content,"Singleton Port Post Failed NB");
     }
 
     //TODO handle SB check
     public void router_interface_port_create_test() {
-        String url_s = base + "/ports";
+        String url = base + "/ports";
         String content = "{\"port\": {\"status\": \"DOWN\", \"binding:host_id\": \"\", \"allowed_address_pairs\": [], \"device_owner\": \"network:router_gateway\", \"binding:profile\": {}, \"fixed_ips\": [{\"subnet_id\": \"3b80198d-4f7b-4f77-9ef5-774d54e17126\", \"ip_address\": \"10.0.0.1\"}], \"id\": \"d8a4cc85-ad78-46ac-b5a1-8e04f16fa51e\", \"security_groups\": [], \"device_id\": \"8604a0de-7f6b-409a-a47c-a1cc7bc77b2e\", \"name\": \"\", \"admin_state_up\": true, \"network_id\": \"4e8e5957-649f-477b-9e5b-f1f75b21c03c\", \"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\", \"binding:vif_details\": {}, \"binding:vnic_type\": \"normal\", \"binding:vif_type\": \"unbound\", \"mac_address\": \"fa:16:3e:dc:1d:8d\"}}";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("Router Interface Port Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content, "Router Interface Port Post Failed NB");
     }
 }
index 97b27978c1b986a9e67a6cb3513efc9f0250f1f7..b9c03125f58cd46d9edf1d644a6d046f294aaddd 100644 (file)
@@ -27,23 +27,13 @@ public class NeutronRouterTests {
     }
 
     public void router_collection_get_test() {
-        String url_s = base + "/routers";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("Router Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/routers";
+        ITNeutronE2E.test_fetch(url, "Router Collection GET failed");
     }
 
     //TODO handle SB check
     public void singleton_router_create_test() {
-        String url_s = base + "/routers";
+        String url = base + "/routers";
         String content = "{ \"router\": { " +
             "\"status\": \"ACTIVE\", " +
             "\"external_gateway_info\": { " +
@@ -52,49 +42,17 @@ public class NeutronRouterTests {
             "\"admin_state_up\": true, " +
             "\"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\", " +
             "\"id\": \"8604a0de-7f6b-409a-a47c-a1cc7bc77b2e\" } } ";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("Singleton Router Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content, "Singleton Router Post Failed NB");
     }
 
     //TODO handle SB check
     public void router_add_interface_test() {
-        String url_s = base + "/routers/8604a0de-7f6b-409a-a47c-a1cc7bc77b2e/add_router_interface";
+        String url = base + "/routers/8604a0de-7f6b-409a-a47c-a1cc7bc77b2e/add_router_interface";
         String content = "{ " +
             "\"subnet_id\": \"3b80198d-4f7b-4f77-9ef5-774d54e17126\", " +
             "\"port_id\": \"d8a4cc85-ad78-46ac-b5a1-8e04f16fa51e\", " +
             "\"tenant_id\": \"9bacb3c5d39d41a79512987f338cf177\", " +
             "\"id\": \"8604a0de-7f6b-409a-a47c-a1cc7bc77b2e\"}";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("PUT");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("Add Interface to Router Put Failed NB",
-                200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_modify(url, content, "Add Interface to Router Put Failed NB");
     }
 }
index 66ff4dda6754836a86bb88ec6b92b928024ffdf5..ae1a8bf642b9ca8ba12f3b38df3d7cfe5c614e0d 100644 (file)
@@ -25,17 +25,7 @@ public class NeutronSecurityGroupTests {
     }
 
     public void securityGroup_collection_get_test() {
-        String url_s = base + "/security-groups";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("Security Group Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/security-groups";
+        ITNeutronE2E.test_fetch(url, "Security Group Collection GET failed");
     }
 }
index ef5cd2f96dd6120d3cbd9e17ad75b9e9319daf3c..04fdace8d1c81452ab0118c5e3e825bc64b320af 100644 (file)
@@ -25,17 +25,7 @@ public class NeutronSecurityRuleTests {
     }
 
     public void securityRule_collection_get_test() {
-        String url_s = base + "/security-group-rules";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("Security Rule Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/security-group-rules";
+        ITNeutronE2E.test_fetch(url, "Security Rule Collection GET failed");
     }
 }
index 4f7a2039e7ad7a82dde599b7d8b183eca6cbcd5c..f48de9e19d9e185a572063ca5976baab0d4ed6cf 100644 (file)
@@ -25,23 +25,13 @@ public class NeutronSubnetTests {
     }
 
     public void subnet_collection_get_test() {
-        String url_s = base + "/subnets";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("Subnet Collection GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/subnets";
+        ITNeutronE2E.test_fetch(url, "Subnet Collection GET failed");
     }
 
     //TODO handle SB check
     public void singleton_subnet_create_test() {
-        String url_s = base + "/subnets";
+        String url = base + "/subnets";
         String content = " { \"subnet\": { "+
             "\"name\": \"\", "+
             "\"enable_dhcp\": true, "+
@@ -56,28 +46,12 @@ public class NeutronSubnetTests {
             "\"gateway_ip\": \"10.0.0.1\", "+
             "\"cidr\": \"10.0.0.0/24\", "+
             "\"id\": \"3b80198d-4f7b-4f77-9ef5-774d54e17126\" } } ";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("Singleton Subnet Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content, "Singleton Subnet Post Failed NB");
     }
 
     //TODO handle SB check
     public void external_subnet_create_test() {
-        String url_s = base + "/subnets";
+        String url = base + "/subnets";
         String content = " { \"subnet\": { "+
             "\"name\": \"\", "+
             "\"enable_dhcp\": true, "+
@@ -92,22 +66,6 @@ public class NeutronSubnetTests {
             "\"gateway_ip\": \"10.1.0.1\", "+
             "\"cidr\": \"10.1.0.0/24\", "+
             "\"id\": \"f13b537f-1268-455f-b5fa-1e6817a9c204\" } } ";
-
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("POST");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            httpConn.setDoOutput(true);
-            OutputStreamWriter out = new OutputStreamWriter(
-                httpConn.getOutputStream());
-            out.write(content);
-            out.close();
-            Assert.assertEquals("External Subnet Post Failed NB",
-                201, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        ITNeutronE2E.test_create(url, content, "External Subnet Post Failed NB");
     }
 }
index 51848b07afb6e5ae215645866833856c065fb715..8b7dfd9a13ef4a29c279fa28bfd0318fad06f9c4 100644 (file)
@@ -25,17 +25,7 @@ public class NeutronVPNServicesTests {
     }
 
     public void vpnService_collection_get_test() {
-        String url_s = base + "/vpn/vpnservices";
-        try {
-            URL url = new URL(url_s);
-            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
-            httpConn.setRequestMethod("GET");
-            httpConn.setRequestProperty("Content-Type", "application/json");
-            httpConn.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
-            Assert.assertEquals("VPN Services GET failed",
-                        200, httpConn.getResponseCode());
-        } catch (Exception e) {
-            Assert.assertFalse("E2E Tests Failed", true);
-        }
+        String url = base + "/vpn/vpnservices";
+        ITNeutronE2E.test_fetch(url, "VPN Services GET failed");
     }
 }
diff --git a/integration/test/src/test/java/org/opendaylight/neutron/e2etest/Neutron_Bug3812_Tests.java b/integration/test/src/test/java/org/opendaylight/neutron/e2etest/Neutron_Bug3812_Tests.java
new file mode 100644 (file)
index 0000000..0dcaa9d
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2015 IBM, Inc.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.neutron.e2etest;
+
+import java.io.OutputStreamWriter;
+
+import java.lang.Thread;
+
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+import org.junit.Assert;
+
+public class Neutron_Bug3812_Tests {
+    String base;
+
+    public Neutron_Bug3812_Tests(String base) {
+        this.base = base;
+    }
+
+    public void check_bug3812() {
+        // create network
+        String url_n = base + "/networks";
+        String content_n = "{\"network\": {\"name\": \"test\", \"provider:physical_network\": \"\", \"router:external\": false, \"tenant_id\": \"04684ce029a6415ca8a9293a24f884b9\", \"admin_state_up\": true, \"shared\": false, \"provider:network_type\": \"vxlan\", \"id\": \"ec36ae5a-ff7f-4441-8229-179e5d5207a7\", \"provider:segmentation_id\": 2550}}";
+        ITNeutronE2E.test_create(url_n, content_n, "Bug 3812 Network Post Failed");
+
+        // create first subnet
+        String url_s = base + "/subnets";
+        String content_s1 = "{\"subnet\": {\"name\": \"s1\", \"enable_dhcp\": true, \"network_id\": \"ec36ae5a-ff7f-4441-8229-179e5d5207a7\", \"tenant_id\": \"04684ce029a6415ca8a9293a24f884b9\", \"dns_nameservers\": [], \"gateway_ip\": \"10.0.0.1\", \"ipv6_ra_mode\": \"\", \"allocation_pools\": [{\"start\": \"10.0.0.2\", \"end\": \"10.0.3.254\"}], \"host_routes\": [], \"shared\": false, \"ip_version\": 4, \"ipv6_address_mode\": \"\", \"cidr\": \"10.0.0.0/22\", \"id\": \"64605c41-688d-4548-97da-0f895943f840\", \"subnetpool_id\": \"\"}}";
+        ITNeutronE2E.test_create(url_s, content_s1, "Bug 3812 Subnet 1 Post Failed");
+
+        String url_p = base + "/ports";
+        String content_p1 = "{\"port\": {\"binding:host_id\": \"libra\", \"allowed_address_pairs\": [], \"device_owner\": \"network:dhcp\", \"binding:profile\": {}, \"fixed_ips\": [{\"subnet_id\": \"64605c41-688d-4548-97da-0f895943f840\", \"ip_address\": \"10.0.0.2\"}], \"id\": \"fcd1d7ab-8486-42a0-8f60-9d1a682aa00e\", \"security_groups\": [], \"device_id\": \"dhcp1c8f692f-b8db-5449-80ea-c9243b652e59-ec36ae5a-ff7f-4441-8229-179e5d5207a7\", \"name\": \"\", \"admin_state_up\": true, \"network_id\": \"ec36ae5a-ff7f-4441-8229-179e5d5207a7\", \"tenant_id\": \"04684ce029a6415ca8a9293a24f884b9\", \"binding:vif_details\": {}, \"binding:vnic_type\": \"normal\", \"binding:vif_type\": \"unbound\", \"mac_address\": \"FA:16:3E:02:CB:DE\"}}";
+        ITNeutronE2E.test_create(url_p, content_p1, "Bug 3812 DHCP Port 1 Post Failed");
+
+        String url_p1 = url_p + "/fcd1d7ab-8486-42a0-8f60-9d1a682aa00e";
+        String content_p1m1 = "{\"port\": {\"binding:host_id\": \"libra\", \"allowed_address_pairs\": [], \"extra_dhcp_opts\": [], \"device_owner\": \"network:dhcp\", \"binding:profile\": {}, \"security_groups\": [], \"device_id\": \"dhcp1c8f692f-b8db-5449-80ea-c9243b652e59-ec36ae5a-ff7f-4441-8229-179e5d5207a7\", \"name\": \"\", \"admin_state_up\": true, \"binding:vif_details\": {\"port_filter\": true}, \"binding:vnic_type\": \"normal\", \"binding:vif_type\": \"ovs\"}}";
+        ITNeutronE2E.test_modify(url_p1, content_p1m1, "Bug 3812 DHCP Port 1 Put 1 Failed");
+
+        // subnet 2 create
+        String content_s2 = "{\"subnet\": {\"name\": \"s2\", \"enable_dhcp\": true, \"network_id\": \"ec36ae5a-ff7f-4441-8229-179e5d5207a7\", \"tenant_id\": \"04684ce029a6415ca8a9293a24f884b9\", \"dns_nameservers\": [], \"gateway_ip\": \"20.0.0.1\", \"ipv6_ra_mode\": \"\", \"allocation_pools\": [{\"start\": \"20.0.0.2\", \"end\": \"20.0.3.254\"}], \"host_routes\": [], \"shared\": false, \"ip_version\": 4, \"ipv6_address_mode\": \"\", \"cidr\": \"20.0.0.0/22\", \"id\": \"dd9b62eb-d9a3-42b5-b2f1-bffa43475614\", \"subnetpool_id\": \"\"}}";
+        ITNeutronE2E.test_create(url_s, content_s2, "Bug 3812 Subnet 2 Post Failed");
+
+        String content_p1m2 = "{\"port\": {\"binding:host_id\": \"libra\", \"allowed_address_pairs\": [], \"extra_dhcp_opts\": [], \"device_owner\": \"network:dhcp\", \"binding:profile\": {}, \"security_groups\": [], \"device_id\": \"dhcp1c8f692f-b8db-5449-80ea-c9243b652e59-ec36ae5a-ff7f-4441-8229-179e5d5207a7\", \"name\": \"\", \"admin_state_up\": true, \"binding:vif_details\": {\"port_filter\": true}, \"binding:vnic_type\": \"normal\", \"binding:vif_type\": \"ovs\"}}";
+        ITNeutronE2E.test_modify(url_p1, content_p1m2, "Bug 3812 DHCP Port Put 2 Failed");
+
+        // delete first subnet
+        String content_p1m3 = "{\"port\": {\"binding:host_id\": \"libra\", \"allowed_address_pairs\": [], \"extra_dhcp_opts\": [], \"device_owner\": \"network:dhcp\", \"binding:profile\": {}, \"security_groups\": [], \"device_id\": \"dhcp1c8f692f-b8db-5449-80ea-c9243b652e59-ec36ae5a-ff7f-4441-8229-179e5d5207a7\", \"name\": \"\", \"admin_state_up\": true, \"binding:vif_details\": {\"port_filter\": true}, \"binding:vnic_type\": \"normal\", \"binding:vif_type\": \"ovs\"}}";
+        ITNeutronE2E.test_modify(url_p1, content_p1m3, "Bug 3812 DHCP Port Put 3 Failed");
+
+        String url_s1 = url_s + "/64605c41-688d-4548-97da-0f895943f840";
+        ITNeutronE2E.test_delete(url_s1, "Bug 3812 Subnet 1 Delete Failed");
+    }
+}
index 9129aa3da80cce5c1d7c81d99e376452e6727212..d825d1662e2b94e82883b7dd498e4b2526168a78 100644 (file)
@@ -392,6 +392,16 @@ public class NeutronSubnet implements Serializable, INeutronObject {
         return myPorts;
     }
 
+    public List<NeutronPort> getPortsInSubnet(String ignore) {
+        List<NeutronPort> ans = new ArrayList<NeutronPort>();
+        for (NeutronPort port : myPorts) {
+            if (!port.getDeviceOwner().equalsIgnoreCase(ignore)) {
+                ans.add(port);
+            }
+        }
+        return ans;
+    }
+
     public void addPort(NeutronPort port) {
         myPorts.add(port);
     }
index 291bae40810ab5b5bd14f12e9fef71a3eb0c754f..7d974d323c83e9a08316a948e3f044c7e4a1fea4 100644 (file)
@@ -159,7 +159,8 @@ public class NeutronSubnetInterface extends AbstractNeutronInterface<Subnet, Neu
             return true;
         }
         NeutronSubnet target = subnetDB.get(subnetUUID);
-        return (target.getPortsInSubnet().size() > 0);
+       // note: we want to ignore the DHCP ports, so...
+        return (target.getPortsInSubnet("network:dhcp").size() > 0);
     }
 
         protected Subnet toMd(NeutronSubnet subnet) {