self-serve DG for Casablanca
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_self-serve-aai-vnf-put.xml
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.xml
new file mode 100644 (file)
index 0000000..e791088
--- /dev/null
@@ -0,0 +1,343 @@
+<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