diff --git a/src/main/java/org/jenkinsci/plugins/vsphere/builders/PowerOff.java b/src/main/java/org/jenkinsci/plugins/vsphere/builders/PowerOff.java
index 75cc6e47..3bfc082a 100644
--- a/src/main/java/org/jenkinsci/plugins/vsphere/builders/PowerOff.java
+++ b/src/main/java/org/jenkinsci/plugins/vsphere/builders/PowerOff.java
@@ -43,11 +43,19 @@ public class PowerOff extends VSphereBuildStep implements SimpleBuildStep {
private final boolean evenIfSuspended;
private final boolean shutdownGracefully;
+
+ private final boolean ignoreIfNotExists;
+
@DataBoundConstructor
- public PowerOff( final String vm, final boolean evenIfSuspended, final boolean shutdownGracefully) throws VSphereException {
+ public PowerOff( final String vm, final boolean evenIfSuspended, final boolean shutdownGracefully, final boolean ignoreIfNotExists) throws VSphereException {
this.vm = vm;
this.evenIfSuspended = evenIfSuspended;
this.shutdownGracefully = shutdownGracefully;
+ this.ignoreIfNotExists = ignoreIfNotExists;
+ }
+
+ public boolean isIgnoreIfNotExists() {
+ return ignoreIfNotExists;
}
public boolean isEvenIfSuspended() {
@@ -118,12 +126,17 @@ private boolean powerOff(final Run, ?> run, Launcher launcher, final TaskListe
VSphereLogger.vsLogger(jLogger, "Shutting Down VM " + expandedVm + "...");
VirtualMachine vsphereVm = vsphere.getVmByName(expandedVm);
- if (vsphereVm == null) {
+ if (vsphereVm == null && !ignoreIfNotExists) {
throw new RuntimeException(Messages.validation_notFound("vm " + expandedVm));
}
- vsphere.powerOffVm( vsphereVm, evenIfSuspended, shutdownGracefully);
- VSphereLogger.vsLogger(jLogger, "Successfully shutdown \""+expandedVm+"\"");
+ if (vsphereVm != null) {
+ vsphere.powerOffVm(vsphereVm, evenIfSuspended, shutdownGracefully);
+
+ VSphereLogger.vsLogger(jLogger, "Successfully shutdown \"" + expandedVm + "\"");
+ } else {
+ VSphereLogger.vsLogger(jLogger, "Does not exists, BUT ignore it! \"" + expandedVm + "\"");
+ }
return true;
}
diff --git a/src/main/resources/org/jenkinsci/plugins/vsphere/builders/PowerOff/config.jelly b/src/main/resources/org/jenkinsci/plugins/vsphere/builders/PowerOff/config.jelly
index 294bf44a..86799e4a 100644
--- a/src/main/resources/org/jenkinsci/plugins/vsphere/builders/PowerOff/config.jelly
+++ b/src/main/resources/org/jenkinsci/plugins/vsphere/builders/PowerOff/config.jelly
@@ -25,6 +25,9 @@ limitations under the License.
+
+
+