[ONOS-3641] Update the bug which is finded by fuel installer: the
floating ip can not be deleted successfully.

Change-Id: I14609b374843f8bd88873941e4dbd3312850e34a
diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/floatingip/impl/FloatingIpManager.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/floatingip/impl/FloatingIpManager.java
index ce9bb21f..91e149a 100644
--- a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/floatingip/impl/FloatingIpManager.java
+++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/floatingip/impl/FloatingIpManager.java
@@ -176,23 +176,11 @@
         boolean result = true;
         for (FloatingIp floatingIp : floatingIps) {
             verifyFloatingIpData(floatingIp);
-            if (floatingIp.portId() != null) {
-                floatingIpStore.put(floatingIp.id(), floatingIp);
-                if (!floatingIpStore.containsKey(floatingIp.id())) {
-                    log.debug("The floating Ip is created failed whose identifier is {}",
-                              floatingIp.id().toString());
-                    result = false;
-                }
-            } else {
-                FloatingIp oldFloatingIp = floatingIpStore.get(floatingIp.id());
-                if (oldFloatingIp != null) {
-                    floatingIpStore.remove(floatingIp.id(), oldFloatingIp);
-                    if (floatingIpStore.containsKey(floatingIp.id())) {
-                        log.debug("The floating Ip is created failed whose identifier is {}",
-                                  floatingIp.id().toString());
-                        result = false;
-                    }
-                }
+            floatingIpStore.put(floatingIp.id(), floatingIp);
+            if (!floatingIpStore.containsKey(floatingIp.id())) {
+                log.debug("The floating Ip is created failed whose identifier is {}",
+                          floatingIp.id().toString());
+                result = false;
             }
         }
         return result;
@@ -204,23 +192,11 @@
         boolean result = true;
         for (FloatingIp floatingIp : floatingIps) {
             verifyFloatingIpData(floatingIp);
-            if (floatingIp.portId() != null) {
-                floatingIpStore.put(floatingIp.id(), floatingIp);
-                if (!floatingIpStore.containsKey(floatingIp.id())) {
-                    log.debug("The floating Ip is updated failed whose identifier is {}",
-                              floatingIp.id().toString());
-                    result = false;
-                }
-            } else {
-                FloatingIp oldFloatingIp = floatingIpStore.get(floatingIp.id());
-                if (oldFloatingIp != null) {
-                    floatingIpStore.remove(floatingIp.id(), oldFloatingIp);
-                    if (floatingIpStore.containsKey(floatingIp.id())) {
-                        log.debug("The floating Ip is updated failed whose identifier is {}",
-                                  floatingIp.id().toString());
-                        result = false;
-                    }
-                }
+            floatingIpStore.put(floatingIp.id(), floatingIp);
+            if (!floatingIpStore.containsKey(floatingIp.id())) {
+                log.debug("The floating Ip is updated failed whose identifier is {}",
+                          floatingIp.id().toString());
+                result = false;
             }
         }
         return result;
@@ -238,6 +214,11 @@
                                                    "FloatingIP ID doesn't exist");
             }
             FloatingIp floatingIp = floatingIpStore.get(floatingIpId);
+            if (floatingIp.portId() != null) {
+                log.debug("The floating Ip is uesd by the port whose identifier is {}",
+                          floatingIp.portId().toString());
+                return false;
+            }
             floatingIpStore.remove(floatingIpId, floatingIp);
             if (floatingIpStore.containsKey(floatingIpId)) {
                 log.debug("The floating Ip is deleted failed whose identifier is {}",
diff --git a/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FloatingIpWebResource.java b/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FloatingIpWebResource.java
index f7e97d5..982217e 100644
--- a/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FloatingIpWebResource.java
+++ b/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FloatingIpWebResource.java
@@ -70,6 +70,7 @@
             .getLogger(FloatingIpWebResource.class);
     public static final String CREATE_FAIL = "Floating IP is failed to create!";
     public static final String UPDATE_FAIL = "Floating IP is failed to update!";
+    public static final String DELETE_FAIL = "Floating IP is failed to delete!";
     public static final String GET_FAIL = "Floating IP is failed to get!";
     public static final String NOT_EXIST = "Floating IP does not exist!";
     public static final String DELETE_SUCCESS = "Floating IP delete success!";
@@ -157,7 +158,11 @@
         try {
             FloatingIpId floatingIpId = FloatingIpId.of(id);
             Set<FloatingIpId> floatingIpIds = Sets.newHashSet(floatingIpId);
-            get(FloatingIpService.class).removeFloatingIps(floatingIpIds);
+            Boolean result = nullIsNotFound(get(FloatingIpService.class)
+                    .removeFloatingIps(floatingIpIds), DELETE_FAIL);
+            if (!result) {
+                return Response.status(CONFLICT).entity(DELETE_FAIL).build();
+            }
             return Response.status(NO_CONTENT).entity(DELETE_SUCCESS).build();
         } catch (Exception e) {
             return Response.status(NOT_FOUND).entity(e.getMessage()).build();