diff --git a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java index 69c5cc6e278..d45b92098d2 100755 --- a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java @@ -636,19 +636,11 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac // send hypervisor-dependent commands before removing final List finalizeExpungeCommands = hvGuru.finalizeExpunge(vm); - if (finalizeExpungeCommands != null && finalizeExpungeCommands.size() > 0) { + if (CollectionUtils.isNotEmpty(finalizeExpungeCommands) || CollectionUtils.isNotEmpty(nicExpungeCommands)) { if (hostId != null) { final Commands cmds = new Commands(Command.OnError.Stop); - for (final Command command : finalizeExpungeCommands) { - command.setBypassHostMaintenance(expungeCommandCanBypassHostMaintenance(vm)); - cmds.addCommand(command); - } - if (nicExpungeCommands != null) { - for (final Command command : nicExpungeCommands) { - command.setBypassHostMaintenance(expungeCommandCanBypassHostMaintenance(vm)); - cmds.addCommand(command); - } - } + addAllExpungeCommandsFromList(finalizeExpungeCommands, cmds, vm); + addAllExpungeCommandsFromList(nicExpungeCommands, cmds, vm); _agentMgr.send(hostId, cmds); if (!cmds.isSuccessful()) { for (final Answer answer : cmds.getAnswers()) { @@ -667,6 +659,19 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac } + private void addAllExpungeCommandsFromList(List cmdList, Commands cmds, VMInstanceVO vm) { + if (CollectionUtils.isEmpty(cmdList)) { + return; + } + for (final Command command : cmdList) { + command.setBypassHostMaintenance(expungeCommandCanBypassHostMaintenance(vm)); + if (s_logger.isTraceEnabled()) { + s_logger.trace(String.format("Adding expunge command [%s] for VM [%s]", command.toString(), vm.toString())); + } + cmds.addCommand(command); + } + } + private List> getTargets(Long hostId, long vmId) { List> targets = new ArrayList<>();