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. You can use them for testing if your instance doesn't have them loaded yet. Simply SAVE , Upload xml and Activate the DG. You will need the main DG, the validate-service-input and the service-toplogy-operation-assign DG to test the sunny day thread through the API.

[{"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":"b4fc2dd5.6b6bf","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":214,"y":475.50000422341486,"z":"ebb27e2e.2e9568","wires":[["a6bc9deb.538c4","bdfe69fe.c6c47","e88114d7.4c9498","f20c42b1.167ee8"]]},{"id":"a6bc9deb.538c4","type":"switchNode","name":"switch svc-request-id","xml":"<switch test='`$service-topology-operation-input.sdnc-request-header.svc-request-id`'>\n","comments":"","outputs":1,"x":501.04764011928,"y":381.4374895095825,"z":"ebb27e2e.2e9568","wires":[["98ae5dd0.c3c708"]]},{"id":"98ae5dd0.c3c708","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":726.7619345528738,"y":381.4374933242798,"z":"ebb27e2e.2e9568","wires":[["bdd5f431.d19f48"]]},{"id":"bdd5f431.d19f48","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=\"sdnc-request-header.svc-request-id is a required input\" />\n","comments":"","x":878.1905005318777,"y":381.43749141693115,"z":"ebb27e2e.2e9568","wires":[]},{"id":"bdfe69fe.c6c47","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":489.61900329589844,"y":340.00892107827326,"z":"ebb27e2e.2e9568","wires":[["eaa51b42.63f578"]]},{"id":"eaa51b42.63f578","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":725.3333549499512,"y":338.58031885964533,"z":"ebb27e2e.2e9568","wires":[["2dd86cfd.f7c07c"]]},{"id":"2dd86cfd.f7c07c","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=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":875.3333282470703,"y":338.5803283963885,"z":"ebb27e2e.2e9568","wires":[]},{"id":"e88114d7.4c9498","type":"switchNode","name":"switch request-action","xml":"<switch test='`$service-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":499.61905670166016,"y":424.2946361814227,"z":"ebb27e2e.2e9568","wires":[["3da7f637.ad5072"]]},{"id":"3da7f637.ad5072","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":726.76193019322,"y":424.29464708055775,"z":"ebb27e2e.2e9568","wires":[["70411b09.9fd59c"]]},{"id":"70411b09.9fd59c","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=\"request-information.request-action is a required input\" />\n","comments":"","x":878.1904961722239,"y":424.2946451732091,"z":"ebb27e2e.2e9568","wires":[]},{"id":"37b4a24b.f5ad46","type":"switchNode","name":"switch subscription-service-type","xml":"<switch test='`$service-topology-operation-input.service-information.subscription-service-type`'>\n","comments":"","outputs":1,"x":1051.940594264439,"y":546.4375510896955,"z":"ebb27e2e.2e9568","wires":[["464dac2c.66c35c"]]},{"id":"464dac2c.66c35c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1247.6548886980327,"y":546.4375482286725,"z":"ebb27e2e.2e9568","wires":[["f0b78eed.c3e4a8"]]},{"id":"f0b78eed.c3e4a8","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-information.subscription-service-type is a required input\" />\n","comments":"","x":1399.0834394182475,"y":546.4375377382551,"z":"ebb27e2e.2e9568","wires":[]},{"id":"b84f8eb8.a730e8","type":"switchNode","name":"switch global-customer-id","xml":"<switch test='`$service-topology-operation-input.service-information.global-customer-id`'>\n","comments":"","outputs":1,"x":1031.9406476702006,"y":587.8661514009748,"z":"ebb27e2e.2e9568","wires":[["34f0a34a.417b5c"]]},{"id":"34f0a34a.417b5c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1247.6548963274272,"y":587.8661533083234,"z":"ebb27e2e.2e9568","wires":[["d7d58094.6c4408"]]},{"id":"d7d58094.6c4408","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-information.global-customer-id is a required input\" />\n","comments":"","x":1399.083462306431,"y":587.8661514009748,"z":"ebb27e2e.2e9568","wires":[]},{"id":"aa67a0b.540e8e","type":"switchNode","name":"switch model-invariant-uuid","xml":"<switch test='`$service-topology-operation-input.service-information.ecomp-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":1037.654865809849,"y":629.2947231020246,"z":"ebb27e2e.2e9568","wires":[["dc95a39f.21d758"]]},{"id":"dc95a39f.21d758","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1247.6548734392436,"y":629.2947498049055,"z":"ebb27e2e.2e9568","wires":[["edf15c8.258802"]]},{"id":"edf15c8.258802","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-information.ecomp-model-information.model-invariant-uuid is a required input\" />\n","comments":"","x":1399.0834394182475,"y":629.2947478975568,"z":"ebb27e2e.2e9568","wires":[]},{"id":"4546dafe.824704","type":"switchNode","name":"switch model-uuid","xml":"<switch test='`$service-topology-operation-input.service-information.ecomp-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":1007.654964991978,"y":670.7233367647443,"z":"ebb27e2e.2e9568","wires":[["d4dc57e8.0a1be8"]]},{"id":"d4dc57e8.0a1be8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1247.654964991978,"y":670.7233195986066,"z":"ebb27e2e.2e9568","wires":[["1b274014.f978a8"]]},{"id":"1b274014.f978a8","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-information.ecomp-model-information.model-uuid is a required input\" />\n","comments":"","x":1399.0835309709819,"y":670.723317691258,"z":"ebb27e2e.2e9568","wires":[]},{"id":"3b0664b7.e26dc4","type":"switchNode","name":"switch model-name","xml":"<switch test='`$service-topology-operation-input.service-information.ecomp-model-information.model-name`'>\n","comments":"","outputs":1,"x":1010.5120435442241,"y":712.1518474306379,"z":"ebb27e2e.2e9568","wires":[["2b9746c8.9323b2"]]},{"id":"2b9746c8.9323b2","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1246.2263608660014,"y":712.1518817629133,"z":"ebb27e2e.2e9568","wires":[["ab7f9811.9eb678"]]},{"id":"ab7f9811.9eb678","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-information.ecomp-model-information.model-name is a required input\" />\n","comments":"","x":1397.6549268450053,"y":712.1518798555646,"z":"ebb27e2e.2e9568","wires":[]},{"id":"65141aaf.742774","type":"comment","name":"Validation of required fields","info":"","comments":"","x":649.6190131051198,"y":295.7232036590576,"z":"ebb27e2e.2e9568","wires":[]},{"id":"f20c42b1.167ee8","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":484.85707310267844,"y":628.6994934082031,"z":"ebb27e2e.2e9568","wires":[["f4c1d91b.1279c"]]},{"id":"f4c1d91b.1279c","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":647.3570731026784,"y":628.6994934082031,"z":"ebb27e2e.2e9568","wires":[["5e4680a3.739a8"]]},{"id":"5e4680a3.739a8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":802.3570731026784,"y":628.6994934082031,"z":"ebb27e2e.2e9568","wires":[["37b4a24b.f5ad46","b84f8eb8.a730e8","aa67a0b.540e8e","4546dafe.824704","3b0664b7.e26dc4","a3644471.cb6f2"]]},{"id":"19d551f4.a5b54e","type":"dgstart","name":"DGSTART","outputs":1,"x":157.7500098092214,"y":145.4136562347412,"z":"ebb27e2e.2e9568","wires":[["ae1dd75d.ec6f6"]]},{"id":"ae1dd75d.ec6f6","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":233.03571537562766,"y":185.6517677307129,"z":"ebb27e2e.2e9568","wires":[["97704d54.309ea"]]},{"id":"97704d54.309ea","type":"method","name":"method validate-service-input","xml":"<method rpc='validate-service-input' mode='sync'>\n","comments":"","outputs":1,"x":222.42863682338157,"y":226.66365242004395,"z":"ebb27e2e.2e9568","wires":[["b4fc2dd5.6b6bf"]]},{"id":"58515ef1.d0a0d","type":"comment","name":"validate-service-input","info":"","comments":"","x":552.0948660714284,"y":93,"z":"ebb27e2e.2e9568","wires":[]},{"id":"a3644471.cb6f2","type":"switchNode","name":"switch service-id","xml":"<switch test='`$service-topology-operation-input.service-information.service-id`'>\n","comments":"","outputs":1,"x":1003.6428473336355,"y":505.928599357605,"z":"ebb27e2e.2e9568","wires":[["e428bc22.cdee3"]]},{"id":"e428bc22.cdee3","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1244.0714285714284,"y":505.9285955429077,"z":"ebb27e2e.2e9568","wires":[["981c2b36.9827b"]]},{"id":"981c2b36.9827b","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-information.service-id is a required input\" />\n","comments":"","x":1395.4999945504323,"y":505.9285936355591,"z":"ebb27e2e.2e9568","wires":[]}]

[{"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 the Directed Graphs

Testing Service-Topology-Operation with SLI-API

Use the SLI-API if your SDNC instance doesn't have the GENERIC-RESOURCE-API karaf feature bundle loaded (it will be on apidoc/explorer if it is loaded). Pre-Amsterdam release versions of ONAP SDNC don't have the GENERIC-RESOURCE-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"
}
]
}
}


Testing with the GENERIC-RESOURCE-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#!/GENERIC-RESOURCE-API/


Paste the string into the input box for the GENERIC-RESOURCE-API:service-topology-operation


PASTE IN service-topology-operation assign



3 Comments

  1. I don't find "generic-resource-api.yang" in the ONAP code base. Is there a plan and time line to push this model into ONAP code base? 

  2. Arun Sarat Yerra - It appears to be forthcoming in these JIRA Tasks  SDNC-57 - Getting issue details... STATUS   SDNC-50 - Getting issue details... STATUS

  3. Marcus Williams  

     i have tried below steps to execute the rest api but it fails with error The module named 'SLI-API' does not exist

    .

    1. Imported the generic-resource-api.yang (GUILIN release) and loaded it
    2. activated all the dggraphs ( GENERIC-RESOURCE-API: service-topology-operation , GENERIC-RESOURCE-API: validate-service-input , GENERCI-RESOURCE-API: service-topology-assign )
    3. I have modified the sdnc-oam service to NodePort Service (exposed at 32418)
    4. Now i am using postman to execute the graph
      curl --location --request POST 'http://172.20.150.172:32418/restconf/operations/SLI-API:execute-graph' \
      --header 'Content-Type: */*' \
      --header 'Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==' \
      --header 'Cookie: JSESSIONID=node03kcgb9rnnfe21sayojz81h9cg112.node0' \
      --data-raw '{
      "input": {------}           --------→( Clipped this for clearity it is according to  service-topology-operation:sli-api-input  )
      }'
    5. I am getting the below error.
      {
      "errors": {
      "error": [
      {
      "error-type": "protocol",
      "error-tag": "unknown-element",
      "error-message": "The module named 'SLI-API' does not exist."
      }
      ]
      }
      }
    6. Is there a way to activate the SLI-API module ?