<service-logic
xmlns='http://www.onap.org/sdnc/svclogic'
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}'>
<method rpc='self-serve-capability-param-resolution' mode='sync'>
<block atomic='true'>
<switch test="`$ss.capability-type`">
<outcome value='vnf'>
<switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length == ''`">
<outcome value='false'>
<for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >
<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>
<outcome value='true'>
<switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length == ''`">
<outcome value='false'>
<for silentFailure='true' index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length`' >
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >
<parameter name="source" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`" />
<parameter name="target" value="$"/>
<outcome value='true'>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
<parameter name="field1" value="`'SS: param[].value with leading $: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`"/>
</record>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
<parameter name='ctx_memory_result_key' value='resource-resolution-split' />
<parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' />
<parameter name='regex' value='\$\{' />
</execute>
<set>
<parameter name="tmp.s1" value='`$resource-resolution-split[0]`'/>
<parameter name="tmp.s2.s2" value=''/>
<parameter name="tmp.resolved.var.value" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`'/>
</set>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
<parameter name='ctx_memory_result_key' value='s2' />
<parameter name='original_string' value='`$resource-resolution-split[1]`' />
<parameter name='regex' value='\}' />
</execute>
<switch test='`$s2_length`'>
<outcome value='1'>
<set>
<parameter name="tmp.s2.s1" value='`$s2[0]`'/>
</set>
</outcome>
<outcome value='2'>
<block>
<set>
<parameter name="tmp.s2.s1" value='`$s2[0]`'/>
</set>
<set>
<parameter name="tmp.s2.s2" value='`$s2[1]`'/>
</set>
</block>
</outcome>
</switch>
<for silentFailure='true' index='cn' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >
<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].name == $tmp.s2.s1`'>
<outcome value='true'>
<set>
<parameter name='tmp.resolved.var.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].value`'/>
</set>
</outcome>
</switch>
</for>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>
<parameter name='source' value='`$tmp.s1`' />
<parameter name='target' value='`$tmp.resolved.var.value`' />
<parameter name='outputPath' value='tmp.result' />
</execute>
<switch test="`$tmp.s2.s2 == ''`">
<outcome value='true'></outcome>
<outcome value='false'>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>
<parameter name='source' value='`$tmp.result`' />
<parameter name='target' value='`$tmp.s2.s2`' />
<parameter name='outputPath' value='tmp.result' />
</execute>
</outcome>
</switch>
<set>
<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>
</set>
</block>
</outcome>
</execute>
</for>
</outcome>
</switch>
</outcome>
</switch>
</for>
</outcome>
</switch>
</outcome>
<outcome value='vf-module'>
<switch test="`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_length == ''`">
<outcome value='false'>
<for silentFailure='true' index='i' start='0' end='`$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_length`' >
<switch test='`$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[$i].resource-resolution-data.capability-name == $ss.capability-name`'>
<outcome value='true'>
<switch test="`$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[$i].resource-resolution-data.resource-key_length == ''`">
<outcome value='false'>
<for silentFailure='true' index='j' start='0' end='`$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[$i].resource-resolution-data.resource-key_length`' >
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >
<parameter name="source" value="`$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[$i].resource-resolution-data.resource-key[$j].value`" />
<parameter name="target" value="$"/>
<outcome value='true'>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
<parameter name="field1" value="`'SS: param[].value with leading $: ' + $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[$i].resource-resolution-data.resource-key[$j].value`"/>
</record>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
<parameter name='ctx_memory_result_key' value='resource-resolution-split' />
<parameter name='original_string' value='`$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[$i].resource-resolution-data.resource-key[$j].value`' />
<parameter name='regex' value='\$\{' />
</execute>
<set>
<parameter name="tmp.s1" value='`$resource-resolution-split[0]`'/>
<parameter name="tmp.s2.s2" value=''/>
<parameter name="tmp.resolved.var.value" value='`$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[$i].resource-resolution-data.resource-key[$j].value`'/>
</set>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
<parameter name='ctx_memory_result_key' value='s2' />
<parameter name='original_string' value='`$resource-resolution-split[1]`' />
<parameter name='regex' value='\}' />
</execute>
<switch test='`$s2_length`'>
<outcome value='1'>
<set>
<parameter name="tmp.s2.s1" value='`$s2[0]`'/>
</set>
</outcome>
<outcome value='2'>
<block>
<set>
<parameter name="tmp.s2.s1" value='`$s2[0]`'/>
</set>
<set>
<parameter name="tmp.s2.s2" value='`$s2[1]`'/>
</set>
</block>
</outcome>
</switch>
<for silentFailure='true' index='cn' start='0' end='`$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_length`' >
<switch test='`$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[$cn].name == $tmp.s2.s1`'>
<outcome value='true'>
<set>
<parameter name='tmp.resolved.var.value' value='`$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[$cn].value`'/>
</set>
</outcome>
</switch>
</for>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>
<parameter name='source' value='`$tmp.s1`' />
<parameter name='target' value='`$tmp.resolved.var.value`' />
<parameter name='outputPath' value='tmp.result' />
</execute>
<switch test="`$tmp.s2.s2 == ''`">
<outcome value='true'></outcome>
<outcome value='false'>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>
<parameter name='source' value='`$tmp.result`' />
<parameter name='target' value='`$tmp.s2.s2`' />
<parameter name='outputPath' value='tmp.result' />
</execute>
</outcome>
</switch>
<set>
<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[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>
</set>
</block>
</outcome>
</execute>
</for>
</outcome>
</switch>
</outcome>
</switch>
</for>
</outcome>
</switch>
</outcome>
<outcome value='pnf'>
<switch test="`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length == ''`">
<outcome value='false'>
<for silentFailure='true' index='i' start='0' end='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' >
<switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>
<outcome value='true'>
<switch test="`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$i].resource-resolution-data.resource-key_length == ''`">
<outcome value='false'>
<for silentFailure='true' index='j' start='0' end='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$i].resource-resolution-data.resource-key_length`' >
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >
<parameter name="source" value="`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`" />
<parameter name="target" value="$"/>
<outcome value='true'>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
<parameter name="field1" value="`'SS: param[].value with leading $: ' + $service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`"/>
</record>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
<parameter name='ctx_memory_result_key' value='resource-resolution-split' />
<parameter name='original_string' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' />
<parameter name='regex' value='\$\{' />
</execute>
<set>
<parameter name="tmp.s1" value='`$resource-resolution-split[0]`'/>
<parameter name="tmp.s2.s2" value=''/>
<parameter name="tmp.resolved.var.value" value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`'/>
</set>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
<parameter name='ctx_memory_result_key' value='s2' />
<parameter name='original_string' value='`$resource-resolution-split[1]`' />
<parameter name='regex' value='\}' />
</execute>
<switch test='`$s2_length`'>
<outcome value='1'>
<set>
<parameter name="tmp.s2.s1" value='`$s2[0]`'/>
</set>
</outcome>
<outcome value='2'>
<block>
<set>
<parameter name="tmp.s2.s1" value='`$s2[0]`'/>
</set>
<set>
<parameter name="tmp.s2.s2" value='`$s2[1]`'/>
</set>
</block>
</outcome>
</switch>
<for silentFailure='true' index='cn' start='0' end='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' >
<switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$cn].name == $tmp.s2.s1`'>
<outcome value='true'>
<set>
<parameter name='tmp.resolved.var.value' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$cn].value`'/>
</set>
</outcome>
</switch>
</for>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>
<parameter name='source' value='`$tmp.s1`' />
<parameter name='target' value='`$tmp.resolved.var.value`' />
<parameter name='outputPath' value='tmp.result' />
</execute>
<switch test="`$tmp.s2.s2 == ''`">
<outcome value='true'></outcome>
<outcome value='false'>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>
<parameter name='source' value='`$tmp.result`' />
<parameter name='target' value='`$tmp.s2.s2`' />
<parameter name='outputPath' value='tmp.result' />
</execute>
</outcome>
</switch>
<set>
<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>
</set>
</block>
</outcome>
</execute>
</for>
</outcome>
</switch>
</outcome>
</switch>
</for>
</outcome>
</switch>
</outcome>
</switch>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
<parameter name="field1" value="DONE: self-serve-capability-param-resolution"/>
</record>
</block>
</method>
</service-logic>