Package hudson.slaves

Class CloudSlaveRetentionStrategy<T extends Computer>

  • All Implemented Interfaces:
    ExtensionPoint, Describable<RetentionStrategy<?>>

    public class CloudSlaveRetentionStrategy<T extends Computer>
    extends RetentionStrategy<T>
    Default convenience implementation of RetentionStrategy for agents provisioned from Cloud. If an agent is idle for 10 mins, this retention strategy will remove the agent. This can be used as-is for a Node provisioned by cloud to implement the auto-scaling semantics, it can be subtyped to tweak the behavior, or it can be used as an example.

    TODO CloudRetentionStrategy seems to be a better implementation.

    Kohsuke Kawaguchi
    • Field Detail

      • TIMEOUT

        public static long TIMEOUT
    • Constructor Detail

      • CloudSlaveRetentionStrategy

        public CloudSlaveRetentionStrategy()
    • Method Detail

      • check

        public long check​(T c)
        Description copied from class: RetentionStrategy
        This method will be called periodically to allow this strategy to decide what to do with its owning agent.
        Specified by:
        check in class RetentionStrategy<T extends Computer>
        c - Computer for which this strategy is assigned. This computer may be online or offline. This object also exposes a bunch of properties that the callee can use to decide what action to take.
        The number of minutes after which the strategy would like to be checked again. The strategy may be rechecked earlier or later than this!
      • checkCycle

        protected long checkCycle()
        When do we check again next time?
      • isIdleForTooLong

        protected boolean isIdleForTooLong​(T c)
        Has this computer been idle for too long?
      • getIdleMaxTime

        protected long getIdleMaxTime()
        If the computer has been idle longer than this time, we'll kill the agent.