Initial Tutorial on SDNC to APPC NetConf Mount 47/3547/1
authorBrian Freeman <bf1936@att.com>
Wed, 19 Apr 2017 16:05:07 +0000 (11:05 -0500)
committerBrian Freeman <bf1936@att.com>
Wed, 19 Apr 2017 17:41:37 +0000 (12:41 -0500)
Change-Id: I0d5b4fc3fef63aea465013d051667f4380429b26
Signed-off-by: Brian Freeman <bf1936@att.com>
tutorials/CreateAppcNetconfMount/README.txt [new file with mode: 0644]
tutorials/CreateAppcNetconfMount/VNF-API_vnf-topology-activate.json [new file with mode: 0644]
tutorials/CreateAppcNetconfMount/VNF-API_vnf-topology-delete.json [new file with mode: 0644]
tutorials/CreateAppcNetconfMount/netconf-mount-template.xml [new file with mode: 0644]
tutorials/CreateAppcNetconfMount/slitester.vnf-topology-activate.json [new file with mode: 0644]

diff --git a/tutorials/CreateAppcNetconfMount/README.txt b/tutorials/CreateAppcNetconfMount/README.txt
new file mode 100644 (file)
index 0000000..75a8ee2
--- /dev/null
@@ -0,0 +1,18 @@
+Tutorial for SDNC
+
+Demonstrates creating the Netconf mount in APPC for the vFW traffic generator from SDNC while processing the VNF_TOPOLOGY_ACTIVE directed graph.
+
+The vFW demo use case in ONAP requires APPC to have a Netconf Mount to the traffic generator. That mount is created by a step in the robot framework but is actually an interesting way to demonstrate capabilities in SDNC  since the data needed to create the netconf mount point all exists in SDNC. This also demonstrates the type of changes that can be done outside of an SDNC release with just Directed Graph changes.
+This tutorial starts with a running ONAP platform configuration and would enhance the existing vFW use case. Instructions and background on the ONAP installation, use case, and interaction are at https://wiki.onap.org/display/DW/Installing+and+Running+the+ONAP+Demos. 
+
+
+Directed Graphs for the Tutorial:
+       VNF-API_vnf-topology-activate.json
+       VNF-API_vnf-topology-delete.json
+
+RestAPICallNode Template:
+       netconf-mount-template.xml
+
+SLIAPI:ExecuteGraph input payload for testing:
+       slitester.vnf-topology-activate.json
+
diff --git a/tutorials/CreateAppcNetconfMount/VNF-API_vnf-topology-activate.json b/tutorials/CreateAppcNetconfMount/VNF-API_vnf-topology-activate.json
new file mode 100644 (file)
index 0000000..7b5ed1c
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"9b515625.d22748","type":"dgstart","name":"DGSTART","outputs":1,"x":93.33332824707031,"y":36.33332824707031,"z":"669f9d98.2ac9f4","wires":[["80315e6e.63505"]]},{"id":"80315e6e.63505","type":"service-logic","name":"VNF-API 1.0.0-DEMO","module":"VNF-API","version":"1.0.0-DEMO","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='VNF-API' version='1.0.0-DEMO'>","outputs":1,"x":258.49998474121094,"y":36.5,"z":"669f9d98.2ac9f4","wires":[["3c8cef4d.49542"]]},{"id":"3c8cef4d.49542","type":"method","name":"method vnf-topology-activate","xml":"<method rpc='vnf-topology-activate' mode='sync'>\n","comments":"","outputs":1,"x":166.50001525878906,"y":83.49999237060547,"z":"669f9d98.2ac9f4","wires":[["6cd2edde.1d6bd4"]]},{"id":"6cd2edde.1d6bd4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":123.83332824707031,"y":139.3333282470703,"z":"669f9d98.2ac9f4","wires":[["ab8c4330.26d2b","df0bd34b.bf0cf","d8650a48.f0bcd8","6e2d653a.a05bec","9bb6aa32.18f568","d92f94a6.8f1a28","b846b4fc.934e88","c3be1550.0013d8","40746641.fe81b8"]]},{"id":"ab8c4330.26d2b","type":"set","name":"set: order-status = Active","xml":"<set>\n\t<parameter name=\"service-data.oper-status.order-status\" value=\"Active\"/>","comments":"","x":376.83333587646484,"y":371.83331298828125,"z":"669f9d98.2ac9f4","wires":[]},{"id":"df0bd34b.bf0cf","type":"switchNode","name":"switch: order-status = PendingCreate","xml":"<switch test=\"`$service-data.oper-status.order-status == PendingCreate`\">\n\n<!--\nleaf order-status {\n\ttype enumeration {\n\t\tenum \"Active\";\n\t\tenum \"PendingAssignment\";\n\t\tenum \"PendingCreate\";\n\t\tenum \"PendingUpdate\";\n\t\tenum \"Deleted\";\n\t}\n}\n-->","comments":"","outputs":1,"x":416.16670989990234,"y":268.1665344238281,"z":"669f9d98.2ac9f4","wires":[["22236f98.35747"]]},{"id":"d8650a48.f0bcd8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"200\" />","comments":"","x":333.9444580078125,"y":1233.5,"z":"669f9d98.2ac9f4","wires":[]},{"id":"6e2d653a.a05bec","type":"set","name":"set: last-order-status = order-status","xml":"<set>\n\t<parameter name=\"service-data.oper-status.last-order-status\" value=\"`$service-data.oper-status.order-status`\"/>","comments":"","x":409.94701385498047,"y":320.447021484375,"z":"669f9d98.2ac9f4","wires":[]},{"id":"9bb6aa32.18f568","type":"switchNode","name":"switch:vnf-id   config == input","xml":"<switch test=\"`$vnf-topology-operation-input.vnf-request-information.vnf-id == $service-data.vnf-id`\">","comments":"","outputs":1,"x":388.60607147216797,"y":216.37876892089844,"z":"669f9d98.2ac9f4","wires":[["4c7aba25.1c7f44"]]},{"id":"d92f94a6.8f1a28","type":"set","name":"set: service-data = input","xml":"<set>\n\t<parameter name=\"service-data.\" value=\"vnf-topology-operation-input.\" />","comments":"","x":361.8333435058594,"y":1147.888916015625,"z":"669f9d98.2ac9f4","wires":[]},{"id":"b846b4fc.934e88","type":"set","name":"set: last-action ","xml":"<set>\n\t<parameter name=\"service-data.oper-status.last-action\" value=\"`$service-data.request-information.request-action`\"/>","comments":"","x":343.83333587646484,"y":418.8888854980469,"z":"669f9d98.2ac9f4","wires":[]},{"id":"40746641.fe81b8","type":"save","name":"update AnAI - vf-module.orchestration-status","xml":"<update plugin=\"org.openecomp.sdnc.sli.aai.AAIService\" \n\tresource=\"vf-module\" \n\t\tkey=\"vf-module.vf-module-id = $vnf-topology-operation-input.vnf-request-information.vnf-id \n\t\t\tAND generic-vnf.vnf-id = $vnf-topology-operation-input.vnf-request-information.generic-vnf-id\" \n\t\tlocal-only=\"false\" >\n\t<parameter name=\"orchestration-status\" value=\"active\" />","comments":"","outputs":1,"x":437.7221984863281,"y":461.8888816833496,"z":"669f9d98.2ac9f4","wires":[["738bd5ac.1e39cc"]]},{"id":"5a15cf5c.1fe94","type":"record","name":"record","xml":"<record plugin=\"org.openecomp.sdnc.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/sdnc_appc_netconf.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"`$vnf-topology-operation-input.sdnc-request-header.svc-action`\"/>\n<parameter name=\"field3\" value=\"`$vnf-topology-operation-input.vnf-request-information.vnf-name`\"/>\n<parameter name=\"field4\" value=\"`$vnf-topology-operation-input.vnf-request-information.vnf-type`\"/>\n<parameter name=\"field5\" value=\"`$vnf-topology-operation-input.vnf-request-information.vnf-id`\"/>\n<parameter name=\"field6\" value=\"`$vnf-topology-operation-input.vnf-request-information.generic-vnf-name`\"/>\n<parameter name=\"field7\" value=\"`$vnf-topology-operation-input.vnf-request-information.generic-vnf-type`\"/>\n<parameter name=\"field8\" value=\"`$vnf-topology-operation-input.vnf-request-information.generic-vnf-id`\"/>\n<parameter name=\"field9\" value=\"`$preload-data.vnf-topology-information.vnf-topology-identifier.vnf-name`\"/>\n<parameter name=\"field10\" value=\"`$preload-data.vnf-topology-information.vnf-topology-identifier.vnf-type`\"/>\n","comments":"","outputs":1,"x":938.72216796875,"y":776.3888549804688,"z":"669f9d98.2ac9f4","wires":[[]]},{"id":"c3be1550.0013d8","type":"switchNode","name":"switch vnf type ","xml":"<switch test='`substr($preload-data.vnf-topology-information.vnf-topology-identifier.vnf-type,22,30)`'>\n<!-- Aa27262bF2d040799b5c..base_vfw..module-0 -->","comments":"","outputs":1,"x":338.522216796875,"y":667.9055213928223,"z":"669f9d98.2ac9f4","wires":[["798dbf61.8ef5c"]]},{"id":"22236f98.35747","type":"other","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":665.5000610351562,"y":268.4998435974121,"z":"669f9d98.2ac9f4","wires":[["b819ee7c.13f39"]]},{"id":"4c7aba25.1c7f44","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":608.060546875,"y":216.56058883666992,"z":"669f9d98.2ac9f4","wires":[["6309638d.9a29fc"]]},{"id":"738bd5ac.1e39cc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":702.2460556030273,"y":461.877384185791,"z":"669f9d98.2ac9f4","wires":[["91b545b4.961ef8"]]},{"id":"798dbf61.8ef5c","type":"outcome","name":"outcome base_vfw","xml":"<outcome value='base_vfw'>\n","comments":"","outputs":1,"x":564.5221862792969,"y":697.9055213928223,"z":"669f9d98.2ac9f4","wires":[["9aacbf5a.ed983"]]},{"id":"b819ee7c.13f39","type":"switchNode","name":"switch: order-status = PendingUpdate","xml":"<switch test=\"`$service-data.oper-status.order-status == PendingUpdate`\">\n\n<!--\nleaf order-status {\n\ttype enumeration {\n\t\tenum \"Active\";\n\t\tenum \"PendingAssignment\";\n\t\tenum \"PendingCreate\";\n\t\tenum \"PendingUpdate\";\n\t\tenum \"Deleted\";\n\t}\n}\n-->","comments":"","outputs":1,"x":916.4242553710938,"y":267.9242515563965,"z":"669f9d98.2ac9f4","wires":[["de1e0e32.44154"]]},{"id":"6309638d.9a29fc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='400'/>\n\t<parameter name='error-message' value=\"`'vnf-id = ' + $vnf-topology-operation-input.vnf-request-information.vnf-id + ' not found in config tree'`\"/>","comments":"","x":786.1514892578125,"y":216.4696922302246,"z":"669f9d98.2ac9f4","wires":[]},{"id":"91b545b4.961ef8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Encountered error while updating vf-module orchestration-status in AnAI with vnf-id = ' + $vnf-topology-operation-input.vnf-request-information.vnf-id + ' and generic-vnf-id = ' + $vnf-topology-operation-input.vnf-request-information.generic-vnf-id`\"/>","comments":"","x":870.3889846801758,"y":461.87745475769043,"z":"669f9d98.2ac9f4","wires":[]},{"id":"9aacbf5a.ed983","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":778.5221862792969,"y":737.9055213928223,"z":"669f9d98.2ac9f4","wires":[["f6b5a926.ce9888","2c6e5e35.0760b2","c3f63154.8e521","5a15cf5c.1fe94"]]},{"id":"de1e0e32.44154","type":"other","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":1158.878662109375,"y":267.92422103881836,"z":"669f9d98.2ac9f4","wires":[["5f574a63.b3a724"]]},{"id":"f6b5a926.ce9888","type":"execute","name":"excute REST NETCONF MOUNT ","xml":"<execute plugin='org.openecomp.sdnc.restapicall.RestapiCallNode' method='sendRequest' >\n\t<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/netconf-mount-template.xml'`\"/>\n\t<parameter name=\"restapiUrl\" value=\"`$prop.appcRestApi.url+'/restconf/config/network-topology:network-topology/topology/topology-netconf/node/'+$prop.vpg_hostname`\"/>\n\t<parameter name=\"restapiUser\" value=\"`$prop.appcRestApi.sdncOdl.user`\"/>\n\t<parameter name=\"restapiPassword\" value=\"`$prop.appcRestApi.sdncOdl.password`\"/>\n\t<parameter name=\"format\" value=\"xml\" />\n\t<parameter name=\"httpMethod\" value=\"put\" />\n\t<parameter name=\"responsePrefix\" value=\"restapi-result\" />\n\t\n\t","comments":"","outputs":1,"x":1026.5221099853516,"y":1073.9054565429688,"z":"669f9d98.2ac9f4","wires":[[]]},{"id":"2dff6fee.5d34e","type":"set","name":"set localhost data","xml":"<set>\n<parameter name='prop.appcRestApi.url' value='http://localhost:8181' />\n<!-- 8181 when doing localhost -->\n<parameter name=\"prop.restapi.templateDir\" value=\"/opt/openecomp/sdnc/data\"/>\n<parameter name=\"prop.appcRestApi.sdncOdl.user\" value=\"admin\"/>\n<parameter name=\"prop.appcRestApi.sdncOdl.password\" value=\"Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U\"/>\n","comments":"","x":1331.5221557617188,"y":746.905517578125,"z":"669f9d98.2ac9f4","wires":[]},{"id":"5f574a63.b3a724","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='400'/>\n\t<parameter name='error-message' value='Invalid last-order-status'/>","comments":"","x":1323.8331832885742,"y":267.4998950958252,"z":"669f9d98.2ac9f4","wires":[]},{"id":"e27e181e.227c48","type":"comment","name":"VNF-TOPOLOGY-ACTIVATE","info":"","comments":"","x":665.7221984863281,"y":35.88888168334961,"z":"669f9d98.2ac9f4","wires":[]},{"id":"2aacf238.e9652e","type":"comment","name":"once success is returned, operational-data gets saved","info":"","comments":"","x":669.3510437011719,"y":1228.434326171875,"z":"669f9d98.2ac9f4","wires":[]},{"id":"75691490.243aac","type":"comment","name":"request-action = VNFActivateRequest, svc-action = activate","info":"","comments":"","x":672.4444122314453,"y":75.66666221618652,"z":"669f9d98.2ac9f4","wires":[]},{"id":"bcfdeb55.ac2538","type":"set","name":"Set final indicator to Y","xml":"<set>\n<parameter name=\"ack-final\" value=\"Y\"/>","comments":"","x":356.15079498291016,"y":1191.6031608581543,"z":"669f9d98.2ac9f4","wires":[]},{"id":"2c6e5e35.0760b2","type":"set","name":"set appc data","xml":"<set>\n<parameter name='prop.appcRestApi.url' value='http://appc.api.simpledemo.openecomp.org:8282' />\n<!-- 8181 when doing localhost -->\n<parameter name=\"prop.restapi.templateDir\" value=\"/opt/openecomp/sdnc/data\"/>\n<parameter name=\"prop.appcRestApi.sdncOdl.user\" value=\"admin\"/>\n<parameter name=\"prop.appcRestApi.sdncOdl.password\" value=\"Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U\"/>\n","comments":"","x":967.5221862792969,"y":1019.9054832458496,"z":"669f9d98.2ac9f4","wires":[]},{"id":"873d2429.978de8","type":"comment","name":"Get Hostname and IP address","info":"","comments":"","x":1005.2166748046875,"y":821.9387817382812,"z":"669f9d98.2ac9f4","wires":[]},{"id":"c3f63154.8e521","type":"for","name":"for vnf-parameters","xml":"<for index='k' start='0' end=\"`$preload-data.vnf-topology-information.vnf-parameters_length`\" >\n","comments":"","outputs":1,"x":975.2166442871094,"y":866.9388999938965,"z":"669f9d98.2ac9f4","wires":[["7112332f.7cf7ac"]]},{"id":"1c75c042.26d5d","type":"switchNode","name":"switch vpg_name_0","xml":"<switch test=\"`$preload-data.vnf-topology-information.vnf-parameters[$k].vnf-parameter-name == 'vpg_name_0'`\">\n","comments":"","outputs":1,"x":1338.2167663574219,"y":972.9389305114746,"z":"669f9d98.2ac9f4","wires":[["f162e338.32bba"]]},{"id":"f162e338.32bba","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1525.2167663574219,"y":972.9389305114746,"z":"669f9d98.2ac9f4","wires":[["fb2d23d2.1064d"]]},{"id":"fb2d23d2.1064d","type":"set","name":"set vpg_ hostname ","xml":"<set>\n<parameter name='prop.vpg_hostname' value='`$preload-data.vnf-topology-information.vnf-parameters[$k].vnf-parameter-value`' />\n","comments":"","x":1693.2167663574219,"y":973.5389366149902,"z":"669f9d98.2ac9f4","wires":[]},{"id":"7112332f.7cf7ac","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1148.2167663574219,"y":910.9388999938965,"z":"669f9d98.2ac9f4","wires":[["1c75c042.26d5d","9dc9c622.a5ca58"]]},{"id":"9dc9c622.a5ca58","type":"switchNode","name":"switch vpg_private_ip_1","xml":"<switch test=\"`$preload-data.vnf-topology-information.vnf-parameters[$k].vnf-parameter-name == 'vpg_private_ip_1'`\">\n","comments":"","outputs":1,"x":1342.2167053222656,"y":1034.538906097412,"z":"669f9d98.2ac9f4","wires":[["43a36baf.403124"]]},{"id":"43a36baf.403124","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1527.2167053222656,"y":1032.538906097412,"z":"669f9d98.2ac9f4","wires":[["b4b98be7.2c0088"]]},{"id":"b4b98be7.2c0088","type":"set","name":"set vpg_ipaddress","xml":"<set>\n<parameter name='prop.vpg_ipaddress' value='`$preload-data.vnf-topology-information.vnf-parameters[$k].vnf-parameter-value`' />\n","comments":"","x":1696.2167053222656,"y":1030.538906097412,"z":"669f9d98.2ac9f4","wires":[]},{"id":"54b07b39.58cfd4","type":"comment","name":"unlinked AnAI update for slitesting","info":"","comments":"","x":399.1666564941406,"y":509.8888816833496,"z":"669f9d98.2ac9f4","wires":[]}]
\ No newline at end of file
diff --git a/tutorials/CreateAppcNetconfMount/VNF-API_vnf-topology-delete.json b/tutorials/CreateAppcNetconfMount/VNF-API_vnf-topology-delete.json
new file mode 100644 (file)
index 0000000..f3d133e
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"595effb3.4be3e","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"200\" />","comments":"","x":412.25,"y":1399.2500133514404,"z":"15418301.fff86d","wires":[]},{"id":"60b23844.7c8178","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":162.99996185302734,"y":172,"z":"15418301.fff86d","wires":[["13383666.4d6eda","595effb3.4be3e","97bd4dfc.622ea","3e8f0960.85a326","19d0fbea.e2bed4","e4baed03.d5511","76887d6.f23f984","a957e353.7b783"]]},{"id":"13383666.4d6eda","type":"set","name":"set: order-status = Deleted","xml":"<set>\n\t<parameter name=\"service-data.oper-status.order-status\" value=\"Deleted\"/>","comments":"","x":453.25,"y":1226.2500133514404,"z":"15418301.fff86d","wires":[]},{"id":"18bfbdce.8e72c2","type":"method","name":"method vnf-topology-delete","xml":"<method rpc='vnf-topology-delete' mode='sync'>\n","comments":"","outputs":1,"x":194.6666488647461,"y":121.16666412353516,"z":"15418301.fff86d","wires":[["60b23844.7c8178"]]},{"id":"13fd8823.be8278","type":"service-logic","name":"VNF-API 1.0.0-DEMO","module":"VNF-API","version":"1.0.0-DEMO","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='VNF-API' version='1.0.0-DEMO'>","outputs":1,"x":264.66661834716797,"y":69.16667175292969,"z":"15418301.fff86d","wires":[["18bfbdce.8e72c2"]]},{"id":"b1e4565e.0c0fd8","type":"dgstart","name":"DGSTART","outputs":1,"x":101.49996185302734,"y":69,"z":"15418301.fff86d","wires":[["13fd8823.be8278"]]},{"id":"6f25ff2c.14f19","type":"other","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":1089.9242897033691,"y":253.46213626861572,"z":"15418301.fff86d","wires":[["814b3a84.e1a2e8"]]},{"id":"814b3a84.e1a2e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='400'/>\n\t<parameter name='error-message' value='Invalid order-status'/>","comments":"","x":1242.2574195861816,"y":253.46219730377197,"z":"15418301.fff86d","wires":[]},{"id":"19d0fbea.e2bed4","type":"set","name":"set: last-action ","xml":"<set>\n\t<parameter name=\"service-data.oper-status.last-action\" value=\"`$service-data.request-information.request-action`\"/>","comments":"","x":414.5075988769531,"y":1269.7956066131592,"z":"15418301.fff86d","wires":[]},{"id":"97bd4dfc.622ea","type":"switchNode","name":"switch:vnf-id   config == input","xml":"<switch test=\"`$vnf-topology-operation-input.vnf-request-information.vnf-id == $service-data.vnf-id`\">","comments":"","outputs":1,"x":432.14385986328125,"y":171.48754501342773,"z":"15418301.fff86d","wires":[["47a7c48e.5c7f3c"]]},{"id":"47a7c48e.5c7f3c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":633.5984191894531,"y":171.66937255859375,"z":"15418301.fff86d","wires":[["d69c35cb.81ce48"]]},{"id":"d69c35cb.81ce48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='400'/>\n\t<parameter name='error-message' value='vnf-id not found'/>","comments":"","x":797.189338684082,"y":171.8284730911255,"z":"15418301.fff86d","wires":[]},{"id":"3e8f0960.85a326","type":"set","name":"set: last-order-status = order-status","xml":"<set>\n\t<parameter name=\"service-data.oper-status.last-order-status\" value=\"`$service-data.oper-status.order-status`\"/>","comments":"","x":479.6439514160156,"y":1184.9875621795654,"z":"15418301.fff86d","wires":[]},{"id":"e4baed03.d5511","type":"set","name":"Clear vnf topology","xml":"<set>\n\t<parameter name=\"service-data.vnf-topology-information.\" value=\"\" /> \n","comments":"","x":423.6439514160156,"y":1309.9875621795654,"z":"15418301.fff86d","wires":[]},{"id":"3a240134.7a0d2e","type":"switchNode","name":"switch: order-status = Active","xml":"<switch test=\"`$service-data.oper-status.order-status == Active`\">","comments":"","outputs":1,"x":888.1071891784668,"y":253.76193714141846,"z":"15418301.fff86d","wires":[["6f25ff2c.14f19"]]},{"id":"a957e353.7b783","type":"set","name":"Set final indicator to Y","xml":"<set>\n<parameter name=\"ack-final\" value=\"Y\"/>","comments":"","x":434.96431732177734,"y":1355.190486907959,"z":"15418301.fff86d","wires":[]},{"id":"76887d6.f23f984","type":"switchNode","name":"switch: INPUT aic-cloud-region","xml":"<switch test=\"`$vnf-topology-operation-input.vnf-request-information.aic-cloud-region`\">","comments":"","outputs":1,"x":441.00001525878906,"y":254.0833387374878,"z":"15418301.fff86d","wires":[["b1ad7cbb.8bd5e","61687779.17c318"]]},{"id":"b1ad7cbb.8bd5e","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":672.7500114440918,"y":301.72619247436523,"z":"15418301.fff86d","wires":[["598ec56f.052bfc"]]},{"id":"598ec56f.052bfc","type":"switchNode","name":"switch: INPUT aic-clli","xml":"<switch test=\"`$vnf-topology-operation-input.vnf-request-information.aic-clli`\">","comments":"","outputs":1,"x":869.7500534057617,"y":301.83336067199707,"z":"15418301.fff86d","wires":[["e42ccbc9.72b2e8","76f5dae3.ecbec4"]]},{"id":"61687779.17c318","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":672.250072479248,"y":253.83335304260254,"z":"15418301.fff86d","wires":[["3a240134.7a0d2e"]]},{"id":"e42ccbc9.72b2e8","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1064.75,"y":302.5833339691162,"z":"15418301.fff86d","wires":[["ed5eb2d5.d3fec"]]},{"id":"ed5eb2d5.d3fec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='400'/>\n\t<parameter name='error-message' value='Either aic-cloud-region or aic-clli must be present'/>","comments":"","x":1237.25,"y":303.0833339691162,"z":"15418301.fff86d","wires":[]},{"id":"76f5dae3.ecbec4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1066,"y":345.0833339691162,"z":"15418301.fff86d","wires":[["3270e69c.b01c1a"]]},{"id":"efd3d8ce.305bb8","type":"save","name":"delete generic-vnf-l3-network","xml":"<delete plugin=\"org.openecomp.sdnc.sli.resource.sql.SqlResource\" \n\tresource=\"generic-vnf-l3-network\" \n\tkey=\"DELETE FROM GENERIC_VNF_L3_NETWORK WHERE vnf_id = $service-data.vnf-id\" \n\tforce=\"true\" >\n\n","comments":"","outputs":1,"x":1183.250015258789,"y":960.8333234786987,"z":"15418301.fff86d","wires":[["d2debfd0.9228e"]]},{"id":"81a6b5e3.b1c5c8","type":"save","name":"delete GammaResource: generic-vnf","xml":"<delete plugin=\"org.openecomp.sdnc.sli.resource.sql.SqlResource\" \n\tresource=\"generic-vnf\" \n\tkey=\"DELETE FROM GENERIC_VNF where vnf_id = $service-data.vnf-id\" \n\tlocal-only=\"true\" \n\tforce=\"true\" >\n\n","comments":"","outputs":1,"x":1206.9091796875,"y":1047.2045850753784,"z":"15418301.fff86d","wires":[["d2debfd0.9228e"]]},{"id":"fc48092d.d0a688","type":"save","name":"delete generic-vnf-vserver","xml":"<delete plugin=\"org.openecomp.sdnc.sli.resource.sql.SqlResource\" \n\tresource=\"generic-vnf-vserver\" \n\tkey=\"DELETE FROM GENERIC_VNF_VSERVER where vnf_id = $service-data.vnf-id\" \n\tforce=\"true\" >\n\n","comments":"","outputs":1,"x":1174.6591796875,"y":1002.2878675460815,"z":"15418301.fff86d","wires":[["d2debfd0.9228e"]]},{"id":"bd19a37e.1e6f","type":"switchNode","name":"switch: order-status = PendingDelete","xml":"<switch test=\"'$service-data.oper-status.order-status == PendingDelete'\">\n\n<!--\nleaf order-status {\n\ttype enumeration {\n\t\tenum \"Active\";\n\t\tenum \"PendingAssignment\";\n\t\tenum \"PendingCreate\";\n\t\tenum \"PendingUpdate\";\n\t\tenum \"Deleted\";\n\t}\n}\n-->","comments":"","outputs":1,"x":1211.750015258789,"y":425.83334159851074,"z":"15418301.fff86d","wires":[["75cce353.79957c"]]},{"id":"75cce353.79957c","type":"other","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":1441.0833892822266,"y":426.166654586792,"z":"15418301.fff86d","wires":[["52ef3c8d.244ee4"]]},{"id":"52ef3c8d.244ee4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='400'/>\n\t<parameter name='error-message' value='Invalid order-status'/>","comments":"","x":1593.416519165039,"y":426.16671562194824,"z":"15418301.fff86d","wires":[]},{"id":"3270e69c.b01c1a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":958.5,"y":426.0833339691162,"z":"15418301.fff86d","wires":[["efd3d8ce.305bb8","81a6b5e3.b1c5c8","fc48092d.d0a688","d3a92289.9fdd8","68d3c7c3.2c0538"]]},{"id":"d2debfd0.9228e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1469.499984741211,"y":1001.8333005905151,"z":"15418301.fff86d","wires":[["5b41e042.1bf1"]]},{"id":"5b41e042.1bf1","type":"set","name":"set: error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occurred while deleting generic-vnf, generic-vnf-l3-netweork or generic-vnf-vserver from GammaResource\"/>","comments":"","x":1652.0000076293945,"y":1001.833309173584,"z":"15418301.fff86d","wires":[]},{"id":"d3a92289.9fdd8","type":"save","name":"delete AnAI: generic-vnf","xml":"<delete plugin=\"org.openecomp.sdnc.sli.aai.AAIService\" \n\tresource=\"generic-vnf\" \n\tkey=\"generic-vnf.vnf-id = $service-data.vnf-id\" \n\tlocal-only=\"false\" \n\tforce=\"true\" >\n\n","comments":"","outputs":1,"x":1165.249984741211,"y":1091.5833005905151,"z":"15418301.fff86d","wires":[["8a560d1f.dba1"]]},{"id":"8a560d1f.dba1","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1358.3407897949219,"y":1091.7120161056519,"z":"15418301.fff86d","wires":[["cc527c20.53c39"]]},{"id":"cc527c20.53c39","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Failed to delete generic-vnf from AnAI with vnf-id = '+ $service-data.vnf-id`\"/>","comments":"","x":1516.5073165893555,"y":1091.7953968048096,"z":"15418301.fff86d","wires":[]},{"id":"c31526f9.780638","type":"comment","name":"NOT checking order-status intentionally","info":"","comments":"","x":1316.000015258789,"y":390.0833396911621,"z":"15418301.fff86d","wires":[]},{"id":"fdff8c1.4f2387","type":"record","name":"record","xml":"<record plugin=\"org.openecomp.sdnc.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/sdnc_appc_netconf.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"`$vnf-topology-operation-input.sdnc-request-header.svc-action`\"/>\n<parameter name=\"field3\" value=\"`$vnf-topology-operation-input.vnf-request-information.vnf-name`\"/>\n<parameter name=\"field4\" value=\"`$vnf-topology-operation-input.vnf-request-information.vnf-type`\"/>\n<parameter name=\"field5\" value=\"`$vnf-topology-operation-input.vnf-request-information.vnf-id`\"/>\n<parameter name=\"field6\" value=\"`$vnf-topology-operation-input.vnf-request-information.generic-vnf-name`\"/>\n<parameter name=\"field7\" value=\"`$vnf-topology-operation-input.vnf-request-information.generic-vnf-type`\"/>\n<parameter name=\"field8\" value=\"`$vnf-topology-operation-input.vnf-request-information.generic-vnf-id`\"/>\n<parameter name=\"field9\" value=\"`$preload-data.vnf-topology-information.vnf-topology-identifier.vnf-name`\"/>\n<parameter name=\"field10\" value=\"`$preload-data.vnf-topology-information.vnf-topology-identifier.vnf-type`\"/>\n","comments":"","outputs":1,"x":1753.75,"y":605,"z":"15418301.fff86d","wires":[[]]},{"id":"68d3c7c3.2c0538","type":"switchNode","name":"switch vnf type ","xml":"<switch test='`substr($preload-data.vnf-topology-information.vnf-topology-identifier.vnf-type,22,30)`'>\n<!-- Aa27262bF2d040799b5c..base_vfw..module-0 -->","comments":"","outputs":1,"x":1153.550048828125,"y":496.5166664123535,"z":"15418301.fff86d","wires":[["fd273532.ed4fc8"]]},{"id":"fd273532.ed4fc8","type":"outcome","name":"outcome base_vfw","xml":"<outcome value='base_vfw'>\n","comments":"","outputs":1,"x":1379.5500183105469,"y":526.5166664123535,"z":"15418301.fff86d","wires":[["5aca11d.fbb82f"]]},{"id":"5aca11d.fbb82f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1593.5500183105469,"y":566.5166664123535,"z":"15418301.fff86d","wires":[["8eaec4f0.033068","664d246a.65c41c","afad195e.f3a248","fdff8c1.4f2387"]]},{"id":"8eaec4f0.033068","type":"execute","name":"excute DELETE REST NETCONF MOUNT ","xml":"<execute plugin='org.openecomp.sdnc.restapicall.RestapiCallNode' method='sendRequest' >\n\t<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/netconf-mount-template.xml'`\"/>\n\t<parameter name=\"restapiUrl\" value=\"`$prop.appcRestApi.url+'/restconf/config/network-topology:network-topology/topology/topology-netconf/node/'+$prop.vpg_hostname`\"/>\n\t<parameter name=\"restapiUser\" value=\"`$prop.appcRestApi.sdncOdl.user`\"/>\n\t<parameter name=\"restapiPassword\" value=\"`$prop.appcRestApi.sdncOdl.password`\"/>\n\t<parameter name=\"format\" value=\"xml\" />\n\t<parameter name=\"httpMethod\" value=\"delete\" />\n\t<parameter name=\"responsePrefix\" value=\"restapi-result\" />\n\t\n\t","comments":"","outputs":1,"x":1865.2999572753906,"y":908.7666149139404,"z":"15418301.fff86d","wires":[[]]},{"id":"664d246a.65c41c","type":"set","name":"set appc data","xml":"<set>\n<parameter name='prop.appcRestApi.url' value='http://appc.api.simpledemo.openecomp.org:8282' />\n<!-- 8181 when doing localhost -->\n<parameter name=\"prop.restapi.templateDir\" value=\"/opt/openecomp/sdnc/data\"/>\n<parameter name=\"prop.appcRestApi.sdncOdl.user\" value=\"admin\"/>\n<parameter name=\"prop.appcRestApi.sdncOdl.password\" value=\"Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U\"/>\n","comments":"","x":1775.0500717163086,"y":837.2666139602661,"z":"15418301.fff86d","wires":[]},{"id":"40d9cc0a.1c2c64","type":"comment","name":"Get Hostname","info":"","comments":"","x":1820.2445068359375,"y":650.5499267578125,"z":"15418301.fff86d","wires":[]},{"id":"afad195e.f3a248","type":"for","name":"for vnf-parameters","xml":"<for index='k' start='0' end=\"`$preload-data.vnf-topology-information.vnf-parameters_length`\" >\n","comments":"","outputs":1,"x":1790.2444763183594,"y":695.5500450134277,"z":"15418301.fff86d","wires":[["1027e282.a44d6d"]]},{"id":"ad66fbd9.16e548","type":"switchNode","name":"switch vpg_name_0","xml":"<switch test=\"`$preload-data.vnf-topology-information.vnf-parameters[$k].vnf-parameter-name == 'vpg_name_0'`\">\n","comments":"","outputs":1,"x":2153.244598388672,"y":801.5500755310059,"z":"15418301.fff86d","wires":[["40677ad9.8916e4"]]},{"id":"40677ad9.8916e4","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2340.244598388672,"y":801.5500755310059,"z":"15418301.fff86d","wires":[["c8def15.5dbbc1"]]},{"id":"c8def15.5dbbc1","type":"set","name":"set vpg_ hostname ","xml":"<set>\n<parameter name='prop.vpg_hostname' value='`$preload-data.vnf-topology-information.vnf-parameters[$k].vnf-parameter-value`' />\n","comments":"","x":2508.244598388672,"y":802.1500816345215,"z":"15418301.fff86d","wires":[]},{"id":"1027e282.a44d6d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1963.2445983886719,"y":739.5500450134277,"z":"15418301.fff86d","wires":[["ad66fbd9.16e548"]]}]
\ No newline at end of file
diff --git a/tutorials/CreateAppcNetconfMount/netconf-mount-template.xml b/tutorials/CreateAppcNetconfMount/netconf-mount-template.xml
new file mode 100644 (file)
index 0000000..4a7ca68
--- /dev/null
@@ -0,0 +1,16 @@
+<node xmlns="urn:TBD:params:xml:ns:yang:network-topology">
+ <node-id>${prop.vpg_hostname}</node-id>
+ <host xmlns="urn:opendaylight:netconf-node-topology">${prop.vpg_ipaddress}</host>
+ <port xmlns="urn:opendaylight:netconf-node-topology">2883</port>
+ <username xmlns="urn:opendaylight:netconf-node-topology">admin</username>
+ <password xmlns="urn:opendaylight:netconf-node-topology">admin</password>
+ <tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only>
+ <!-- non-mandatory fields with default values, you can safely remove these if you do not wish to override any of these values-->
+ <reconnect-on-changed-schema xmlns="urn:opendaylight:netconf-node-topology">false</reconnect-on-changed-schema>
+ <connection-timeout-millis xmlns="urn:opendaylight:netconf-node-topology">20000</connection-timeout-millis>
+ <max-connection-attempts xmlns="urn:opendaylight:netconf-node-topology">0</max-connection-attempts>
+ <between-attempts-timeout-millis xmlns="urn:opendaylight:netconf-node-topology">2000</between-attempts-timeout-millis>
+ <sleep-factor xmlns="urn:opendaylight:netconf-node-topology">1.5</sleep-factor>
+ <!-- keepalive-delay set to 0 turns off keepalives-->
+ <keepalive-delay xmlns="urn:opendaylight:netconf-node-topology">120</keepalive-delay>
+</node>
diff --git a/tutorials/CreateAppcNetconfMount/slitester.vnf-topology-activate.json b/tutorials/CreateAppcNetconfMount/slitester.vnf-topology-activate.json
new file mode 100644 (file)
index 0000000..6410b7b
--- /dev/null
@@ -0,0 +1,53 @@
+{
+"input": {
+"module-name": "VNF-API",
+"rpc-name": "vnf-topology-activate",
+"mode": "sync",
+"sli-parameter": [
+{
+"parameter-name": "preload-data.vnf-topology-information.vnf-topology-identifier.vnf-type",
+"string-value": "E636c6e5747e4eda9dbb..base_vfw..module-0"
+}, 
+{
+"parameter-name": "preload-data.vnf-topology-information.vnf-parameters_length",
+"string-value": "2"
+},
+{
+"parameter-name": "preload-data.vnf-topology-information.vnf-parameters[0].vnf-parameter-name",
+"string-value": "vpg_name_0"
+},
+{
+"parameter-name": "preload-data.vnf-topology-information.vnf-parameters[0].vnf-parameter-value",
+"string-value": "testname1"
+},
+{
+"parameter-name": "preload-data.vnf-topology-information.vnf-parameters[1].vnf-parameter-name",
+"string-value": "vpg_private_ip_1"
+},
+{
+"parameter-name": "preload-data.vnf-topology-information.vnf-parameters[1].vnf-parameter-value",
+"string-value": "10.0.0.1"
+},
+{
+"parameter-name": "service-data.oper-status.order-status",
+"string-value": "PendingCreate"
+},
+{
+"parameter-name": "service-data.vnf-id",
+"string-value": "Vfmodule_Ete_Name3d4e75c0-119d-4c8e-a6bf-179a2bb51831"
+},
+{
+"parameter-name": "vnf-topology-operation-input.vnf-request-information.vnf-id",
+"string-value": "Vfmodule_Ete_Name3d4e75c0-119d-4c8e-a6bf-179a2bb51831"
+},
+{
+"parameter-name": "vnf-topology-operation-input.vnf-request-information.vnf-type",
+"string-value": "E636c6e5747e4eda9dbb..base_vfw..module-0"
+},
+{
+"parameter-name": "vnf-topology-operation-input.vnf-request-information.generic-vnf-id",
+"string-value": "Vnf_Ete_Name3d4e75c0-119d-4c8e-a6bf-179a2bb51831"
+}
+]
+}
+}