lishuai
Committed by Gerrit Code Review

[ONOS-3641] Update the bug which is finded by fuel installer: the

floating ip can not be deleted successfully.

Change-Id: I14609b374843f8bd88873941e4dbd3312850e34a
......@@ -176,23 +176,11 @@ public class FloatingIpManager implements FloatingIpService {
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 @@ public class FloatingIpManager implements FloatingIpService {
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 @@ public class FloatingIpManager implements FloatingIpService {
"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 {}",
......
......@@ -70,6 +70,7 @@ public class FloatingIpWebResource extends AbstractWebResource {
.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 @@ public class FloatingIpWebResource extends AbstractWebResource {
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();
......