--- /dev/null
+<service-logic\r
+ xmlns='http://www.onap.org/sdnc/svclogic'\r
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+ <method rpc='self-serve-aai-vnf-put' mode='sync'>\r
+ <block atomic="true">\r
+ <switch test='`$ss.capability-action`'>\r
+ <outcome value=''>\r
+ <return status="failure">\r
+ <parameter name="ack-final" value="Y" />\r
+ <parameter name="error-code" value="500"/>\r
+ <parameter name="error-message" value="ss.capability-action is null" />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='assign'>\r
+ <block atomic='true'>\r
+ <for silentFailure='true' index="aidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`">\r
+ <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].name`'>\r
+ <outcome value='vnf_name'>\r
+ <set>\r
+ <parameter name='ss.param.vnf-name' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\r
+ <parameter name='ss.param.vnf-name-index' value='`$aidx`' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='vnf_id'>\r
+ <set>\r
+ <parameter name='ss.param.vnf-id' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\r
+ <parameter name='ss.param.vnf-id-index' value='`$aidx`' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='license-assignment-group-uuid'>\r
+ <set>\r
+ <parameter name='ss.param.license-assignment-group-uuid' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\r
+ <parameter name='ss.param.license-assignment-group-uuid-index' value='`$aidx`' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='entitlement-assignment-group-uuid'>\r
+ <set>\r
+ <parameter name='ss.param.entitlement-assignment-group-uuid' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\r
+ <parameter name='ss.param.entitlement-assignment-group-uuid-index' value='`$aidx`' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='aai-vnf-put'>\r
+ <set>\r
+ <parameter name='ss.param.aai-vnf-put-index' value='`$aidx`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="generic-vnf"\r
+ key="generic-vnf.vnf-id = $ss.param.vnf-id "\r
+ pfx="tmp.aai.vnf" >\r
+ <outcome value='failure'>\r
+ <block atomic='true'>\r
+ <set>\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status' \r
+ value='FAILED' />\r
+ </set>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value="`'Encountered error to get generic-vnf with vnf-id=' + $ss.param.vnf-id + ' from AnAI'`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic='true'>\r
+ <set>\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status' \r
+ value='FAILED' />\r
+ </set>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value="`'generic-vnf.vnf-name with vnf-id=' + $ss.param.vnf-id + ' not found in AAI'`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </get-resource>\r
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="generic-vnf"\r
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >\r
+ <parameter name="vnf-name" value='`$ss.param.vnf-name`' />\r
+ <outcome value='failure'>\r
+ <block atomic='true'>\r
+ <set>\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status' \r
+ value='FAILED' />\r
+ </set>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value="`'Failed to update generic-vnf.vnf-name in AnAI with vnf-name=' + $ss.param.vnf-name`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic='true'>\r
+ <set>\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status' \r
+ value='FAILED' />\r
+ </set>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value="`'generic-vnf with vnf-id =' + $ss.param.vnf-id + ' is not found in AAI'`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </update>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="license"\r
+ key="license.group-uuid = $ss.param.license-assignment-group-uuid \r
+ AND license.resource-uuid = $ss.param.license-key\r
+ AND generic-vnf.vnf-id = $ss.param.vnf-id" >\r
+ <parameter name="group-uuid" value='`$ss.param.license-assignment-group-uuid`' />\r
+ <parameter name="resource-uuid" value='`$ss.param.license-key`' />\r
+ <outcome value='failure'>\r
+ <block atomic='true'>\r
+ <block>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>\r
+ </record>\r
+ <set>\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status' \r
+ value='FAILED' />\r
+ </set>\r
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="generic-vnf"\r
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >\r
+ <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />\r
+ <outcome value='failure'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <set>\r
+ <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />\r
+ </set>\r
+ </outcome>\r
+ </update>\r
+ </block>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value="`'Failed to save license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AAI'`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic='true'>\r
+ <block>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>\r
+ </record>\r
+ <set>\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status' \r
+ value='FAILED' />\r
+ </set>\r
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="generic-vnf"\r
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >\r
+ <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />\r
+ <outcome value='failure'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <set>\r
+ <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />\r
+ </set>\r
+ </outcome>\r
+ </update>\r
+ </block>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value="`'license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' is not found in AAI'`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="entitlement"\r
+ key="entitlement.group-uuid = $ss.param.entitlement-assignment-group-uuid \r
+ AND entitlement.resource-uuid = $ss.param.entitlement-key\r
+ AND generic-vnf.vnf-id = $ss.param.vnf-id" >\r
+ <parameter name="group-uuid" value='`$ss.param.entitlement-assignment-group-uuid`' />\r
+ <parameter name="resource-uuid" value='`$ss.param.entitlement-key`' />\r
+ <outcome value='failure'>\r
+ <block atomic='true'>\r
+ <block>\r
+ <block>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>\r
+ </record>\r
+ <set>\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status' \r
+ value='FAILED' />\r
+ </set>\r
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="generic-vnf"\r
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >\r
+ <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />\r
+ <outcome value='failure'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <set>\r
+ <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />\r
+ </set>\r
+ </outcome>\r
+ </update>\r
+ </block>\r
+ <block>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value="ROLLBACK license"/>\r
+ </record>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="license"\r
+ key="license.group-uuid = $ss.param.license-assignment-group-uuid \r
+ AND license.resource-uuid = $ss.param.license-key" >\r
+ <outcome value='failure'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback license because license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' NOT FOUND in AAI. SILENT SUCCESS! '`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <set>\r
+ <parameter name='error-message' value=" Rollback of license completed. " />\r
+ </set>\r
+ </outcome>\r
+ </delete>\r
+ </block>\r
+ </block>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value="`'Failed to save entitlement with group-uuid = ' + $ss.param.entitlement-assignment-group-uuid + ' AND entitlement.resource-uuid = ' + $ss.param.entitlement-key + ' in AAI'`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic='true'>\r
+ <block>\r
+ <block>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>\r
+ </record>\r
+ <set>\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status' \r
+ value='FAILED' />\r
+ </set>\r
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="generic-vnf"\r
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >\r
+ <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />\r
+ <outcome value='failure'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <set>\r
+ <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />\r
+ </set>\r
+ </outcome>\r
+ </update>\r
+ </block>\r
+ <block>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value="ROLLBACK license"/>\r
+ </record>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="license"\r
+ key="license.group-uuid = $ss.param.license-assignment-group-uuid \r
+ AND license.resource-uuid = $ss.param.license-key" >\r
+ <outcome value='failure'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <set>\r
+ <parameter name='error-message' value="`' Failed to rollback license because license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' NOT FOUND in AAI. SILENT SUCCESS! '`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <set>\r
+ <parameter name='error-message' value=" Rollback of license completed. " />\r
+ </set>\r
+ </outcome>\r
+ </delete>\r
+ </block>\r
+ </block>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500' />\r
+ <parameter name='error-message' value="`'entitlement with group-uuid = ' + $ss.param.entitlement-assignment-group-uuid + ' AND entitlement.resource-uuid = ' + $ss.param.entitlement-key + ' is not found in AAI'`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <set>\r
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status' \r
+ value='SUCCESS' />\r
+ </set>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+ <parameter name='filename' value='/var/tmp/ss.aai.vfmoduleput.log' />\r
+ </execute>\r
+ </block>\r
+ </method>\r
+</service-logic>
\ No newline at end of file