Fix comparison logic in neutron floating ip rest implementation 22/9922/1
authorFlavio Fernandes <ffernand@redhat.com>
Wed, 13 Aug 2014 16:43:38 +0000 (12:43 -0400)
committerFlavio Fernandes <ffernand@redhat.com>
Wed, 13 Aug 2014 16:43:38 +0000 (12:43 -0400)
* Detect when external network has no subnets (in addition to more than one)
* Fix compare after looking up NeutronFloatingIP singleton

Change-Id: Id84360fc9d984e9815de56b90be4a1c753fdbcd8
Signed-off-by: Flavio Fernandes <ffernand@redhat.com>
opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFloatingIPsNorthbound.java

index f931912..af7cfd1 100644 (file)
@@ -203,7 +203,7 @@ public class NeutronFloatingIPsNorthbound {
             // if floating IP is specified, make sure it can come from the network
             String floatingIP = singleton.getFloatingIPAddress();
             if (floatingIP != null) {
             // if floating IP is specified, make sure it can come from the network
             String floatingIP = singleton.getFloatingIPAddress();
             if (floatingIP != null) {
-                if (externNetwork.getSubnets().size() > 1)
+                if (externNetwork.getSubnets().size() != 1)
                     throw new BadRequestException("external network doesn't have a subnet");
                 NeutronSubnet externSubnet = subnetInterface.getSubnet(externNetwork.getSubnets().get(0));
                 if (!externSubnet.isValidIP(floatingIP))
                     throw new BadRequestException("external network doesn't have a subnet");
                 NeutronSubnet externSubnet = subnetInterface.getSubnet(externNetwork.getSubnets().get(0));
                 if (!externSubnet.isValidIP(floatingIP))
@@ -312,7 +312,7 @@ public class NeutronFloatingIPsNorthbound {
         if (!input.isSingleton())
             throw new BadRequestException("only singleton requests allowed.");
         NeutronFloatingIP singleton = input.getSingleton();
         if (!input.isSingleton())
             throw new BadRequestException("only singleton requests allowed.");
         NeutronFloatingIP singleton = input.getSingleton();
-        if (singleton.getID() != null)
+        if (singleton.getID() == null)
             throw new BadRequestException("singleton UUID doesn't exist.");
 
         NeutronNetwork externNetwork = networkInterface.getNetwork(
             throw new BadRequestException("singleton UUID doesn't exist.");
 
         NeutronNetwork externNetwork = networkInterface.getNetwork(
@@ -321,7 +321,7 @@ public class NeutronFloatingIPsNorthbound {
         // if floating IP is specified, make sure it can come from the network
         String floatingIP = singleton.getFloatingIPAddress();
         if (floatingIP != null) {
         // if floating IP is specified, make sure it can come from the network
         String floatingIP = singleton.getFloatingIPAddress();
         if (floatingIP != null) {
-            if (externNetwork.getSubnets().size() > 1)
+            if (externNetwork.getSubnets().size() != 1)
                 throw new BadRequestException("external network doesn't have a subnet.");
             NeutronSubnet externSubnet = subnetInterface.getSubnet(externNetwork.getSubnets().get(0));
             if (!externSubnet.isValidIP(floatingIP))
                 throw new BadRequestException("external network doesn't have a subnet.");
             NeutronSubnet externSubnet = subnetInterface.getSubnet(externNetwork.getSubnets().get(0));
             if (!externSubnet.isValidIP(floatingIP))