+<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='LCM' version='${project.version}'>\r
+ <method rpc='distribute-traffic' mode='sync'>\r
+ <block>\r
+ <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+ <parameter name='fileName' value='%SDNC_CONFIG_DIR%/lcm-dg.properties' />\r
+ <parameter name='contextPrefix' value='prop' />\r
+ </execute>\r
+ <set>\r
+ <parameter name='status.code' value='200' />\r
+ <parameter name='status.message' value='unexpected return from DG' />\r
+ <parameter name='nodelist' value="`$prop.ansible.nodelist`"/>\r
+ </set>\r
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="generic-vnf" \r
+ key="generic-vnf.vnf-id = $distribute-traffic-input.action-identifiers.vnf-id" \r
+ local-only="false" \r
+ pfx='aai.generic-vnf'>\r
+ <outcome value='success'>\r
+ <set>\r
+ <parameter name='quote' value="'" />\r
+ <parameter name='nodelist' value="`'[' + $quote + $aai.ipv4-oam-address + $quote + ']'`"/>\r
+ </set>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value='VNF not found in AAI. Nodelist retrieved from config'/>\r
+ </record>\r
+ </outcome>\r
+ </get-resource>\r
+ <execute plugin='org.onap.ccsdk.sli.adaptors.ansible.AnsibleAdapter' method='reqExec' >\r
+ <parameter name='AgentUrl' value='`$prop.ansible.agenturl`'/>\r
+ <parameter name='User' value='`$prop.ansible.user`'/>\r
+ <parameter name='Password' value='`$prop.ansible.password`'/>\r
+ <parameter name='LocalParameters' value='`$prop.ansible.lcm.localparameters`'/>\r
+ <parameter name='EnvParameters' value='`$distribute-traffic-input.payload`'/>\r
+ <parameter name='NodeList' value="`$nodelist`"/>\r
+ <parameter name='Timeout' value='`$prop.ansible.timeout`'/>\r
+ <parameter name='Version' value='`$prop.ansible.version`'/>\r
+ <parameter name='Id' value='`$distribute-traffic-input.common-header.request-id`'/>\r
+ <parameter name='PlaybookName' value='`$prop.lcm.distribute-traffic.playbookname`'/>\r
+ <outcome value='not-found'>\r
+ <block>\r
+ <set>\r
+ <parameter name='org.onap.appc.adapter.ansible.result.code' value='401'/>\r
+ <parameter name='org.onap.appc.adapter.ansible.message' value='Ansible Adapter was not found'/>\r
+ </set>\r
+ <block>\r
+ <set>\r
+ <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+ <parameter name='lcm-dmaap.correlation-id' value="`$distribute-traffic-input.common-header.request-id + '-' + $distribute-traffic-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='distribute-traffic'/>\r
+ <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+ <parameter name='lcm-dmaap.timestamp' value='`$distribute-traffic-input.common-header.timestamp`'/>\r
+ <parameter name='lcm-dmaap.api-ver' value='`$distribute-traffic-input.common-header.api-ver`'/>\r
+ <parameter name='lcm-dmaap.originator-id' value='`$distribute-traffic-input.common-header.originator-id`'/>\r
+ <parameter name='lcm-dmaap.request-id' value='`$distribute-traffic-input.common-header.request-id`'/>\r
+ <parameter name='lcm-dmaap.sub-request-id' value='`$distribute-traffic-input.common-header.sub-request-id`'/>\r
+ <parameter name='lcm-dmaap.flags.mode' value='`$distribute-traffic-input.common-header.flags.mode`'/>\r
+ <parameter name='lcm-dmaap.flags.force' value='`$distribute-traffic-input.common-header.flags.force`'/>\r
+ <parameter name='lcm-dmaap.flags.ttl' value='`$distribute-traffic-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
+ <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
+ <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+ <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+ <parameter name='format' value='json' />\r
+ <parameter name='httpMethod' value='POST' />\r
+ <parameter name='contentType' value='application/json' />\r
+ <parameter name="responsePrefix" value="lcm" />\r
+ <outcome value='failure'>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value='Failed to Publish to DMaap'/>\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
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='failure'>\r
+ <block>\r
+ <set>\r
+ <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+ <parameter name='lcm-dmaap.correlation-id' value="`$distribute-traffic-input.common-header.request-id + '-' + $distribute-traffic-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='distribute-traffic'/>\r
+ <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+ <parameter name='lcm-dmaap.timestamp' value='`$distribute-traffic-input.common-header.timestamp`'/>\r
+ <parameter name='lcm-dmaap.api-ver' value='`$distribute-traffic-input.common-header.api-ver`'/>\r
+ <parameter name='lcm-dmaap.originator-id' value='`$distribute-traffic-input.common-header.originator-id`'/>\r
+ <parameter name='lcm-dmaap.request-id' value='`$distribute-traffic-input.common-header.request-id`'/>\r
+ <parameter name='lcm-dmaap.sub-request-id' value='`$distribute-traffic-input.common-header.sub-request-id`'/>\r
+ <parameter name='lcm-dmaap.flags.mode' value='`$distribute-traffic-input.common-header.flags.mode`'/>\r
+ <parameter name='lcm-dmaap.flags.force' value='`$distribute-traffic-input.common-header.flags.force`'/>\r
+ <parameter name='lcm-dmaap.flags.ttl' value='`$distribute-traffic-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
+ <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
+ <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+ <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+ <parameter name='format' value='json' />\r
+ <parameter name='httpMethod' value='POST' />\r
+ <parameter name='contentType' value='application/json' />\r
+ <parameter name="responsePrefix" value="lcm" />\r
+ <outcome value='failure'>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value='Failed to Publish to DMaap'/>\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
+ </block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <switch test="`$org.onap.appc.adapter.ansible.result.code`">\r
+ <outcome value='101'>\r
+ <block>\r
+ <set>\r
+ <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+ <parameter name='lcm-dmaap.correlation-id' value="`$distribute-traffic-input.common-header.request-id + '-' + $distribute-traffic-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='distribute-traffic'/>\r
+ <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+ <parameter name='lcm-dmaap.timestamp' value='`$distribute-traffic-input.common-header.timestamp`'/>\r
+ <parameter name='lcm-dmaap.api-ver' value='`$distribute-traffic-input.common-header.api-ver`'/>\r
+ <parameter name='lcm-dmaap.originator-id' value='`$distribute-traffic-input.common-header.originator-id`'/>\r
+ <parameter name='lcm-dmaap.request-id' value='`$distribute-traffic-input.common-header.request-id`'/>\r
+ <parameter name='lcm-dmaap.sub-request-id' value='`$distribute-traffic-input.common-header.sub-request-id`'/>\r
+ <parameter name='lcm-dmaap.flags.mode' value='`$distribute-traffic-input.common-header.flags.mode`'/>\r
+ <parameter name='lcm-dmaap.flags.force' value='`$distribute-traffic-input.common-header.flags.force`'/>\r
+ <parameter name='lcm-dmaap.flags.ttl' value='`$distribute-traffic-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
+ <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
+ <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+ <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+ <parameter name='format' value='json' />\r
+ <parameter name='httpMethod' value='POST' />\r
+ <parameter name='contentType' value='application/json' />\r
+ <parameter name="responsePrefix" value="lcm" />\r
+ <outcome value='failure'>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value='Failed to Publish to DMaap'/>\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
+ </block>\r
+ </outcome>\r
+ <outcome value='500'>\r
+ <block>\r
+ <set>\r
+ <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+ <parameter name='lcm-dmaap.correlation-id' value="`$distribute-traffic-input.common-header.request-id + '-' + $distribute-traffic-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='distribute-traffic'/>\r
+ <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+ <parameter name='lcm-dmaap.timestamp' value='`$distribute-traffic-input.common-header.timestamp`'/>\r
+ <parameter name='lcm-dmaap.api-ver' value='`$distribute-traffic-input.common-header.api-ver`'/>\r
+ <parameter name='lcm-dmaap.originator-id' value='`$distribute-traffic-input.common-header.originator-id`'/>\r
+ <parameter name='lcm-dmaap.request-id' value='`$distribute-traffic-input.common-header.request-id`'/>\r
+ <parameter name='lcm-dmaap.sub-request-id' value='`$distribute-traffic-input.common-header.sub-request-id`'/>\r
+ <parameter name='lcm-dmaap.flags.mode' value='`$distribute-traffic-input.common-header.flags.mode`'/>\r
+ <parameter name='lcm-dmaap.flags.force' value='`$distribute-traffic-input.common-header.flags.force`'/>\r
+ <parameter name='lcm-dmaap.flags.ttl' value='`$distribute-traffic-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
+ <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
+ <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+ <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+ <parameter name='format' value='json' />\r
+ <parameter name='httpMethod' value='POST' />\r
+ <parameter name='contentType' value='application/json' />\r
+ <parameter name="responsePrefix" value="lcm" />\r
+ <outcome value='failure'>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value='Failed to Publish to DMaap'/>\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
+ </block>\r
+ </outcome>\r
+ <outcome value='100'>\r
+ <execute plugin='org.onap.ccsdk.sli.adaptors.ansible.AnsibleAdapter' method='reqExecResult' >\r
+ <parameter name='AgentUrl' value='`$prop.ansible.agenturl`'/>\r
+ <parameter name='User' value='`$prop.ansible.user`'/>\r
+ <parameter name='Password' value='`$prop.ansible.password`'/>\r
+ <parameter name='Id' value='`$org.onap.appc.adapter.ansible.Id`'/>\r
+ <parameter name='PlaybookName' value='`$prop.lcm.distribute-traffic.playbookname`'/>\r
+ <outcome value='failure'>\r
+ <block>\r
+ <set>\r
+ <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+ <parameter name='lcm-dmaap.correlation-id' value="`$distribute-traffic-input.common-header.request-id + '-' + $distribute-traffic-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='distribute-traffic'/>\r
+ <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+ <parameter name='lcm-dmaap.timestamp' value='`$distribute-traffic-input.common-header.timestamp`'/>\r
+ <parameter name='lcm-dmaap.api-ver' value='`$distribute-traffic-input.common-header.api-ver`'/>\r
+ <parameter name='lcm-dmaap.originator-id' value='`$distribute-traffic-input.common-header.originator-id`'/>\r
+ <parameter name='lcm-dmaap.request-id' value='`$distribute-traffic-input.common-header.request-id`'/>\r
+ <parameter name='lcm-dmaap.sub-request-id' value='`$distribute-traffic-input.common-header.sub-request-id`'/>\r
+ <parameter name='lcm-dmaap.flags.mode' value='`$distribute-traffic-input.common-header.flags.mode`'/>\r
+ <parameter name='lcm-dmaap.flags.force' value='`$distribute-traffic-input.common-header.flags.force`'/>\r
+ <parameter name='lcm-dmaap.flags.ttl' value='`$distribute-traffic-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
+ <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
+ <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+ <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+ <parameter name='format' value='json' />\r
+ <parameter name='httpMethod' value='POST' />\r
+ <parameter name='contentType' value='application/json' />\r
+ <parameter name="responsePrefix" value="lcm" />\r
+ <outcome value='failure'>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value='Failed to Publish to DMaap'/>\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
+ </block>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <block>\r
+ <set>\r
+ <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+ <parameter name='lcm-dmaap.correlation-id' value="`$distribute-traffic-input.common-header.request-id + '-' + $distribute-traffic-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='distribute-traffic'/>\r
+ <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+ <parameter name='lcm-dmaap.timestamp' value='`$distribute-traffic-input.common-header.timestamp`'/>\r
+ <parameter name='lcm-dmaap.api-ver' value='`$distribute-traffic-input.common-header.api-ver`'/>\r
+ <parameter name='lcm-dmaap.originator-id' value='`$distribute-traffic-input.common-header.originator-id`'/>\r
+ <parameter name='lcm-dmaap.request-id' value='`$distribute-traffic-input.common-header.request-id`'/>\r
+ <parameter name='lcm-dmaap.sub-request-id' value='`$distribute-traffic-input.common-header.sub-request-id`'/>\r
+ <parameter name='lcm-dmaap.flags.mode' value='`$distribute-traffic-input.common-header.flags.mode`'/>\r
+ <parameter name='lcm-dmaap.flags.force' value='`$distribute-traffic-input.common-header.flags.force`'/>\r
+ <parameter name='lcm-dmaap.flags.ttl' value='`$distribute-traffic-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
+ <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
+ <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+ <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+ <parameter name='format' value='json' />\r
+ <parameter name='httpMethod' value='POST' />\r
+ <parameter name='contentType' value='application/json' />\r
+ <parameter name="responsePrefix" value="lcm" />\r
+ <outcome value='failure'>\r
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+ <parameter name="logger" value="message-log"/>\r
+ <parameter name="field1" value='Failed to Publish to DMaap'/>\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
+ </block>\r
+ </outcome>\r
+ </execute>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </execute>\r
+ </block>\r
+ </method>\r
+</service-logic>
\ No newline at end of file