2 ~~ ============LICENSE_START=======================================================
4 ~~ ================================================================================
5 ~~ Copyright (C) 2017 AT&T Intellectual Property. All rights
7 ~~ ================================================================================
8 ~~ Licensed under the Apache License, Version 2.0 (the "License");
\r
9 ~~ you may not use this file except in compliance with the License.
\r
10 ~~ You may obtain a copy of the License at
\r
12 ~~ http://www.apache.org/licenses/LICENSE-2.0
\r
14 ~~ Unless required by applicable law or agreed to in writing, software
\r
15 ~~ distributed under the License is distributed on an "AS IS" BASIS,
\r
16 ~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
17 ~~ See the License for the specific language governing permissions and
\r
18 ~~ limitations under the License.
19 ~~ ============LICENSE_END=========================================================
\r
23 Service Logic Interpreter
\r
30 Supported node types
\r
32 The following built-in node types are currently supported:
\r
36 * {{{Block node}<<block>>}}
\r
38 * {{{Call node}<<call>>}}
\r
40 * {{{For node}<<for>>}}
\r
42 * {{{Return node}<<return>>}}
\r
44 * {{{Set node}<<set>>}}
\r
46 * {{{Switch node}<<switch>>}}
\r
50 * {{{Configure node}<<configure>>}}
\r
52 * Java Plugin Support
\r
54 * {{{Execute node}<<execute>>}}
\r
58 * {{{Record node}<<record>>}}
\r
60 * Resource Management
\r
62 * {{{Delete node}<<delete>>}}
\r
64 * {{{Exists node}<<exists>>}}
\r
66 * {{{Get-resource node}<<get-resource>>}}
\r
68 * {{{Is-available node}<<is-available>>}}
\r
70 * {{{Notify node}<<notify>>}}
\r
72 * {{{Release node}<<release>>}}
\r
74 * {{{Reserve node}<<reserve>>}}
\r
76 * {{{Save node}<<save>>}}
\r
78 * {{{Update node}<<update>>}}
\r
87 A <<block>> node is used to executes a set of nodes.
\r
91 *--------------*--------------------------------------------+
\r
92 | <<atomic>> | if <true>, then if a node returns failure, subsequent nodes will not be executed and nodes already executed will be backed out.
\r
93 *--------------*--------------------------------------------+
\r
105 +-----------------+
\r
107 <record plugin="org.openecomp.sdnc.sli.recording.FileRecorder">
\r
108 <parameter name="file" value="/tmp/sample_r1.log" />
\r
109 <parameter name="field1" value="__TIMESTAMP__"/>
\r
110 <parameter name="field2" value="RESERVED"/>
\r
111 <parameter name="field3" value="$asePort.uni_circuit_id"/>
\r
113 <return status="success">
\r
114 <parameter name="uni-circuit-id" value="$asePort.uni_circuit_id" />
\r
117 +-----------------+
\r
125 A <<call>> node is used to call another graph
\r
129 *--------------*-------+
\r
130 | <<module>> | Module of directed graph to call. If unset, defaults to that of calling graph
\r
131 *--------------*-------+
\r
132 | <<rpc>> | rpc of directed graph to call.
\r
133 *--------------*-------+
\r
134 | <<version>> | version of graph to call, If unset, uses active version.
\r
135 *--------------*-------+
\r
136 | <<mode>> | mode (sync/async) of graph to call. If unset, defaults to that of calling graph.
\r
137 *--------------*-------+
\r
147 *----------*---------+
\r
148 | <<success>> | Sub graph returned success
\r
149 *----------*---------+
\r
150 | <<not-found>> | Graph not found
\r
151 *----------*---------+
\r
152 | <<failure>> | Subgraph returned success
\r
153 *----------*---------+
\r
158 +-------------------+
\r
159 <call rpc="svc-topology-reserve" mode="sync" />
\r
160 +-------------------+
\r
166 A <<for>> node provides a fixed iteration looping mechanism, similar to the Java for loop
\r
170 *--------------*-------+
\r
171 | <<index>> | index variable
\r
172 *--------------*-------+
\r
173 | <<start>> | initial value
\r
174 *--------------*-------+
\r
175 | <<end>> | maximum value
\r
176 *--------------*-------+
\r
185 Not applicable. The <<status>> node has no outcomes.
\r
189 +-------------------+
\r
190 <for index="i" start="0" end="`$service-data.universal-cpe-ft.l2-switch-interfaces_length`">
\r
191 <record plugin="org.openecomp.sdnc.sli.recording.Slf4jRecorder">
\r
192 <parameter name="logger" value="message-log"/>
\r
193 <parameter name="level" value="info"/>
\r
194 <parameter name="field1" value="`'current l2-switch-interface name is ' + $service-data.universal-cpe-ft.l2-switch-interfaces[$i].name`"/>
\r
197 +-------------------+
\r
203 A <<return>> node is used to return a status to the invoking MD-SAL application
\r
207 *--------------*-------+
\r
208 | <<status>> | Status value to return (<success> or <failure>)
\r
209 *--------------*-------+
\r
214 The following optional parameters may be passed to convey more
\r
215 detailed status information.
\r
217 *------------*-----------+
\r
218 | <<error-code>> | A brief, usually numeric, code indicating the error condition
\r
219 *------------*-----------+
\r
220 | <<error-message>> | A more detailed error message
\r
221 *------------*-----------+
\r
225 Not applicable. The <<status>> node has no outcomes.
\r
229 +-------------------+
\r
230 <return status="failure">
\r
231 <parameter name="error-code" value="1542" />
\r
232 <parameter name="error-message" value="Activation failure" />
\r
234 +-------------------+
\r
240 A <<set>> node is used to set one or more values in the execution context
\r
244 *--------------*-------+
\r
245 | <<only-if-unset>> | If true the set node will only execute if the current value of the target is null
\r
246 *--------------*-------+
\r
250 Values to be set are passed as parameters
\r
254 Not applicable. The <<set>> node has no outcomes.
\r
258 +-------------------+
\r
260 <parameter name="vlan" value="$network.provider-segmentation-id" />
\r
262 +-------------------+
\r
268 A <<switch>> node is used to make a decision based on its <<test>> attribute.
\r
272 *--------------*-------+
\r
273 | <<test>> | Condition to test
\r
274 *--------------*-------+
\r
284 Depends on the <<test>> condition
\r
288 +-------------------+
\r
289 <switch test="$uni-cir-units">
\r
290 <outcome value="Mbps">
\r
291 <reserve plugin="org.openecomp.sdnc.sli.resource.samplesvc.SampleServiceResource"
\r
292 resource="ase-port"
\r
293 key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value"
\r
296 <outcome value="success">
\r
297 <return status="success">
\r
298 <parameter name="uni-circuit-id" value="$asePort.uni_circuit_id" />
\r
301 <outcome value="Other">
\r
302 <return status="failure">
\r
303 <parameter name="error-code" value="1010" />
\r
304 <parameter name="error-message" value="No ports found that match criteria" />
\r
309 <outcome value="Gbps">
\r
310 <reserve plugin="org.openecomp.sdnc.sli.resource.samplesvc.SampleServiceResource"
\r
311 resource="ase-port"
\r
312 key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value*1000"
\r
315 <outcome value="success">
\r
316 <return status="success">
\r
317 <parameter name="uni-circuit-id" value="$asePort.uni_circuit_id" />
\r
320 <outcome value="Other">
\r
321 <return status="failure">
\r
322 <parameter name="error-code" value="1010" />
\r
323 <parameter name="error-message" value="No ports found that match criteria" />
\r
329 +-------------------+
\r
331 * Device Management
\r
337 A <<configure>> node is used to configure a device.
\r
341 *--------------*-------+
\r
342 | <<adaptor>> | Fully qualified Java class of resource adaptor to be used
\r
343 *--------------*-------+
\r
344 | <<activate>> | Activate device/interface, for devices that support a separate activation step.
\r
345 *--------------*-------+
\r
346 | <<key>> | SQL-like string specifying criteria for item to configure
\r
347 *--------------*-------+
\r
351 Specific to device adaptor.
\r
355 *-----------*-------+
\r
356 | <<success>> | Device successfully configured
\r
357 *-----------*-------+
\r
358 | <<not-found>> | Element to be configured does not exist.
\r
359 *-----------*--------+
\r
360 | <<not-ready>> | Element is not in a state where it can be configured/activated
\r
361 *-----------*-------+
\r
362 | <<already-active>> | Attempt to activate element that is already active
\r
363 *-----------*-------+
\r
364 | <<failure>> | Configure failed for some other reason
\r
365 *-----------*-------+
\r
369 +-------------------+
\r
370 <configure adaptor="org.openecomp.sdnc.sli.adaptor.emt.EmtAdaptor"
\r
371 key="$uni-circuit-id" activate="true">
\r
372 <parameter name="circuit.id" value="$uni-circuit-id" />
\r
373 <parameter name="subscriber.name" value="$subscriber-name" />
\r
374 <parameter name="emt.clli" value="$edge-device-clli" />
\r
375 <parameter name="port.tagging" value="$port-tagging" />
\r
376 <parameter name="port.mediaSpeed" value="$media-speed" />
\r
377 <parameter name="location.state" value="$uni-location-state" />
\r
378 <parameter name="location.city" value="$uni-location-city" />
\r
379 <parameter name="cosCategory" value="$cos-category" />
\r
380 <parameter name="gosProfile" value="$gos-profile" />
\r
381 <parameter name="lldp" value="$asePort.resource-lldp" />
\r
382 <parameter name="mtu" value="$asePort.resource-mtu" />
\r
383 <outcome value="success">
\r
385 <record plugin="org.openecomp.sdnc.sli.recording.FileRecorder">
\r
386 <parameter name="file" value="/tmp/sample_r1.log" />
\r
387 <parameter name="field1" value="__TIMESTAMP__"/>
\r
388 <parameter name="field2" value="ACTIVE"/>
\r
389 <parameter name="field3" value="$uni-circuit-id"/>
\r
391 <return status="success">
\r
392 <parameter name="edge-device-clli" value="$asePort.resource-emt-clli" />
\r
396 <outcome value="already-active">
\r
397 <return status="failure">
\r
398 <parameter name="error-code" value="1590" />
\r
399 <parameter name="error-message" value="Port already active" />
\r
402 <outcome value="Other">
\r
403 <return status="failure">
\r
404 <parameter name="error-code" value="1542" />
\r
405 <parameter name="error-message" value="Activation failure" />
\r
409 +-------------------+
\r
411 * Java Plugin Support
\r
417 An <<execute>> node is used to execute Java code supplied as a plugin
\r
421 *--------------*-------+
\r
422 | <<plugin>> | Fully qualified Java class of plugin to be used
\r
423 *--------------*-------+
\r
424 | <<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)
\r
425 *--------------*-------+
\r
429 Specific to plugin / method
\r
433 *-----------*-------+
\r
434 | <<success>> | Device successfully configured
\r
435 *-----------*-------+
\r
436 | <<not-found>> | Plugin class could not be loaded
\r
437 *-----------*--------+
\r
438 | <<unsupported-method>> | Named method taking (Map, SvcLogicContext) could not be found
\r
439 *-----------*-------+
\r
440 | <<failure>> | Configure failed for some other reason
\r
441 *-----------*-------+
\r
445 +-------------------+
\r
446 <execute plugin="org.openecomp.sdnc.sli.plugin.HelloWorld"
\r
448 <parameter name="message" value="Hello, world!" />
\r
449 <outcome value="success">
\r
450 <return status="success"/>
\r
452 <outcome value="not-found">
\r
453 <return status="failure">
\r
454 <parameter name="error-code" value="1590" />
\r
455 <parameter name="error-message" value="Could not locate plugin" />
\r
458 <outcome value="Other">
\r
459 <return status="failure">
\r
460 <parameter name="error-code" value="1542" />
\r
461 <parameter name="error-message" value="Internal error" />
\r
465 +-------------------+
\r
473 A <<record>> node is used to record an event. For example, this might be used
\r
474 to log provisioning events.
\r
478 *--------------*-------+
\r
479 | <<plugin>> | Fully qualified Java class to handle recording.
\r
480 *--------------*-------+
\r
485 Parameters will depend on the plugin being used. For the FileRecorder class,
\r
486 the parameters are as follows
\r
488 *------------*-----------+
\r
489 | <<file>> | The file to which the record should be written
\r
490 *------------*-----------+
\r
491 | <<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
\r
492 *------------*-----------+
\r
497 *----------*---------+
\r
498 | <<success>> | Record successfully written
\r
499 *----------*---------+
\r
500 | <<failure>> | Record could not be successfully written
\r
501 *----------*---------+
\r
505 +-------------------+
\r
506 <record plugin="org.openecomp.sdnc.sli.recording.FileRecorder">
\r
507 <parameter name="file" value="/tmp/sample_r1.log" />
\r
508 <parameter name="field1" value="__TIMESTAMP__"/>
\r
509 <parameter name="field2" value="ACTIVE"/>
\r
510 <parameter name="field3" value="$uni-circuit-id"/>
\r
512 +-------------------+
\r
514 * Resource Management
\r
520 A <<delete>> node is used to delete a resource from the local resource inventory.
\r
524 *--------------*-------+
\r
525 | <<plugin>> | Fully qualified Java class of resource adaptor to be used
\r
526 *--------------*-------+
\r
527 | <<resource>> | Type of resource to delete
\r
528 *--------------*-------+
\r
529 | <<key>> | SQL-like string specifying key to delete
\r
530 *--------------*-------+
\r
538 *-----------*-------+
\r
539 | <<success>> | Resource specified deleted successfully.
\r
540 *-----------*-------+
\r
541 | <failure>> | Resource specified was not deleted
\r
542 *-----------*-------+
\r
546 +-------------------+
\r
547 <delete plugin="org.openecomp.sdnc.sli.resource.samplesvc.SampleServiceResource"
\r
548 resource="ase-port"
\r
549 key="uni_circuit_id == $uni-circuit-id">
\r
550 <outcome value="true">
\r
551 <return status="success"/>
\r
553 <outcome value="false">
\r
554 <return status="failure"/>
\r
557 +-------------------+
\r
564 An <<exists>> node is used to determine whether a particular
\r
565 instance of a resource exists. For example, this might be
\r
566 used to test whether a particular switch CLLI is provisioned.
\r
570 *--------------*-------+
\r
571 | <<plugin>> | Fully qualified Java class of resource adaptor to be used
\r
572 *--------------*-------+
\r
573 | <<resource>> | Type of resource to check
\r
574 *--------------*-------+
\r
575 | <<key>> | SQL-like string specifying key to check for
\r
576 *--------------*-------+
\r
584 *-----------*-------+
\r
585 | <<true>> | Resource specified exists.
\r
586 *-----------*-------+
\r
587 | <<false>> | Resource specified is unknown
\r
588 *-----------*-------+
\r
592 +-------------------+
\r
593 <exists plugin="org.openecomp.sdnc.sli.resource.samplesvc.SampleServiceResource"
\r
594 resource="ase-port"
\r
595 key="uni_circuit_id == $uni-circuit-id">
\r
596 <outcome value="true">
\r
597 <return status="success"/>
\r
599 <outcome value="false">
\r
600 <return status="failure"/>
\r
603 +-------------------+
\r
605 ** Get-resource node
\r
609 A <<get-resource>> node is used to retrieve information about a
\r
610 particular resource and make it available to other nodes in the
\r
611 service logic tree. For example, this might be used to
\r
612 retrieve information about a particular uni-port.
\r
616 *--------------*-------+
\r
617 | <<plugin>> | Fully qualified Java class of resource adaptor to be used
\r
618 *--------------*-------+
\r
619 | <<resource>> | Type of resource to retrieve
\r
620 *--------------*-------+
\r
621 | <<key>> | SQL-like string specifying criteria for retrieval
\r
622 *--------------*-------+
\r
623 | <<pfx>> | Prefix to add to context variable names set for data retrieved
\r
624 *--------------*-------+
\r
625 | <<select>> | String to specify, if key matches multiple entries, which entry should take precedence
\r
626 *--------------*-------+
\r
627 | <<order-by>> | Prefix to add to context variable names set for data retrieved
\r
628 *--------------*-------+
\r
637 *-----------*-------+
\r
638 | <<success>> | Resource successfully retrieved
\r
639 *-----------*-------+
\r
640 | <<not-found>> | Resource referenced does not exist
\r
641 *-----------*-------+
\r
642 | <<failure>> | Resource retrieve failed for some other reason
\r
643 *-----------*-------+
\r
647 +-------------------+
\r
648 <get-resource plugin="org.openecomp.sdnc.sli.resource.samplesvc.SampleServiceResource"
\r
649 resource="ase-port"
\r
650 key="uni_circuit_id == $uni-circuit-id"
\r
651 pfx="current-port">
\r
652 <outcome value="success">
\r
653 <return status="success"/>
\r
655 <outcome value="not-found">
\r
656 <return status="failure"/>
\r
658 <outcome value="failure">
\r
659 <return status="failure"/>
\r
662 +-------------------+
\r
664 ** Is-available node
\r
668 An <<is-available>> node is used to determine whether a particular
\r
669 type of resource is available. For example, this might be used to
\r
670 test whether any ports are available for assignment on a particular switch.
\r
674 *--------------*-------+
\r
675 | <<plugin>> | Fully qualified Java class of resource adaptor to be used
\r
676 *--------------*-------+
\r
677 | <<resource>> | Type of resource to check
\r
678 *--------------*-------+
\r
679 | <<key>> | SQL-like string specifying key to check for
\r
680 *--------------*-------+
\r
681 | <<pfx>> | Prefix to add to context variable names set for data retrieved
\r
682 *--------------*-------+
\r
690 *-----------*-------+
\r
691 | <<true>> | Resource requested is available
\r
692 *-----------*-------+
\r
693 | <<false>> | Resource requested is not available
\r
694 *-----------*-------+
\r
698 +-------------------+
\r
699 <is-available plugin="org.openecomp.sdnc.sli.resource.samplesvc.SampleServiceResource"
\r
700 resource="ase-port"
\r
701 key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value">
\r
702 <outcome value="true">
\r
703 <return status="success"/>
\r
705 <outcome value="false">
\r
706 <return status="failure"/>
\r
709 +-------------------+
\r
715 A <<notify>> node is used to inform an external application (e.g. A&AI) that a resource was
\r
720 *--------------*-------+
\r
721 | <<plugin>> | Fully qualified Java class of resource adaptor to be used
\r
722 *--------------*-------+
\r
723 | <<resource>> | Identifies resource that was updated
\r
724 *--------------*-------+
\r
725 | <<action>> | Action that triggered notification to be sent (ADD/UPDATE/DELETE)
\r
726 *--------------*-------+
\r
734 *-----------*-------+
\r
735 | <<success>> | Notification was successful
\r
736 *-----------*-------+
\r
737 | <<failure>> | Notification failed is not available
\r
738 *-----------*-------+
\r
742 +-------------------+
\r
743 <notify plugin="org.openecomp.sdnc.sli.resource.samplesvc.SampleServiceResource"
\r
744 resource="ase-port"
\r
746 <outcome value="success">
\r
747 <return status="success"/>
\r
749 <outcome value="Other">
\r
750 <return status="failure"/>
\r
753 +-------------------+
\r
759 A <<release>> node is used to mark a resource as no longer in use, and thus
\r
760 available for assignment.
\r
764 *--------------*-------+
\r
765 | <<plugin>> | Fully qualified Java class of resource adaptor to be used
\r
766 *--------------*-------+
\r
767 | <<resource>> | Type of resource to release
\r
768 *--------------*-------+
\r
769 | <<key>> | SQL-like string specifying key to check of resource to release
\r
770 *--------------*-------+
\r
778 *-----------*-------+
\r
779 | <<success>> | Resource successfully released
\r
780 *-----------*-------+
\r
781 | <<not-found>> | Resource referenced does not exist
\r
782 *-----------*-------+
\r
783 | <<failure>> | Resource release failed for some other reason
\r
784 *-----------*-------+
\r
788 +-------------------+
\r
789 <release plugin="org.openecomp.sdnc.sli.resource.samplesvc.SampleServiceResource"
\r
790 resource="ase-port"
\r
791 key="uni_circuit_id == $uni-circuit-id">
\r
792 <outcome value="success">
\r
793 <return status="success"/>
\r
795 <outcome value="not-found">
\r
796 <return status="failure"/>
\r
798 <outcome value="failure">
\r
799 <return status="failure"/>
\r
802 +-------------------+
\r
809 A <<reserve>> node is used to reserve a particular
\r
810 type of resource.. For example, this might be used to
\r
811 reserve a port on a particular switch.
\r
815 *--------------*-------+
\r
816 | <<plugin>> | Fully qualified Java class of resource adaptor to be used
\r
817 *--------------*-------+
\r
818 | <<resource>> | Type of resource to reserve
\r
819 *--------------*-------+
\r
820 | <<key>> | SQL-like string specifying criteria for reservation
\r
821 *--------------*-------+
\r
822 | <<select>> | String to specify, if <<key>> matches multiple entries, which entry should take precedence
\r
823 *--------------*-------+
\r
831 *-----------*-------+
\r
832 | <<success>> | Resource requested was successfully reserved
\r
833 *-----------*-------+
\r
834 | <<failure>> | Resource requested was not successfully reserved
\r
835 *-----------*-------+
\r
839 +-------------------+
\r
840 <reserve plugin="org.openecomp.sdnc.sli.resource.samplesvc.SampleServiceResource"
\r
841 resource="ase-port"
\r
842 key="resource-emt-clli == $edge-device-clli and speed >= $uni-cir-value"
\r
843 select="min(speed)">
\r
844 <outcome value="success">
\r
845 <return status="success"/>
\r
847 <outcome value="failure">
\r
848 <return status="failure"/>
\r
851 +-------------------+
\r
857 A <<save>> node is used to save information about a
\r
858 particular resource to persistent storage. For example, this might be used to
\r
859 save information about a particular uni-port.
\r
863 *--------------*-------+
\r
864 | <<plugin>> | Fully qualified Java class of resource adaptor to be used
\r
865 *--------------*-------+
\r
866 | <<resource>> | Type of resource to save
\r
867 *--------------*-------+
\r
868 | <<key>> | SQL-like string specifying criteria for retrieval
\r
869 *--------------*-------+
\r
870 | <<force>> | If "true", save resource even if this resource is already stored in persistent storage
\r
871 *--------------*-------+
\r
872 | <<pfx>> | Prefix to be prepended to variable names, when attributes are set in SvcLogicContext
\r
873 *--------------*-------+
\r
877 Values to save (columns) are specified as parameters, with each name
\r
878 corresponding to a column name and each value corresponding to the
\r
883 *-----------*-------+
\r
884 | <<success>> | Resource successfully saved
\r
885 *-----------*-------+
\r
886 | <<failure>> | Resource save failed
\r
887 *-----------*-------+
\r
891 +-------------------+
\r
892 <save plugin="`$sample-resource-plugin`" resource="vnf"
\r
893 key="vnf-name = $requests.vnf.vnf-name" force="true"
\r
894 pfx="requests.vnf">
\r
895 <parameter name="vnf-name"
\r
896 value="`$requests.cust-country-code + $requests.cust-id + $requests.cust-city + $requests.cust-state + '001VCE'`" />
\r
897 <parameter name="vnf-type" value="vce" />
\r
898 <parameter name="orchestration-status" value="pending-create" />
\r
899 <parameter name="heat-stack-id" value="`$requests.heat-stack-id`" />
\r
900 <parameter name="mso-catalog-key" value="`$requests.mso-catalog-key`" />
\r
901 <parameter name="oam-ipv4-address" value="`$vce-ipv4-oam-addr.ipv4-addr`" />
\r
903 +-------------------+
\r
909 An <<update>> node is used to update information about a
\r
910 particular resource to persistent storage.
\r
914 *--------------*-------+
\r
915 | <<plugin>> | Fully qualified Java class of resource adaptor to be used
\r
916 *--------------*-------+
\r
917 | <<resource>> | Type of resource to update
\r
918 *--------------*-------+
\r
919 | <<key>> | SQL-like string specifying criteria for retrieval
\r
920 *--------------*-------+
\r
921 | <<pfx>> | Prefix to be prepended to variable names, when attributes are set in SvcLogicContext
\r
922 *--------------*-------+
\r
926 Values to save (columns) are specified as parameters, with each name
\r
927 corresponding to a column name and each value corresponding to the
\r
932 *-----------*-------+
\r
933 | <<success>> | Resource successfully saved
\r
934 *-----------*-------+
\r
935 | <<failure>> | Resource save failed
\r
936 *-----------*-------+
\r
940 +-------------------+
\r
941 <update plugin="`$sample-resource-plugin`" resource="vnf"
\r
942 key="vnf-name = $requests.vnf.vnf-name"
\r
943 pfx="requests.vnf">
\r
944 <parameter name="vnf-name"
\r
945 value="`$requests.cust-country-code + $requests.cust-id + $requests.cust-city + $requests.cust-state + '001VCE'`" />
\r
946 <parameter name="vnf-type" value="vce" />
\r
947 <parameter name="orchestration-status" value="pending-create" />
\r
948 <parameter name="heat-stack-id" value="`$requests.heat-stack-id`" />
\r
949 <parameter name="mso-catalog-key" value="`$requests.mso-catalog-key`" />
\r
950 <parameter name="oam-ipv4-address" value="`$vce-ipv4-oam-addr.ipv4-addr`" />
\r
952 +-------------------+
\r