(Click to open topic with navigation)
See the associated Services resource section for more information on how to use this resource and supported operations.
Additional references
Type | Value | Additional information |
---|---|---|
Permissions resource | services | Permissions |
Hooks filename | services.groovy | Pre- and Post-Processing Hooks |
Tenant-supported | Yes | Tenants |
Distinct query-supported | Yes | Distinct |
Represents a Moab Service
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique identifier of this service. Generated during POST. |
account | String | Yes | No |
The account associated with this service. |
attributes | ServiceAttributes | Yes | Yes |
The attributes of this service. Moab dependency attributes can only be defined on container services. |
dateCreated | Date | No | No |
The date this service was created. Generated during POST. |
dateDeleted | Date | No | No |
The Date the service was deleted in Moab. |
durationRequested | Long | No | No |
The duration in seconds for this service. |
hookDefinitions | List<ServiceLocalHook> | Yes | Yes |
Hook definitions local to the service. |
includedServices | Set<String> | Yes | No |
The names of the services that this service contains. This can only be defined on container services. |
jobDetails | Job | No | No |
This field will only exist when a single VM service is requested with API version 2 or greater and contains the full job output for the job matching |
label | String | Yes | Yes |
(Required) A human readable description of this service. Valid for service template extension. |
lastUpdated | Date | No | No |
The date this service was last updated. Generated during POST. |
name | String | Yes | No |
The name of this service. A UUID is automatically generated when the name is not specified. |
parent | String | No | No |
The name of the service that contains this service. Generated during POST. |
serviceTemplate | ServiceTemplate | Yes | No |
The service template name and ID (if any) used to create the service. |
startDateRequested | Date | Yes | No |
The date this service was requested. |
startDateScheduled | Date | No | No |
The date this service is scheduled to run. Generated during POST. |
status | String | No | Yes |
The description of the current provisioning status. Generated during POST. |
statusCode | Long | No | Yes |
A numeric code representing the current provisioning status. What this code means is dependent on the provisioning scripts that create this service. Generated during POST. |
stepsCompleted | List<String> | Yes | Yes |
List of steps completed during service creation. |
tenant | Map<String, Map> | Yes | No |
Owning tenant for this service. This is optional during POST. |
type | ServiceType | Yes | No |
The type of the service. |
user | String | Yes | No |
The user associated with this service. |
virtualMachineDetails | VirtualMachine | No | No |
This field will only exist when a single VM service is requested with API version 2 or greater and contains the full virtual machine output for the VM matching |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | Long | No | No | |
moab | ServiceMoabAttributes | Yes | No |
Reserved space for Moab job configuration and attributes. |
sharedData | Map<String, Map> | Yes | Yes |
Arbitrary data. Valid for service template extension. |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | Long | No | No | |
dependencies | Set<ServiceMoabDependency> | Yes | No |
Temporal dependencies between included services. This only applies to type container services. |
job | ServiceJob | Yes | No |
The resources requested for a service of type vm, pm, or storage. This field is only valid during service submission. Once the service has been created the requested resources will appear in the jobRequested field. |
jobRequested | ServiceJob | No | No |
The resources requested for a service of type vm, pm, or storage. Cannot be modified. |
vc | VirtualContainer | No | No |
The virtual container that holds this service. Generated during POST. Only the virtual container ID is shown by default but can be expanded with the show-vc or show-recursive-vc URL parameter. |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique identifier of the job. Generated during POST. |
features | Set<String> | Yes | No |
The node features Moab uses to schedule the service. Valid for service template extension. |
image | String | Yes | No |
The image name used by the service. This only applies to type vm and pm services. Valid for service template extension. |
nodeSet | NodeSet | Yes | No |
The node set of this service. |
resources | Map<String, Map> | Yes | No |
The set of resources of the service. This includes both generic resources and the resources procs, mem, and disk. Typically we use generic resources 'gold' and 'OSStorage' for storage. The resources procs, mem, and disk only apply to type pm and vm services. Valid for service template extension. |
rules | Map<String, JobRequirementAttribute> | Yes | No |
Node attribute restrictions. Valid for service template extension. |
template | String | Yes | No |
The job template of this service. |
variables | Map<String, Map> | Yes | No |
The variables of the service. Variables name "serviceId", "topLevelServiceId", and "imageName" are reserved keys in the map and are created during the POST. Valid for service template extension. |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
displayValues | List<String> | No | No |
The human readable name of each value. |
name | String | Yes | No |
The name of the VARATTR used when type is VARATTR. |
selection | NodeSetSelection | Yes | No |
The node set selection policy. |
type | NodeSetType | Yes | No |
The node set selection type. |
values | List<String> | Yes | No |
The values of the node set which MWM schedules against. |
This enumeration specifies the node set selection policy.
This enumeration specifies the node set boundaries.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
comparator | String | Yes | No |
The comparison operator. Valid values:
|
displayValue | String | Yes | No |
The display value for the required attribute. |
restriction | JobRequirementAttributeRestriction | Yes | No |
The restriction of this attribute. May be null, but defaults to JobRequirementAttributeRestriction.must. |
value | String | Yes | No |
The value of the required attribute. During POST, if value is missing, blank, or null, do not provide a comparator. |
JobRequirementAttributeRestriction
Represents a restriction for a job requirement attribute.
Value | Description |
---|---|
must |
A virtual container is a logical grouping of objects with a shared variable space and applied policies. Containers can hold virtual machines, physical machines, jobs, reservations, and/or nodes and req node sets. Containers can also be nested inside other containers.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique ID of this virtual container. |
aclRules | Set<AclRule> | No | No |
The set of access control rules associated with this virtual container. |
createDate | Date | No | No |
The date/time that the virtual container was created. |
creator | String | No | No |
The creator of the virtual container. |
description | String | Yes | Yes |
A user-defined string that acts as a label. |
flags | Set<VirtualContainerFlag> | No | Yes |
The flags on this virtual container. |
jobs | Set<DomainProxyVersion1> | No | Yes |
The set of jobs in this virtual container. |
nodes | Set<DomainProxyVersion1> | No | Yes |
The set of nodes in this virtual container. |
owner | EmbeddedCredential | Yes | Yes |
The owner of the virtual container. |
reservations | Set<Reservation> | No | Yes |
The set of reservations in this virtual container. |
variables | Map<String, Map> | No | Yes |
Variables associated with the virtual container. |
virtualContainers | Set<VirtualContainer> | No | Yes |
The set of virtual containers in this virtual container. |
virtualMachines | Set<DomainProxyVersion1> | No | Yes |
The set of virtual machines in this virtual container. |
This class represents a rule that can be in Moab's access control list (ACL) mechanism.
The basic AclRule information is the object's name and type. The type directly maps to an AclType 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 | POST | PUT | Description |
---|---|---|---|---|
affinity | AclAffinity | No | 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 | No | Yes |
The type of comparison to make against the ACL object. |
type | AclType | No | Yes |
The type of the object that is being granted (or denied) access. |
value | String | No | Yes |
The name of the object that is being granted (or denied) access. |
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.
This enumeration specifies the flag types of a virtual container.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The id of the object. |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
name | String | No | No | |
type | CredentialType | No | No |
Value | Description |
---|---|
USER | |
GROUP | |
ACCOUNT | |
CLASS | |
QOS | |
NOT_SPECIFIED |
A reservation is the mechanism by which Moab guarantees the availability of a set of resources at a particular time. Each reservation consists of three major components: (1) a set of resources, (2) a time frame, and (3) an access control list. It is a scheduler role to ensure that the access control list is not violated during the reservation's lifetime (that is, its time frame) on the resources listed. For example, a reservation may specify that node002 is reserved for user Tom on Friday. The scheduler is thus constrained to make certain that only Tom's jobs can use node002 at any time on Friday.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique ID of the reservation. |
accountingAccount | String | Yes | No |
Accountable Account. |
accountingGroup | String | Yes | No |
Accountable Group. |
accountingQOS | String | Yes | No |
Accountable QOS. |
accountingUser | String | Yes | No |
Accountable User. |
aclRules | Set<AclRule> | Yes | No |
The set of access control rules associated with this reservation. |
allocatedNodeCount | Integer | No | No |
The number of allocated nodes for this reservation. |
allocatedNodes | Set<DomainProxyVersion1> | No | No |
The nodes allocated to the reservation. |
allocatedProcessorCount | Integer | No | No |
The number of allocated processors. |
allocatedTaskCount | Integer | No | No |
The number of allocated tasks. |
comments | String | Yes | No |
Reservation's comments or description. |
creationDate | Date | No | No |
Creation date. Automatically set by Moab when a user creates the reservation. |
duration | Long | Yes | No |
The duration of the reservation (in seconds). |
endDate | Date | Yes | No |
The end date of the reservation. This is especially useful for one-time reservations, which have an exact time for when a reservation ends. |
excludeJobs | Set<String> | Yes | No |
The list of jobs to exclude. Client must also set the IGNJOBRSV reservation flag. Otherwise, results are undefined. Used only during reservation creation. |
expireDate | Date | No | No |
The date/time when the reservation expires and vacates. |
flags | Set<ReservationFlag> | Yes | No |
The flags associated with the reservation. |
globalId | String | No | No |
Global reservation ID. |
hostListExpression | String | Yes | No |
The list of nodes a user can select to reserve. This may or may not be the nodes that are currently allocated to this reservation. Note: Either hostListExpression or taskCount must be set to create a reservation. |
idPrefix | String | Yes | No |
The user-specified prefix for this reservation. If provided, Moab combines the idPrefix with an integer, and the combination is the unique identifier for this reservation. |
isActive | Boolean | No | No |
State whether or not this reservation is currently active. |
isTracked | Boolean | No | No |
States whether reservation resource usage is tracked. |
label | String | Yes | No |
When a label is assigned to a reservation, the reservation can then be referenced by that label as well as by the reservation name. |
maxTasks | Integer | No | No |
The maximum number of tasks for this reservation. |
messages | Set<MessageVersion1> | No | No |
Messages for the reservation. |
owner | EmbeddedCredential | Yes | No |
The owner of the reservation |
partitionId | String | Yes | No |
The ID of the partition this reservation is for. |
profile | String | Yes | No |
The profile that this reservation is using. A profile is a specification of attributes that all reservations share. Used only during reservation creation. |
requirements | ReservationRequirement | Yes | No |
The reservation's requirements. |
reservationGroup | String | Yes | No |
The reservation group to which the reservation belongs. |
resources | Map<String, Integer> | Yes | No |
The reservation's resources. This field is a map, where the key is PROCS, MEM DISK, SWAP, or one or more user-defined keys. |
startDate | Date | Yes | No |
The start time for the reservation. This is especially useful for one-time reservations, which have an exact time for when a reservation starts. |
statistics | ReservationStatistics | No | No |
The reservation's statistical information. |
subType | String | Yes | No |
The reservation sub-type. |
taskCount | Integer | No | No |
The number of tasks that must be allocated to satisfy the reservation request. Note: Either hostListExpression or taskCount must be set to create a reservation. |
trigger | Trigger | Yes | No |
Trigger for reservation. Used only during reservation creation. |
triggerIds | Set<String> | No | No |
The IDs of the triggers attached to this reservation. |
uniqueIndex | String | No | No |
The globally-unique reservation index. |
variables | Map<String, Map> | Yes | Yes |
The set of variables for this reservation. |
The flag types of a reservation.
Represents all the types of requirements a user can request while creating a reservation.
Represents some basic statistical information that is kept about the usage of reservations. All metrics that are kept track relate to processor-seconds usage.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
Trigger id - internal ID used by moab to track triggers |
action | String | No | No |
For exec atype triggers, signifies executable and arguments. For jobpreempt atype triggers, signifies PREEMPTPOLICY to apply to jobs that are running on allocated resources. For changeparam atype triggers, specifies the parameter to change and its new value (using the same syntax and behavior as the changeparam command). |
actionType | TriggerActionType | No | No | |
blockTime | Date | No | No |
Time (in seconds) Moab will suspend normal operation to wait for trigger execution to finish. Use caution as Moab will completely stop normal operation until BlockTime expires. |
description | String | No | No | |
eventType | TriggerEventType | No | No | |
expireTime | Date | No | No |
Time at which trigger should be terminated if it has not already been activated. |
failOffset | Date | No | No |
Specifies the time (in seconds) that the threshold condition must exist before the trigger fires. |
flags | Set<TriggerFlag> | No | No | |
interval | Boolean | No | No |
When used in conjunction with MultiFire and RearmTime trigger will fire at regular intervals. Can be used with TriggerEventType.EPOCH to create a Standing Trigger. |
maxRetry | Integer | No | No |
Specifies the number of times Action will be attempted before the trigger is designated a failure. |
multiFire | Boolean | No | No |
Specifies whether this trigger can fire multiple times. Defaults to false. |
name | String | No | No |
Trigger name - can be auto assigned by moab or requested. Alphanumeric up to 16 characters in length |
objectId | String | No | No |
The ID of the object which this is attached to. |
objectType | String | No | No |
The type of object which this is attached to. Possible values:
|
offset | Date | No | No |
Relative time offset from event when trigger can fire. |
period | TriggerPeriod | No | No |
Can be used in conjunction with Offset to have a trigger fire at the beginning of the specified period. Can be used with EType epoch to create a standing trigger. |
rearmTime | Date | No | No |
Time between MultiFire triggers. Rearm time is enforced from the trigger event time. |
requires | String | No | No |
Variables this trigger requires to be set or not set before it will fire. Preceding the string with an exclamation mark (!) indicates this variable must NOT be set. Used in conjunction with Sets to create trigger dependencies. |
sets | String | No | No |
Variable values this trigger sets upon success or failure. Preceding the string with an exclamation mark (!) indicates this variable is set upon trigger failure. Preceding the string with a caret (^) indicates this variable is to be exported to the parent object when the current object is destroyed through a completion event. Used in conjunction with Requires to create trigger dependencies. |
threshold | String | No | No |
Reservation usage threshold - When reservation usage drops below Threshold, trigger will fire. |
timeout | Date | No | No |
Time allotted to this trigger before it is marked as unsuccessful and its process (if any) killed. |
type | TriggerType | No | No |
The type of the trigger. |
unsets | String | No | No |
Variable this trigger destroys upon success or failure. |
This enumeration specifies the action type of a trigger.
This enumeration specifies the event type of a trigger.
Value | Description |
---|---|
CANCEL | |
CHECKPOINT | |
CREATE | |
END | |
EPOCH | |
FAIL | |
HOLD | |
MIGRATE | |
MODIFY | |
PREEMPT | |
STANDING | |
START | |
THRESHOLD | |
DISCOVER | |
LOGROLL |
This enumeration specifies a flag belonging to a trigger.
This enumeration specifies the period of a trigger.
Value | Description |
---|---|
MINUTE | |
HOUR | |
DAY | |
WEEK | |
MONTH |
This enumeration specifies the type of the trigger.
Value | Description |
---|---|
generic | |
elastic |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No | |
currentPhase | ServicePhase | No | No |
The service phase that will trigger a running instance of this hook definition when the service leaves the phase. |
includeServiceAsBody | Boolean | No | No |
If set to true, the service json body we be piped to the STDIN of the script. Defaults to false |
name | String | No | No |
The service hook definition name. |
nextPhase | ServicePhase | No | No |
The service phase that will trigger a running instance of this hook definition when the service enters the phase. |
timeoutInSeconds | Long | No | No |
The duration in seconds before the hook will timeout and terminate automatically, resulting in a failure. Defaults to 900 seconds (15 minutes) when not specified. |
transition | Transition | No | No |
The service phase transition that will trigger a running instance of this hook definition. |
type | ServiceHookType | No | No |
The type of service hook that will be run. Before hook failures will stop the service phase transition from taking place. |
url | String | No | No |
The executable script to be run. e.g. exec:///opt/mws/hooks/service-hooks/hook1.sh?arg1&arg2 |
Value | Description |
---|---|
Deleted | |
Terminated | |
Cleaning | |
Deployed | |
Migrating | |
Deploying | |
Reserved | |
Analyzing | |
Defining | |
Blocked | |
Rejected |
Enumerates all the signals that a Service can respond to, which may cause a transition to a new phase of the service's lifecycle.
Value | Description |
---|---|
Before | |
After |
This class represents a job in the Moab Workload Manager. A job is a request for compute resources (CPUs, memory, storage) with which the requester can do work for a given amount of time. In an HPC environment, this might be a batch script to perform a Monte Carlo simulation. In a cloud environment, this would be a virtual machine and its associated storage. Moab will evaluate the request and assign the requested resources to the requester based on policies, current demand, and other factors in the data center. A job will also usually have some process that Moab starts automatically at the assigned start time. In an HPC environment, this can be starting a batch script on the assigned nodes. In a cloud environment, this can be starting provisioning processes to create the virtual machine and storage and install software on it.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique identifier of this job. Note: this field is not user-assigned and is generated by the database. |
arrayIndex | Long | No | No |
If this job is a sub-job of a JobArray, this field contains the index of this job in the array. For example, if this job is |
arrayMasterName | String | No | No |
If this job is a sub-job of a JobArray, this field contains the name of the job array master. For example, if this job is |
attributes | Set<String> | Yes | No |
The list of generic attributes associated with this job. |
blocks | Set<JobBlock> | No | No |
Reasons the job is blocked from running. |
bypassCount | Integer | No | No |
The number of times the job has been backfilled. |
cancelCount | Integer | No | No |
The number of times a job has received a cancel request. |
commandFile | String | Yes | No |
The name of the job script file (absolute path). If commandFile is set and commandScript is not set, then MWS must have read access to the file. If commandFile and commandScript are both set, then MWS does not read the contents of the file, but it does provide the name of the file to Moab. |
commandLineArguments | String | Yes | No |
The command line arguments passed to the job script specified by commandFile or commandScript. |
commandScript | String | Yes | No |
The contents of the job script. This field must be Base64-encoded. |
completionCode | Integer | No | No |
The exit code from this job. |
cpuTime | Long | No | No |
CPU usage time in seconds as reported by the resource manager. |
credentials | JobCredentials | Yes | Yes |
The credentials (user and group, for example) associated with this job. |
customName | String | Yes | Yes |
The user-specified name of this job. |
dates | JobDates | Yes | Yes |
Various dates associated with this job. |
deferCount | Integer | No | No |
The number of times a job has been deferred. |
dependencies | Set<JobDependency> | Yes | No |
Dependencies that must be fulfilled before the job can start. |
description | String | No | No |
The description of the job. Can be set only in a job template. |
duration | Long | Yes | Yes |
The length of time in seconds requested for the job. Note that it is possible to set duration to "INFINITY" if the AllowInfiniteJobs flag is set on the scheduler in the moab.cfg. |
durationActive | Long | No | No |
The length of time in seconds the job has been active or running. |
durationQueued | Long | No | No |
The length of time in seconds the job has been eligible to run in the queue. |
durationRemaining | Long | No | No |
An estimate of the time remaining, in seconds, before the job will complete. |
durationSuspended | Long | No | No |
The length of time in seconds the job has been suspended. |
emailNotifyAddresses | Set<String> | Yes | No |
The list of addresses to whom email is sent by the execution server. |
emailNotifyTypes | Set<JobEmailNotifyType> | Yes | No |
The list of email notify types attached to the job. |
environmentRequested | Boolean | Yes | No |
Setting this field to true tells the Moab Workload Manager to set various variables, if populated, in the job's environment. |
environmentVariables | Map<String, Map> | Yes | No |
The list of environment variables for this job. |
epilogScript | String | Yes | No |
The path to the TORQUE epilog script. |
flags | Set<JobFlag> | Yes | Yes |
The flags that are set on this job. |
holdDate | Date | No | No |
The date the most recent hold was placed on the job. |
holdReason | JobHoldReason | No | No |
The reason the job is on hold. |
holds | Set<JobHoldType> | Yes | Yes |
The holds that are set on the job. The "User" hold type is valid during POST. |
initialWorkingDirectory | String | Yes | No |
The path to the directory in which the job will be started. |
isActive | Boolean | No | No |
True if the job is active, false if the job is complete. |
jobGroup | String | Yes | No |
The job group to which this job belongs (different from credentials.group). |
masterNode | DomainProxy | No | No |
The first node in the list of allocated nodes for this job. For TORQUE jobs, this represents the "mother superior." |
memorySecondsDedicated | Double | No | No |
The memory seconds dedicated to the job as reported by its resource manager. Not all resource managers provide this information. |
memorySecondsUtilized | Double | No | No |
The memory seconds utilized by the job as reported by its resource manager. Not all resource managers provide this information. |
messages | Set<Message> | No | Yes |
The list of messages associated with the job. The "message" field is valid during PUT. |
migrateCount | Integer | No | No |
The number of times the job has been migrated. |
minimumPreemptTime | Long | No | No |
The minimum length of time, in seconds, an active job must be running before it is eligible for preemption. |
mwmName | String | No | No |
The name of the Moab Workload Manager instance that owns this job. |
name | String | No | No |
The name of this job. This name is unique per instance of Moab Workload Manager (i.e. not globally). |
nodesExcluded | Set<DomainProxy> | Yes | No |
The list of nodes that should not be considered for this job. |
nodesRequested | Set<DomainProxy> | Yes | No |
The exact set, superset, or subset of nodes on which this job must run. (See also: nodesRequestedPolicy.) |
nodesRequestedPolicy | JobHostListMode | Yes | No |
Indicates an exact set, superset, or subset of nodes on which the job must run. Only relevant if nodesRequested is provided. (See also: nodesRequested.) |
partitionAccessList | Set<String> | No | No |
The list of partitions that this job can access. |
partitionAccessListRequested | Set<String> | Yes | Yes |
The list of partitions that this job has requested. |
preemptCount | Integer | No | No |
The number of times the job has been preempted. |
priorities | JobPriority | Yes | Yes |
The list of priorities for the job. |
processorSecondsDedicated | Double | No | No |
The processor seconds dedicated to the job as reported by its resource manager. Not all resource managers provide this information. |
processorSecondsLimit | Double | No | No |
The limit for processorSecondsUtilized. |
processorSecondsUtilized | Double | No | No |
The processor seconds utilized by the job as reported by its resource manager. Not all resource managers provide this information. |
prologScript | String | Yes | No |
The path to the TORQUE prolog script. |
queueStatus | JobQueueStatus | No | No |
The status of the job in its queue. |
rejectPolicies | Set<JobRejectPolicy> | No | No |
The list of policies enabled when a job is rejected. |
requirements | Set<JobRequirement> | Yes | Yes |
The list of items required for this job to run. Only JobRequirement.features is valid during PUT. |
reservationRequested | DomainProxy | Yes | Yes |
The reservation that the job requested. |
resourceFailPolicy | JobResourceFailPolicyType | Yes | No |
The policy that dictates what should happen to the job if it is running and at least one of the resources it is using fails. |
resourceManagerExtension | String | Yes | No |
If provided during POST, this string will be added to the resource manager extension section of the job submission. Example: "bandwidth=120;queuejob=false" |
resourceManagers | Set<ResourceManager> | No | No |
The list of resource managers associated with this job. |
rmStandardErrorFilePath | String | No | No |
The path to the remote file containing the standard error of the job. |
rmStandardOutputFilePath | String | No | No |
The path to the remote file containing the standard output of the job. |
standardErrorFilePath | String | Yes | No |
The path to the file containing the standard error of the job. |
standardOutputFilePath | String | Yes | No |
The path to the file containing the standard output of the job. |
startCount | Integer | No | No |
The number of times the job has been started. |
states | JobStateInformation | No | No |
Information about the state of the job. |
submitHost | String | Yes | No |
The host from which the job was submitted. |
systemJobAction | String | No | No |
The action the system job will take. |
systemJobType | JobSystemJobType | No | No |
The type of system job. In the Moab Cloud Suite, this will usually be "vmtracking" or "generic." |
targetedJobAction | JobActionType | No | No |
The action that this job is performing on another job. |
targetedJobName | String | No | No |
The name of the job on which this job is performing the targetedJobAction. |
templates | Set<DomainProxy> | Yes | No |
The list of all job templates to be set on this job. |
triggers | Set<String> | No | No |
The list of triggers associated with this job. |
variables | Map<String, Map> | Yes | Yes |
The list of variables that this job owns or sets on completion. |
virtualContainers | Set<DomainProxy> | Yes | No |
When submitting this job, add it to the specified existing virtual container. Valid during POST, but only one virtual container can be specified. |
virtualMachines | Set<DomainProxy> | No | No |
The list of virtual machines that are allocated to this job. |
vmUsagePolicy | VMUsagePolicy | Yes | No |
The requested Virtual Machine Usage Policy for this job. |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
category | JobBlockCategory | No | No | |
message | String | No | No | |
type | JobBlockType | No | No |
Value | Description |
---|---|
depend | |
jobBlock | |
migrate |
Value | Description |
---|---|
ActivePolicy | |
BadUser | |
Dependency | |
EState | |
FairShare | |
Hold | |
IdlePolicy | |
LocalPolicy | |
NoClass | |
NoData | |
NoResource | |
NoTime | |
PartitionAccess | |
Priority | |
RMSubmissionFailure | |
StartDate | |
State | |
SysLimits |
Moab Workload Manager supports the concept of credentials, which provide a means of attributing policy and resource access to entities such as users and groups. These credentials allow specification of job ownership, tracking of resource usage, enforcement of policies, and many other features.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
name | String | Yes | No |
The name of the object on on which the job is dependent. |
type | JobDependencyType | Yes | No |
The type of job dependency. Only set is valid for POST. |
value | String | No | No |
Represents the type of a job dependency. For now, only the "set" type is supported.
Value | Description |
---|---|
set |
Value | Description |
---|---|
JobStart | |
JobEnd | |
JobFail | |
All |
This enumeration specifies the flag types of a job.
Value | Description |
---|---|
NONE | |
BACKFILL | The job is using backfill to run. |
COALLOC | The job can use resources from multiple resource managers and partitions. |
ADVRES | The job requires the use of a reservation. |
NOQUEUE | The job will attempt to execute immediately or fail. |
ARRAYJOB | The job is part of a job array. |
ARRAYJOBPARLOCK | This array job will only run in one partition. |
ARRAYJOBPARSPAN | This array job will span partitions (default). |
ARRAYMASTER | This job is the master of a job array. |
BESTEFFORT | The job will succeed if even partial resources are available. |
RESTARTABLE | The job is restartable. |
SUSPENDABLE | The job is suspendable. |
HASPREEMPTED | This job preempted other jobs to start. |
PREEMPTEE | The job is a preemptee and therefore can be preempted by other jobs. |
PREEMPTOR | The job is a preemptor and therefore can preempt other jobs. |
RSVMAP | The job is based on a reservation. |
SPVIOLATION | The job was started with a soft policy violation. |
IGNNODEPOLICIES | The job will ignore node policies. |
IGNPOLICIES | The job will ignore idle, active, class, partition, and system policies. |
IGNNODESTATE | The job will ignore node state in order to run. |
IGNIDLEJOBRSV | The job can ignore idle job reservations. The job granted access to all idle job reservations. |
INTERACTIVE | The job needs to interactive input from the user to run. |
FSVIOLATION | The job was started with a fairshare violation. |
GLOBALQUEUE | The job is directly submitted without doing any authentication. |
NORESOURCES | The job is a system job that does not need any resources. |
NORMSTART | The job will not query a resource manager to run. |
CLUSTERLOCKED | The job is locked into the current cluster and cannot be migrated elsewhere. This is for grid mode. |
FRAGMENT | The job can be run across multiple nodes in individual chunks. |
SYSTEMJOB | The job is a system job which simply runs on the same node that Moab is running on. This is usually used for running scripts and other executables in workflows. |
ADMINSETIGNPOLICIES | The IGNPOLICIES flag was set by an administrator. |
EXTENDSTARTWALLTIME | The job duration (walltime) was extended at job start. |
SHAREDMEM | The job will share its memory across nodes. |
BLOCKEDBYGRES | The job's generic resource requirement caused the job to start later. |
GRESONLY | The job is requesting only generic resources, no compute resources. |
TEMPLATESAPPLIED | The job has had all applicable templates applied to it. |
META | META job, just a container around resources. |
WIDERSVSEARCHALGO | This job prefers the wide search algorithm. |
VMTRACKING | The job is a VMTracking job for an externally-created VM (via job template). |
DESTROYTEMPLATESUBMITTED | A destroy job has already been created from the template for this job. |
PROCSPECIFIED | The job requested processors on the command line. |
CANCELONFIRSTFAILURE | Cancel job array on first array job failure. |
CANCELONFIRSTSUCCESS | Cancel job array on first array job success. |
CANCELONANYFAILURE | Cancel job array on any array job failure. |
CANCELONANYSUCCESS | Cancel job array on any array job success. |
CANCELONEXITCODE | Cancel job array on a specific exit code. |
NOVMMIGRATE | Do not migrate the virtual machine that this job sets up. |
PURGEONSUCCESSONLY | Only purge the job if it completed successfully |
ALLPROCS | Each job compute task requests all the procs on its node |
Value | Description |
---|---|
Admin | |
NoResources | |
SystemLimitsExceeded | |
BankFailure | |
CannotDebitAccount | |
InvalidAccount | |
RMFailure | |
RMReject | |
PolicyViolation | |
CredAccess | |
CredHold | |
PreReq | |
Data | |
Security | |
MissingDependency |
Value | Description |
---|---|
User | |
System | |
Batch | |
Defer | |
All |
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 | POST | PUT | Description |
---|---|---|---|---|
name | String | Yes | No |
The name of the object. |
Value | Description |
---|---|
superset | |
subset | |
exactset |
Value | Description |
---|---|
active | |
blocked | |
completed | |
eligible |
Value | Description |
---|---|
CANCEL | |
HOLD | |
IGNORE | |
RETRY |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
architecture | String | Yes | No |
The architecture required by the job. |
attributes | Map<String, JobRequirementAttribute> | Yes | No |
Required node attributes with version number support. |
features | Set<String> | No | Yes |
The list of node features the job is scheduled against. |
featuresExcluded | Set<String> | Yes | No |
Excluded node features. That is, do not select nodes with these features. (See also: featuresExcludedMode.) |
featuresExcludedMode | JobRequirementFeaturesMode | Yes | No |
Indicates whether excluded features should be AND'ed or OR'd. The default is AND. Only relevant if featuresExcluded is provided. (See also: featuresExcluded.) |
featuresRequested | Set<String> | Yes | No |
Requested node features. (See also: featuresRequestedMode.) |
featuresRequestedMode | JobRequirementFeaturesMode | Yes | No |
Indicates whether requested features should be AND'ed or OR'd. The default is AND. Only relevant if featuresRequested is provided. (See also: featuresRequested.) |
image | String | Yes | No |
The image required by the job. |
index | Integer | No | No |
The index of the requirement, starting with 0. |
metrics | Map<String, Double> | No | No |
Generic metrics associated with the job as reported by the resource manager. |
nodeAccessPolicy | NodeAccessPolicy | Yes | No |
Specifies how node resources should be accessed. Note: If the job requirements array has more than one element that contains nodeAccessPolicy, only the first occurrence will be used. |
nodeAllocationPolicy | NodeAllocationPolicy | Yes | No |
Specifies how node resources should be selected and allocated to the job. Note: If the job requirements array has more than one element that contains nodeAllocationPolicy, only the first occurrence will be used. |
nodeCount | Integer | Yes | No |
The number of nodes required by the job. |
nodeSet | String | Yes | No |
The requested node set of the job. This must follow the format
|
nodes | Set<AllocatedNode> | No | No |
Nodes that have been allocated to meet this requirement. |
reservation | DomainProxy | No | No |
The allocated reservation (assigned after the job has a reservation). |
resourcesPerTask | Map<String, JobResource> | Yes | No |
Contains requirements for disk, memory, processors, swap, and generic resources. For disk, memory, and swap, the unit is MB. For each resource, the "dedicated" field can be set during POST. |
taskCount | Integer | Yes | No |
The number of tasks (processors) required by this job. |
tasksPerNode | Integer | Yes | No |
The number of tasks to map to each node. |
Value | Description |
---|---|
OR | |
AND |
This enumeration describes how node resources will be shared by various tasks.
Node Allocation enumeration.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
name | String | No | No | |
taskCount | Integer | No | No |
Represents counts of dedicated and utilized resources.
Value | Description |
---|---|
CANCEL | |
FAIL | |
HOLD | |
IGNORE | |
NOTIFY | |
REQUEUE |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
isDestination | Boolean | No | No | |
isSource | Boolean | No | No | |
jobName | String | No | No | |
name | String | No | No |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
state | JobState | No | No | |
stateExpected | JobState | No | No | |
stateLastUpdatedDate | Date | No | No | |
subState | JobSubState | No | No |
Value | Description |
---|---|
Idle | |
Starting | |
Running | |
Removed | |
Completed | |
Hold | |
Deferred | |
Vacated | |
NotQueued | |
Unknown | |
Staging | |
Suspended | |
Blocked |
Value | Description |
---|---|
Epilogue | |
Migrated | |
Preempted | |
Prologue |
Value | Description |
---|---|
generic | |
osprovision | |
osprovision2 | |
poweroff | |
poweron | |
reset | |
storage | |
vmmap | |
vmmigrate | |
vmtracking |
Value | Description |
---|---|
DESTROY | |
MIGRATE | |
MODIFY |
This enumeration describes the virtual machine requirements of a job
A Service Template is a service pattern that may be modified to create custom services. Each template may be a service or a service container. Containers contain other templates. An example is a virtual machine template that may contain an operating system template.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique identifier of this Service Template. |
attributes | Map<String, Map> | No | No |
The characteristics of this Service Template: processors, memory, etc. Any key is valid and may be used for arbitrary storage or data, but the
moab.dependencies object contains the following fields:
moab.job object contains the following fields:
moab.job.image and moab.job.template are required for templates with a type of "vm" or "pm".
(See also:
Image.name, JobRequirement.nodeSet.)
|
createdBy | String | No | No |
The name of the user that created this Service Template. |
hookDefinitions | List<Map> | Yes | Yes |
A list of local hook definitions for this service template. (See also: ServiceLocalHook.) |
includedServices | List<Map> | No | No |
A list of objects describing the services templates included in this service template. When a service is created from this service template, the created service will contain services created from all included service templates. Only service templates of type container can include other service templates. Each entry in the includedServices list is an object containing two properties:
|
label | String | No | No |
(Required) A short description of this Service Template. |
modified | Date | No | No |
The most recent date this Service Template was changed. |
name | String | No | No |
The name of this Service Template. A UUID is automatically generated when the name is not specified. |
tags | List<String> | No | No |
Arbitrary strings used to group service templates. |
tenant | Map<String, Map> | Yes | No |
Owning tenant for this service template. This is mandatory during POST. |
type | String | No | No |
The type of service template. Valid values are "vm", "pm", "storage", and "container". (See also: ServiceType.) |
Value | Description |
---|---|
VM | |
PM | |
STORAGE | |
CONTAINER |
This class represents a virtual machine: a software implementation of a computer that executes programs like a physical machine (i.e. like a node). A virtual machine, therefore, requires a host machine, usually called a hypervisor, which partitions its resources to be used by the one or many virtual machines it hosts.
A virtual machine needs to have a name, will typically report an OS, and have a list of operating systems that it can run.Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique identifier of the virtual machine. Note: this field is not user-assigned and is generated by the database. |
attributes | Map<String, JobRequirementAttribute> | No | No |
A copy of the attributes from the tracking job associated with this VM. |
description | String | No | No |
A description of this VM. |
host | DomainProxy | No | Yes |
The physical machine (hypervisor) on which this VM is running. |
hostnames | Set<String> | No | No |
The set of host names (aliases) that refer to this VM. |
ipAddress | String | No | No |
This VM's IPv4 address. |
lastMigrationDate | Date | No | No |
The date when this VM was last migrated. |
lastUpdatedDate | Date | No | No |
The timestamp of the last moment when this VM was updated. There is no guarantee that all user modifications to a VM would be picked up. This will also be changed every RMPOLLINTERVAL even if a resource manager does not report information on this VM. |
metrics | Map<String, Double> | No | Yes |
Metrics are the measurable, quantitative, and changing aspects of this VM. They are used to define workload placement, attach triggers, etc. There are some built-in metrics:
|
migrationCount | Integer | No | No |
The number of times this VM has been migrated. |
migrationDisabled | Boolean | No | Yes |
True if migration is disabled for this VM, false otherwise. |
name | String | No | No |
The name of the virtual machine. This name is unique per instance of Moab Workload Manager (i.e. not globally). |
operatingSystem | VMOperatingSystemInformation | No | Yes |
Describes the current or expected operating system image information for this VM. |
requiredFeatures | Set<String> | No | No |
The set of features required by this VM. |
resourceManagers | Set<NodeResourceManager> | No | No |
The resource managers that are reporting or have previously reported this VM. Each object also contains information on the resource manager reports. |
resources | Map<String, Resource> | No | 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. |
startDate | Date | No | No |
Date that this VM was started (ready and usable). |
states | NodeStateInformation | No | Yes |
State information for this VM. |
trackingJob | DomainProxy | No | No |
The tracking job for this VM. |
triggers | Set<DomainProxy> | No | Yes |
The set of triggers associated with this VM. |
variables | Map<String, Map> | No | 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 VM. |
virtualContainers | Set<DomainProxy> | No | No |
The set of virtual containers that directly (not recursively) contain this VM. |
Describes the current or expected operating system image information for a virtual machine.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
image | String | No | No |
The name of the image currently running on this VM. 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 | No |
The name of the image that was requested to run on this VM. 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.) |
imageLastUpdatedDate | Date | No | No |
The last time the image of this VM was modified. |
imagesAvailable | Set<String> | No | No |
The list of image names which can be applied to this VM. In cloud mode, these correspond to IDs or names of images in the image management API in MWS. (See also: Image.id, Image.name.) |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
isMaster | Boolean | No | 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 | 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 | 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 | POST | PUT | Description |
---|---|---|---|---|
powerState | NodePower | No | 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 | 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 | No | Yes |
The scheduling state of the Node, as reported by the resource management layer. |
stateExpected | NodeState | No | 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 | No |
A timestamp recording when the state of the Node was last modified. |
subState | String | No | 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 | No |
The previous sub-state of the Node as reported by the resource management layer. |
subStateLastUpdatedDate | Date | No | 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 a Moab Service
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique identifier of this service. Generated during POST. |
account | String | Yes | No |
The account associated with this service. |
attributes | ServiceAttributes | Yes | Yes |
The attributes of this service. Moab dependency attributes can only be defined on container services. |
dateCreated | Date | No | No |
The date this service was created. Generated during POST. |
dateDeleted | Date | No | No |
The Date the service was deleted in Moab. |
durationRequested | Long | No | No |
The duration in seconds for this service. |
hookDefinitions | List<ServiceLocalHook> | Yes | Yes |
Hook definitions local to the service. |
includedServices | Set<String> | Yes | No |
The names of the services that this service contains. This can only be defined on container services. |
jobDetails | Job | No | No |
This field will only exist when a single VM service is requested with API version 2 or greater and contains the full job output for the job matching |
label | String | Yes | Yes |
(Required) A human readable description of this service. Valid for service template extension. |
lastUpdated | Date | No | No |
The date this service was last updated. Generated during POST. |
name | String | Yes | No |
The name of this service. A UUID is automatically generated when the name is not specified. |
parent | String | No | No |
The name of the service that contains this service. Generated during POST. |
serviceTemplate | ServiceTemplate | Yes | No |
The service template name and ID (if any) used to create the service. |
startDateRequested | Date | Yes | No |
The date this service was requested. |
startDateScheduled | Date | No | No |
The date this service is scheduled to run. Generated during POST. |
status | String | No | Yes |
The description of the current provisioning status. Generated during POST. |
statusCode | Long | No | Yes |
A numeric code representing the current provisioning status. What this code means is dependent on the provisioning scripts that create this service. Generated during POST. |
stepsCompleted | List<String> | Yes | Yes |
List of steps completed during service creation. |
tenant | Map<String, Map> | Yes | No |
Owning tenant for this service. This is optional during POST. |
type | ServiceType | Yes | No |
The type of the service. |
user | String | Yes | No |
The user associated with this service. |
virtualMachineDetails | VirtualMachine | No | No |
This field will only exist when a single VM service is requested with API version 2 or greater and contains the full virtual machine output for the VM matching |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | Long | No | No | |
moab | ServiceMoabAttributes | Yes | No |
Reserved space for Moab job configuration and attributes. |
sharedData | Map<String, Map> | Yes | Yes |
Arbitrary data. Valid for service template extension. |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | Long | No | No | |
dependencies | Set<ServiceMoabDependency> | Yes | No |
Temporal dependencies between included services. This only applies to type container services. |
job | ServiceJob | Yes | No |
The resources requested for a service of type vm, pm, or storage. This field is only valid during service submission. Once the service has been created the requested resources will appear in the jobRequested field. |
jobRequested | ServiceJob | No | No |
The resources requested for a service of type vm, pm, or storage. Cannot be modified. |
vc | VirtualContainer | No | No |
The virtual container that holds this service. Generated during POST. Only the virtual container ID is shown by default but can be expanded with the show-vc or show-recursive-vc URL parameter. |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique identifier of the job. Generated during POST. |
features | Set<String> | Yes | No |
The node features Moab uses to schedule the service. Valid for service template extension. |
image | String | Yes | No |
The image name used by the service. This only applies to type vm and pm services. Valid for service template extension. |
nodeSet | NodeSet | Yes | No |
The node set of this service. |
resources | Map<String, Map> | Yes | No |
The set of resources of the service. This includes both generic resources and the resources procs, mem, and disk. Typically we use generic resources 'gold' and 'OSStorage' for storage. The resources procs, mem, and disk only apply to type pm and vm services. Valid for service template extension. |
rules | Map<String, JobRequirementAttribute> | Yes | No |
Node attribute restrictions. Valid for service template extension. |
template | String | Yes | No |
The job template of this service. |
variables | Map<String, Map> | Yes | No |
The variables of the service. Variables name "serviceId", "topLevelServiceId", and "imageName" are reserved keys in the map and are created during the POST. Valid for service template extension. |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
displayValues | List<String> | No | No |
The human readable name of each value. |
name | String | Yes | No |
The name of the VARATTR used when type is VARATTR. |
selection | NodeSetSelection | Yes | No |
The node set selection policy. |
type | NodeSetType | Yes | No |
The node set selection type. |
values | List<String> | Yes | No |
The values of the node set which MWM schedules against. |
This enumeration specifies the node set selection policy.
This enumeration specifies the node set boundaries.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
comparator | String | Yes | No |
The comparison operator. Valid values:
|
displayValue | String | Yes | No |
The display value for the required attribute. |
restriction | JobRequirementAttributeRestriction | Yes | No |
The restriction of this attribute. May be null, but defaults to JobRequirementAttributeRestriction.must. |
value | String | Yes | No |
The value of the required attribute. During POST, if value is missing, blank, or null, do not provide a comparator. |
JobRequirementAttributeRestriction
Represents a restriction for a job requirement attribute.
Value | Description |
---|---|
must |
A virtual container is a logical grouping of objects with a shared variable space and applied policies. Containers can hold virtual machines, physical machines, jobs, reservations, and/or nodes and req node sets. Containers can also be nested inside other containers.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique ID of this virtual container. |
aclRules | Set<AclRule> | No | No |
The set of access control rules associated with this virtual container. |
createDate | Date | No | No |
The date/time that the virtual container was created. |
creator | String | No | No |
The creator of the virtual container. |
description | String | Yes | Yes |
A user-defined string that acts as a label. |
flags | Set<VirtualContainerFlag> | No | Yes |
The flags on this virtual container. |
jobs | Set<DomainProxyVersion1> | No | Yes |
The set of jobs in this virtual container. |
nodes | Set<DomainProxyVersion1> | No | Yes |
The set of nodes in this virtual container. |
owner | EmbeddedCredential | Yes | Yes |
The owner of the virtual container. |
reservations | Set<Reservation> | No | Yes |
The set of reservations in this virtual container. |
variables | Map<String, Map> | No | Yes |
Variables associated with the virtual container. |
virtualContainers | Set<VirtualContainer> | No | Yes |
The set of virtual containers in this virtual container. |
virtualMachines | Set<DomainProxyVersion1> | No | Yes |
The set of virtual machines in this virtual container. |
This class represents a rule that can be in Moab's access control list (ACL) mechanism.
The basic AclRule information is the object's name and type. The type directly maps to an AclType 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 | POST | PUT | Description |
---|---|---|---|---|
affinity | AclAffinity | No | 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 | No | Yes |
The type of comparison to make against the ACL object. |
type | AclType | No | Yes |
The type of the object that is being granted (or denied) access. |
value | String | No | Yes |
The name of the object that is being granted (or denied) access. |
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.
This enumeration specifies the flag types of a virtual container.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The id of the object. |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
name | String | No | No | |
type | CredentialType | No | No |
Value | Description |
---|---|
USER | |
GROUP | |
ACCOUNT | |
CLASS | |
QOS | |
NOT_SPECIFIED |
A reservation is the mechanism by which Moab guarantees the availability of a set of resources at a particular time. Each reservation consists of three major components: (1) a set of resources, (2) a time frame, and (3) an access control list. It is a scheduler role to ensure that the access control list is not violated during the reservation's lifetime (that is, its time frame) on the resources listed. For example, a reservation may specify that node002 is reserved for user Tom on Friday. The scheduler is thus constrained to make certain that only Tom's jobs can use node002 at any time on Friday.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique ID of the reservation. |
accountingAccount | String | Yes | No |
Accountable Account. |
accountingGroup | String | Yes | No |
Accountable Group. |
accountingQOS | String | Yes | No |
Accountable QOS. |
accountingUser | String | Yes | No |
Accountable User. |
aclRules | Set<AclRule> | Yes | No |
The set of access control rules associated with this reservation. |
allocatedNodeCount | Integer | No | No |
The number of allocated nodes for this reservation. |
allocatedNodes | Set<DomainProxyVersion1> | No | No |
The nodes allocated to the reservation. |
allocatedProcessorCount | Integer | No | No |
The number of allocated processors. |
allocatedTaskCount | Integer | No | No |
The number of allocated tasks. |
comments | String | Yes | No |
Reservation's comments or description. |
creationDate | Date | No | No |
Creation date. Automatically set by Moab when a user creates the reservation. |
duration | Long | Yes | No |
The duration of the reservation (in seconds). |
endDate | Date | Yes | No |
The end date of the reservation. This is especially useful for one-time reservations, which have an exact time for when a reservation ends. |
excludeJobs | Set<String> | Yes | No |
The list of jobs to exclude. Client must also set the IGNJOBRSV reservation flag. Otherwise, results are undefined. Used only during reservation creation. |
expireDate | Date | No | No |
The date/time when the reservation expires and vacates. |
flags | Set<ReservationFlag> | Yes | No |
The flags associated with the reservation. |
globalId | String | No | No |
Global reservation ID. |
hostListExpression | String | Yes | No |
The list of nodes a user can select to reserve. This may or may not be the nodes that are currently allocated to this reservation. Note: Either hostListExpression or taskCount must be set to create a reservation. |
idPrefix | String | Yes | No |
The user-specified prefix for this reservation. If provided, Moab combines the idPrefix with an integer, and the combination is the unique identifier for this reservation. |
isActive | Boolean | No | No |
State whether or not this reservation is currently active. |
isTracked | Boolean | No | No |
States whether reservation resource usage is tracked. |
label | String | Yes | No |
When a label is assigned to a reservation, the reservation can then be referenced by that label as well as by the reservation name. |
maxTasks | Integer | No | No |
The maximum number of tasks for this reservation. |
messages | Set<MessageVersion1> | No | No |
Messages for the reservation. |
owner | EmbeddedCredential | Yes | No |
The owner of the reservation |
partitionId | String | Yes | No |
The ID of the partition this reservation is for. |
profile | String | Yes | No |
The profile that this reservation is using. A profile is a specification of attributes that all reservations share. Used only during reservation creation. |
requirements | ReservationRequirement | Yes | No |
The reservation's requirements. |
reservationGroup | String | Yes | No |
The reservation group to which the reservation belongs. |
resources | Map<String, Integer> | Yes | No |
The reservation's resources. This field is a map, where the key is PROCS, MEM DISK, SWAP, or one or more user-defined keys. |
startDate | Date | Yes | No |
The start time for the reservation. This is especially useful for one-time reservations, which have an exact time for when a reservation starts. |
statistics | ReservationStatistics | No | No |
The reservation's statistical information. |
subType | String | Yes | No |
The reservation sub-type. |
taskCount | Integer | No | No |
The number of tasks that must be allocated to satisfy the reservation request. Note: Either hostListExpression or taskCount must be set to create a reservation. |
trigger | Trigger | Yes | No |
Trigger for reservation. Used only during reservation creation. |
triggerIds | Set<String> | No | No |
The IDs of the triggers attached to this reservation. |
uniqueIndex | String | No | No |
The globally-unique reservation index. |
variables | Map<String, Map> | Yes | Yes |
The set of variables for this reservation. |
The flag types of a reservation.
Represents all the types of requirements a user can request while creating a reservation.
Represents some basic statistical information that is kept about the usage of reservations. All metrics that are kept track relate to processor-seconds usage.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
Trigger id - internal ID used by moab to track triggers |
action | String | No | No |
For exec atype triggers, signifies executable and arguments. For jobpreempt atype triggers, signifies PREEMPTPOLICY to apply to jobs that are running on allocated resources. For changeparam atype triggers, specifies the parameter to change and its new value (using the same syntax and behavior as the changeparam command). |
actionType | TriggerActionType | No | No | |
blockTime | Date | No | No |
Time (in seconds) Moab will suspend normal operation to wait for trigger execution to finish. Use caution as Moab will completely stop normal operation until BlockTime expires. |
description | String | No | No | |
eventType | TriggerEventType | No | No | |
expireTime | Date | No | No |
Time at which trigger should be terminated if it has not already been activated. |
failOffset | Date | No | No |
Specifies the time (in seconds) that the threshold condition must exist before the trigger fires. |
flags | Set<TriggerFlag> | No | No | |
interval | Boolean | No | No |
When used in conjunction with MultiFire and RearmTime trigger will fire at regular intervals. Can be used with TriggerEventType.EPOCH to create a Standing Trigger. |
maxRetry | Integer | No | No |
Specifies the number of times Action will be attempted before the trigger is designated a failure. |
multiFire | Boolean | No | No |
Specifies whether this trigger can fire multiple times. Defaults to false. |
name | String | No | No |
Trigger name - can be auto assigned by moab or requested. Alphanumeric up to 16 characters in length |
objectId | String | No | No |
The ID of the object which this is attached to. |
objectType | String | No | No |
The type of object which this is attached to. Possible values:
|
offset | Date | No | No |
Relative time offset from event when trigger can fire. |
period | TriggerPeriod | No | No |
Can be used in conjunction with Offset to have a trigger fire at the beginning of the specified period. Can be used with EType epoch to create a standing trigger. |
rearmTime | Date | No | No |
Time between MultiFire triggers. Rearm time is enforced from the trigger event time. |
requires | String | No | No |
Variables this trigger requires to be set or not set before it will fire. Preceding the string with an exclamation mark (!) indicates this variable must NOT be set. Used in conjunction with Sets to create trigger dependencies. |
sets | String | No | No |
Variable values this trigger sets upon success or failure. Preceding the string with an exclamation mark (!) indicates this variable is set upon trigger failure. Preceding the string with a caret (^) indicates this variable is to be exported to the parent object when the current object is destroyed through a completion event. Used in conjunction with Requires to create trigger dependencies. |
threshold | String | No | No |
Reservation usage threshold - When reservation usage drops below Threshold, trigger will fire. |
timeout | Date | No | No |
Time allotted to this trigger before it is marked as unsuccessful and its process (if any) killed. |
type | TriggerType | No | No |
The type of the trigger. |
unsets | String | No | No |
Variable this trigger destroys upon success or failure. |
This enumeration specifies the action type of a trigger.
This enumeration specifies the event type of a trigger.
Value | Description |
---|---|
CANCEL | |
CHECKPOINT | |
CREATE | |
END | |
EPOCH | |
FAIL | |
HOLD | |
MIGRATE | |
MODIFY | |
PREEMPT | |
STANDING | |
START | |
THRESHOLD | |
DISCOVER | |
LOGROLL |
This enumeration specifies a flag belonging to a trigger.
This enumeration specifies the period of a trigger.
Value | Description |
---|---|
MINUTE | |
HOUR | |
DAY | |
WEEK | |
MONTH |
This enumeration specifies the type of the trigger.
Value | Description |
---|---|
generic | |
elastic |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No | |
currentPhase | ServicePhase | No | No |
The service phase that will trigger a running instance of this hook definition when the service leaves the phase. |
includeServiceAsBody | Boolean | No | No |
If set to true, the service json body we be piped to the STDIN of the script. Defaults to false |
name | String | No | No |
The service hook definition name. |
nextPhase | ServicePhase | No | No |
The service phase that will trigger a running instance of this hook definition when the service enters the phase. |
timeoutInSeconds | Long | No | No |
The duration in seconds before the hook will timeout and terminate automatically, resulting in a failure. Defaults to 900 seconds (15 minutes) when not specified. |
transition | Transition | No | No |
The service phase transition that will trigger a running instance of this hook definition. |
type | ServiceHookType | No | No |
The type of service hook that will be run. Before hook failures will stop the service phase transition from taking place. |
url | String | No | No |
The executable script to be run. e.g. exec:///opt/mws/hooks/service-hooks/hook1.sh?arg1&arg2 |
Value | Description |
---|---|
Deleted | |
Terminated | |
Cleaning | |
Deployed | |
Migrating | |
Deploying | |
Reserved | |
Analyzing | |
Defining | |
Blocked | |
Rejected |
Enumerates all the signals that a Service can respond to, which may cause a transition to a new phase of the service's lifecycle.
Value | Description |
---|---|
Before | |
After |
This class represents a job in the Moab Workload Manager. A job is a request for compute resources (CPUs, memory, storage) with which the requester can do work for a given amount of time. In an HPC environment, this might be a batch script to perform a Monte Carlo simulation. In a cloud environment, this would be a virtual machine and its associated storage. Moab will evaluate the request and assign the requested resources to the requester based on policies, current demand, and other factors in the data center. A job will also usually have some process that Moab starts automatically at the assigned start time. In an HPC environment, this can be starting a batch script on the assigned nodes. In a cloud environment, this can be starting provisioning processes to create the virtual machine and storage and install software on it.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique identifier of this job. Note: this field is not user-assigned and is generated by the database. |
arrayIndex | Long | No | No |
If this job is a sub-job of a JobArray, this field contains the index of this job in the array. For example, if this job is |
arrayMasterName | String | No | No |
If this job is a sub-job of a JobArray, this field contains the name of the job array master. For example, if this job is |
attributes | Set<String> | Yes | No |
The list of generic attributes associated with this job. |
blocks | Set<JobBlock> | No | No |
Reasons the job is blocked from running. |
bypassCount | Integer | No | No |
The number of times the job has been backfilled. |
cancelCount | Integer | No | No |
The number of times a job has received a cancel request. |
commandFile | String | Yes | No |
The name of the job script file (absolute path). If commandFile is set and commandScript is not set, then MWS must have read access to the file. If commandFile and commandScript are both set, then MWS does not read the contents of the file, but it does provide the name of the file to Moab. |
commandLineArguments | String | Yes | No |
The command line arguments passed to the job script specified by commandFile or commandScript. |
commandScript | String | Yes | No |
The contents of the job script. This field must be Base64-encoded. |
completionCode | Integer | No | No |
The exit code from this job. |
cpuTime | Long | No | No |
CPU usage time in seconds as reported by the resource manager. |
credentials | JobCredentials | Yes | Yes |
The credentials (user and group, for example) associated with this job. |
customName | String | Yes | Yes |
The user-specified name of this job. |
dates | JobDates | Yes | Yes |
Various dates associated with this job. |
deferCount | Integer | No | No |
The number of times a job has been deferred. |
dependencies | Set<JobDependency> | Yes | No |
Dependencies that must be fulfilled before the job can start. |
description | String | No | No |
The description of the job. Can be set only in a job template. |
duration | Long | Yes | Yes |
The length of time in seconds requested for the job. Note that it is possible to set duration to "INFINITY" if the AllowInfiniteJobs flag is set on the scheduler in the moab.cfg. |
durationActive | Long | No | No |
The length of time in seconds the job has been active or running. |
durationQueued | Long | No | No |
The length of time in seconds the job has been eligible to run in the queue. |
durationRemaining | Long | No | No |
An estimate of the time remaining, in seconds, before the job will complete. |
durationSuspended | Long | No | No |
The length of time in seconds the job has been suspended. |
emailNotifyAddresses | Set<String> | Yes | No |
The list of addresses to whom email is sent by the execution server. |
emailNotifyTypes | Set<JobEmailNotifyType> | Yes | No |
The list of email notify types attached to the job. |
environmentRequested | Boolean | Yes | No |
Setting this field to true tells the Moab Workload Manager to set various variables, if populated, in the job's environment. |
environmentVariables | Map<String, Map> | Yes | No |
The list of environment variables for this job. |
epilogScript | String | Yes | No |
The path to the TORQUE epilog script. |
flags | Set<JobFlag> | Yes | Yes |
The flags that are set on this job. |
holdDate | Date | No | No |
The date the most recent hold was placed on the job. |
holdReason | JobHoldReason | No | No |
The reason the job is on hold. |
holds | Set<JobHoldType> | Yes | Yes |
The holds that are set on the job. The "User" hold type is valid during POST. |
initialWorkingDirectory | String | Yes | No |
The path to the directory in which the job will be started. |
isActive | Boolean | No | No |
True if the job is active, false if the job is complete. |
jobGroup | String | Yes | No |
The job group to which this job belongs (different from credentials.group). |
masterNode | DomainProxy | No | No |
The first node in the list of allocated nodes for this job. For TORQUE jobs, this represents the "mother superior." |
memorySecondsDedicated | Double | No | No |
The memory seconds dedicated to the job as reported by its resource manager. Not all resource managers provide this information. |
memorySecondsUtilized | Double | No | No |
The memory seconds utilized by the job as reported by its resource manager. Not all resource managers provide this information. |
messages | Set<Message> | No | Yes |
The list of messages associated with the job. The "message" field is valid during PUT. |
migrateCount | Integer | No | No |
The number of times the job has been migrated. |
minimumPreemptTime | Long | No | No |
The minimum length of time, in seconds, an active job must be running before it is eligible for preemption. |
mwmName | String | No | No |
The name of the Moab Workload Manager instance that owns this job. |
name | String | No | No |
The name of this job. This name is unique per instance of Moab Workload Manager (i.e. not globally). |
nodesExcluded | Set<DomainProxy> | Yes | No |
The list of nodes that should not be considered for this job. |
nodesRequested | Set<DomainProxy> | Yes | No |
The exact set, superset, or subset of nodes on which this job must run. (See also: nodesRequestedPolicy.) |
nodesRequestedPolicy | JobHostListMode | Yes | No |
Indicates an exact set, superset, or subset of nodes on which the job must run. Only relevant if nodesRequested is provided. (See also: nodesRequested.) |
partitionAccessList | Set<String> | No | No |
The list of partitions that this job can access. |
partitionAccessListRequested | Set<String> | Yes | Yes |
The list of partitions that this job has requested. |
preemptCount | Integer | No | No |
The number of times the job has been preempted. |
priorities | JobPriority | Yes | Yes |
The list of priorities for the job. |
processorSecondsDedicated | Double | No | No |
The processor seconds dedicated to the job as reported by its resource manager. Not all resource managers provide this information. |
processorSecondsLimit | Double | No | No |
The limit for processorSecondsUtilized. |
processorSecondsUtilized | Double | No | No |
The processor seconds utilized by the job as reported by its resource manager. Not all resource managers provide this information. |
prologScript | String | Yes | No |
The path to the TORQUE prolog script. |
queueStatus | JobQueueStatus | No | No |
The status of the job in its queue. |
rejectPolicies | Set<JobRejectPolicy> | No | No |
The list of policies enabled when a job is rejected. |
requirements | Set<JobRequirement> | Yes | Yes |
The list of items required for this job to run. Only JobRequirement.features is valid during PUT. |
reservationRequested | DomainProxy | Yes | Yes |
The reservation that the job requested. |
resourceFailPolicy | JobResourceFailPolicyType | Yes | No |
The policy that dictates what should happen to the job if it is running and at least one of the resources it is using fails. |
resourceManagerExtension | String | Yes | No |
If provided during POST, this string will be added to the resource manager extension section of the job submission. Example: "bandwidth=120;queuejob=false" |
resourceManagers | Set<ResourceManager> | No | No |
The list of resource managers associated with this job. |
rmStandardErrorFilePath | String | No | No |
The path to the remote file containing the standard error of the job. |
rmStandardOutputFilePath | String | No | No |
The path to the remote file containing the standard output of the job. |
standardErrorFilePath | String | Yes | No |
The path to the file containing the standard error of the job. |
standardOutputFilePath | String | Yes | No |
The path to the file containing the standard output of the job. |
startCount | Integer | No | No |
The number of times the job has been started. |
states | JobStateInformation | No | No |
Information about the state of the job. |
submitHost | String | Yes | No |
The host from which the job was submitted. |
systemJobAction | String | No | No |
The action the system job will take. |
systemJobType | JobSystemJobType | No | No |
The type of system job. In the Moab Cloud Suite, this will usually be "vmtracking" or "generic." |
targetedJobAction | JobActionType | No | No |
The action that this job is performing on another job. |
targetedJobName | String | No | No |
The name of the job on which this job is performing the targetedJobAction. |
templates | Set<DomainProxy> | Yes | No |
The list of all job templates to be set on this job. |
triggers | Set<String> | No | No |
The list of triggers associated with this job. |
variables | Map<String, Map> | Yes | Yes |
The list of variables that this job owns or sets on completion. |
virtualContainers | Set<DomainProxy> | Yes | No |
When submitting this job, add it to the specified existing virtual container. Valid during POST, but only one virtual container can be specified. |
virtualMachines | Set<DomainProxy> | No | No |
The list of virtual machines that are allocated to this job. |
vmUsagePolicy | VMUsagePolicy | Yes | No |
The requested Virtual Machine Usage Policy for this job. |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
category | JobBlockCategory | No | No | |
message | String | No | No | |
type | JobBlockType | No | No |
Value | Description |
---|---|
depend | |
jobBlock | |
migrate |
Value | Description |
---|---|
ActivePolicy | |
BadUser | |
Dependency | |
EState | |
FairShare | |
Hold | |
IdlePolicy | |
LocalPolicy | |
NoClass | |
NoData | |
NoResource | |
NoTime | |
PartitionAccess | |
Priority | |
RMSubmissionFailure | |
StartDate | |
State | |
SysLimits |
Moab Workload Manager supports the concept of credentials, which provide a means of attributing policy and resource access to entities such as users and groups. These credentials allow specification of job ownership, tracking of resource usage, enforcement of policies, and many other features.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
name | String | Yes | No |
The name of the object on on which the job is dependent. |
type | JobDependencyType | Yes | No |
The type of job dependency. Only set is valid for POST. |
value | String | No | No |
Represents the type of a job dependency. For now, only the "set" type is supported.
Value | Description |
---|---|
set |
Value | Description |
---|---|
JobStart | |
JobEnd | |
JobFail | |
All |
This enumeration specifies the flag types of a job.
Value | Description |
---|---|
NONE | |
BACKFILL | The job is using backfill to run. |
COALLOC | The job can use resources from multiple resource managers and partitions. |
ADVRES | The job requires the use of a reservation. |
NOQUEUE | The job will attempt to execute immediately or fail. |
ARRAYJOB | The job is part of a job array. |
ARRAYJOBPARLOCK | This array job will only run in one partition. |
ARRAYJOBPARSPAN | This array job will span partitions (default). |
ARRAYMASTER | This job is the master of a job array. |
BESTEFFORT | The job will succeed if even partial resources are available. |
RESTARTABLE | The job is restartable. |
SUSPENDABLE | The job is suspendable. |
HASPREEMPTED | This job preempted other jobs to start. |
PREEMPTEE | The job is a preemptee and therefore can be preempted by other jobs. |
PREEMPTOR | The job is a preemptor and therefore can preempt other jobs. |
RSVMAP | The job is based on a reservation. |
SPVIOLATION | The job was started with a soft policy violation. |
IGNNODEPOLICIES | The job will ignore node policies. |
IGNPOLICIES | The job will ignore idle, active, class, partition, and system policies. |
IGNNODESTATE | The job will ignore node state in order to run. |
IGNIDLEJOBRSV | The job can ignore idle job reservations. The job granted access to all idle job reservations. |
INTERACTIVE | The job needs to interactive input from the user to run. |
FSVIOLATION | The job was started with a fairshare violation. |
GLOBALQUEUE | The job is directly submitted without doing any authentication. |
NORESOURCES | The job is a system job that does not need any resources. |
NORMSTART | The job will not query a resource manager to run. |
CLUSTERLOCKED | The job is locked into the current cluster and cannot be migrated elsewhere. This is for grid mode. |
FRAGMENT | The job can be run across multiple nodes in individual chunks. |
SYSTEMJOB | The job is a system job which simply runs on the same node that Moab is running on. This is usually used for running scripts and other executables in workflows. |
ADMINSETIGNPOLICIES | The IGNPOLICIES flag was set by an administrator. |
EXTENDSTARTWALLTIME | The job duration (walltime) was extended at job start. |
SHAREDMEM | The job will share its memory across nodes. |
BLOCKEDBYGRES | The job's generic resource requirement caused the job to start later. |
GRESONLY | The job is requesting only generic resources, no compute resources. |
TEMPLATESAPPLIED | The job has had all applicable templates applied to it. |
META | META job, just a container around resources. |
WIDERSVSEARCHALGO | This job prefers the wide search algorithm. |
VMTRACKING | The job is a VMTracking job for an externally-created VM (via job template). |
DESTROYTEMPLATESUBMITTED | A destroy job has already been created from the template for this job. |
PROCSPECIFIED | The job requested processors on the command line. |
CANCELONFIRSTFAILURE | Cancel job array on first array job failure. |
CANCELONFIRSTSUCCESS | Cancel job array on first array job success. |
CANCELONANYFAILURE | Cancel job array on any array job failure. |
CANCELONANYSUCCESS | Cancel job array on any array job success. |
CANCELONEXITCODE | Cancel job array on a specific exit code. |
NOVMMIGRATE | Do not migrate the virtual machine that this job sets up. |
PURGEONSUCCESSONLY | Only purge the job if it completed successfully |
ALLPROCS | Each job compute task requests all the procs on its node |
Value | Description |
---|---|
Admin | |
NoResources | |
SystemLimitsExceeded | |
BankFailure | |
CannotDebitAccount | |
InvalidAccount | |
RMFailure | |
RMReject | |
PolicyViolation | |
CredAccess | |
CredHold | |
PreReq | |
Data | |
Security | |
MissingDependency |
Value | Description |
---|---|
User | |
System | |
Batch | |
Defer | |
All |
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 | POST | PUT | Description |
---|---|---|---|---|
name | String | Yes | No |
The name of the object. |
Value | Description |
---|---|
superset | |
subset | |
exactset |
Value | Description |
---|---|
active | |
blocked | |
completed | |
eligible |
Value | Description |
---|---|
CANCEL | |
HOLD | |
IGNORE | |
RETRY |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
architecture | String | Yes | No |
The architecture required by the job. |
attributes | Map<String, JobRequirementAttribute> | Yes | No |
Required node attributes with version number support. |
features | Set<String> | No | Yes |
The list of node features the job is scheduled against. |
featuresExcluded | Set<String> | Yes | No |
Excluded node features. That is, do not select nodes with these features. (See also: featuresExcludedMode.) |
featuresExcludedMode | JobRequirementFeaturesMode | Yes | No |
Indicates whether excluded features should be AND'ed or OR'd. The default is AND. Only relevant if featuresExcluded is provided. (See also: featuresExcluded.) |
featuresRequested | Set<String> | Yes | No |
Requested node features. (See also: featuresRequestedMode.) |
featuresRequestedMode | JobRequirementFeaturesMode | Yes | No |
Indicates whether requested features should be AND'ed or OR'd. The default is AND. Only relevant if featuresRequested is provided. (See also: featuresRequested.) |
image | String | Yes | No |
The image required by the job. |
index | Integer | No | No |
The index of the requirement, starting with 0. |
metrics | Map<String, Double> | No | No |
Generic metrics associated with the job as reported by the resource manager. |
nodeAccessPolicy | NodeAccessPolicy | Yes | No |
Specifies how node resources should be accessed. Note: If the job requirements array has more than one element that contains nodeAccessPolicy, only the first occurrence will be used. |
nodeAllocationPolicy | NodeAllocationPolicy | Yes | No |
Specifies how node resources should be selected and allocated to the job. Note: If the job requirements array has more than one element that contains nodeAllocationPolicy, only the first occurrence will be used. |
nodeCount | Integer | Yes | No |
The number of nodes required by the job. |
nodeSet | String | Yes | No |
The requested node set of the job. This must follow the format
|
nodes | Set<AllocatedNode> | No | No |
Nodes that have been allocated to meet this requirement. |
reservation | DomainProxy | No | No |
The allocated reservation (assigned after the job has a reservation). |
resourcesPerTask | Map<String, JobResource> | Yes | No |
Contains requirements for disk, memory, processors, swap, and generic resources. For disk, memory, and swap, the unit is MB. For each resource, the "dedicated" field can be set during POST. |
taskCount | Integer | Yes | No |
The number of tasks (processors) required by this job. |
tasksPerNode | Integer | Yes | No |
The number of tasks to map to each node. |
Value | Description |
---|---|
OR | |
AND |
This enumeration describes how node resources will be shared by various tasks.
Node Allocation enumeration.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
name | String | No | No | |
taskCount | Integer | No | No |
Represents counts of dedicated and utilized resources.
Value | Description |
---|---|
CANCEL | |
FAIL | |
HOLD | |
IGNORE | |
NOTIFY | |
REQUEUE |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
isDestination | Boolean | No | No | |
isSource | Boolean | No | No | |
jobName | String | No | No | |
name | String | No | No |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
state | JobState | No | No | |
stateExpected | JobState | No | No | |
stateLastUpdatedDate | Date | No | No | |
subState | JobSubState | No | No |
Value | Description |
---|---|
Idle | |
Starting | |
Running | |
Removed | |
Completed | |
Hold | |
Deferred | |
Vacated | |
NotQueued | |
Unknown | |
Staging | |
Suspended | |
Blocked |
Value | Description |
---|---|
Epilogue | |
Migrated | |
Preempted | |
Prologue |
Value | Description |
---|---|
generic | |
osprovision | |
osprovision2 | |
poweroff | |
poweron | |
reset | |
storage | |
vmmap | |
vmmigrate | |
vmtracking |
Value | Description |
---|---|
DESTROY | |
MIGRATE | |
MODIFY |
This enumeration describes the virtual machine requirements of a job
A Service Template is a service pattern that may be modified to create custom services. Each template may be a service or a service container. Containers contain other templates. An example is a virtual machine template that may contain an operating system template.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique identifier of this Service Template. |
attributes | Map<String, Map> | No | No |
The characteristics of this Service Template: processors, memory, etc. Any key is valid and may be used for arbitrary storage or data, but the
moab.dependencies object contains the following fields:
moab.job object contains the following fields:
moab.job.image and moab.job.template are required for templates with a type of "vm" or "pm".
(See also:
Image.name, JobRequirement.nodeSet.)
|
createdBy | String | No | No |
The name of the user that created this Service Template. |
hookDefinitions | List<Map> | Yes | Yes |
A list of local hook definitions for this service template. (See also: ServiceLocalHook.) |
includedServices | List<Map> | No | No |
A list of objects describing the services templates included in this service template. When a service is created from this service template, the created service will contain services created from all included service templates. Only service templates of type container can include other service templates. Each entry in the includedServices list is an object containing two properties:
|
label | String | No | No |
(Required) A short description of this Service Template. |
modified | Date | No | No |
The most recent date this Service Template was changed. |
name | String | No | No |
The name of this Service Template. A UUID is automatically generated when the name is not specified. |
tags | List<String> | No | No |
Arbitrary strings used to group service templates. |
tenant | Map<String, Map> | Yes | No |
Owning tenant for this service template. This is mandatory during POST. |
type | String | No | No |
The type of service template. Valid values are "vm", "pm", "storage", and "container". (See also: ServiceType.) |
Value | Description |
---|---|
VM | |
PM | |
STORAGE | |
CONTAINER |
This class represents a virtual machine: a software implementation of a computer that executes programs like a physical machine (i.e. like a node). A virtual machine, therefore, requires a host machine, usually called a hypervisor, which partitions its resources to be used by the one or many virtual machines it hosts.
A virtual machine needs to have a name, will typically report an OS, and have a list of operating systems that it can run.Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
id | String | No | No |
The unique identifier of the virtual machine. Note: this field is not user-assigned and is generated by the database. |
attributes | Map<String, JobRequirementAttribute> | No | No |
A copy of the attributes from the tracking job associated with this VM. |
description | String | No | No |
A description of this VM. |
host | DomainProxy | No | Yes |
The physical machine (hypervisor) on which this VM is running. |
hostnames | Set<String> | No | No |
The set of host names (aliases) that refer to this VM. |
ipAddress | String | No | No |
This VM's IPv4 address. |
lastMigrationDate | Date | No | No |
The date when this VM was last migrated. |
lastUpdatedDate | Date | No | No |
The timestamp of the last moment when this VM was updated. There is no guarantee that all user modifications to a VM would be picked up. This will also be changed every RMPOLLINTERVAL even if a resource manager does not report information on this VM. |
metrics | Map<String, Double> | No | Yes |
Metrics are the measurable, quantitative, and changing aspects of this VM. They are used to define workload placement, attach triggers, etc. There are some built-in metrics:
|
migrationCount | Integer | No | No |
The number of times this VM has been migrated. |
migrationDisabled | Boolean | No | Yes |
True if migration is disabled for this VM, false otherwise. |
name | String | No | No |
The name of the virtual machine. This name is unique per instance of Moab Workload Manager (i.e. not globally). |
operatingSystem | VMOperatingSystemInformation | No | Yes |
Describes the current or expected operating system image information for this VM. |
requiredFeatures | Set<String> | No | No |
The set of features required by this VM. |
resourceManagers | Set<NodeResourceManager> | No | No |
The resource managers that are reporting or have previously reported this VM. Each object also contains information on the resource manager reports. |
resources | Map<String, Resource> | No | 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. |
startDate | Date | No | No |
Date that this VM was started (ready and usable). |
states | NodeStateInformation | No | Yes |
State information for this VM. |
trackingJob | DomainProxy | No | No |
The tracking job for this VM. |
triggers | Set<DomainProxy> | No | Yes |
The set of triggers associated with this VM. |
variables | Map<String, Map> | No | 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 VM. |
virtualContainers | Set<DomainProxy> | No | No |
The set of virtual containers that directly (not recursively) contain this VM. |
Describes the current or expected operating system image information for a virtual machine.
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
image | String | No | No |
The name of the image currently running on this VM. 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 | No |
The name of the image that was requested to run on this VM. 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.) |
imageLastUpdatedDate | Date | No | No |
The last time the image of this VM was modified. |
imagesAvailable | Set<String> | No | No |
The list of image names which can be applied to this VM. In cloud mode, these correspond to IDs or names of images in the image management API in MWS. (See also: Image.id, Image.name.) |
Field Name | Type | POST | PUT | Description |
---|---|---|---|---|
isMaster | Boolean | No | 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 | 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 | 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 | POST | PUT | Description |
---|---|---|---|---|
powerState | NodePower | No | 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 | 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 | No | Yes |
The scheduling state of the Node, as reported by the resource management layer. |
stateExpected | NodeState | No | 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 | No |
A timestamp recording when the state of the Node was last modified. |
subState | String | No | 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 | No |
The previous sub-state of the Node as reported by the resource management layer. |
subStateLastUpdatedDate | Date | No | 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 |
Related Topics