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 bb540b6..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='PlaybookName' value='`$playbookname`'/>\r
                                 <outcome value='failure'>\r
                                     <block>\r
+                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='jsonStringToCtx'>\r
+                                            <parameter name='source' value='org.onap.appc.adapter.ansible.results' />\r
+                                            <parameter name='outputPath' value='resultsJson' />\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' + $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.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='Other'>\r
+                                                <set>\r
+                                                    <parameter name='lcm-dmaap.payload' value='`$outputPayload`'/>\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
                                             <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.lcm.dmaap.publish.templatefile`" />\r
                                             <parameter name='restapiUrl' value='`$prop.lcm.dmaap.url`' />\r
                                                 </record>\r
                                             </outcome>\r
                                         </execute>\r
-                                        <return status='failure'>\r
-                                            <parameter name='status.code' value='401' />\r
-                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`' />\r
-                                        </return>\r
+                                        <switch test='`$outputPayload`'>\r
+                                            <outcome value=''>\r
+                                                <switch test="`$org.onap.appc.adapter.ansible.result.code`">\r
+                                                    <outcome value='400'>\r
+                                                        <return status='success'>\r
+                                                            <parameter name='status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='status.code' value='401' />\r
+                                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`' />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <switch test="`$org.onap.appc.adapter.ansible.result.code`">\r
+                                                    <outcome value='400'>\r
+                                                        <return status='success'>\r
+                                                            <parameter name='status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                                                            <parameter name='payload' value='`$outputPayload`'/>\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='status.code' value='401' />\r
+                                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`' />\r
+                                                            <parameter name='payload' value='`$outputPayload`'/>\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </outcome>\r
+                                        </switch>\r
                                     </block>\r
                                 </outcome>\r
                                 <outcome value='success'>\r
                                     <block>\r
+                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='jsonStringToCtx'>\r
+                                            <parameter name='source' value='org.onap.appc.adapter.ansible.results' />\r
+                                            <parameter name='outputPath' value='resultsJson' />\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' + $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.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='Other'>\r
+                                                <set>\r
+                                                    <parameter name='lcm-dmaap.payload' value='`$outputPayload`'/>\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
                                             <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.lcm.dmaap.publish.templatefile`" />\r
                                             <parameter name='restapiUrl' value='`$prop.lcm.dmaap.url`' />\r
                                                 </record>\r
                                             </outcome>\r
                                         </execute>\r
-                                        <return status='success'>\r
-                                            <parameter name='status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
-                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
-                                        </return>\r
+                                        <switch test='`$outputPayload`'>\r
+                                            <outcome value=''>\r
+                                                <switch test="`$org.onap.appc.adapter.ansible.result.code`">\r
+                                                    <outcome value='400'>\r
+                                                        <return status='success'>\r
+                                                            <parameter name='status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='status.code' value='401' />\r
+                                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`' />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <switch test="`$org.onap.appc.adapter.ansible.result.code`">\r
+                                                    <outcome value='400'>\r
+                                                        <return status='success'>\r
+                                                            <parameter name='status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                                                            <parameter name='payload' value='`$outputPayload`'/>\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='status.code' value='401' />\r
+                                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`' />\r
+                                                            <parameter name='payload' value='`$outputPayload`'/>\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </outcome>\r
+                                        </switch>\r
                                     </block>\r
                                 </outcome>\r
                             </execute>\r