CLOUDSTACK-9407: Refactor

This commit is contained in:
nvazquez 2016-06-21 13:49:55 -03:00
parent d3f3fb0590
commit c754a0cf30
2 changed files with 16 additions and 10 deletions

View File

@ -1428,6 +1428,15 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
advanceStop(vm, cleanUpEvenIfUnableToStop);
}
/**
* Send StopCommand to stop vm.<br/>
* <strong>Not releasing network resources until expunge command is sent</strong>
* @param vm virtual machine
* @param cleanUpEvenIfUnableToStop if true -> cleanup even if vm cannot be stopped. if false -> not cleaning up if vm cannot be stopped.
* @throws AgentUnavailableException
* @throws OperationTimedoutException
* @throws ConcurrentOperationException
*/
private void advanceStop(final VMInstanceVO vm, final boolean cleanUpEvenIfUnableToStop) throws AgentUnavailableException, OperationTimedoutException,
ConcurrentOperationException {
final State state = vm.getState();
@ -1576,14 +1585,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
s_logger.debug(vm + " is stopped on the host. Proceeding to release resource held.");
}
try {
s_logger.debug("Not releasing network resources until expunge command is sent");
//_networkMgr.release(profile, cleanUpEvenIfUnableToStop);
//s_logger.debug("Successfully released network resources for the vm " + vm);
} catch (final Exception e) {
s_logger.warn("Unable to release some network resources.", e);
}
try {
if (vm.getHypervisorType() != HypervisorType.BareMetal) {
volumeMgr.release(profile);

View File

@ -2097,8 +2097,13 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
*/
private void releaseNetworkResourcesOnExpunge(long id) throws ConcurrentOperationException, ResourceUnavailableException {
final VMInstanceVO vmInstance = _vmDao.findById(id);
final VirtualMachineProfile profile = new VirtualMachineProfileImpl(vmInstance);
_networkMgr.release(profile, false);
if (vmInstance != null){
final VirtualMachineProfile profile = new VirtualMachineProfileImpl(vmInstance);
_networkMgr.release(profile, false);
}
else {
s_logger.error("Couldn't find vm with id = " + id + ", unable to release network resources");
}
}
private boolean cleanupVmResources(long vmId) {