An Activity can support the following operations:
"signal" sends an indicated Signal to the processes
of the Activity, "terminate" is used to cancel the
Activity and cleanup the associated processes, "suspend"
is used to request it to stop processing, "resume" is
used to request the Activity to start processing after
a suspend operation, "checkpoint" tells the Activity to
checkpoint its running state, and "resume" tells the
Activity to restart itself from a previous checkpoint.
Logical Diagram
XML Instance Representation
<ego:ActivityControlOperation> xsd:string (value comes from list: {'signal'|'terminate'|'suspend'|'resume'|'checkpoint'|'restart'}) </ego:ActivityControlOperation>
This element describes the state of an Activity within EGO.
There is both EGO meta data described (ActivityID, ActivityState,
AllocationID, ConsumerID, ActivitySpecification) as well as run
time state (StartTime, EndTime, ResourceName, ExitStatus, ExitReason,
ResourceUsage, ActivityResourceUsage). Optional Attribute elements
can also be provided in order to extend the set of reported
meta data.
The ActivityResourceUsage is different from ResourceUsage, in that
is describes the aggregate resource usage of all processes that
are used to run an Activity. 'mem' is the aggregate real memory
usage, 'swap' is the aggregate virtual memory usage, 'utime' is the
number of cpu seconds spent in user space, 'stime' is the number
of cpu seconds spent in kernel space, 'nthreads' is the number
of threads created within the Activity's processes, and there
is a 'pidInfo' element for each process in the Activity.
Once an Activity has been accepted and assigned an ActivityID,
it can be in one of the following states: "null" indicates that
it has not yet been sent to a host for execution, "start" indicates
that it has been accepted by a host but has not yet been executed,
"run" means that it has been executed and is still running,
"suspend" means that the PEM has suspended the task via policy or
user/admin request, "finish" means that the processes making up
the Activity have exited, "unknown" means that vemkd cannot contact
PEM to determine the status, and "zombie" means that vemkd cannot
contact the PEM to determine the status but there has been a
request to terminate the Activity.
Logical Diagram
XML Instance Representation
<ego:ActivityState> xsd:string (value comes from list: {'null'|'start'|'run'|'suspend'|'finish'|'unknown'|'zombie'}) </ego:ActivityState>
This element is used to respond to the AddResource
notification that EGO sends a client when a resource
is added to an allocation. "ok" means that the resource
has been accepted, "no_more" means that the resource has
been accepted and further resources are not necessary
in this allocation, and "reject" means that this resource
is not acceptible and should not be part of the allocation.
Logical Diagram
XML Instance Representation
<ego:AddResourceResponseCode> xsd:string (value comes from list: {'ok'|'no_more'|'reject'}) </ego:AddResourceResponseCode>
The "start" operation is used to start up the EGO
agent processes on a node, the "stop" operation is
to kill the EGO agent processes on a node, and the
"restart" operation is used to request that an agent
restart itself, most likely to effect a configuration
change.
Logical Diagram
XML Instance Representation
<ego:AgentControlOperation> xsd:string (value comes from list: {'start'|'stop'|'restart'}) </ego:AgentControlOperation>
The status of an allocation and the description of
the resources are described within this element.
Moreover,it contains the client name ,user name and names of
hosts in the block list.It is a representation of
vem data structure vem_allocation_t
The length of time for which an allocation is active. The
format of the XML Schema "duration" datatype can be found
<a href="http://www.w3.org/TR/xmlschema-2/#duration"> here</a>.
This element is used to describe a request to EGO for
an allocation of resources. The only required elements
are the ConsumerID to charge this allocation to, and
the ResourceSpecification of what is being requested. An
optional AllocationName attribute can be provided, but
there is no guarantee that this name is unique amongst
all of EGO's allocations.
The point in time at which an allocation is active. The
format of the XML Schema "dateTime" datatype can be found
<a href="http://www.w3.org/TR/xmlschema-2/#dateTime"> here</a>.
Once an allocation has been created (that is, an AllocationID)
has been assigned, the allocation status can be in one of three
states: "satisfied" means that at least minResources have been
assigned to this allocation, "unsatisfied" means that less than
minResources have been assigned, and "completed" means that the
allocation has been released, or that it has expired.
Logical Diagram
XML Instance Representation
<ego:AllocationStatus> xsd:string (value comes from list: {'satisfied'|'unsatisfied'|'completed'}) </ego:AllocationStatus>
The maximum amount of time an EGO client should wait before
getting a notification about the status of an allocation. Clients
are notified when resources are added or removed from an allocation.
This timeout indicates that a notification should be sent even
if resources are not being added or removed. Can be thought of as
a notification heartbeat interval.
Specifies a name/value pair of any type. The name
provides an identifier for this attribute, and type indicates the XML Schema type.
The value of the Attribute is in the element content, which
is optional (i.e. nillable). Thus, Attribute can be used both
to provide the value of a given attribute, or can be used to express
the names and types of attributes that are supported by various
objects within EGO.
'Specifies an NCName that indicates the XML Schema type that represents this attribute. The type attribute must contain one of the names of the built-in types from the XML Schema http://www.w3.org/TR/xmlschema-2/#built-in-datatypes specification.'
An element that contains the ConsumerID that indicates
a consumer that this consumer may borrow resources from,
and the limit of how much you're willing to borrow from
this consumer.
A string provided by the client during registration that provides
some extra meta data about the client. It is not guaranteed to be
unique amongst all consumers.
This element provides summary information about the EGO cluster,
named by the ClusterName attribute. The Version of the EGO software
is provided, along with the current EGO master host, and the list
of hosts that can potentially be EGO masters.
Specifies the command to be run as part of an activity.
Specify the full command line of the program to be run, including
arguments. For example:
"/usr/local/bin/blastall -p blastn -d nt -i sequences".
This element is used within Resource and ResourceGroup elements
to indicate which of the Attributes associated with the Resource
or ResourceGroup can be consumed within an allocation. This is
indicated by the attributeName attribute. For example, on a compute
node, the consumable attribute is a CPU slot, and thus the attributeName
might be "numSlots". The attributeCost attribute is used to indicate
how many "tokens" each one of the consumable attributes costs in the
context of the consumer share tree.
This element describes a node within the ConsumerHierarchy.
or within a DistributionTree. It is used either to express
meta-data about a particular node in the ConsumerHierarchy,
or is used to associate a particular set of distribution
policies between consumers and resources. ConsumerName is a
required attribute used to identify this consumer within
the tree. The ConsumerName is not the full ConsumerID (i.e.
describing the consumer's position in the hierarchy), but
the component of the ConsumerID that identifies this node.
This is the root element for describing the hierarchy of
consumers in an organization. The ConsumerHierarchy is used
to describe the relationship between individual consumers, and
to configure consumer-level meta-data. The ConsumerProperties
element within the ConsumerHierarchy can be used to specify
default values for nodes within the hierarchy for which these
properties are not specified.
Specifies the fully-qualified name of a consumer in the consumer tree.
For example: "/DeptA/ProjB/ConsumerC" indicates that ConsumerC is
part of ProjB, which is in turn part of DeptA.
This element is used to collect together meta-data about
the consumers configured in EGO.
The Admin elements name EGO users that have the right to manipulate
the parameters of this consumer (e.g. modify the User list, etc).
The User elements name EGO users that have the right to allocate
resources associated with the consumer.
Specifies a grace period to wait before killing an activity.
Specify the duration in the format PTnHnMnS,
nH the number of hours, nM the number of minutes and nS the number of seconds.
The number of seconds can include decimal digits to arbitrary precision.
This provides a wrapper element for a configuration file
that is used to describe the organization of consumers, and
the allocation policies mapping consumers to allowed resources.
Meta data about the configuration can be provided here, such
as the Version of the file format.
This is the root element for a resource distribution tree.
There is at least one ResourceGroupName that is used to indicate
what set of resources this distribution tree is applied to, and
then a tree of consumers that specify the distribution policies.
The DistributionTree must be named with a DistributionTreeName
attribute.
Models an operating system environment variable to indicate which
environment variables should be set within the running context of an activity.
A content of 'nil' indicates that this variable should be unset in the environment.
'Specifies the name of the environment variable. Specify the name of the environment variable (e.g. PATH or LD_LIBRARY_PATH), and specify any string for the content.'
This is the exit code produced by the command that was
run as part of an Activity. The code can be interpreted
using the same semantics as described in the Unix wait(3)
man page.
Specifies a command to run when controlling the activity.
Specify the full command line of the program to be run, including
arguments. For example:
"/usr/local/jboss/bin/shutdown all".
An element that contains the ConsumerID that indicates
a Consumer that can borrow resources against the enclosing
LendingPolicy, and the limit of how much you're willing
to lend to this consumer.
"add" is used to add a consumer to the consumer tree,
"delete" is used to remove a consumer from the tree,
and "set" is used to change the properties associated
with a particular node of the consumer tree.
Logical Diagram
XML Instance Representation
<ego:ManageConsumerOperation> xsd:string (value comes from list: {'add'|'delete'|'set'}) </ego:ManageConsumerOperation>
"add" means to add a user to the EGO user database, "modify"
means to modify the user's meta data such as password or
contact information, and "delete" means to remove the user
from the EGO user database.
Logical Diagram
XML Instance Representation
<ego:ManageUserOperation> xsd:string (value comes from list: {'add'|'modify'|'delete'}) </ego:ManageUserOperation>
The "stop" operation is used to tell the vemkd to
exit. The "restart" operation is used to tell the
vemkd to reboot itself, most likely to effect a
configuration change.
Logical Diagram
XML Instance Representation
<ego:MasterControlOperation> xsd:string (value comes from list: {'stop'|'restart'}) </ego:MasterControlOperation>
A generic element used to attach "flags" to operations. These
flags are not value based parameters, but usually booleans that
turn on or off a particular behaviour.
The number of consumable resources "owned" by a particular consumer
within a resource group. Can also be represented as a percentage
of resources within a resource group.
This element contains a user password in base64Binary
encoded format. The PasswordType attribute can be used
to indicate what form of password it is (e.g. cleartext,
digested, etc).
This element is used to indicate a reclamation timeout
when redistributing owned and borrowed resources when
the configuration of the Resource Distribution Tree changes.
The default value of zero indicates that reclamation happens
immediately. The format of the duration is specified as in the
XML Schema documentation (http://www.w3.org/TR/xmlschema-2/#duration).
This element represents the most basic manageable entity within EGO.
A Resource is basically a set of name/value pairs (as modelled by
Attribute elements), which has a state, and a description of which
attribute is consumable within allocations. The ResourceName attribute
uniquely names this Resource within EGO, and ResourceType is the URI of
an XML namespace that indicates what type of resource this is (e.g.
compute node, license, network link, etc). The ResourceType is optional,
with the default type being that of an EGO compute node. This element
supports extensible content via the XML Schema any element, where the
element must come from another namespace other than the EGO namespace.
Most likely, the element would come from the same namespace as is named
in ResourceType.
The "open" operation is used to make a resource available
for allocation. The "close" operation is used to take a
resource away from the allocatable pool.
Logical Diagram
XML Instance Representation
<ego:ResourceControlOperation> xsd:string (value comes from list: {'open'|'close'}) </ego:ResourceControlOperation>
This element is a wrapper element used to build lists of Resource
elements, with ResourceType information indicated for each
ResourceName if required so that heterogeneous ResourceGroups can
be constructed. It is used within the EGO configuration file
for resource groups.
This element is used to build collections of resources, both
dynamically using ResourceRequirement strings, or by naming
resources explicitly using a ResourceList. Each ResourceGroup
has a unique name, indicated with the ResourceGroupName
attribute. For resource groups of the same ResourceType, you
can define the ConsumableAttribute for the entire group,
providing a notational convenience from having to define this
in configuration for every Resource managed by EGO.
The Attribute elements provide a list of the attribute names and
types that are represented by this ResourceGroup, and as such
should not contain values (i.e. should be 'nil').
The top level element for the EGO configuration file for
defining ResourceGroups. The DefaultResourceGroup for an EGO
cluster can be defined within this element. The Version of the
file format can also be defined here.
Identifies a particular resource group within the EGO cluster.
Specify a unique name of up to 120 alphanumeric characters, including underscores and dashes.
Specifies the resources required to run. Specify an expression in a string.
This expression is evaluated when selecting candidate resources
to fulfill an allocation, and as such, could be very dependent
on the type of resources requested (that is, the syntax
of a resource requirement for compute hosts could be different
from the syntax for a storage resource requirement).
This element provides a means for specifying a request for
an amount of consumable resource (indicated with MinResources
and MaxResources), and any constraints on resource selection
(using a ResourceGroupName and/or a ResourceRequirement). This
element, like Resource, also supports extensible content, for
supporting other resource specification schemas. ResourceType is
an optional element indicating what sort of resource is being
asked for, and defaults to an EGO compute node.
The state of a Resource can be: "ok" where vemkd can
communicate with the resource and it is available for
assignment to an allocation, "unavail" where vemkd can't
communicate with the resource, "closed" indicating that
there are no more consumable resources available on the
resource for allocation or it has been made unavailble for
allocation by an administrator, and "removed" which indicates
that the resource is part of an allocation but is no longer
part of the EGO cluster.
Logical Diagram
XML Instance Representation
<ego:ResourceState> xsd:string (value comes from list: {'ok'|'unavail'|'closed'|'removed'|'inactive'|'unknown'}) </ego:ResourceState>
This element is used to indicate the type of a Resource.
The URI is intended to match with the URI of the
namespace of an XML schema that is used to further
describe the resource.
This element contains a number of name/value pairs that describe
the consumption of resources (not just allocatable resources)
by a given Activity and/or Allocation. The names depend on what type
of resource is being reported on, indicated via the optional
ResourceType attribute. This element also supports extensible
content, so that resource usage reports that are structured using
some external schema can also be provided.
Specifies an operating system limit within the context of a running activity.
The "type"
attribute is optional, and can be used to indicate whether a
soft or hard limit is being specified.
Within a particular role, the RoleContext is used to provide
information about where the role applies. For example, if the
role is for a consumer admin, the context of this role is within
a particular node in the consumer tree, thus the RoleContext is
a ConsumerID.
This element represents how much share of the resources
a consumer gets with respect to other consumers with
which it is a peer (i.e. on the same level of the consumer
tree). Amongst all the peers at one level of the tree,
the Shares values represent a ratio of relative priority
or a percentage of the resources to be assigned.
This element is used to constrain which resources a
particular consumer can allocate, or which ones are "owned"
by the consumer. If no ResourceGroupName is specified, then
the UsageLimit applies to all the resources
under the control of EGO. If no UsageLimit
element is present, then the constraint is on which named
resources can be part of this consumer's allocations.
The optional attributes 'startDay', 'startTime', 'endDay'
and 'endTime' can be used to represent a "time window" when
this policy is in effect within the configuration. If the
time window is specified, the startTime and endTime attributes
follow the semantics defined at http://www.w3.org/TR/xmlschema-2/#time.
If no time zone is specified in startTime or endTime, then the
time will be considered as local to the vemkd.
This is a string representation of a particular signal
that can be delivered to an activity. Currently it is envisioned
that this be a string representing a POSIX signal (e.g. SIGKILL),
but the format does not preclude any other signalling or
notification mechanisms.
Specifies the file creation mask used within the context of a running
activity, which determines the default permissions given
to files created by the activity.
This is an absolute mode.
Specify a 4-digit octal number (from 0-7) as described in the POSIX
chmod(1) man page.
This element represents a single entry in the EGO user database.
Along with a user name (User) and password, there is optional
user contact information.
Specfies the full path to the directory in which an activity
executes.
Specify a path that is valid when interpreted on the resource used for
execution.
This type describes where a process fits in the operating
system process tree. 'pid' is the process ID, 'ppid' is the
process ID of the parent that created the process 'pid', 'pgid'
is the process group ID, and 'jobid' is the job container
identifier for operating systems that support the concept.
Limits can be either "hard" limits (generally set by
administrators) indicating an upper bound to resource
usage, or "soft" limits (often set by the user) that
are often used to constrain application behaviour.
The XML Instance Representation table above shows the schema component's content as an XML instance.
The minimum and maximum occurrence of elements and attributes are provided in square brackets, e.g. [0..1].
Model group information are shown in gray, e.g. Start Choice ... End Choice.
For type derivations, the elements and attributes that have been added to or changed from the base type's content are shown in bold.
If an element/attribute has a fixed value, the fixed value is shown in green, e.g. country="Australia".
Otherwise, the type of the element/attribute is displayed.
If the element/attribute's type is in the schema, a link is provided to it.
For local simple type definitions, the constraints are displayed in angle brackets, e.g. <<pattern = [1-9][0-9]{3}>>.
If a local element/attribute has documentation, it will be displayed in a window that pops up when the question mark inside the attribute or next to the element is clicked, e.g. <postcode>.
Abstract(Applies to complex type definitions and element declarations). An abstract element or complex type cannot used to validate an element instance. If there is a reference to an abstract element, only element declarations that can substitute the abstract element can be used to validate the instance. For references to abstract type definitions, only derived types can be used.
Collapse Whitespace PolicyReplace tab, line feed, and carriage return characters with space character (Unicode character 32). Then, collapse contiguous sequences of space characters into single space character, and remove leading and trailing space characters.
Disallowed Substitutions(Applies to element declarations). If substitution is specified, then substitution group members cannot be used in place of the given element declaration to validate element instances. If derivation methods, e.g. extension, restriction, are specified, then the given element declaration will not validate element instances that have types derived from the element declaration's type using the specified derivation methods. Normally, element instances can override their declaration's type by specifying an xsi:type attribute.
Nillable(Applies to element declarations). If an element declaration is nillable, instances can use the xsi:nil attribute. The xsi:nil attribute is the boolean attribute, nil, from the http://www.w3.org/2001/XMLSchema-instance namespace. If an element instance has an xsi:nil attribute set to true, it can be left empty, even though its element declaration may have required content.
Prohibited Derivations(Applies to type definitions). Derivation methods that cannot be used to create sub-types from a given type definition.
Prohibited Substitutions(Applies to complex type definitions). Prevents sub-types that have been derived using the specified derivation methods from validating element instances in place of the given type definition.
Replace Whitespace PolicyReplace tab, line feed, and carriage return characters with space character (Unicode character 32).
Substitution GroupElements that are members of a substitution group can be used wherever the head element of the substitution group is referenced.
Substitution Group Exclusions(Applies to element declarations). Prohibits element declarations from nominating themselves as being able to substitute a given element declaration, if they have types that are derived from the original element's type using the specified derivation methods.
Target NamespaceThe target namespace identifies the namespace that components in this schema belongs to. If no target namespace is provided, then the schema components do not belong to any namespace.