Generic resource API DG catch up
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_get-data-from-policy.xml
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_get-data-from-policy.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_get-data-from-policy.xml
new file mode 100755 (executable)
index 0000000..2c825d6
--- /dev/null
@@ -0,0 +1,204 @@
+<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='get-data-from-policy' mode='sync'>\r
+        <block atomic='true'>\r
+            <block atomic='true'>\r
+                <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                    <parameter name='contextPrefix' value='prop' />\r
+                    <outcome value='success'>\r
+                        <block atomic='true'>\r
+                            <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: read properties file."/>\r
+                            </record>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='failure'>\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="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: Could not read properties file."/>\r
+                                <parameter name="field3" value='`$prop.restapi.pm.getpolicy.templatefile`'/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='501' />\r
+                                <parameter name='error-message' value='get-data-from-policy: could not read generic-resource-api properties' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                </execute>\r
+                <switch test='`$get-data-from-policy-input.policy-instance-name`'>\r
+                    <outcome value=''>\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="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: input.policy-instance-name is not set"/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='507' />\r
+                                <parameter name='error-message' value='get-data-from-policy: input.policy-instance-name is not set' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </block>\r
+            <block atomic='true'>\r
+                <set>\r
+                    <parameter name='tmp.policy-name' value="`$get-data-from-policy-input.policy-instance-name`" />\r
+                </set>\r
+                <record plugin="com.att.sdnctl.sli.recording.Slf4jRecorder">\r
+                    <parameter name="logger" value="message-log"/>\r
+                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                    <parameter name="field2" value="LAINA: get-data-from-policy: restapi-call-node Call Policy Manager getPolicy"/>\r
+                </record>\r
+                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.getpolicy.templatefile`" />\r
+                    <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/getConfig'`" />\r
+                    <parameter name='format' value='json' />\r
+                    <parameter name='httpMethod' value='POST' />\r
+                    <parameter name='customHttpHeaders'\r
+      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />\r
+                    <parameter name="responsePrefix" value="tmp.pm-response" />\r
+                    <outcome value='failure'>\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="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: Error calling Policy Manager getPolicy"/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='502' />\r
+                                <parameter name='error-message' value='get-data-from-policy: getPolicy call to Policy Manger failed' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='success'>\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="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: getPolicy SUCCESS"/>\r
+                                <parameter name='field3' value='`$tmp.pm-response.type`' />\r
+                                <parameter name='field4' value='`$tmp.pm-response.matchingConditions`' />\r
+                                <parameter name='field5' value='`$tmp.pm-response.config`' />\r
+                                <parameter name='field6' value='`$tmp.pm-response.response-code`' />\r
+                                <parameter name='field7' value='`$tmp.pm-response.response-message`' />\r
+                            </record>\r
+                            <set>\r
+                                <parameter name='policy-config' value="`$tmp.pm-response.config`" />\r
+                            </set>\r
+                            <switch test='`$tmp.pm-response.response-code`'>\r
+                                <outcome value='500'>\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="__TIMESTAMP__"/>\r
+                                            <parameter name="field2" value="LAINA: get-data-from-policy: Error calling Policy Manager getPolicy"/>\r
+                                        </record>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='502' />\r
+                                            <parameter name='error-message' value='get-data-from-policy: getPolicy call to Policy Manger failed' />\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </block>\r
+                    </outcome>\r
+                </execute>\r
+                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                    <parameter name="logger" value="message-log"/>\r
+                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                    <parameter name="field2" value="LAINA: get-data-from-policy: call jsonStringToCtx"/>\r
+                    <parameter name='field3' value='`$policy-config`' />\r
+                </record>\r
+                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="jsonStringToCtx">\r
+                    <parameter name="source" value="policy-config" />\r
+                    <parameter name="outputPath" value="jsonContextPrefix" />\r
+                    <parameter name="isEscaped" value="true" />\r
+                    <outcome value='failure'>\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="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: Error calling jsonStringToCtx"/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='504' />\r
+                                <parameter name='error-message' value='get-data-from-policy: failed to parse Policy Manger getPolicy response' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='success'>\r
+                        <block atomic='true'>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: jsonStringToCtx SUCCESS: policyName|policy-data|"/>\r
+                                <parameter name='field3' value='`$jsonContextPrefix.policyName`' />\r
+                                <parameter name='field4' value='`$jsonContextPrefix.content.policy-data`' />\r
+                            </record>\r
+                            <switch test='`$jsonContextPrefix.content.policy-data_length > 0`'>\r
+                                <outcome value='true'>\r
+                                    <block atomic='true'>\r
+                                        <for index='policyDataIndex' start='0' end='`$jsonContextPrefix.content.policy-data_length`' >\r
+                                            <set>\r
+                                                <parameter name="`'get-data-from-policy-output[' + $policyDataIndex + ']'`." value= '`$jsonContextPrefix.content.policy-data[$policyDataIndex].`' />\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: get-data-from-policy: policyDataIndex|nf-role|rule-1|rule-2:"/>\r
+                                                <parameter name='field3' value='`$policyDataIndex`' />\r
+                                                <parameter name='field4' value='`$jsonContextPrefix.content.policy-data[$policyDataIndex].nf-role`' />\r
+                                                <parameter name='field5' value='`$jsonContextPrefix.content.policy-data[$policyDataIndex].rule-1`' />\r
+                                                <parameter name='field6' value='`$jsonContextPrefix.content.policy-data[$policyDataIndex].rule-2`' />\r
+                                            </record>\r
+                                        </for>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$jsonContextPrefix.content.policy-data.extended-params_length > 0`'>\r
+                                <outcome value='true'>\r
+                                    <block atomic='true'>\r
+                                        <for index='policyDataExtendedParamsIndex' start='0' end='`$jsonContextPrefix.content.policy-data.extended-params_length`' >\r
+                                            <set>\r
+                                                <parameter name='output-param-name' value='`$jsonContextPrefix.content.policy-data.extended-params[$policyDataExtendedParamsIndex].param-name`'  />\r
+                                                <parameter name='output-param-value' value='`$jsonContextPrefix.content.policy-data.extended-params[$policyDataExtendedParamsIndex].param-value`'  />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name="`'get-data-from-policy-output.' + $output-param-name`" value="`$output-param-value`" />\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: get-data-from-policy: policyDataExtendedParamsIndex|output-param-name|output-param-value:"/>\r
+                                                <parameter name='field3' value='`$policyDataExtendedParamsIndex`' />\r
+                                                <parameter name='field4' value='`$output-param-name`' />\r
+                                                <parameter name='field5' value='`$output-param-value`' />\r
+                                            </record>\r
+                                        </for>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <set>\r
+                                <parameter name='get-data-from-policy-output.' value='`$jsonContextPrefix.content.policy-data.`'  />\r
+                            </set>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: get-data-from-policy-output.:"/>\r
+                                <parameter name='field3' value='`$get-data-from-policy-output.`' />\r
+                            </record>\r
+                        </block>\r
+                    </outcome>\r
+                </execute>\r
+                <return status='success'></return>\r
+            </block>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file