diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 2a6138df0e8..7c4982a741b 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -1180,8 +1180,13 @@ public class NetworkManagerImpl implements NetworkManager, DomainRouterService { } DomainRouterVO syncObject = _routerMgr.getRouter(loadBalancer.getIpAddress()); - cmd.synchronizeCommand("Router", syncObject.getId()); - + if(syncObject == null){ + throw new InvalidParameterValueException("Failed to assign to load balancer " + loadBalancerId + ", the domain router was not found at "+loadBalancer.getIpAddress()); + } + else{ + cmd.synchronizeCommand("Router", syncObject.getId()); + } + // Permission check... Account account = UserContext.current().getAccount(); if (account != null) { diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index 4268afcf330..1c84aca2307 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -2160,17 +2160,10 @@ public class StorageManagerImpl implements StorageManager { s_logger.error(msg); throw new ResourceUnavailableException(msg); } - - primaryStorage = _storagePoolDao.findById(primaryStorageId); - if(primaryStorage == null) - { - s_logger.warn("The primary storage does not exist"); - throw new InvalidParameterValueException("Primary storage doesn't exist"); - } -// if (!primaryStorage.getStatus().equals(Status.Up)) { -// throw new InvalidParameterValueException("Primary storage with id " + primaryStorageId + " is not ready for migration, as the status is:" + primaryStorage.getStatus().toString()); -// } + if (!primaryStorage.getStatus().equals(Status.Up) && !primaryStorage.getStatus().equals(Status.ErrorInMaintenance)) { + throw new InvalidParameterValueException("Primary storage with id " + primaryStorageId + " is not ready for migration, as the status is:" + primaryStorage.getStatus().toString()); + } //set the pool state to prepare for maintenance primaryStorage.setStatus(Status.PrepareForMaintenance); _storagePoolDao.persist(primaryStorage); @@ -2195,7 +2188,7 @@ public class StorageManagerImpl implements StorageManager { continue; //shut down the running vms - if(vmInstance.getState().equals(State.Running) || vmInstance.getState().equals(State.Stopped) || vmInstance.getState().equals(State.Stopping) || vmInstance.getState().equals(State.Starting)) + if(vmInstance.getState().equals(State.Running) || vmInstance.getState().equals(State.Starting)) { //if the instance is of type consoleproxy, call the console proxy