| ~~~ |
| ~~ ============LICENSE_START======================================================= |
| ~~ ONAP : CCSDK |
| ~~ ================================================================================ |
| ~~ Copyright (C) 2017 ONAP |
| ~~ ================================================================================ |
| ~~ Licensed under the Apache License, Version 2.0 (the "License"); |
| ~~ you may not use this file except in compliance with the License. |
| ~~ You may obtain a copy of the License at |
| ~~ |
| ~~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~~ |
| ~~ Unless required by applicable law or agreed to in writing, software |
| ~~ distributed under the License is distributed on an "AS IS" BASIS, |
| ~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| ~~ See the License for the specific language governing permissions and |
| ~~ limitations under the License. |
| ~~ ============LICENSE_END========================================================= |
| ~~~ |
| |
| --- |
| Service Logic Interpreter |
| --- |
| Dan Timoney |
| --- |
| 2014-11-12 |
| --- |
| |
| Supported node types |
| |
| The following built-in node types are currently supported: |
| |
| * Flow Control |
| |
| * {{{Block node}<<block>>}} |
| |
| * {{{Call node}<<call>>}} |
| |
| * {{{For node}<<for>>}} |
| |
| * {{{Return node}<<return>>}} |
| |
| * {{{Set node}<<set>>}} |
| |
| * {{{Switch node}<<switch>>}} |
| |
| * Device Management |
| |
| * {{{Configure node}<<configure>>}} |
| |
| * Java Plugin Support |
| |
| * {{{Execute node}<<execute>>}} |
| |
| * Recording |
| |
| * {{{Record node}<<record>>}} |
| |
| * Resource Management |
| |
| * {{{Delete node}<<delete>>}} |
| |
| * {{{Exists node}<<exists>>}} |
| |
| * {{{Get-resource node}<<get-resource>>}} |
| |
| * {{{Is-available node}<<is-available>>}} |
| |
| * {{{Notify node}<<notify>>}} |
| |
| * {{{Release node}<<release>>}} |
| |
| * {{{Reserve node}<<reserve>>}} |
| |
| * {{{Save node}<<save>>}} |
| |
| * {{{Update node}<<update>>}} |
| |
| |
| * 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 |
| |
| +-----------------+ |
| <block> |
| <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder"> |
| <parameter name="file" value="/tmp/sample_r1.log" /> |
| <parameter name="field1" value="__TIMESTAMP__"/> |
| <parameter name="field2" value="RESERVED"/> |
| <parameter name="field3" value="$asePort.uni_circuit_id"/> |
| </record> |
| <return status="success"> |
| <parameter name="uni-circuit-id" value="$asePort.uni_circuit_id" /> |
| </return> |
| </block> |
| +-----------------+ |
| |
| |
| |
| **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 |
| *----------*---------+ |
| . |
| |
| *** Example |
| |
| +-------------------+ |
| <call rpc="svc-topology-reserve" mode="sync" /> |
| +-------------------+ |
| |
| **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 |
| |
| +-------------------+ |
| <for index="i" start="0" end="`$service-data.universal-cpe-ft.l2-switch-interfaces_length`"> |
| <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder"> |
| <parameter name="logger" value="message-log"/> |
| <parameter name="level" value="info"/> |
| <parameter name="field1" value="`'current l2-switch-interface name is ' + $service-data.universal-cpe-ft.l2-switch-interfaces[$i].name`"/> |
| </record> |
| </for> |
| +-------------------+ |
| |
| **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 |
| |
| +-------------------+ |
| <return status="failure"> |
| <parameter name="error-code" value="1542" /> |
| <parameter name="error-message" value="Activation failure" /> |
| </return> |
| +-------------------+ |
| |
| **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 |
| |
| +-------------------+ |
| <set> |
| <parameter name="vlan" value="$network.provider-segmentation-id" /> |
| </set> |
| +-------------------+ |
| |
| **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 |
| |
| +-------------------+ |
| <switch test="$uni-cir-units"> |
| <outcome value="Mbps"> |
| <reserve plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" |
| resource="ase-port" |
| key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value" |
| pfx="asePort"> |
| |
| <outcome value="success"> |
| <return status="success"> |
| <parameter name="uni-circuit-id" value="$asePort.uni_circuit_id" /> |
| </return> |
| </outcome> |
| <outcome value="Other"> |
| <return status="failure"> |
| <parameter name="error-code" value="1010" /> |
| <parameter name="error-message" value="No ports found that match criteria" /> |
| </return> |
| </outcome> |
| </reserve> |
| </outcome> |
| <outcome value="Gbps"> |
| <reserve plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" |
| resource="ase-port" |
| key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value*1000" |
| pfx="asePort"> |
| |
| <outcome value="success"> |
| <return status="success"> |
| <parameter name="uni-circuit-id" value="$asePort.uni_circuit_id" /> |
| </return> |
| </outcome> |
| <outcome value="Other"> |
| <return status="failure"> |
| <parameter name="error-code" value="1010" /> |
| <parameter name="error-message" value="No ports found that match criteria" /> |
| </return> |
| </outcome> |
| </reserve> |
| </outcome> |
| </switch> |
| +-------------------+ |
| |
| * 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 |
| |
| +-------------------+ |
| <configure adaptor="org.onap.ccsdk.sli.adaptors.emt.EmtAdaptor" |
| key="$uni-circuit-id" activate="true"> |
| <parameter name="circuit.id" value="$uni-circuit-id" /> |
| <parameter name="subscriber.name" value="$subscriber-name" /> |
| <parameter name="emt.clli" value="$edge-device-clli" /> |
| <parameter name="port.tagging" value="$port-tagging" /> |
| <parameter name="port.mediaSpeed" value="$media-speed" /> |
| <parameter name="location.state" value="$uni-location-state" /> |
| <parameter name="location.city" value="$uni-location-city" /> |
| <parameter name="cosCategory" value="$cos-category" /> |
| <parameter name="gosProfile" value="$gos-profile" /> |
| <parameter name="lldp" value="$asePort.resource-lldp" /> |
| <parameter name="mtu" value="$asePort.resource-mtu" /> |
| <outcome value="success"> |
| <block> |
| <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder"> |
| <parameter name="file" value="/tmp/sample_r1.log" /> |
| <parameter name="field1" value="__TIMESTAMP__"/> |
| <parameter name="field2" value="ACTIVE"/> |
| <parameter name="field3" value="$uni-circuit-id"/> |
| </record> |
| <return status="success"> |
| <parameter name="edge-device-clli" value="$asePort.resource-emt-clli" /> |
| </return> |
| </block> |
| </outcome> |
| <outcome value="already-active"> |
| <return status="failure"> |
| <parameter name="error-code" value="1590" /> |
| <parameter name="error-message" value="Port already active" /> |
| </return> |
| </outcome> |
| <outcome value="Other"> |
| <return status="failure"> |
| <parameter name="error-code" value="1542" /> |
| <parameter name="error-message" value="Activation failure" /> |
| </return> |
| </outcome> |
| </configure> |
| +-------------------+ |
| |
| * 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 |
| |
| +-------------------+ |
| <execute plugin="org.onap.ccsdk.sli.plugins.HelloWorld" |
| method="log"> |
| <parameter name="message" value="Hello, world!" /> |
| <outcome value="success"> |
| <return status="success"/> |
| </outcome> |
| <outcome value="not-found"> |
| <return status="failure"> |
| <parameter name="error-code" value="1590" /> |
| <parameter name="error-message" value="Could not locate plugin" /> |
| </return> |
| </outcome> |
| <outcome value="Other"> |
| <return status="failure"> |
| <parameter name="error-code" value="1542" /> |
| <parameter name="error-message" value="Internal error" /> |
| </return> |
| </outcome> |
| </execute> |
| +-------------------+ |
| |
| * 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 |
| |
| +-------------------+ |
| <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder"> |
| <parameter name="file" value="/tmp/sample_r1.log" /> |
| <parameter name="field1" value="__TIMESTAMP__"/> |
| <parameter name="field2" value="ACTIVE"/> |
| <parameter name="field3" value="$uni-circuit-id"/> |
| </record> |
| +-------------------+ |
| |
| * 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 |
| |
| +-------------------+ |
| <delete plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" |
| resource="ase-port" |
| key="uni_circuit_id == $uni-circuit-id"> |
| <outcome value="true"> |
| <return status="success"/> |
| </outcome> |
| <outcome value="false"> |
| <return status="failure"/> |
| </outcome> |
| </delete> |
| +-------------------+ |
| |
| |
| ** 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 |
| |
| +-------------------+ |
| <exists plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" |
| resource="ase-port" |
| key="uni_circuit_id == $uni-circuit-id"> |
| <outcome value="true"> |
| <return status="success"/> |
| </outcome> |
| <outcome value="false"> |
| <return status="failure"/> |
| </outcome> |
| </exists> |
| +-------------------+ |
| |
| ** 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 |
| |
| +-------------------+ |
| <get-resource plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" |
| resource="ase-port" |
| key="uni_circuit_id == $uni-circuit-id" |
| pfx="current-port"> |
| <outcome value="success"> |
| <return status="success"/> |
| </outcome> |
| <outcome value="not-found"> |
| <return status="failure"/> |
| </outcome> |
| <outcome value="failure"> |
| <return status="failure"/> |
| </outcome> |
| </get-resource> |
| +-------------------+ |
| |
| ** 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 |
| |
| +-------------------+ |
| <is-available plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" |
| resource="ase-port" |
| key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value"> |
| <outcome value="true"> |
| <return status="success"/> |
| </outcome> |
| <outcome value="false"> |
| <return status="failure"/> |
| </outcome> |
| </is-available> |
| +-------------------+ |
| |
| ** 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 |
| |
| +-------------------+ |
| <notify plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" |
| resource="ase-port" |
| action="ADD"> |
| <outcome value="success"> |
| <return status="success"/> |
| </outcome> |
| <outcome value="Other"> |
| <return status="failure"/> |
| </outcome> |
| </notify> |
| +-------------------+ |
| |
| ** 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 |
| |
| +-------------------+ |
| <release plugin="org.onap.ccsdk.sli.adaptors.SampleServiceResource" |
| resource="ase-port" |
| key="uni_circuit_id == $uni-circuit-id"> |
| <outcome value="success"> |
| <return status="success"/> |
| </outcome> |
| <outcome value="not-found"> |
| <return status="failure"/> |
| </outcome> |
| <outcome value="failure"> |
| <return status="failure"/> |
| </outcome> |
| </release> |
| +-------------------+ |
| |
| |
| ** 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 |
| |
| +-------------------+ |
| <reserve plugin="org.onap.ccsdk.sli.adaptors.samplesvc.SampleServiceResource" |
| resource="ase-port" |
| key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value" |
| select="min(speed)"> |
| <outcome value="success"> |
| <return status="success"/> |
| </outcome> |
| <outcome value="failure"> |
| <return status="failure"/> |
| </outcome> |
| </reserve> |
| +-------------------+ |
| |
| ** 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 |
| |
| +-------------------+ |
| <save plugin="`$sample-resource-plugin`" resource="vnf" |
| key="vnf-name = $requests.vnf.vnf-name" force="true" |
| pfx="requests.vnf"> |
| <parameter name="vnf-name" |
| value="`$requests.cust-country-code + $requests.cust-id + $requests.cust-city + $requests.cust-state + '001VCE'`" /> |
| <parameter name="vnf-type" value="vce" /> |
| <parameter name="orchestration-status" value="pending-create" /> |
| <parameter name="heat-stack-id" value="`$requests.heat-stack-id`" /> |
| <parameter name="mso-catalog-key" value="`$requests.mso-catalog-key`" /> |
| <parameter name="oam-ipv4-address" value="`$vce-ipv4-oam-addr.ipv4-addr`" /> |
| </save> |
| +-------------------+ |
| |
| ** 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 |
| |
| +-------------------+ |
| <update plugin="`$sample-resource-plugin`" resource="vnf" |
| key="vnf-name = $requests.vnf.vnf-name" |
| pfx="requests.vnf"> |
| <parameter name="vnf-name" |
| value="`$requests.cust-country-code + $requests.cust-id + $requests.cust-city + $requests.cust-state + '001VCE'`" /> |
| <parameter name="vnf-type" value="vce" /> |
| <parameter name="orchestration-status" value="pending-create" /> |
| <parameter name="heat-stack-id" value="`$requests.heat-stack-id`" /> |
| <parameter name="mso-catalog-key" value="`$requests.mso-catalog-key`" /> |
| <parameter name="oam-ipv4-address" value="`$vce-ipv4-oam-addr.ipv4-addr`" /> |
| </update> |
| +-------------------+ |
| |