X-Git-Url: https://gerrit.onap.org/r/gitweb?p=ccsdk%2Fdistribution.git;a=blobdiff_plain;f=docs%2Fsli%2Fnorthbound%2Fnodes.rst;fp=docs%2Fsli%2Fnorthbound%2Fnodes.rst;h=0000000000000000000000000000000000000000;hp=3bdeabcfac5c9f04b783d4e692344c0558164d2f;hb=056e82aa242f7df59c72dc967f38d479c51f7509;hpb=85947fd27e2c0cee9cbc237cfd2c8a440b913832 diff --git a/docs/sli/northbound/nodes.rst b/docs/sli/northbound/nodes.rst deleted file mode 100644 index 3bdeabcf..00000000 --- a/docs/sli/northbound/nodes.rst +++ /dev/null @@ -1,1031 +0,0 @@ ---- Service Logic Interpreter --- Dan Timoney --- 2014-11-12 --- - -Supported node types -==================== - -The following built-in node types are currently supported: - -- Flow Control - - - `**block** <#Block_node>`__ - - - `**call** <#Call_node>`__ - - - `**for** <#For_node>`__ - - - `**return** <#Return_node>`__ - - - `**set** <#Set_node>`__ - - - `**switch** <#Switch_node>`__ - -- Device Management - - - `**configure** <#Configure_node>`__ - -- Java Plugin Support - - - `**execute** <#Execute_node>`__ - -- Recording - - - `**record** <#Record_node>`__ - -- Resource Management - - - `**delete** <#Delete_node>`__ - - - `**exists** <#Exists_node>`__ - - - `**get-resource** <#Get-resource_node>`__ - - - `**is-available** <#Is-available_node>`__ - - - `**notify** <#Notify_node>`__ - - - `**release** <#Release_node>`__ - - - `**reserve** <#Reserve_node>`__ - - - `**save** <#Save_node>`__ - - - `**update** <#Update_node>`__ - -Flow Control ------------- - -Block node -~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **block** node is used to executes a set of nodes. - -Attributes -^^^^^^^^^^ - -+--------------+-----------------------------------------------------------------------------------------------------------------------------------+ -| **atomic** | if *true*, then if a node returns failure, subsequent nodes will not be executed and nodes already executed will be backed out. | -+--------------+-----------------------------------------------------------------------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -None - -Outcomes -^^^^^^^^ - -None - -Example -^^^^^^^ - -:: - - - - - - - - - - - - - -Call node -~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **call** node is used to call another graph - -Attributes -^^^^^^^^^^ - -+---------------+------------------------------------------------------------------------------------+ -| **module** | Module of directed graph to call. If unset, defaults to that of calling graph | -+---------------+------------------------------------------------------------------------------------+ -| **rpc** | rpc of directed graph to call. | -+---------------+------------------------------------------------------------------------------------+ -| **version** | version of graph to call, If unset, uses active version. | -+---------------+------------------------------------------------------------------------------------+ -| **mode** | mode (sync/async) of graph to call. If unset, defaults to that of calling graph. | -+---------------+------------------------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -Not applicable - -Outcomes -^^^^^^^^ - -+-----------------+------------------------------+ -| **success** | Sub graph returned success | -+-----------------+------------------------------+ -| **not-found** | Graph not found | -+-----------------+------------------------------+ -| **failure** | Subgraph returned success | -+-----------------+------------------------------+ - -Table: . - -Example -^^^^^^^ - -:: - - - -For node -~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **for** node provides a fixed iteration looping mechanism, similar to -the Java for loop - -Attributes -^^^^^^^^^^ - -+-------------+------------------+ -| **index** | index variable | -+-------------+------------------+ -| **start** | initial value | -+-------------+------------------+ -| **end** | maximum value | -+-------------+------------------+ - -Parameters -^^^^^^^^^^ - -Not applicable. - -Outcomes -^^^^^^^^ - -Not applicable. The **status** node has no outcomes. - -Example -^^^^^^^ - -:: - - - - - - - - - -Return node -~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **return** node is used to return a status to the invoking MD-SAL -application - -Attributes -^^^^^^^^^^ - -+--------------+---------------------------------------------------+ -| **status** | Status value to return (*success* or *failure*) | -+--------------+---------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -The following optional parameters may be passed to convey more detailed -status information. - -+---------------------+-----------------------------------------------------------------+ -| **error-code** | A brief, usually numeric, code indicating the error condition | -+---------------------+-----------------------------------------------------------------+ -| **error-message** | A more detailed error message | -+---------------------+-----------------------------------------------------------------+ - -Outcomes -^^^^^^^^ - -Not applicable. The **status** node has no outcomes. - -Example -^^^^^^^ - -:: - - - - - - -Set node -~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **set** node is used to set one or more values in the execution -context - -Attributes -^^^^^^^^^^ - -+---------------------+-------------------------------------------------------------------------------------+ -| **only-if-unset** | If true the set node will only execute if the current value of the target is null | -+---------------------+-------------------------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -Values to be set are passed as parameters - -Outcomes -^^^^^^^^ - -Not applicable. The **set** node has no outcomes. - -Example -^^^^^^^ - -:: - - - - - -Switch node -~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **switch** node is used to make a decision based on its **test** -attribute. - -Attributes -^^^^^^^^^^ - -+------------+---------------------+ -| **test** | Condition to test | -+------------+---------------------+ - -Parameters -^^^^^^^^^^ - -None - -Outcomes -^^^^^^^^ - -Depends on the **test** condition - -Example -^^^^^^^ - -:: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Device Management ------------------ - -Configure node -~~~~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **configure** node is used to configure a device. - -Attributes -^^^^^^^^^^ - -+----------------+-----------------------------------------------------------------------------------+ -| **adaptor** | Fully qualified Java class of resource adaptor to be used | -+----------------+-----------------------------------------------------------------------------------+ -| **activate** | Activate device/interface, for devices that support a separate activation step. | -+----------------+-----------------------------------------------------------------------------------+ -| **key** | SQL-like string specifying criteria for item to configure | -+----------------+-----------------------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -Specific to device adaptor. - -Outcomes -^^^^^^^^ - -+----------------------+------------------------------------------------------------------+ -| **success** | Device successfully configured | -+----------------------+------------------------------------------------------------------+ -| **not-found** | Element to be configured does not exist. | -+----------------------+------------------------------------------------------------------+ -| **not-ready** | Element is not in a state where it can be configured/activated | -+----------------------+------------------------------------------------------------------+ -| **already-active** | Attempt to activate element that is already active | -+----------------------+------------------------------------------------------------------+ -| **failure** | Configure failed for some other reason | -+----------------------+------------------------------------------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Java Plugin Support -------------------- - -Execute node -~~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -An **execute** node is used to execute Java code supplied as a plugin - -Attributes -^^^^^^^^^^ - -+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| **plugin** | Fully qualified Java class of plugin to be used | -+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| **method** | Name of method in the plugin class to execute. Method must return void, and take 2 arguments: a Map (for parameters) and a SvcLogicContext (to allow plugin read/write access to context memory) | -+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -Specific to plugin / method - -Outcomes -^^^^^^^^ - -+--------------------------+-----------------------------------------------------------------+ -| **success** | Device successfully configured | -+--------------------------+-----------------------------------------------------------------+ -| **not-found** | Plugin class could not be loaded | -+--------------------------+-----------------------------------------------------------------+ -| **unsupported-method** | Named method taking (Map, SvcLogicContext) could not be found | -+--------------------------+-----------------------------------------------------------------+ -| **failure** | Configure failed for some other reason | -+--------------------------+-----------------------------------------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - - - - - - - - - - - - - -Recording ---------- - -Record node -~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **record** node is used to record an event. For example, this might be -used to log provisioning events. - -Attributes -^^^^^^^^^^ - -+--------------+---------------------------------------------------+ -| **plugin** | Fully qualified Java class to handle recording. | -+--------------+---------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -Parameters will depend on the plugin being used. For the FileRecorder -class, the parameters are as follows - -+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| **file** | The file to which the record should be written | -+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| **field1** | First field to write. There will be **field** parameters for each field to write, from **field1** through **fieldN**. A special value \_\_TIMESTAMP\_\_ may be assigned to a field to insert the current timestamp | -+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - -Outcomes -^^^^^^^^ - -+---------------+--------------------------------------------+ -| **success** | Record successfully written | -+---------------+--------------------------------------------+ -| **failure** | Record could not be successfully written | -+---------------+--------------------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - -Resource Management -------------------- - -Delete node -~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **delete** node is used to delete a resource from the local resource -inventory. - -Attributes -^^^^^^^^^^ - -+----------------+-------------------------------------------------------------+ -| **plugin** | Fully qualified Java class of resource adaptor to be used | -+----------------+-------------------------------------------------------------+ -| **resource** | Type of resource to delete | -+----------------+-------------------------------------------------------------+ -| **key** | SQL-like string specifying key to delete | -+----------------+-------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -None - -Outcomes -^^^^^^^^ - -+---------------+--------------------------------------------+ -| **success** | Resource specified deleted successfully. | -+---------------+--------------------------------------------+ -| *failure*> | Resource specified was not deleted | -+---------------+--------------------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - - - -Exists node -~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -An **exists** node is used to determine whether a particular instance of -a resource exists. For example, this might be used to test whether a -particular switch CLLI is provisioned. - -Attributes -^^^^^^^^^^ - -+----------------+-------------------------------------------------------------+ -| **plugin** | Fully qualified Java class of resource adaptor to be used | -+----------------+-------------------------------------------------------------+ -| **resource** | Type of resource to check | -+----------------+-------------------------------------------------------------+ -| **key** | SQL-like string specifying key to check for | -+----------------+-------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -None - -Outcomes -^^^^^^^^ - -+-------------+---------------------------------+ -| **true** | Resource specified exists. | -+-------------+---------------------------------+ -| **false** | Resource specified is unknown | -+-------------+---------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - - - -Get-resource node -~~~~~~~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **get-resource** node is used to retrieve information about a -particular resource and make it available to other nodes in the service -logic tree. For example, this might be used to retrieve information -about a particular uni-port. - -Attributes -^^^^^^^^^^ - -+----------------+------------------------------------------------------------------------------------------+ -| **plugin** | Fully qualified Java class of resource adaptor to be used | -+----------------+------------------------------------------------------------------------------------------+ -| **resource** | Type of resource to retrieve | -+----------------+------------------------------------------------------------------------------------------+ -| **key** | SQL-like string specifying criteria for retrieval | -+----------------+------------------------------------------------------------------------------------------+ -| **pfx** | Prefix to add to context variable names set for data retrieved | -+----------------+------------------------------------------------------------------------------------------+ -| **select** | String to specify, if key matches multiple entries, which entry should take precedence | -+----------------+------------------------------------------------------------------------------------------+ -| **order-by** | Prefix to add to context variable names set for data retrieved | -+----------------+------------------------------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -None - -Outcomes -^^^^^^^^ - -+-----------------+--------------------------------------------------+ -| **success** | Resource successfully retrieved | -+-----------------+--------------------------------------------------+ -| **not-found** | Resource referenced does not exist | -+-----------------+--------------------------------------------------+ -| **failure** | Resource retrieve failed for some other reason | -+-----------------+--------------------------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - - - - - - -Is-available node -~~~~~~~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -An **is-available** node is used to determine whether a particular type -of resource is available. For example, this might be used to test -whether any ports are available for assignment on a particular switch. - -Attributes -^^^^^^^^^^ - -+----------------+------------------------------------------------------------------+ -| **plugin** | Fully qualified Java class of resource adaptor to be used | -+----------------+------------------------------------------------------------------+ -| **resource** | Type of resource to check | -+----------------+------------------------------------------------------------------+ -| **key** | SQL-like string specifying key to check for | -+----------------+------------------------------------------------------------------+ -| **pfx** | Prefix to add to context variable names set for data retrieved | -+----------------+------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -None - -Outcomes -^^^^^^^^ - -+-------------+---------------------------------------+ -| **true** | Resource requested is available | -+-------------+---------------------------------------+ -| **false** | Resource requested is not available | -+-------------+---------------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - - - -Notify node -~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **notify** node is used to inform an external application (e.g. A&AI) -that a resource was updated. - -Attributes -^^^^^^^^^^ - -+----------------+---------------------------------------------------------------------+ -| **plugin** | Fully qualified Java class of resource adaptor to be used | -+----------------+---------------------------------------------------------------------+ -| **resource** | Identifies resource that was updated | -+----------------+---------------------------------------------------------------------+ -| **action** | Action that triggered notification to be sent (ADD/UPDATE/DELETE) | -+----------------+---------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -None - -Outcomes -^^^^^^^^ - -+---------------+----------------------------------------+ -| **success** | Notification was successful | -+---------------+----------------------------------------+ -| **failure** | Notification failed is not available | -+---------------+----------------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - - - -Release node -~~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **release** node is used to mark a resource as no longer in use, and -thus available for assignment. - -Attributes -^^^^^^^^^^ - -+----------------+------------------------------------------------------------------+ -| **plugin** | Fully qualified Java class of resource adaptor to be used | -+----------------+------------------------------------------------------------------+ -| **resource** | Type of resource to release | -+----------------+------------------------------------------------------------------+ -| **key** | SQL-like string specifying key to check of resource to release | -+----------------+------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -None - -Outcomes -^^^^^^^^ - -+-----------------+-------------------------------------------------+ -| **success** | Resource successfully released | -+-----------------+-------------------------------------------------+ -| **not-found** | Resource referenced does not exist | -+-----------------+-------------------------------------------------+ -| **failure** | Resource release failed for some other reason | -+-----------------+-------------------------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - - - - - - -Reserve node -~~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **reserve** node is used to reserve a particular type of resource.. -For example, this might be used to reserve a port on a particular -switch. - -Attributes -^^^^^^^^^^ - -+----------------+----------------------------------------------------------------------------------------------+ -| **plugin** | Fully qualified Java class of resource adaptor to be used | -+----------------+----------------------------------------------------------------------------------------------+ -| **resource** | Type of resource to reserve | -+----------------+----------------------------------------------------------------------------------------------+ -| **key** | SQL-like string specifying criteria for reservation | -+----------------+----------------------------------------------------------------------------------------------+ -| **select** | String to specify, if **key** matches multiple entries, which entry should take precedence | -+----------------+----------------------------------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -None - -Outcomes -^^^^^^^^ - -+---------------+----------------------------------------------------+ -| **success** | Resource requested was successfully reserved | -+---------------+----------------------------------------------------+ -| **failure** | Resource requested was not successfully reserved | -+---------------+----------------------------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - - - -Save node -~~~~~~~~~ - -Description -^^^^^^^^^^^ - -A **save** node is used to save information about a particular resource -to persistent storage. For example, this might be used to save -information about a particular uni-port. - -Attributes -^^^^^^^^^^ - -+----------------+------------------------------------------------------------------------------------------+ -| **plugin** | Fully qualified Java class of resource adaptor to be used | -+----------------+------------------------------------------------------------------------------------------+ -| **resource** | Type of resource to save | -+----------------+------------------------------------------------------------------------------------------+ -| **key** | SQL-like string specifying criteria for retrieval | -+----------------+------------------------------------------------------------------------------------------+ -| **force** | If "true", save resource even if this resource is already stored in persistent storage | -+----------------+------------------------------------------------------------------------------------------+ -| **pfx** | Prefix to be prepended to variable names, when attributes are set in SvcLogicContext | -+----------------+------------------------------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -Values to save (columns) are specified as parameters, with each name -corresponding to a column name and each value corresponding to the value -to set. - -Outcomes -^^^^^^^^ - -+---------------+-------------------------------+ -| **success** | Resource successfully saved | -+---------------+-------------------------------+ -| **failure** | Resource save failed | -+---------------+-------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - - - -Update node -~~~~~~~~~~~ - -Description -^^^^^^^^^^^ - -An **update** node is used to update information about a particular -resource to persistent storage. - -Attributes -^^^^^^^^^^ - -+----------------+----------------------------------------------------------------------------------------+ -| **plugin** | Fully qualified Java class of resource adaptor to be used | -+----------------+----------------------------------------------------------------------------------------+ -| **resource** | Type of resource to update | -+----------------+----------------------------------------------------------------------------------------+ -| **key** | SQL-like string specifying criteria for retrieval | -+----------------+----------------------------------------------------------------------------------------+ -| **pfx** | Prefix to be prepended to variable names, when attributes are set in SvcLogicContext | -+----------------+----------------------------------------------------------------------------------------+ - -Parameters -^^^^^^^^^^ - -Values to save (columns) are specified as parameters, with each name -corresponding to a column name and each value corresponding to the value -to set. - -Outcomes -^^^^^^^^ - -+---------------+-------------------------------+ -| **success** | Resource successfully saved | -+---------------+-------------------------------+ -| **failure** | Resource save failed | -+---------------+-------------------------------+ - -Example -^^^^^^^ - -:: - - - - - - - - -