- Created by FREEMAN, BRIAN D, last modified on Aug 09, 2017
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 3 Next »
This section will show how to view the main API's used for vCPE configuration at the Service and VNF level through DG builder and then test with them using the SLI-API: Execute-Graph API.
Overview of GENERIC-RESOURCE-APIs
The GENERIC-RESOURCE-APIs are the rpc's described in the SDNC yang model GENERIC-RESOURCE-API.yang. These API's allow interaction with SDNC for generic services and vnfs where the payload is an array of name/value pairs that can be processed by SDNC directed graphs. Since they are generic they are very flexible but can be a bit more complex to deal with. A custom yang model can define rpc that fine tune the input parameters and include a network data model that is more logical.
Service-Topology-Operation
The service-topology-operation rpc is used to create an initial service instance ID and do varous service level resource assignments. There are several sub-graphs used in the directed graph
Service-Topology-Operation (main)
Notice that this DG has 4 sub DG's
- validate-service-input
- service-topology-operation-assign
- service-topology-operation-deactivate
- service-topology-operation-delete
Here are json string forms of the directed graphs that can be imported into DGBuilder.
[{"id":"d3b12978.a07958","type":"dgstart","name":"DGSTART","outputs":1,"x":155,"y":131.4136562347412,"z":"e8bc9b98.816858","wires":[["b7396d0e.8f0cc"]]},{"id":"b7396d0e.8f0cc","type":"service-logic","name":"GENERIC-RESOURCE-API 0.0.1","module":"GENERIC-RESOURCE-API","version":"0.0.1","comments":"","xml":"<service-logic xmlns='http://www.openecomp.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.openecomp.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='0.0.1'>","outputs":1,"x":230.28570556640625,"y":171.6517677307129,"z":"e8bc9b98.816858","wires":[["9949b950.d0ee7"]]},{"id":"9949b950.d0ee7","type":"method","name":"method service-topology-operation","xml":"<method rpc='service-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":233.42862701416016,"y":211.4136505126953,"z":"e8bc9b98.816858","wires":[["f463b94c.1017b8"]]},{"id":"676a3420.723724","type":"comment","name":"service-topology-operation","info":"","comments":"","x":549.344856262207,"y":79,"z":"e8bc9b98.816858","wires":[]},{"id":"f463b94c.1017b8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":229.5000457763672,"y":412.44050788879395,"z":"e8bc9b98.816858","wires":[["1e77fab1.a6aa75","825f49a.dfd4db8","2cafd6e.5e4402a","768022b2.920c34"]]},{"id":"1e77fab1.a6aa75","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":513.3332977294922,"y":587.8426446914673,"z":"e8bc9b98.816858","wires":[]},{"id":"2cafd6e.5e4402a","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":520.0475387573242,"y":464.9374351501465,"z":"e8bc9b98.816858","wires":[["8afe9b00.96b448","bebf36ec.06d6a8","b6d909b3.c8e398","b20f571f.7a617"]]},{"id":"8afe9b00.96b448","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":730.8570785522461,"y":390.22325325012207,"z":"e8bc9b98.816858","wires":[["31220371.b6a3dc"]]},{"id":"bebf36ec.06d6a8","type":"outcome","name":"delete","xml":"<outcome value='delete'>\n","comments":"","outputs":1,"x":730.2380599975586,"y":484.747296333313,"z":"e8bc9b98.816858","wires":[["1cf1bc7b.a24e2c"]]},{"id":"b20f571f.7a617","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":729.2855987548828,"y":533.604061126709,"z":"e8bc9b98.816858","wires":[["d982d4e4.a1cbc8"]]},{"id":"825f49a.dfd4db8","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.sdnc-request-header.' value='`$service-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.request-information.' value='`$service-topology-operation-input.request-information.`' />\n<parameter name='service-data.service-information.' value='`$service-topology-operation-input.service-information.`' />\n<parameter name='service-data.service-request-input.' value='`$service-topology-operation-input.service-request-input.`' />\n","comments":"","x":548.1547317504883,"y":332.63989543914795,"z":"e8bc9b98.816858","wires":[]},{"id":"d982d4e4.a1cbc8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`$service-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n","comments":"","x":905.4760437011719,"y":533.6041259765625,"z":"e8bc9b98.816858","wires":[]},{"id":"768022b2.920c34","type":"call","name":"call GENERIC-RESOURCE-API:validate-service-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-service-input' mode='sync' >\n","comments":"","outputs":1,"x":635.416633605957,"y":284.4613552093506,"z":"e8bc9b98.816858","wires":[[]]},{"id":"31220371.b6a3dc","type":"call","name":"call GENERIC-RESOURCE-API:service-topology-operation-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-assign' mode='sync' >\n","comments":"","outputs":1,"x":1071.9999313354492,"y":389.794713973999,"z":"e8bc9b98.816858","wires":[[]]},{"id":"3303275.e799858","type":"call","name":"call GENERIC-RESOURCE-API:service-topology-operation-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":1084.999885559082,"y":436.7947082519531,"z":"e8bc9b98.816858","wires":[[]]},{"id":"1cf1bc7b.a24e2c","type":"call","name":"call GENERIC-RESOURCE-API:service-topology-operation-delete","xml":"<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-delete' mode='sync' >\n","comments":"","outputs":1,"x":1073.3331565856934,"y":485.46142768859863,"z":"e8bc9b98.816858","wires":[[]]},{"id":"b6d909b3.c8e398","type":"outcome","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":741.6665267944336,"y":438.4613838195801,"z":"e8bc9b98.816858","wires":[["3303275.e799858"]]}]
[{"id":"78d12d0e.b112f4","type":"dgstart","name":"DGSTART","outputs":1,"x":174,"y":138.4136562347412,"z":"573bd44.832f22c","wires":[["d3f20878.e78588"]]},{"id":"d3f20878.e78588","type":"service-logic","name":"GENERIC-RESOURCE-API 0.0.1","module":"GENERIC-RESOURCE-API","version":"0.0.1","comments":"","xml":"<service-logic xmlns='http://www.openecomp.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.openecomp.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='0.0.1'>","outputs":1,"x":249.28570556640625,"y":178.6517677307129,"z":"573bd44.832f22c","wires":[["dd896e2b.6b1c88"]]},{"id":"dd896e2b.6b1c88","type":"method","name":"method service-topology-operation-assign","xml":"<method rpc='service-topology-operation-assign' mode='sync'>\n","comments":"","outputs":1,"x":278.42862701416016,"y":218.4136562347412,"z":"573bd44.832f22c","wires":[["b53bfbb0.f9d8a8"]]},{"id":"8c7dd591.f5413","type":"comment","name":"service-topology-operation-assign","info":"","comments":"","x":568.344856262207,"y":86,"z":"573bd44.832f22c","wires":[]},{"id":"b53bfbb0.f9d8a8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":290.8571243286133,"y":809.1756019592285,"z":"573bd44.832f22c","wires":[["eed4a4bb.4ff4c8","b5a07cf7.622aa8","7ddf70bc.04d968","19cb8a62.21245e","ff8f09db.fa31a8","d9bc037.5a8a28","808a05d8.77b83","1a5d5129.f380cf","8e1f0de6.26b1e"]]},{"id":"eed4a4bb.4ff4c8","type":"switchNode","name":"switch request-action","xml":"<switch test='`$service-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":573.2381134033203,"y":320.127947807312,"z":"573bd44.832f22c","wires":[["160c429.fdbff3d","b16ff0b4.57f5"]]},{"id":"160c429.fdbff3d","type":"outcome","name":"CreateServiceInstance","xml":"<outcome value='CreateServiceInstance'>\n","comments":"","outputs":1,"x":810.3809280395508,"y":294.4136562347412,"z":"573bd44.832f22c","wires":[["bc5512a3.62569"]]},{"id":"b16ff0b4.57f5","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":760.3809509277344,"y":338.46129512786865,"z":"573bd44.832f22c","wires":[["351b9443.f5869c"]]},{"id":"bc5512a3.62569","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":988.9523849487305,"y":294.4136915206909,"z":"573bd44.832f22c","wires":[[]]},{"id":"351b9443.f5869c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"If svc-action is 'assign' then request-action must be 'CreateServiceInstance'\" />\n","comments":"","x":967.7618980407715,"y":338.46130657196045,"z":"573bd44.832f22c","wires":[]},{"id":"a9478035.5f0fb","type":"get-resource","name":"get-resource SERVICE_MODEL","xml":"<get-resource plugin='org.openecomp.sdnc.sli.resource.sql.SqlResource' resource='SQL'\n key='SELECT * from SERVICE_MODEL WHERE service_uuid = $service-topology-operation-input.service-information.ecomp-model-information.model-uuid'\n pfx='db.service-model'>\n\n","comments":"","outputs":1,"x":609.7856292724609,"y":543.2232360839844,"z":"573bd44.832f22c","wires":[["ebfe18e9.9d4ed","a218a76b.7acc68"]]},{"id":"558753d6.22bd54","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'No model found for service UUID ' + $service-topology-operation-input.service-information.ecomp-model-information.model-uuid`\" />\n","comments":"","x":1024.0712966918945,"y":568.080286026001,"z":"573bd44.832f22c","wires":[]},{"id":"b5a07cf7.622aa8","type":"switchNode","name":"switch input service-instance-name","xml":"<switch test='`$service-topology-operation-input.service-request-input.service-instance-name`'>\n","comments":"","outputs":1,"x":617.1903610229492,"y":839.5326652526855,"z":"573bd44.832f22c","wires":[["fa26bb1c.fab59","6a2acb8b.f308d4"]]},{"id":"fa26bb1c.fab59","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":838.3569221496582,"y":764.8898096084595,"z":"573bd44.832f22c","wires":[["a1460fd3.88252"]]},{"id":"ca1b790f.25d6f8","type":"switchNode","name":"switch ecomp-naming","xml":"<switch test='`$db.service-model.ecomp-naming`'>\n","comments":"","outputs":1,"x":1217.6429824829102,"y":657.2708940505981,"z":"573bd44.832f22c","wires":[["6683f762.e027b","50f6496a.ffe23","40fd15fa.84da4c"]]},{"id":"a1460fd3.88252","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":984.0714225769043,"y":764.8899269104004,"z":"573bd44.832f22c","wires":[["9c81a56.0cea0d8","23c933b.2cfc14c","ca1b790f.25d6f8"]]},{"id":"50f6496a.ffe23","type":"outcome","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1466.9286422729492,"y":659.1756029129028,"z":"573bd44.832f22c","wires":[["89106143.b1a078"]]},{"id":"89106143.b1a078","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"No service-instance-name was received but ecomp-naming is not Y\" />\n","comments":"","x":1621.214427947998,"y":677.7470474243164,"z":"573bd44.832f22c","wires":[]},{"id":"6683f762.e027b","type":"outcome","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1466.9286079406738,"y":614.8899240493774,"z":"573bd44.832f22c","wires":[["a82712a1.8243d8"]]},{"id":"40fd15fa.84da4c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1466.9285697937012,"y":704.8899221420288,"z":"573bd44.832f22c","wires":[["89106143.b1a078"]]},{"id":"a82712a1.8243d8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1604.0715522766113,"y":614.8899240493774,"z":"573bd44.832f22c","wires":[[]]},{"id":"6a2acb8b.f308d4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":840.9286041259766,"y":911.1755485534668,"z":"573bd44.832f22c","wires":[["3bcfb2c8.11039e"]]},{"id":"3b698a92.087b7e","type":"set","name":"set tmp.service-instance-name","xml":"<set>\n<parameter name='tmp.service-instance-name' value=\"`$service-topology-operation-input.service-request-input.service-instance-name`\" />\n","comments":"","x":1882.6428756713867,"y":958.6041946411133,"z":"573bd44.832f22c","wires":[]},{"id":"19cb8a62.21245e","type":"update","name":"update AAI service instance","xml":"<update plugin=\"org.openecomp.sdnc.sli.aai.AAIService\" \n\t\tresource=\"service-instance\" \n\t\tkey=\"customer.global-customer-id = $service-topology-operation-input.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-topology-operation-input.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-topology-operation-input.service-information.service-instance-id\"\n pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"service-instance-name\" value=\"`$tmp.service-instance-name`\" />\n\t<parameter name=\"selflink\" value=\"`$service-object-path`\" />\n","comments":"","outputs":1,"x":591.4524154663086,"y":1065.9374208450317,"z":"573bd44.832f22c","wires":[["a7941b57.780c48","212a10f.c55d27"]]},{"id":"a7941b57.780c48","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":803.214282989502,"y":1041.1755752563477,"z":"573bd44.832f22c","wires":[["db0cc330.28062"]]},{"id":"db0cc330.28062","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":953.2142486572266,"y":1041.1756534576416,"z":"573bd44.832f22c","wires":[]},{"id":"8e1f0de6.26b1e","type":"set","name":"set service-level-oper-status to Created","xml":"<set>\n<parameter name='service-data.service-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.service-level-oper-status.last-rpc-action' value='assign' />\n<parameter name='service-data.service-level-oper-status.last-action' value='CreateServiceInstance' />\n","comments":"","x":626.7380981445312,"y":1314.6277723312378,"z":"573bd44.832f22c","wires":[]},{"id":"1a5d5129.f380cf","type":"set","name":"set service-object-path","xml":"<set>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n","comments":"","x":575.9760437011719,"y":1001.8897714614868,"z":"573bd44.832f22c","wires":[]},{"id":"7ddf70bc.04d968","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.service-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":566.3809089660645,"y":431.0804195404053,"z":"573bd44.832f22c","wires":[["ce4b4db7.fee0c","660a8480.99e1c4","6b5f29ae.188e98"]]},{"id":"ce4b4db7.fee0c","type":"outcome","name":"Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":762.3333587646484,"y":430.74701595306396,"z":"573bd44.832f22c","wires":[["b51ba79c.316bf"]]},{"id":"b51ba79c.316bf","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"The requested service already exists\" />\n","comments":"","x":964.476188659668,"y":430.3185501098633,"z":"573bd44.832f22c","wires":[]},{"id":"ff8f09db.fa31a8","type":"set","name":"set service-topology identifiers","xml":"<set>\n<parameter name='service-data.service-topology.service-topology-identifier.service-instance-id'\n value='`$service-topology-operation-input.service-information.service-instance-id`' />\n<parameter name='service-data.service-topology.service-topology-identifier.service-type'\n value='`$service-topology-operation-input.service-information.subscription-service-type`' />\n<parameter name='service-data.service-topology.service-topology-identifier.service-instance-name'\n value='`$tmp.service-instance-name`' />\n<parameter name='service-data.service-topology.service-topology-identifier.global-customer-id'\n value='`$service-topology-operation-input.service-information.global-customer-id`' />\n","comments":"","x":602.7143249511719,"y":1134.2707147598267,"z":"573bd44.832f22c","wires":[]},{"id":"791f39fa.05ac68","type":"for","name":"for each service-input-parameters","xml":"<for index='idx' start='0' end='`$service-topology-operation-input.service-request-input.service-input-parameters.param_length`' >\n","comments":"","outputs":1,"x":1032.523754119873,"y":1272.366153717041,"z":"573bd44.832f22c","wires":[["8b8629f3.cdd878"]]},{"id":"8b8629f3.cdd878","type":"set","name":"set parameter name/value","xml":"<set>\n<parameter name='service-data.service-topology.service-parameters[$idx].service-parameter-name'\n value='`$service-topology-operation-input.service-request-input.service-input-parameters.param[$idx].name`' />\n<parameter name='service-data.service-topology.service-parameters[$idx].service-parameter-value'\n value='`$service-topology-operation-input.service-request-input.service-input-parameters.param[$idx].value`' />\n","comments":"","x":1313.9522171020508,"y":1272.3661003112793,"z":"573bd44.832f22c","wires":[]},{"id":"d9bc037.5a8a28","type":"switchNode","name":"switch input parameter length","xml":"<switch test='`$service-topology-operation-input.service-request-input.service-input-parameters.param_length`'>\n","comments":"","outputs":1,"x":595.3333282470703,"y":1244.7468738555908,"z":"573bd44.832f22c","wires":[["6a4426e0.aa51d","35f72c92.6d34cc"]]},{"id":"6a4426e0.aa51d","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":810.237907409668,"y":1220.9375076293945,"z":"573bd44.832f22c","wires":[["308e9af1.186aee"]]},{"id":"308e9af1.186aee","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":948.8092994689941,"y":1220.9374904632568,"z":"573bd44.832f22c","wires":[[]]},{"id":"35f72c92.6d34cc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":808.8093185424805,"y":1272.366096496582,"z":"573bd44.832f22c","wires":[["791f39fa.05ac68"]]},{"id":"808a05d8.77b83","type":"set","name":"set service-topology ecomp-model-information","xml":"<set>\n<parameter name='service-data.service-topology.ecomp-model-information.'\n value='`$service-topology-operation-input.service-information.ecomp-model-information.`' />\n","comments":"","x":652.7143096923828,"y":1178.5562887191772,"z":"573bd44.832f22c","wires":[]},{"id":"212a10f.c55d27","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":809.5237121582031,"y":1089.7469930648804,"z":"573bd44.832f22c","wires":[["92e69062.b6227"]]},{"id":"92e69062.b6227","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"The service instance does not exist in AAI\" />\n","comments":"","x":952.8570098876953,"y":1088.0803670883179,"z":"573bd44.832f22c","wires":[]},{"id":"9c81a56.0cea0d8","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1323.1904754638672,"y":814.8898191452026,"z":"573bd44.832f22c","wires":[["26b42ec9.82f8ba","4e7d6be0.902e04"]]},{"id":"26b42ec9.82f8ba","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1663.1904487609863,"y":789.8898782730103,"z":"573bd44.832f22c","wires":[["21b353c8.d1d184"]]},{"id":"4e7d6be0.902e04","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1666.5237986246743,"y":839.5565214157104,"z":"573bd44.832f22c","wires":[["c3c9c1c1.1901e8"]]},{"id":"23c933b.2cfc14c","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.index-table-name' value='SERVICE_INSTANCE_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='service_instance_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='SERVICE_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$db.service-model.service-instance-name-prefix + '_'`\" />\n","comments":"","x":1278.190559387207,"y":754.5566291809082,"z":"573bd44.832f22c","wires":[]},{"id":"c3c9c1c1.1901e8","type":"set","name":"set tmp.service-instance-name to generated name","xml":"<set>\n<parameter name='tmp.service-instance-name' value='`$generate-unique-name-output.generated-name`' />\n","comments":"","x":1950.5713500976562,"y":838.6041021347046,"z":"573bd44.832f22c","wires":[]},{"id":"21b353c8.d1d184","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":1831.0475616455078,"y":789.3183898925781,"z":"573bd44.832f22c","wires":[]},{"id":"3bcfb2c8.11039e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":988.8571319580078,"y":909.8422355651855,"z":"573bd44.832f22c","wires":[["78963995.6cc0a","be4997df.1f332"]]},{"id":"be4997df.1f332","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1319.857177734375,"y":957.5089111328125,"z":"573bd44.832f22c","wires":[["9f464d6b.aff938","ae91a50b.b8231"]]},{"id":"9f464d6b.aff938","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1658.857105255127,"y":907.8422946929932,"z":"573bd44.832f22c","wires":[["52e3a7ce.0d766"]]},{"id":"ae91a50b.b8231","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1662.190455118815,"y":959.5089378356934,"z":"573bd44.832f22c","wires":[["3b698a92.087b7e"]]},{"id":"78963995.6cc0a","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.name-table-type' value='SERVICE_INSTANCE' />\n<parameter name='generate-unique-name-input.supplied-name' value='`$service-topology-operation-input.service-request-input.service-instance-name`' />\n","comments":"","x":1277.1905212402344,"y":886.1755924224854,"z":"573bd44.832f22c","wires":[]},{"id":"52e3a7ce.0d766","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":1826.7142181396484,"y":907.270806312561,"z":"573bd44.832f22c","wires":[]},{"id":"ebfe18e9.9d4ed","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":850.5713310241699,"y":524.6041011810303,"z":"573bd44.832f22c","wires":[["4098d552.aeef4c"]]},{"id":"a218a76b.7acc68","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":859.1427612304688,"y":567.889814376831,"z":"573bd44.832f22c","wires":[["558753d6.22bd54"]]},{"id":"4098d552.aeef4c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"Error reading SERVICE_MODEL table\" />\n","comments":"","x":1023.4284973144531,"y":523.1755447387695,"z":"573bd44.832f22c","wires":[]},{"id":"660a8480.99e1c4","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":760.3332824707031,"y":386.08033752441406,"z":"573bd44.832f22c","wires":[["334d5f6e.9e0ac"]]},{"id":"6b5f29ae.188e98","type":"other","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":783.0000114440918,"y":474.7469959259033,"z":"573bd44.832f22c","wires":[["c4f908c4.ddc838"]]},{"id":"c4f908c4.ddc838","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"The requested service is pending deletion\" />\n","comments":"","x":965.333309173584,"y":474.7470064163208,"z":"573bd44.832f22c","wires":[]},{"id":"334d5f6e.9e0ac","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":946.9999923706055,"y":385.0803565979004,"z":"573bd44.832f22c","wires":[[]]},{"id":"7d9ead4a.c2484c","type":"comment","name":"SERVICE_MODEL not in sdnc yet","info":"","comments":"","x":608,"y":608,"z":"573bd44.832f22c","wires":[]}]
VNF-Toplogy-Operation
VNF-Toplogy-Operation (Main)
The vnf-topology-operation has several sub DGs. These DGs also have sub DGs that are called for re-useable functions like generate-unique-name that is used for assigning resource names according to engineering rules like encoded hostnames.
- validate-vnf-input
- vnf-topology-operation-assign
- vnf-topology-operation-activate
- vnf-topology-operation-deactivate
- vnf-topology-operation-delete
[{"id":"ee84697b.f9bfb","type":"dgstart","name":"DGSTART","outputs":1,"x":151,"y":112.41365623474121,"z":"1840bd3e.8d49eb","wires":[["35e2ecc9.c20204"]]},{"id":"35e2ecc9.c20204","type":"service-logic","name":"GENERIC-RESOURCE-API 0.0.1","module":"GENERIC-RESOURCE-API","version":"0.0.1","comments":"","xml":"<service-logic xmlns='http://www.openecomp.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.openecomp.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='0.0.1'>","outputs":1,"x":226.28570556640625,"y":152.6517677307129,"z":"1840bd3e.8d49eb","wires":[["7124ccc.b38d4b4"]]},{"id":"7124ccc.b38d4b4","type":"method","name":"method vnf-topology-operation","xml":"<method rpc='vnf-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":219.42862701416016,"y":192.4136505126953,"z":"1840bd3e.8d49eb","wires":[["595554df.09155c"]]},{"id":"7c27b88d.9472e8","type":"comment","name":"vnf-topology-operation","info":"","comments":"","x":545.344856262207,"y":60,"z":"1840bd3e.8d49eb","wires":[]},{"id":"595554df.09155c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":232.16670989990234,"y":360.1071662902832,"z":"1840bd3e.8d49eb","wires":[["25d010fc.7e2f1","5d15a133.379f58","64bf86f7.3089a8"]]},{"id":"25d010fc.7e2f1","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":524.6666641235352,"y":510.2711992263794,"z":"1840bd3e.8d49eb","wires":[]},{"id":"5d15a133.379f58","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":527.5713806152344,"y":358.31840991973877,"z":"1840bd3e.8d49eb","wires":[["b58e135c.b8f748","d1a2bd1b.0d78","d69f110.8e798f","af0a9f81.f3f74","29c69e98.d7512a"]]},{"id":"b58e135c.b8f748","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":726.3808898925781,"y":290.93755531311035,"z":"1840bd3e.8d49eb","wires":[["ba53cb8c.fe79e8"]]},{"id":"d1a2bd1b.0d78","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":730.4285125732422,"y":421.1282787322998,"z":"1840bd3e.8d49eb","wires":[["5a3b1db4.d397ec"]]},{"id":"af0a9f81.f3f74","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":725.1427383422852,"y":465.3183546066284,"z":"1840bd3e.8d49eb","wires":[["53442356.45c18c"]]},{"id":"53442356.45c18c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n","comments":"","x":911.3331832885742,"y":465.31841945648193,"z":"1840bd3e.8d49eb","wires":[]},{"id":"64bf86f7.3089a8","type":"call","name":"call GENERIC-RESOURCE-API:validate-vnf-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-vnf-input' mode='sync' >\n","comments":"","outputs":1,"x":633.416633605957,"y":249.7946949005127,"z":"1840bd3e.8d49eb","wires":[[]]},{"id":"ba53cb8c.fe79e8","type":"call","name":"call GENERIC-RESOURCE-API:vnf-topology-operation-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign' mode='sync' >\n","comments":"","outputs":1,"x":1068.5237426757812,"y":290.5090160369873,"z":"1840bd3e.8d49eb","wires":[[]]},{"id":"ce2e9f02.787cc","type":"call","name":"call GENERIC-RESOURCE-API:vnf-topology-operation-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":1079.8570098876953,"y":374.84236431121826,"z":"1840bd3e.8d49eb","wires":[[]]},{"id":"5a3b1db4.d397ec","type":"call","name":"call GENERIC-RESOURCE-API:vnf-topology-operation-unassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-unassign' mode='sync' >\n","comments":"","outputs":1,"x":1075.523609161377,"y":420.84241008758545,"z":"1840bd3e.8d49eb","wires":[[]]},{"id":"d69f110.8e798f","type":"outcome","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":735.5236511230469,"y":375.5090398788452,"z":"1840bd3e.8d49eb","wires":[["ce2e9f02.787cc"]]},{"id":"bbbde572.cfa078","type":"call","name":"call GENERIC-RESOURCE-API:vnf-topology-operation-activate","xml":"<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-activate' mode='sync' >\n","comments":"","outputs":1,"x":1072.6665878295898,"y":332.41364765167236,"z":"1840bd3e.8d49eb","wires":[[]]},{"id":"29c69e98.d7512a","type":"outcome","name":"activate","xml":"<outcome value='activate'>\n","comments":"","outputs":1,"x":729.3332290649414,"y":333.0803232192993,"z":"1840bd3e.8d49eb","wires":[["bbbde572.cfa078"]]}]
Testing Service-Topology-Operation with SLI-API
Copy the following json body and use in the apidoc/explorer interface on the SDNC
http://10.0.7.1:8282/apidoc/explorer/index.html#!/SLI-API(2016-11-10)/
Paste the string into the input box for the SLI-API:execute-graph
{
"input": {
"mode": "sync",
"module-name": "GENERIC-RESOURCE-API",
"rpc-name": "service-topology-operation",
"sli-parameter": [
{
"parameter-name": "service-data.request-information.order-version",
"string-value": "1.0"
},
{
"parameter-name": "service-topology-operation-input.service-request-input.service-input-parameters.param[1].key.name",
"string-value": "Some name1"
},
{
"parameter-name": "service-topology-operation-input.service-request-input.service-instance-name",
"string-value": "0003"
},
{
"parameter-name": "service-topology-operation-input.request-information.order-number",
"string-value": "0001"
},
{
"parameter-name": "service-data.service-information.global-customer-id",
"string-value": "0001"
},
{
"parameter-name": "service-data.sdnc-request-header.svc-request-id",
"string-value": "10001"
},
{
"parameter-name": "service-topology-operation-input.request-information.request-id",
"string-value": "10001"
},
{
"parameter-name": "service-data.service-information.ecomp-model-information.model-uuid",
"string-value": "0000-0000-0000000"
},
{
"parameter-name":1.0"
},
{
"parameter-name": "service-data.request-information.order-number",
"string-value": "10001"
},
{
"parameter-name": "service-topology-operation-input.request-information.request-action",
"string-value": "CreateServiceInstance"
},
{
"parameter-name": "service-topology-operation-input.sdnc-request-header.svc-notification-url",
"string-value": "Some svc-notification-url"
},
{
"parameter-name": "service-data.service-request-input.service-input-parameters.param_length",
"string-value": "1"
},
{
"parameter-name": "service-topology-operation-input.request-information.order-version",
"string-value": "1.0"
},
{
"parameter-name": "service-topology-operation-input.service-information.ecomp-model-information.model-invariant-uuid",
"string-value": "S000-000-00000"
},
{
"parameter-name": "service-topology-operation-input.service-information.ecomp-model-information.model-customization-uuid",
"string-value": "S000-000-00000"
},
{
"parameter-name": "service-topology-operation-input.service-information.ecomp-model-information.model-name",
"string-value": "Some model-name"
},
{
"parameter-name": "service-topology-operation-input.service-request-input.service-input-parameters.param_length",
"string-value": "2"
},
{
"parameter-name": "service-topology-operation-input.service-information.global-customer-id",
"string-value": "10001"
},
{
"parameter-name": "service-topology-operation-input.service-request-input.service-input-parameters.param[0].key.name",
"string-value": "Some name"
},
{
"parameter-name": "service-topology-operation-input.sdnc-request-header.svc-action",
"string-value": "assign"
},
{
"parameter-name": "service-topology-operation-input.request-information.source",
"string-value": "so"
},
{
"parameter-name": "service-data.service-request-input.service-instance-name",
"string-value": "Some service-instance-name"
},
{
"parameter-name": "service-topology-operation-input.service-request-input.service-input-parameters.param[0].value",
"string-value": "Some value"
},
{
"parameter-name": "service-data.sdnc-request-header.svc-action",
"string-value": "Reserve"
},
{
"parameter-name": "service-data.request-information.notification-url",
"string-value": "Some notification-url"
},
{
"parameter-name": "service-topology-operation-input.service-information.subscription-service-type",
"string-value": "Some subscription-service-type"
},
{
"parameter-name": "service-topology-operation-input.service-information.ecomp-model-information.model-version",
"string-value": "Some model-version"
},
{
"parameter-name": "service-topology-operation-input.service-information.ecomp-model-information.model-uuid",
"string-value": "Some model-uuid"
},
{
"parameter-name": "service-data.service-request-input.service-input-parameters.param[0].value",
"string-value": "Some value"
},
{
"parameter-name": "service-data.service-information.service-instance-id",
"string-value": "10001"
},
{
"parameter-name": "service-data.request-information.source",
"string-value": "so"
},
{
"parameter-name": "service-topology-operation-input.service-information.subscriber-name",
"string-value": "Some subscriber-name1"
},
{
"parameter-name": "service-data.service-information.ecomp-model-information.model-name",
"string-value": "Some model-name"
},
{
"parameter-name": "service-topology-operation-input.service-request-input.service-input-parameters.param[1].key"
},
{
"parameter-name": "service-topology-operation-input.service-request-input.service-input-parameters.param[0].name",
"string-value": "Some name"
},
{
"parameter-name": "service-data.service-request-input.service-input-parameters.param[0].key"
},
{
"parameter-name": "service-data.service-request-input.service-input-parameters.param[0].name",
"string-value": "Some name"
},
{
"parameter-name": "service-data.request-information.request-action",
"string-value": "CreateNetworkInstance"
},
{
"parameter-name": "service-data.sdnc-request-header.svc-notification-url",
"string-value": "Some svc-notification-url"
},
{
"parameter-name": "service-topology-operation-input.sdnc-request-header.svc-request-id",
"string-value": "Some svc-request-id"
},
{
"parameter-name": "service-data.service-information.service-id",
"string-value": "Some service-id"
},
{
"parameter-name": "service-topology-operation-input.service-request-input.service-input-parameters.param[1].name",
"string-value": "Some name1"
},
{
"parameter-name": "service-data.service-information.subscription-service-type",
"string-value": "Some subscription-service-type"
},
{
"parameter-name": "service-data.request-information.request-id",
"string-value": "Some request-id"
},
{
"parameter-name": "service-topology-operation-input.service-request-input.service-input-parameters.param[0].key"
},
{
"parameter-name": "service-topology-operation-input.service-information.service-id",
"string-value": "Some service-id"
},
{
"parameter-name": "service-data.service-information.subscriber-name",
"string-value": "Some subscriber-name"
},
{
"parameter-name": "service-topology-operation-input.service-request-input.service-input-parameters.param[1].value",
"string-value": "Some value1"
},
{
"parameter-name": "service-topology-operation-input.request-information.notification-url",
"string-value": "Some notification-url"
},
{
"parameter-name": "currentGraph"
},
{
"parameter-name": "service-data.service-request-input.service-input-parameters.param[0].key.name",
"string-value": "Some name"
},
{
"parameter-name": "service-data.service-information.ecomp-model-information.model-invariant-uuid",
"string-value": "Some model-invariant-uuid"
},
{
"parameter-name": "service-topology-operation-input.service-information.service-instance-id",
"string-value": "Some service-instance-id"
},
{
"parameter-name": "service-data.service-information.ecomp-model-information.model-customization-uuid",
"string-value": "Some model-customization-uuid"
}
]
}
}
- No labels