Class QueueTaskFilter
- java.lang.Object
-
- hudson.model.queue.QueueTaskFilter
-
- All Implemented Interfaces:
ModelObject
,SubTask
,Queue.Task
,ResourceActivity
public abstract class QueueTaskFilter extends Object implements Queue.Task
Base class for defining filterQueue.Task
.- Since:
- 1.360
- Author:
- Kohsuke Kawaguchi
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
QueueTaskFilter(Queue.Task base)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
checkAbortPermission()
Checks the permission to see if the current user can abort this executable.Queue.Executable
createExecutable()
Creates an object which performs the actual execution of the task.Label
getAssignedLabel()
If this task needs to be run on a node with a particular label, return thatLabel
.CauseOfBlockage
getCauseOfBlockage()
If the execution of this task should be blocked for temporary reasons, this method returns a non-null object explaining why.String
getDisplayName()
Used for rendering HTML.long
getEstimatedDuration()
Estimate of how long will it take to execute this task.String
getFullDisplayName()
Node
getLastBuiltOn()
If the previous execution of this task run on a certain node and this task prefers to run on the same node, return that.String
getName()
Unique name of this task.ResourceList
getResourceList()
Gets the list ofResource
s that this task requires.Object
getSameNodeConstraint()
If a subset ofSubTask
s of aQueue.Task
needs to be collocated with otherSubTask
s, thoseSubTask
s should return the equal object here.Collection<? extends SubTask>
getSubTasks()
Obtains theSubTask
s that constitute this task.String
getUrl()
Returns the URL of this task relative to the context root of the application.String
getWhyBlocked()
Deprecated.boolean
hasAbortPermission()
Works just likeQueue.Task.checkAbortPermission()
except it indicates the status by a return value, instead of exception.boolean
isBuildBlocked()
Deprecated.boolean
isConcurrentBuild()
True if the task allows concurrent builds, where the sameQueue.Task
is executed by multiple executors concurrently on the same or different nodes.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface hudson.model.Queue.Task
getAffinityKey, getDefaultAuthentication, getDefaultAuthentication, getDefaultAuthentication2, getDefaultAuthentication2
-
Methods inherited from interface hudson.model.queue.SubTask
getOwnerExecutable, getOwnerTask
-
-
-
-
Constructor Detail
-
QueueTaskFilter
protected QueueTaskFilter(Queue.Task base)
-
-
Method Detail
-
getAssignedLabel
public Label getAssignedLabel()
Description copied from interface:SubTask
If this task needs to be run on a node with a particular label, return thatLabel
. Otherwise null, indicating it can run on anywhere.- Specified by:
getAssignedLabel
in interfaceSubTask
- Returns:
- by default, null
-
getLastBuiltOn
public Node getLastBuiltOn()
Description copied from interface:SubTask
If the previous execution of this task run on a certain node and this task prefers to run on the same node, return that. Otherwise null.- Specified by:
getLastBuiltOn
in interfaceSubTask
- Returns:
- by default, null
-
isBuildBlocked
@Deprecated public boolean isBuildBlocked()
Deprecated.Description copied from interface:Queue.Task
Returns true if the execution should be blocked for temporary reasons.- Specified by:
isBuildBlocked
in interfaceQueue.Task
-
getWhyBlocked
@Deprecated public String getWhyBlocked()
Deprecated.- Specified by:
getWhyBlocked
in interfaceQueue.Task
-
getCauseOfBlockage
public CauseOfBlockage getCauseOfBlockage()
Description copied from interface:Queue.Task
If the execution of this task should be blocked for temporary reasons, this method returns a non-null object explaining why.Otherwise this method returns null, indicating that the build can proceed right away.
This can be used to define mutual exclusion that goes beyond
ResourceActivity.getResourceList()
.- Specified by:
getCauseOfBlockage
in interfaceQueue.Task
- Returns:
- by default, null
-
getName
public String getName()
Description copied from interface:Queue.Task
Unique name of this task.This method is no longer used, left here for compatibility. Just return
ModelObject.getDisplayName()
.- Specified by:
getName
in interfaceQueue.Task
-
getFullDisplayName
public String getFullDisplayName()
- Specified by:
getFullDisplayName
in interfaceQueue.Task
- See Also:
Item.getFullDisplayName()
-
getEstimatedDuration
public long getEstimatedDuration()
Description copied from interface:SubTask
Estimate of how long will it take to execute this task. Measured in milliseconds.- Specified by:
getEstimatedDuration
in interfaceSubTask
- Returns:
- -1 if it's impossible to estimate (the default)
-
createExecutable
@CheckForNull public Queue.Executable createExecutable() throws IOException
Description copied from interface:SubTask
Creates an object which performs the actual execution of the task.- Specified by:
createExecutable
in interfaceSubTask
- Returns:
- executable to be launched or null if the executable cannot be
created (e.g.
AbstractProject
is disabled) - Throws:
IOException
- executable cannot be created
-
checkAbortPermission
public void checkAbortPermission()
Description copied from interface:Queue.Task
Checks the permission to see if the current user can abort this executable. Returns normally from this method if it's OK.NOTE: If you have implemented
AccessControlled
this should just becheckPermission(hudson.model.Item.CANCEL);
- Specified by:
checkAbortPermission
in interfaceQueue.Task
-
hasAbortPermission
public boolean hasAbortPermission()
Description copied from interface:Queue.Task
Works just likeQueue.Task.checkAbortPermission()
except it indicates the status by a return value, instead of exception. Also used by default forQueue.Item.hasCancelPermission()
.NOTE: If you have implemented
AccessControlled
this should just bereturn hasPermission(hudson.model.Item.CANCEL);
- Specified by:
hasAbortPermission
in interfaceQueue.Task
- Returns:
- false if the user doesn't have the permission.
-
getUrl
public String getUrl()
Description copied from interface:Queue.Task
Returns the URL of this task relative to the context root of the application.When the user clicks an item in the queue, this is the page where the user is taken to. Hudson expects the current instance to be bound to the URL returned by this method.
- Specified by:
getUrl
in interfaceQueue.Task
- Returns:
- URL that ends with '/'.
-
isConcurrentBuild
public boolean isConcurrentBuild()
Description copied from interface:Queue.Task
True if the task allows concurrent builds, where the sameQueue.Task
is executed by multiple executors concurrently on the same or different nodes.- Specified by:
isConcurrentBuild
in interfaceQueue.Task
- Returns:
- by default, false
-
getDisplayName
public String getDisplayName()
Description copied from interface:ResourceActivity
Used for rendering HTML.- Specified by:
getDisplayName
in interfaceModelObject
- Specified by:
getDisplayName
in interfaceResourceActivity
-
getResourceList
public ResourceList getResourceList()
Description copied from interface:ResourceActivity
Gets the list ofResource
s that this task requires. Used to make sure no two conflicting tasks run concurrently.This method must always return the
ResourceList
that contains the exact same set ofResource
s.If the activity doesn't lock any resources, just return
ResourceList.EMPTY
(or decline to override).- Specified by:
getResourceList
in interfaceResourceActivity
- Returns:
- never null
-
getSubTasks
public Collection<? extends SubTask> getSubTasks()
Description copied from interface:Queue.Task
Obtains theSubTask
s that constitute this task.The collection returned by this method must also contain the primary
SubTask
represented by thisQueue.Task
object itself as the first element. The returned value is read-only.At least size 1.
- Specified by:
getSubTasks
in interfaceQueue.Task
- Returns:
- by default,
this
-
getSameNodeConstraint
public Object getSameNodeConstraint()
Description copied from interface:SubTask
If a subset ofSubTask
s of aQueue.Task
needs to be collocated with otherSubTask
s, thoseSubTask
s should return the equal object here. If null, the execution unit isn't under a colocation constraint.- Specified by:
getSameNodeConstraint
in interfaceSubTask
- Returns:
- by default, null
-
-