@ActionEvent(eventType = EventTypes.EVENT_PORTABLE_IP_RANGE_DELETE,
eventDescription = "deleting portable ip range", async = false)
public boolean deletePortableIpRange(DeletePortableIpRangeCmd cmd) {
long rangeId = cmd.getId();
PortableIpRangeVO portableIpRange = _portableIpRangeDao.findById(rangeId);
if (portableIpRange == null) {
throw new InvalidParameterValueException("Please specify a valid portable IP range id.");
}
List<PortableIpVO> fullIpRange = _portableIpDao.listByRangeId(portableIpRange.getId());
List<PortableIpVO> freeIpRange = _portableIpDao.listByRangeIdAndState(portableIpRange.getId(),
PortableIp.State.Free);
if (fullIpRange != null && freeIpRange != null) {
if (fullIpRange.size() == freeIpRange.size()) {
_portableIpRangeDao.expunge(portableIpRange.getId());
List<PortableIpRangeVO> pipranges = _portableIpRangeDao.listAll();
if (pipranges == null || pipranges.isEmpty()) {
RegionVO region = _regionDao.findById(portableIpRange.getRegionId());
region.setPortableipEnabled(false);
_regionDao.update(region.getId(), region);
}
return true;
} else {