mirror of
https://github.com/jenkinsci/jenkins.git
synced 2026-11-14 04:22:16 +00:00
[JENKINS-64816] prepare for support of node monitors by JCasC (#8629)
* [JENKINS-64816] prepare for support of node monitors by JCasC In order that configuration as code plugin can properly support node monitors we need to add databound constructors. * fix warnings * add javadoc that DataBoundConstructor is a must * remove duplicate extension * delete obsolete install methods
This commit is contained in:
1 parent
f344879c56
commit
442a42f438
7 files changed
+53
-16
No files matched your search
@@ -32,6 +32,7 @@ import java.io.IOException;
|
||||
import jenkins.security.MasterToSlaveCallable;
|
||||
import net.sf.json.JSONObject;
|
||||
import org.jenkinsci.Symbol;
|
||||
import org.kohsuke.stapler.DataBoundConstructor;
|
||||
import org.kohsuke.stapler.StaplerRequest;
|
||||
|
||||
/**
|
||||
@@ -40,6 +41,11 @@ import org.kohsuke.stapler.StaplerRequest;
|
||||
* @author Kohsuke Kawaguchi
|
||||
*/
|
||||
public class ArchitectureMonitor extends NodeMonitor {
|
||||
|
||||
@DataBoundConstructor
|
||||
public ArchitectureMonitor() {
|
||||
}
|
||||
|
||||
@Extension @Symbol("architecture")
|
||||
public static final class DescriptorImpl extends AbstractAsyncNodeMonitorDescriptor<String> {
|
||||
@Override
|
||||
|
||||
@@ -36,6 +36,7 @@ import net.sf.json.JSONObject;
|
||||
import org.jenkinsci.Symbol;
|
||||
import org.kohsuke.accmod.Restricted;
|
||||
import org.kohsuke.accmod.restrictions.NoExternalUse;
|
||||
import org.kohsuke.stapler.DataBoundConstructor;
|
||||
import org.kohsuke.stapler.StaplerRequest;
|
||||
|
||||
/**
|
||||
@@ -46,6 +47,11 @@ import org.kohsuke.stapler.StaplerRequest;
|
||||
* @since 1.123
|
||||
*/
|
||||
public class ClockMonitor extends NodeMonitor {
|
||||
|
||||
@DataBoundConstructor
|
||||
public ClockMonitor() {
|
||||
}
|
||||
|
||||
public ClockDifference getDifferenceFor(Computer c) {
|
||||
return DESCRIPTOR.get(c);
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
package hudson.node_monitors;
|
||||
|
||||
import edu.umd.cs.findbugs.annotations.NonNull;
|
||||
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
|
||||
import hudson.Extension;
|
||||
import hudson.FilePath;
|
||||
import hudson.model.Computer;
|
||||
@@ -34,6 +35,7 @@ import hudson.remoting.Callable;
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
import jenkins.model.Jenkins;
|
||||
import org.jenkinsci.Symbol;
|
||||
import org.kohsuke.stapler.DataBoundConstructor;
|
||||
|
||||
/**
|
||||
@@ -61,7 +63,17 @@ public class DiskSpaceMonitor extends AbstractDiskSpaceMonitor {
|
||||
return Jenkins.get().hasPermission(Jenkins.ADMINISTER) ? super.getColumnCaption() : null;
|
||||
}
|
||||
|
||||
public static final DiskSpaceMonitorDescriptor DESCRIPTOR = new DiskSpaceMonitorDescriptor() {
|
||||
@SuppressFBWarnings(value = "MS_PKGPROTECT", justification = "for backward compatibility")
|
||||
public static /*almost final*/ DiskSpaceMonitorDescriptor DESCRIPTOR;
|
||||
|
||||
@Extension @Symbol("diskSpace")
|
||||
public static class DescriptorImpl extends DiskSpaceMonitorDescriptor {
|
||||
|
||||
@SuppressFBWarnings(value = "ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD", justification = "for backward compatibility")
|
||||
public DescriptorImpl() {
|
||||
DESCRIPTOR = this;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
@@ -78,10 +90,5 @@ public class DiskSpaceMonitor extends AbstractDiskSpaceMonitor {
|
||||
|
||||
return p.asCallableWith(new GetUsableSpace());
|
||||
}
|
||||
};
|
||||
|
||||
@Extension
|
||||
public static DiskSpaceMonitorDescriptor install() {
|
||||
return DESCRIPTOR;
|
||||
}
|
||||
}
|
||||
@@ -61,6 +61,9 @@ import org.kohsuke.stapler.export.ExportedBean;
|
||||
* <p>
|
||||
* {@link NodeMonitor}s are persisted via XStream.
|
||||
*
|
||||
* <h2>CasC</h2>
|
||||
* To be able to configure {@link NodeMonitor}s via JCasC, they should have a {@link org.kohsuke.stapler.DataBoundConstructor}
|
||||
*
|
||||
* @author Kohsuke Kawaguchi
|
||||
* @since 1.123
|
||||
*/
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
package hudson.node_monitors;
|
||||
|
||||
import edu.umd.cs.findbugs.annotations.NonNull;
|
||||
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
|
||||
import hudson.Extension;
|
||||
import hudson.model.Computer;
|
||||
import hudson.remoting.Callable;
|
||||
@@ -34,6 +35,8 @@ import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
import jenkins.security.MasterToSlaveCallable;
|
||||
import net.sf.json.JSONObject;
|
||||
import org.jenkinsci.Symbol;
|
||||
import org.kohsuke.stapler.DataBoundConstructor;
|
||||
import org.kohsuke.stapler.StaplerRequest;
|
||||
import org.kohsuke.stapler.export.Exported;
|
||||
import org.kohsuke.stapler.export.ExportedBean;
|
||||
@@ -44,8 +47,22 @@ import org.kohsuke.stapler.export.ExportedBean;
|
||||
* @author Kohsuke Kawaguchi
|
||||
*/
|
||||
public class ResponseTimeMonitor extends NodeMonitor {
|
||||
|
||||
@DataBoundConstructor
|
||||
public ResponseTimeMonitor() {
|
||||
}
|
||||
|
||||
@SuppressFBWarnings(value = "MS_PKGPROTECT", justification = "for backward compatibility")
|
||||
public static /*almost final*/ AbstractNodeMonitorDescriptor<Data> DESCRIPTOR;
|
||||
|
||||
@Extension
|
||||
public static final AbstractNodeMonitorDescriptor<Data> DESCRIPTOR = new AbstractAsyncNodeMonitorDescriptor<>() {
|
||||
@Symbol("responseTime")
|
||||
public static class DescriptorImpl extends AbstractAsyncNodeMonitorDescriptor<Data> {
|
||||
|
||||
@SuppressFBWarnings(value = "ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD", justification = "for backward compatibility")
|
||||
public DescriptorImpl() {
|
||||
DESCRIPTOR = this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Callable<Data, IOException> createCallable(Computer c) {
|
||||
@@ -91,7 +108,7 @@ public class ResponseTimeMonitor extends NodeMonitor {
|
||||
public NodeMonitor newInstance(StaplerRequest req, JSONObject formData) throws FormException {
|
||||
return new ResponseTimeMonitor();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private static final class Step1 extends MasterToSlaveCallable<Data, IOException> {
|
||||
private Data cur;
|
||||
|
||||
@@ -37,6 +37,7 @@ import net.sf.json.JSONObject;
|
||||
import org.jenkinsci.Symbol;
|
||||
import org.jvnet.hudson.MemoryMonitor;
|
||||
import org.jvnet.hudson.MemoryUsage;
|
||||
import org.kohsuke.stapler.DataBoundConstructor;
|
||||
import org.kohsuke.stapler.StaplerRequest;
|
||||
import org.kohsuke.stapler.export.Exported;
|
||||
import org.kohsuke.stapler.export.ExportedBean;
|
||||
@@ -48,6 +49,11 @@ import org.kohsuke.stapler.export.ExportedBean;
|
||||
* @since 1.233
|
||||
*/
|
||||
public class SwapSpaceMonitor extends NodeMonitor {
|
||||
|
||||
@DataBoundConstructor
|
||||
public SwapSpaceMonitor() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the HTML representation of the space.
|
||||
*/
|
||||
|
||||
@@ -101,14 +101,6 @@ public class TemporarySpaceMonitor extends AbstractDiskSpaceMonitor {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated as of 2.0
|
||||
*/
|
||||
@Deprecated
|
||||
public static DiskSpaceMonitorDescriptor install() {
|
||||
return (DiskSpaceMonitorDescriptor) Jenkins.get().getDescriptor(TemporarySpaceMonitor.class);
|
||||
}
|
||||
|
||||
protected static final class GetTempSpace extends MasterToSlaveFileCallable<DiskSpace> {
|
||||
@Override
|
||||
public DiskSpace invoke(File f, VirtualChannel channel) throws IOException {
|
||||
|
||||
Reference in new issue
Block a user