@@ -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