(Click to open topic with navigation)
See the associated Nodes resource section for more information on how to use this resource and supported operations.
Additional references
Type | Value | Additional information |
---|---|---|
Permissions resource | nodes | Permissions |
Hooks filename | nodes.groovy | Pre- and Post-Processing Hooks |
Tenant-supported | Yes | Tenants |
Distinct query-supported | Yes | Distinct |
This class represents a node in the Moab Workload Manager. Moab recognizes a node as a collection of resources with a particular set of associated attributes. This definition is similar to the traditional notion of a node found in a Linux cluster or supercomputer wherein a node is defined as one or more CPUs, associated memory, and possibly other compute resources such as local disk, swap, network adapters, and software licenses. Additionally, this node is described by various attributes such as an architecture type or operating system. Nodes range in size from small uniprocessor PCs to large symmetric multiprocessing (SMP) systems where a single node may consist of hundreds of CPUs and massive amounts of memory.
Field Name | Type | PUT | Description |
---|---|---|---|
id | String | No |
The unique identifier of this node. Note: this field is not user-assigned and is generated by the database. |
aclRules | Set<NodeAclRule> | No |
The set of access control rules associated with this node. |
architecture | String | No |
This node's processor architecture. |
attributes | Map<String, Map> | No |
Attributes is a map of attribute names to tuples (maps) that describe the scheduling attributes of a node. Each tuple should contain the following entries:
|
classes | Set<String> | No |
The classes that this node can be scheduled for. |
featuresCustom | Set<String> | Yes |
The features this node advertises which are customizable at run-time. This can be used to define node sets. (See also: featuresReported.) |
featuresReported | Set<String> | No |
The features this node advertises which are reported by resource managers or are present in the Moab Workload Manager configuration. This can be used to define node sets. (See also: featuresCustom.) |
index | Integer | No |
The index for this node as reported by the resource manager. |
ipAddress | String | No |
This node's IPv4 address. |
isHypervisor | Boolean | No |
True if the node is a hypervisor, false otherwise. This is based on the NodeOperatingSystemInformation.hypervisorType field. If hypervisorType is present, the node is a hypervisor. If it is null, then it is not a hypervisor. |
jobs | Set<DomainProxy> | No |
Jobs associated with this node. |
lastUpdatedDate | Date | No |
The timestamp of the last moment when this node was updated. There is no guarantee that all user modifications to a node would be picked up. This will also be changed every RMPOLLINTERVAL even if a resource manager does not report information on this node. |
messages | Set<Message> | Yes |
The list of messages attached to this node. They can be attached by admins, the resource manager layer, or triggers. |
metrics | Map<String, Double> | Yes |
Metrics are the measurable, quantitative, and changing aspects of this node. They are used to define workload placement, attach triggers, etc. There are some built-in metrics:
|
migrationDisabled | Boolean | No |
True if VM migration is disabled on this node. |
name | String | No |
The name of this node. This name is unique per instance of Moab Workload Manager (i.e. not globally). |
operatingSystem | NodeOperatingSystemInformation | Yes |
Describes the current or expected operating system image information for this node. The operatingSystem.image field can be changed using PUT. |
partition | String | Yes |
The partition this node belongs to. |
processorSpeed | Integer | No |
The speed, in MHz, or the processors on this node. |
profilingEnabled | Boolean | No |
Indicates whether historical data gathering and reporting is enabled for this node. This is also controlled by the same setting on the default node (i.e. all nodes). If set to false (default), node statistics are not gathered. |
rack | Integer | No |
The rack where this node is located in the datacenter/cluster. |
requestId | String | No |
An ID that can be used to track the request that created the node. |
reservations | Set<DomainProxy> | No |
Reservations associated with this node. |
resourceManagerMessages | Map<String, Map> | No |
The resource manager messages for this node. Each key is the name of a resource manager, and the value is the message that the resource manager has posted onto the node. |
resourceManagers | Set<NodeResourceManager> | No |
The resource managers that are reporting or have previously reported this node. Each object also contains information on the resource manager reports. |
resources | Map<String, Resource> | No |
Contains references of a string representing a resource name to a resource object detailing the amount of the resource that is available, configured, etc. |
slot | Integer | No |
The slot in the rack where this node is located. |
states | NodeStateInformation | Yes |
This node's state. The states.powerState and states.state fields can be changed using PUT. |
timeToLive | Date | No |
Specifies the time that the node is supposed to be retired by Moab. Moab will not schedule any jobs on a node after its time to live has passed. |
triggers | Set<DomainProxy> | No |
Triggers associated with this node. |
type | NodeType | No |
The type of this node is governed by the types of resources it offers. |
variables | Map<String, Map> | Yes |
Variables is a map of key-value pairs, synonymous, but not directly related to, environment variables. They provide the mechanism to store arbitrary metdata which is useful to external systems in memory on this node. |
virtualContainers | Set<DomainProxy> | No |
The set of virtual containers that directly (not recursively) contain this node. |
virtualMachines | Set<DomainProxy> | No |
Virtual machines associated with this node. |
This class represents a rule that can be in Moab's access control list (ACL) for a node.
The basic NodeAclRule information is the object's name and type. The type directly maps to an NodeAclType value. The default mechanism Moab uses to check the ACL for a particular item is if the user or object coming in has ANY of the values in the ACL, then the user or object is given access. If no values match the user or object in question, the user or object is rejected access.
Field Name | Type | PUT | Description |
---|---|---|---|
affinity | AclAffinity | Yes |
Reservation ACLs allow or deny access to reserved resources but they may also be configured to affect a job's affinity for a particular reservation. By default, jobs gravitate toward reservations through a mechanism known as positive affinity. This mechanism allows jobs to run on the most constrained resources leaving other, unreserved resources free for use by other jobs that may not be able to access the reserved resources. Normally this is a desired behavior. However, sometimes, it is desirable to reserve resources for use only as a last resort-using the reserved resources only when there are no other resources available. This last resort behavior is known as negative affinity. |
comparator | ComparisonOperator | Yes |
The type of comparison to make against the ACL object. |
credentialLock | Boolean | No |
Matching jobs will be required to run on the resources reserved by this reservation. You can use this modifier on accounts, classes, groups, qualities of service, and users. |
excludeFromAcl | Boolean | No |
If attribute is met, the requestor is denied access regardless of any other satisfied ACLs. |
hardPolicyOnly | Boolean | No |
ACLs marked with this modifier are ignored during soft policy scheduling and are only considered for hard policy scheduling once all eligible soft policy jobs start. |
requireAll | Boolean | No |
All required ACLs must be satisfied for requestor access to be granted. |
type | NodeAclType | Yes |
The type of the object that is being granted (or denied) access. |
value | String | Yes |
The name of the object that is being granted (or denied) access. |
xorWithAcl | Boolean | No |
All attributes of the type specified other than the ones listed in the ACL satisfy the ACL. |
This enumeration describes the values available for describing how a rule is used in establishing access to an object in Moab. Currently, these ACL affinities are used only for granting access to reservations.
This enumeration is used when Moab needs to compare items. One such use is in Access Control Lists (ACLs).
This enumeration describes the values available for the type of an ACL Rule.
A reference to an object contained within an object. For example, a Virtual Machine object contains a reference to the Node on which it is running. That reference is represented by this class.
Field Name | Type | PUT | Description |
---|---|---|---|
name | String | No |
The name of the object. |
NodeOperatingSystemInformation
Describes the current or expected operating system image information for a node.
Field Name | Type | PUT | Description |
---|---|---|---|
hypervisorType | String | No |
The hypervisor technology that this node uses. May be null if the node is not a hypervisor. |
image | String | Yes |
The name of the operating system currently running on this node. In cloud mode, this corresponds to the ID or name of an image in the image management API in MWS. (See also: Image.id, Image.name.) |
imageExpected | String | No |
The name of the image that was requested to run on this node (i.e. with |
imageLastUpdatedDate | Date | No |
The last time the image of this node was modified. |
imagesAvailable | Set<String> | No |
The list of image names that can be applied to this node. In cloud mode, this corresponds to IDs or names of images in the image management API in MWS. (See also: Image.id, Image.name.) |
virtualMachineImages | Set<String> | No |
The list of virtual machine image names the node is capable of supporting. In cloud mode, this corresponds to IDs or names of images in the image management API in MWS. (See also: Image.id, Image.name.) |
Field Name | Type | PUT | Description |
---|---|---|---|
isMaster | Boolean | No |
Indicates whether this resource manager is the "master" of this Node. If true, it means that this resource manager has the final say on all properties reported about this Node. Note that the first resource manager to report a node is the master resource manager. |
name | String | No |
The name of the resource manager, according to Moab. This name appears in both the RMCFG parameter, and when diagnosing resource managers (e.g. |
stateReported | NodeState | No |
The state reported by this resource manager. See the State section for more details. |
This enumeration tracks the state of a node.
Represents counts of resources available, configured, etc.
Field Name | Type | PUT | Description |
---|---|---|---|
powerState | NodePower | Yes |
The state of the node's power system, as reported by the RM layer. Modifying the powerState is possible, and, if Moab is configured properly, a request will be made to modify the power state accordingly. |
powerStateExpected | NodePower | No |
The expected state of the node's power system. If a user has requested that a node be powered off (e.g. by modifying the powerState attribute to NodePower.OFF), the requested state will be shown in this field until the state change is completed. If there is no pending power change request, this will be null. |
state | NodeState | Yes |
The scheduling state of the Node, as reported by the resource management layer. |
stateExpected | NodeState | No |
The scheduling state of the Node, as expected by Moab. For example, Moab may think that a Node is "Busy" because it has allocated all configured resources, but a resource manager may report the state as "Running" based on actual utilization of the resources. |
stateLastUpdatedDate | Date | No |
A timestamp recording when the state of the Node was last modified. |
subState | String | No |
A text description of the state of the Node, with the intention of giving more details. Resource Managers may use this field to further describe the state being reported. Resource Managers should provide documented meaning to the possible sub-states that they can report. |
subStateLast | String | No |
The previous sub-state of the Node as reported by the resource management layer. |
subStateLastUpdatedDate | Date | No |
A timestamp recording when the sub-state was last modified. |
Represents the various options for a Node's power state.
Value | Description |
---|---|
NONE | |
ON | |
OFF |
Represents the type of node as reported by a resource manager.
Value | Description |
---|---|
Compute | |
License | |
Network | |
Storage |
This class represents a node in the Moab Workload Manager. Moab recognizes a node as a collection of resources with a particular set of associated attributes. This definition is similar to the traditional notion of a node found in a Linux cluster or supercomputer wherein a node is defined as one or more CPUs, associated memory, and possibly other compute resources such as local disk, swap, network adapters, and software licenses. Additionally, this node is described by various attributes such as an architecture type or operating system. Nodes range in size from small uniprocessor PCs to large symmetric multiprocessing (SMP) systems where a single node may consist of hundreds of CPUs and massive amounts of memory.
Field Name | Type | PUT | Description |
---|---|---|---|
id | String | No |
The unique identifier of this node. Note: this field is not user-assigned and is generated by the database. |
aclRules | Set<NodeAclRule> | No |
The set of access control rules associated with this node. |
architecture | String | No |
This node's processor architecture. |
attributes | Map<String, Map> | No |
Attributes is a map of attribute names to tuples (maps) that describe the scheduling attributes of a node. Each tuple should contain the following entries:
|
classes | Set<String> | No |
The classes that this node can be scheduled for. |
featuresCustom | Set<String> | Yes |
The features this node advertises which are customizable at run-time. This can be used to define node sets. (See also: featuresReported.) |
featuresReported | Set<String> | No |
The features this node advertises which are reported by resource managers or are present in the Moab Workload Manager configuration. This can be used to define node sets. (See also: featuresCustom.) |
index | Integer | No |
The index for this node as reported by the resource manager. |
ipAddress | String | No |
This node's IPv4 address. |
isHypervisor | Boolean | No |
True if the node is a hypervisor, false otherwise. This is based on the NodeOperatingSystemInformation.hypervisorType field. If hypervisorType is present, the node is a hypervisor. If it is null, then it is not a hypervisor. |
jobs | Set<DomainProxy> | No |
Jobs associated with this node. |
lastUpdatedDate | Date | No |
The timestamp of the last moment when this node was updated. There is no guarantee that all user modifications to a node would be picked up. This will also be changed every RMPOLLINTERVAL even if a resource manager does not report information on this node. |
messages | Set<Message> | Yes |
The list of messages attached to this node. They can be attached by admins, the resource manager layer, or triggers. |
metrics | Map<String, Double> | Yes |
Metrics are the measurable, quantitative, and changing aspects of this node. They are used to define workload placement, attach triggers, etc. There are some built-in metrics:
|
migrationDisabled | Boolean | No |
True if VM migration is disabled on this node. |
name | String | No |
The name of this node. This name is unique per instance of Moab Workload Manager (i.e. not globally). |
operatingSystem | NodeOperatingSystemInformation | Yes |
Describes the current or expected operating system image information for this node. The operatingSystem.image field can be changed using PUT. |
partition | String | Yes |
The partition this node belongs to. |
processorSpeed | Integer | No |
The speed, in MHz, or the processors on this node. |
profilingEnabled | Boolean | No |
Indicates whether historical data gathering and reporting is enabled for this node. This is also controlled by the same setting on the default node (i.e. all nodes). If set to false (default), node statistics are not gathered. |
rack | Integer | No |
The rack where this node is located in the datacenter/cluster. |
requestId | String | No |
An ID that can be used to track the request that created the node. |
reservations | Set<DomainProxy> | No |
Reservations associated with this node. |
resourceManagerMessages | Map<String, Map> | No |
The resource manager messages for this node. Each key is the name of a resource manager, and the value is the message that the resource manager has posted onto the node. |
resourceManagers | Set<NodeResourceManager> | No |
The resource managers that are reporting or have previously reported this node. Each object also contains information on the resource manager reports. |
resources | Map<String, Resource> | No |
Contains references of a string representing a resource name to a resource object detailing the amount of the resource that is available, configured, etc. |
slot | Integer | No |
The slot in the rack where this node is located. |
states | NodeStateInformation | Yes |
This node's state. The states.powerState and states.state fields can be changed using PUT. |
timeToLive | Date | No |
Specifies the time that the node is supposed to be retired by Moab. Moab will not schedule any jobs on a node after its time to live has passed. |
triggers | Set<DomainProxy> | No |
Triggers associated with this node. |
type | NodeType | No |
The type of this node is governed by the types of resources it offers. |
variables | Map<String, Map> | Yes |
Variables is a map of key-value pairs, synonymous, but not directly related to, environment variables. They provide the mechanism to store arbitrary metdata which is useful to external systems in memory on this node. |
virtualContainers | Set<DomainProxy> | No |
The set of virtual containers that directly (not recursively) contain this node. |
virtualMachines | Set<DomainProxy> | No |
Virtual machines associated with this node. |
This class represents a rule that can be in Moab's access control list (ACL) for a node.
The basic NodeAclRule information is the object's name and type. The type directly maps to an NodeAclType value. The default mechanism Moab uses to check the ACL for a particular item is if the user or object coming in has ANY of the values in the ACL, then the user or object is given access. If no values match the user or object in question, the user or object is rejected access.
Field Name | Type | PUT | Description |
---|---|---|---|
affinity | AclAffinity | Yes |
Reservation ACLs allow or deny access to reserved resources but they may also be configured to affect a job's affinity for a particular reservation. By default, jobs gravitate toward reservations through a mechanism known as positive affinity. This mechanism allows jobs to run on the most constrained resources leaving other, unreserved resources free for use by other jobs that may not be able to access the reserved resources. Normally this is a desired behavior. However, sometimes, it is desirable to reserve resources for use only as a last resort-using the reserved resources only when there are no other resources available. This last resort behavior is known as negative affinity. |
comparator | ComparisonOperator | Yes |
The type of comparison to make against the ACL object. |
credentialLock | Boolean | No |
Matching jobs will be required to run on the resources reserved by this reservation. You can use this modifier on accounts, classes, groups, qualities of service, and users. |
excludeFromAcl | Boolean | No |
If attribute is met, the requestor is denied access regardless of any other satisfied ACLs. |
hardPolicyOnly | Boolean | No |
ACLs marked with this modifier are ignored during soft policy scheduling and are only considered for hard policy scheduling once all eligible soft policy jobs start. |
requireAll | Boolean | No |
All required ACLs must be satisfied for requestor access to be granted. |
type | NodeAclType | Yes |
The type of the object that is being granted (or denied) access. |
value | String | Yes |
The name of the object that is being granted (or denied) access. |
xorWithAcl | Boolean | No |
All attributes of the type specified other than the ones listed in the ACL satisfy the ACL. |
This enumeration describes the values available for describing how a rule is used in establishing access to an object in Moab. Currently, these ACL affinities are used only for granting access to reservations.
This enumeration is used when Moab needs to compare items. One such use is in Access Control Lists (ACLs).
This enumeration describes the values available for the type of an ACL Rule.
A reference to an object contained within an object. For example, a Virtual Machine object contains a reference to the Node on which it is running. That reference is represented by this class.
Field Name | Type | PUT | Description |
---|---|---|---|
name | String | No |
The name of the object. |
NodeOperatingSystemInformation
Describes the current or expected operating system image information for a node.
Field Name | Type | PUT | Description |
---|---|---|---|
hypervisorType | String | No |
The hypervisor technology that this node uses. May be null if the node is not a hypervisor. |
image | String | Yes |
The name of the operating system currently running on this node. In cloud mode, this corresponds to the ID or name of an image in the image management API in MWS. (See also: Image.id, Image.name.) |
imageExpected | String | No |
The name of the image that was requested to run on this node (i.e. with |
imageLastUpdatedDate | Date | No |
The last time the image of this node was modified. |
imagesAvailable | Set<String> | No |
The list of image names that can be applied to this node. In cloud mode, this corresponds to IDs or names of images in the image management API in MWS. (See also: Image.id, Image.name.) |
virtualMachineImages | Set<String> | No |
The list of virtual machine image names the node is capable of supporting. In cloud mode, this corresponds to IDs or names of images in the image management API in MWS. (See also: Image.id, Image.name.) |
Field Name | Type | PUT | Description |
---|---|---|---|
isMaster | Boolean | No |
Indicates whether this resource manager is the "master" of this Node. If true, it means that this resource manager has the final say on all properties reported about this Node. Note that the first resource manager to report a node is the master resource manager. |
name | String | No |
The name of the resource manager, according to Moab. This name appears in both the RMCFG parameter, and when diagnosing resource managers (e.g. |
stateReported | NodeState | No |
The state reported by this resource manager. See the State section for more details. |
This enumeration tracks the state of a node.
Represents counts of resources available, configured, etc.
Field Name | Type | PUT | Description |
---|---|---|---|
powerState | NodePower | Yes |
The state of the node's power system, as reported by the RM layer. Modifying the powerState is possible, and, if Moab is configured properly, a request will be made to modify the power state accordingly. |
powerStateExpected | NodePower | No |
The expected state of the node's power system. If a user has requested that a node be powered off (e.g. by modifying the powerState attribute to NodePower.OFF), the requested state will be shown in this field until the state change is completed. If there is no pending power change request, this will be null. |
state | NodeState | Yes |
The scheduling state of the Node, as reported by the resource management layer. |
stateExpected | NodeState | No |
The scheduling state of the Node, as expected by Moab. For example, Moab may think that a Node is "Busy" because it has allocated all configured resources, but a resource manager may report the state as "Running" based on actual utilization of the resources. |
stateLastUpdatedDate | Date | No |
A timestamp recording when the state of the Node was last modified. |
subState | String | No |
A text description of the state of the Node, with the intention of giving more details. Resource Managers may use this field to further describe the state being reported. Resource Managers should provide documented meaning to the possible sub-states that they can report. |
subStateLast | String | No |
The previous sub-state of the Node as reported by the resource management layer. |
subStateLastUpdatedDate | Date | No |
A timestamp recording when the sub-state was last modified. |
Represents the various options for a Node's power state.
Value | Description |
---|---|
NONE | |
ON | |
OFF |
Represents the type of node as reported by a resource manager.
Value | Description |
---|---|
Compute | |
License | |
Network | |
Storage |
Related Topics