Table of Contents
Introduction
A number of generic and re-usable plugins have been created for DirectedGraph. The word plugin here means a karaf extension that can be installed in the controller and called by SLI.
SLI requires the java interface follow a set interface (SvcLogicJavaPlugin) to function properly.
Once the karaf extension is installed in the controller the directed graphs can freely call that plugin. Many times this is done through an execute node.
Properties Node
The code is hosted in gerrit under the sdnc/plugins directory. This node loads a properties file on disk and puts the contents into context memory so they can be accessed.
RestapiCallNode
Obsolete ? The code is hosted in gerrit under the sdnc/plugins directory. This node allows a directed graph to make REST requests. The javadocs are very helpful.
New December 2018 : there are 2 RestAdapter plugin but I advice to use only the following plugin with SDNC or APPC :
<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' > <parameter name="restapiUrl" value="`$distant_url`" /> <parameter name="httpMethod" value="get"/> <parameter name="responsePrefix" value="RESPONSE"/>
SQL Resource
The code is hosted in gerrit under the sdnc/adaptors directory . This resource allows a graph to run SQL statements against a SQL database. If it is a query results are written to context memory.
Any time you have context memory values in a SqlResource block the white space around them is absolutely crucial. If the whitespace was removed from the above query it would not function properly.
Sample code blocks are below.
insert
<save plugin='com.att.sdnctl.sli.resource.sql.SqlResource' resource='SQL' key='INSERT INTO DATA_OBJECT_MAPPING (data_object_key, data_object_type, service_type, data_object_key2, data_object_key2_type) VALUES ( $service-data.service-information.service-instance-id ,"uCPE","uCPE", $service-data.ucpe-request-information.ucpe-host-name ,"ucpe-hostname")' force='true' pfx='save-result'>
select
<get-resource plugin="com.att.sdnctl.sli.resource.sql.SqlResource" resource="SQL" key= "SELECT * FROM DEVICE2IPADDRESS_CONSUMPTION where device_id = $customize-ips-request-input.customize-ips-information.vnf-loopback-ip-blocks[$j].vnf-name AND address_type = 'NMLAN' AND ip_version = 'Ipv6' ; " pfx="tmp.DEVICE2IPADDRESS_CONSUMPTION_V4_CONSUMPTION_Update">
delete
<delete plugin='com.att.sdnctl.sli.resource.sql.SqlResource' resource="SQL" key="DELETE FROM DEVICE2IPADDRESS_MAPPING WHERE device_id = $service-data.service-information.service-instance-id">
update
<save plugin='com.att.sdnctl.sli.resource.sql.SqlResource' resource='SQL' key='UPDATE VPE_LOCK SET vpn_lock = $vpe-lock.vpe-lock-type WHERE vpe_name = $vpe-lock.vpe-name' force='true' pfx='save-result'>
SliPluginUtils
The code is hosted in gerrit under the sdnc/core directory. The javadocs are very helpful .
Notable methods:
- generateUUID - generates a UUID and writes it to context memory
- setTime - generates a timestamp and writes it to context memory
- printContext - dumps content memory to a text file for easy debugging
SliStringUtils
This comes packaged with SliPluginUtils. The javadocs are very helpful . The class exposes existing Java string methods to directed graph.
DME2
This comes packaged with SliPluginUtils. Further details can be found at DME2 (fill in link).
AAI Service
This plugin allows directed graphs to communicate with AAI. It is complex so it has separate pages hosted at AAIService (fill in link).