Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

(Capitalized terminology in this document as defined by RFC 2119)

N. Bastin
Open Networking Laboratory
March 2012

PerformOperationalAction (string urn[], string credentials[], string action, struct options={})

Code Block
  struct code = {
       int geni_code;
       [optional: string am_type;]
       [optional: int am_code;]
  struct value = [ {
        'geni_urn' : string,
        'geni_operational_status' : string,
        [optional: 'geni_resource_status' : string]
        }, ... ];
  string output;

Performs the given action on the given sliver_urn(s) (or slice_urn as a proxy for "all slivers").  Actions are constrained to the set of default GENI actions, as well as resource-specific actions which reasonably perform operational resource tasks as defined by the aggregate manager for the given resource type.  This method is not intended to allow for reconfiguration of options found in the request rspec.  Aggregate Managers SHOULD return an error code of 13 (UNSUPPORTED) if they do not support a given action for a given resource. Actions are performed on all slivers, or none - if an action cannot be performed on a sliver given, the entire operation MUST fail. Passing the option geni_best_effort with a value of true allows for partial success (this option defaults to false if not supplied).

An AM SHOULD constrain actions based on the current operational state of the resource, such that attempting to perform the action geni_stop on a resource that is geni_busy will fail, but SHOULD also be idempotent for all actions which result in a steady state.

geni_operational_status MUST be the current operational status of the sliver after this action (as would be returned by SliverStatus). An optional geni_resource_status field MAY be returned for each sliver which contains a resource-specific status that may be more nuanced than the options for geni_operational_status.

Calling this method with a slice_urn functions as if all the child sliver_urn had been passed in - specifically the action is performed on all slivers and all sliver_urn and their statuses are returned. No status is returned for the slice as a whole.

This is a fast synchronous operation, and MAY start long-running sliver transitions whose status can be queried using SliverStatus.

GENI Actions

geni_start - Start the resource
geni_stop - Stop the resource
geni_restart - Restart the resource (may have different semantics than calling geni_stop and geni_start in sequence)