package hudson.plugins.openshift; import hudson.Extension; import hudson.model.AbstractProject; import hudson.model.Job; import hudson.model.JobProperty; import hudson.model.JobPropertyDescriptor; import hudson.util.FormValidation; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; public class OpenShiftBuilderTimeoutJobProperty extends JobProperty<AbstractProject<?, ?>> { public final long builderTimeout; @DataBoundConstructor public OpenShiftBuilderTimeoutJobProperty(String builderTimeout) { this.builderTimeout = Long.parseLong(builderTimeout); } @Extension public static class DescriptorImpl extends JobPropertyDescriptor { @Override public String getDisplayName() { return "Builder Timeout"; } @Override public boolean isApplicable(java.lang.Class<? extends Job> jobType) { return OpenShiftCloud.get() != null && AbstractProject.class.isAssignableFrom(jobType); } @Restricted(NoExternalUse.class) public FormValidation doCheckBuilderTimeout( @QueryParameter String builderTimeout, @AncestorInPath AbstractProject<?, ?> job ) { if (!job.getFullName().equals(job.getAssignedLabelString())) return FormValidation.ok(); return FormValidation.validatePositiveInteger(builderTimeout); } } }