Package hudson.model
Class Label
- java.lang.Object
-
- hudson.model.AbstractModelObject
-
- hudson.model.Actionable
-
- hudson.model.Label
-
- All Implemented Interfaces:
ModelObject,SearchableModelObject,SearchItem,Comparable<Label>,ModelObjectWithChildren,ModelObjectWithContextMenu
- Direct Known Subclasses:
LabelAtom,LabelExpression
@ExportedBean public abstract class Label extends Actionable implements Comparable<Label>, ModelObjectWithChildren
Group ofNodes.- Author:
- Kohsuke Kawaguchi
- See Also:
Jenkins.getLabels(),Jenkins.getLabel(String)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classLabel.ConverterImpl-
Nested classes/interfaces inherited from interface jenkins.model.ModelObjectWithContextMenu
ModelObjectWithContextMenu.ContextMenu, ModelObjectWithContextMenu.ContextMenuVisibility, ModelObjectWithContextMenu.MenuItem, ModelObjectWithContextMenu.MenuItemType
-
-
Field Summary
Fields Modifier and Type Field Description LoadStatisticsloadStatisticsprotected StringnameDisplay name of this label.NodeProvisionernodeProvisioner
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract <V,P>
Vaccept(LabelVisitor<V,P> visitor, P param)Accepts a visitor and call its respective "onXYZ" method based no the actual type of 'this'.Labeland(Label rhs)Returns the label that representsthis&&rhsintcompareTo(Label that)booleancontains(Node node)ModelObjectWithContextMenu.ContextMenudoChildrenContextMenu(org.kohsuke.stapler.StaplerRequest request, org.kohsuke.stapler.StaplerResponse response)Generates the context menu to list up all the children.booleanequals(Object that)static Labelget(String l)Obtains a label by its name.ApigetApi()Expose this object to the remote API.intgetBusyExecutors()Number of busyExecutors that are carrying out some work right now.Set<Cloud>getClouds()Gets allClouds that can launch for this label.StringgetDescription()Returns a human readable text that explains this label.StringgetDisplayName()Returns a human-readable text that represents this label.abstract StringgetExpression()Returns a label expression that represents this label.intgetIdleExecutors()Number of idleExecutors that can start working immediately.StringgetName()Alias forgetDisplayName().Set<Node>getNodes()Gets allNodes that belong to this label.StringgetSearchUrl()Returns the URL of this item relative to the parentSearchItem.Set<Node>getSortedNodes()intgetTiedJobCount()Returns an approximate count of projects that are tied on this node.List<AbstractProject>getTiedJobs()Returns projects that are tied on this node.intgetTotalConfiguredExecutors()Number of totalExecutors that belong to this label.intgetTotalExecutors()Number of totalExecutors that belong to this label that are functioning.StringgetUrl()Relative URL from the context path, that ends with '/'.inthashCode()Labeliff(Label rhs)Returns the label that representsthis<->rhsLabelimplies(Label rhs)Returns the label that representsthis->rhsbooleanisAssignable()Can jobs be assigned to this label?booleanisAtom()Returns true iff this label is an atom.booleanisEmpty()booleanisOffline()Returns true if all the nodes of this label is offline.booleanisSelfLabel()Returns true if this label is a "self label", which means the label is the name of aNode.Set<LabelAtom>listAtoms()Lists up all the atoms contained in in this label.booleanmatches(Node n)abstract booleanmatches(VariableResolver<Boolean> resolver)Evaluates whether the label expression is true given the specified value assignment.booleanmatches(Collection<LabelAtom> labels)Evaluates whether the label expression is true when an entity owns the given set ofLabelAtoms.Labelnot()Returns the label that represents!thisLabelor(Label rhs)Returns the label that representsthis||rhsLabelparen()Returns the label that represents(this)This is a pointless operation for machines, but useful for humans who find the additional parenthesis often usefulstatic Set<LabelAtom>parse(String labels)Convert a whitespace-separate list of tokens into a set ofLabels.static LabelparseExpression(String labelExpression)Parses the expression into a label expression tree.abstract LabelOperatorPrecedenceprecedence()Precedence of the top most operator.StringtoString()-
Methods inherited from class hudson.model.Actionable
addAction, addOrReplaceAction, doContextMenu, getAction, getAction, getActions, getActions, getAllActions, getDynamic, removeAction, removeActions, replaceAction, replaceActions
-
Methods inherited from class hudson.model.AbstractModelObject
getSearch, getSearchIndex, getSearchName, makeSearchIndex, requirePOST, sendError, sendError, sendError, sendError, sendError
-
-
-
-
Field Detail
-
name
@NonNull protected final transient String name
Display name of this label.
-
loadStatistics
@Exported @NonNull public final transient LoadStatistics loadStatistics
-
nodeProvisioner
@NonNull public final transient NodeProvisioner nodeProvisioner
-
-
Constructor Detail
-
Label
protected Label(@NonNull String name)
-
-
Method Detail
-
getName
@NonNull @Exported(visibility=2) public final String getName()
Alias forgetDisplayName().
-
getDisplayName
@NonNull public String getDisplayName()
Returns a human-readable text that represents this label.- Specified by:
getDisplayNamein interfaceModelObject
-
getExpression
public abstract String getExpression()
Returns a label expression that represents this label.
-
getUrl
public String getUrl()
Relative URL from the context path, that ends with '/'.
-
getSearchUrl
public String getSearchUrl()
Description copied from interface:SearchItemReturns the URL of this item relative to the parentSearchItem.- Specified by:
getSearchUrlin interfaceSearchItem- Returns:
- URL like "foo" or "foo/bar". The path can end with '/'. The path that starts with '/' will be interpreted as the absolute path (within the context path of Jenkins.)
-
isAtom
public boolean isAtom()
Returns true iff this label is an atom.- Since:
- 1.580
-
matches
public abstract boolean matches(VariableResolver<Boolean> resolver)
Evaluates whether the label expression is true given the specified value assignment. IOW, returns true if the assignment provided by the resolver matches this label expression.
-
matches
public final boolean matches(Collection<LabelAtom> labels)
Evaluates whether the label expression is true when an entity owns the given set ofLabelAtoms.
-
matches
public final boolean matches(Node n)
-
isSelfLabel
public boolean isSelfLabel()
Returns true if this label is a "self label", which means the label is the name of aNode.
-
getSortedNodes
@Restricted(org.kohsuke.accmod.restrictions.DoNotUse.class) public Set<Node> getSortedNodes()
-
isAssignable
public boolean isAssignable()
Can jobs be assigned to this label?The answer is yes if there is a reasonable basis to believe that Hudson can have an executor under this label, given the current configuration. This includes situations such as (1) there are offline agents that have this label (2) clouds exist that can provision agents that have this label.
-
getTotalConfiguredExecutors
public int getTotalConfiguredExecutors()
Number of totalExecutors that belong to this label.This includes executors that belong to offline nodes, so the result can be thought of as a potential capacity, whereas
getTotalExecutors()is the currently functioning total number of executors.This method doesn't take the dynamically allocatable nodes (via
Cloud) into account. If you just want to test if there's some executors, useisAssignable().
-
getTotalExecutors
@Exported public int getTotalExecutors()
Number of totalExecutors that belong to this label that are functioning.This excludes executors that belong to offline nodes.
-
getBusyExecutors
@Exported public int getBusyExecutors()
Number of busyExecutors that are carrying out some work right now.
-
getIdleExecutors
@Exported public int getIdleExecutors()
Number of idleExecutors that can start working immediately.
-
isOffline
@Exported public boolean isOffline()
Returns true if all the nodes of this label is offline.
-
getDescription
@Exported public String getDescription()
Returns a human readable text that explains this label.
-
getTiedJobs
@Exported public List<AbstractProject> getTiedJobs()
Returns projects that are tied on this node.
-
getTiedJobCount
public int getTiedJobCount()
Returns an approximate count of projects that are tied on this node. In a system without security this should be the same asgetTiedJobs().size()but significantly faster as it involves fewer temporary objects and avoids sorting the intermediary list. In a system with security, this will likely return a higher value as it counts all jobs (mostly) irrespective of access.- Returns:
- a count of projects that are tied on this node.
-
contains
public boolean contains(Node node)
-
isEmpty
public boolean isEmpty()
-
getApi
public Api getApi()
Expose this object to the remote API.
-
accept
public abstract <V,P> V accept(LabelVisitor<V,P> visitor, P param)
Accepts a visitor and call its respective "onXYZ" method based no the actual type of 'this'.
-
listAtoms
public Set<LabelAtom> listAtoms()
Lists up all the atoms contained in in this label.- Since:
- 1.420
-
not
public Label not()
Returns the label that represents!this
-
paren
public Label paren()
Returns the label that represents(this)This is a pointless operation for machines, but useful for humans who find the additional parenthesis often useful
-
precedence
public abstract LabelOperatorPrecedence precedence()
Precedence of the top most operator.
-
compareTo
public final int compareTo(Label that)
- Specified by:
compareToin interfaceComparable<Label>
-
doChildrenContextMenu
public ModelObjectWithContextMenu.ContextMenu doChildrenContextMenu(org.kohsuke.stapler.StaplerRequest request, org.kohsuke.stapler.StaplerResponse response) throws Exception
Description copied from interface:ModelObjectWithChildrenGenerates the context menu to list up all the children.- Specified by:
doChildrenContextMenuin interfaceModelObjectWithChildren- Throws:
Exception
-
parse
@NonNull public static Set<LabelAtom> parse(@CheckForNull String labels)
Convert a whitespace-separate list of tokens into a set ofLabels.- Parameters:
labels- Strings like "abc def ghi". Can be empty or null.- Returns:
- Can be empty but never null. A new writable set is always returned, so that the caller can add more to the set.
- Since:
- 1.308
-
parseExpression
public static Label parseExpression(@NonNull String labelExpression)
Parses the expression into a label expression tree. TODO: replace this with a real parser later- Parameters:
labelExpression- the label expression to be parsed- Throws:
IllegalArgumentException- if the label expression cannot be parsed
-
-