Skip to content

Commit 8228ece

Browse files
authored
[Vmware] Add missing condition to cleanup nics if there are commands to send (#5449)
* [Vmware] Add missing condition to cleanup nics if there are commands to send
1 parent 939ef4e commit 8228ece

1 file changed

Lines changed: 16 additions & 11 deletions

File tree

engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -636,19 +636,11 @@ protected void advanceExpunge(VMInstanceVO vm) throws ResourceUnavailableExcepti
636636

637637
// send hypervisor-dependent commands before removing
638638
final List<Command> finalizeExpungeCommands = hvGuru.finalizeExpunge(vm);
639-
if (finalizeExpungeCommands != null && finalizeExpungeCommands.size() > 0) {
639+
if (CollectionUtils.isNotEmpty(finalizeExpungeCommands) || CollectionUtils.isNotEmpty(nicExpungeCommands)) {
640640
if (hostId != null) {
641641
final Commands cmds = new Commands(Command.OnError.Stop);
642-
for (final Command command : finalizeExpungeCommands) {
643-
command.setBypassHostMaintenance(expungeCommandCanBypassHostMaintenance(vm));
644-
cmds.addCommand(command);
645-
}
646-
if (nicExpungeCommands != null) {
647-
for (final Command command : nicExpungeCommands) {
648-
command.setBypassHostMaintenance(expungeCommandCanBypassHostMaintenance(vm));
649-
cmds.addCommand(command);
650-
}
651-
}
642+
addAllExpungeCommandsFromList(finalizeExpungeCommands, cmds, vm);
643+
addAllExpungeCommandsFromList(nicExpungeCommands, cmds, vm);
652644
_agentMgr.send(hostId, cmds);
653645
if (!cmds.isSuccessful()) {
654646
for (final Answer answer : cmds.getAnswers()) {
@@ -667,6 +659,19 @@ protected void advanceExpunge(VMInstanceVO vm) throws ResourceUnavailableExcepti
667659

668660
}
669661

662+
private void addAllExpungeCommandsFromList(List<Command> cmdList, Commands cmds, VMInstanceVO vm) {
663+
if (CollectionUtils.isEmpty(cmdList)) {
664+
return;
665+
}
666+
for (final Command command : cmdList) {
667+
command.setBypassHostMaintenance(expungeCommandCanBypassHostMaintenance(vm));
668+
if (s_logger.isTraceEnabled()) {
669+
s_logger.trace(String.format("Adding expunge command [%s] for VM [%s]", command.toString(), vm.toString()));
670+
}
671+
cmds.addCommand(command);
672+
}
673+
}
674+
670675
private List<Map<String, String>> getTargets(Long hostId, long vmId) {
671676
List<Map<String, String>> targets = new ArrayList<>();
672677

0 commit comments

Comments
 (0)