Support playbook-name in payload of PNF S/W upgrade LCM API's request
[sdnc/oam.git] / platform-logic / lcm / src / main / xml / LCM_rollback.xml
index dd24063..8c57d02 100644 (file)
@@ -11,6 +11,7 @@
                 <parameter name='status.code' value='200' />\r
                 <parameter name='status.message' value='unexpected return from DG' />\r
                 <parameter name='quote' value="'" />\r
+                <parameter name='outputPayloadField' value='.Output' />\r
             </set>\r
             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='jsonStringToCtx'>\r
                 <parameter name='source' value='rollback-input.payload' />\r
             </execute>\r
             <switch test='`$payloadJson.pnf-flag`'>\r
                 <outcome value='true'>\r
-                    <set>\r
-                        <parameter name='nodelist' value="`'[' + $quote + $payloadJson.ipaddress-v4-oam +  $quote + ']'`"/>\r
-                        <parameter name='playbookname' value='`$prop.lcm.pnf.rollback.playbookname`'/>\r
-                    </set>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='nodelist' value="`'[' + $quote + $payloadJson.ipaddress-v4-oam +  $quote + ']'`"/>\r
+                            <parameter name='outputPayloadField' value="`'.' + $payloadJson.ipaddress-v4-oam + '.Output'`"/>\r
+                        </set>\r
+                        <switch test='`$payloadJson.playbook-name`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='playbookname' value='`$prop.lcm.pnf.rollback.playbookname`'/>\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='playbookname' value='`$payloadJson.playbook-name`'/>\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
                 </outcome>\r
                 <outcome value='Other'>\r
                     <block>\r
-                        <return status='failure'>\r
-                            <parameter name='status.code' value='401' />\r
-                            <parameter name='status.message' value='Currently only support PNF.' />\r
-                        </return>\r
+                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>\r
+                            <parameter name='outputPath' value='playbookname' />\r
+                            <parameter name='source' value="`'prop.lcm.' + $payloadJson.nf-naming-code + '.rollback.playbookname'`" />\r
+                        </execute>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="generic-vnf" \r
+               key="generic-vnf.vnf-id = $rollback-input.action-identifiers.vnf-id" \r
+               local-only="false" \r
+               pfx='aai.generic-vnf'>\r
+                            <outcome value='success'>\r
+                                <block>\r
+                                    <switch test='`$playbookname`'>\r
+                                        <outcome value=''>\r
+                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>\r
+                                                <parameter name='outputPath' value='playbookname' />\r
+                                                <parameter name='source' value="`'prop.lcm.' + $aai.generic-vnf.nf-naming-code + '.rollback.playbookname'`" />\r
+                                            </execute>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='nodelist' value="`'[' + $quote + $aai.generic-vnf.ipv4-oam-address +  $quote + ']'`"/>\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </get-resource>\r
                     </block>\r
                 </outcome>\r
             </switch>\r
             <switch test='`$playbookname`'>\r
                 <outcome value=''>\r
                     <set>\r
-                        <parameter name='nodelist' value="`$prop.ansible.nodelist`"/>\r
                         <parameter name='playbookname' value='`$prop.lcm.rollback.playbookname`'/>\r
                     </set>\r
                 </outcome>\r
                                             <parameter name='isEscaped' value='false' />\r
                                         </execute>\r
                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>\r
-                                            <parameter name='source' value="`'resultsJson.' + $payloadJson.ipaddress-v4-oam + '.Output'`" />\r
+                                            <parameter name='source' value="`'resultsJson' + $outputPayloadField`" />\r
                                             <parameter name='outputPath' value='outputPayload' />\r
                                         </execute>\r
+                                        <set>\r
+                                            <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+                                            <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
+                                            <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
+                                            <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
+                                            <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+                                            <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
+                                            <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
+                                            <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
+                                            <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
+                                            <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
+                                            <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
+                                            <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
+                                            <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
+                                            <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                            <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                                        </set>\r
                                         <switch test='`$outputPayload`'>\r
-                                            <outcome value=''>\r
-                                                <set>\r
-                                                    <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
-                                                    <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
-                                                    <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
-                                                    <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
-                                                    <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
-                                                    <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
-                                                    <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
-                                                    <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
-                                                    <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
-                                                    <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
-                                                    <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
-                                                    <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
-                                                </set>\r
-                                            </outcome>\r
                                             <outcome value='Other'>\r
                                                 <set>\r
-                                                    <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
-                                                    <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
-                                                    <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
-                                                    <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
-                                                    <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
-                                                    <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
-                                                    <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
-                                                    <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
-                                                    <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
-                                                    <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
-                                                    <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
-                                                    <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
                                                     <parameter name='lcm-dmaap.payload' value='`$outputPayload`'/>\r
                                                 </set>\r
                                             </outcome>\r
                                             <parameter name='isEscaped' value='false' />\r
                                         </execute>\r
                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>\r
-                                            <parameter name='source' value="`'resultsJson.' + $payloadJson.ipaddress-v4-oam + '.Output'`" />\r
+                                            <parameter name='source' value="`'resultsJson' + $outputPayloadField`" />\r
                                             <parameter name='outputPath' value='outputPayload' />\r
                                         </execute>\r
+                                        <set>\r
+                                            <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+                                            <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
+                                            <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
+                                            <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
+                                            <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+                                            <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
+                                            <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
+                                            <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
+                                            <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
+                                            <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
+                                            <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
+                                            <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
+                                            <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
+                                            <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                            <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                                        </set>\r
                                         <switch test='`$outputPayload`'>\r
-                                            <outcome value=''>\r
-                                                <set>\r
-                                                    <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
-                                                    <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
-                                                    <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
-                                                    <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
-                                                    <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
-                                                    <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
-                                                    <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
-                                                    <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
-                                                    <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
-                                                    <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
-                                                    <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
-                                                    <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
-                                                </set>\r
-                                            </outcome>\r
                                             <outcome value='Other'>\r
                                                 <set>\r
-                                                    <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
-                                                    <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
-                                                    <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
-                                                    <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
-                                                    <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
-                                                    <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
-                                                    <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
-                                                    <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
-                                                    <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
-                                                    <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
-                                                    <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
-                                                    <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
-                                                    <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
                                                     <parameter name='lcm-dmaap.payload' value='`$outputPayload`'/>\r
                                                 </set>\r
                                             </outcome>\r