+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>
+ <parameter name='outputPath' value='tmp.cellCUList_length' />
+ <parameter name='source' value="`'getNFNSSIRIC-cps-response.['+$idy+'].GNBCUCPFunction[' + $idz +'].NRCellCU_length'`" />
+ </execute>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="cellCU Length "/>
+ <parameter name="field2" value="`$tmp.cellCUList_length`"/>
+ <parameter name="field3" value="List of cells Length "/>
+ <parameter name="field4" value="`$getListofCells-cps-response.taCellsList_length`"/>
+ </record>
+ <for index='idcu' start='0' end='`$tmp.cellCUList_length`' >
+ <block atomic='true'>
+ <for index='id-ta' start='0' end='`$tmp.tacells.length`' >
+ <block atomic='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>
+ <parameter name='outputPath' value='tmp.cellCULocalId' />
+ <parameter name='source' value="`'getNFNSSIRIC-cps-response.['+$idy+'].GNBCUCPFunction['+ $idz +'].NRCellCU['+ $idcu +'].attributes.cellLocalId'`" />
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>
+ <parameter name='outputPath' value='tmp.cellCU2' />
+ <parameter name='source' value="`'getListofCells-cps-response.[0].taCellsList[' + $id-ta + '].cellLocalId'`" />
+ </execute>
+ <switch test='`$tmp.cellCULocalId == $tmp.cellCU2`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="`$tmp.cellCULocalId`"/>
+ <parameter name="field2" value="CellCU is applicable for the NSSAI "/>
+ </record>
+ <set>
+ <parameter name='tmp.cu-applicable' value='true'/>
+ </set>
+ <switch test='`$prop.ransim-mounted`'>
+ <outcome value='false'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.patchPLMNInfoListEntry.ToNRCellCU`"/>
+ <parameter name="outputPath" value="tmp.patchPLMNInfoListEntry.url"/>
+ <parameter name="target" value="{idNearRTRIC}"/>
+ <parameter name="replacement" value="`$tmp.nearRTRICId`"/>
+ </execute>
+ </outcome>
+ <outcome value='true'>
+ <block atomic='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.patchPLMNInfoListEntry.ToNRCellCU.ransim-mounted`"/>
+ <parameter name="outputPath" value="tmp.patchPLMNInfoListEntry.url"/>
+ <parameter name="target" value="{idNearRTRIC}"/>
+ <parameter name="replacement" value="`$tmp.nearRTRICId`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.patchPLMNInfoListEntry.url`"/>
+ <parameter name="outputPath" value="tmp.patchPLMNInfoListEntry.url"/>
+ <parameter name="target" value="{mountName}"/>
+ <parameter name="replacement" value="`$tmp.CUCPName`"/>
+ </execute>
+ </block>
+ </outcome>
+ </switch>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.patchPLMNInfoListEntry.url`"/>
+ <parameter name="outputPath" value="tmp.patchPLMNInfoListEntry.url"/>
+ <parameter name="target" value="{idGNBCUCPFunction}"/>
+ <parameter name="replacement" value="`$tmp.CUCPName`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
+ <parameter name="original_string" value="`$tmp.cellCULocalId`" />
+ <parameter name="regex" value="\."/>
+ <parameter name="ctx_memory_result_key" value="tmp.cellId" />
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.patchPLMNInfoListEntry.url`"/>
+ <parameter name="outputPath" value="tmp.patchPLMNInfoListEntry.url"/>
+ <parameter name="target" value="{idNRCellCU}"/>
+ <parameter name="replacement" value="`$tmp.cellId[0]`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.patchPLMNInfoListEntry.url`"/>
+ <parameter name="outputPath" value="tmp.patchPLMNInfoListEntry.url"/>
+ <parameter name="target" value="{mcc}"/>
+ <parameter name="replacement" value="`$tmp.mcc`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.patchPLMNInfoListEntry.url`"/>
+ <parameter name="outputPath" value="tmp.patchPLMNInfoListEntry.url"/>
+ <parameter name="target" value="{mnc}"/>
+ <parameter name="replacement" value="`$tmp.mnc`"/>
+ </execute>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="patch cellCU NSSAI parameters"/>
+ <parameter name="field2" value="`$tmp.nearRTRICId`"/>
+ <parameter name="field3" value="`$tmp.CUCPName`"/>
+ <parameter name="field4" value="`$tmp.cellId[0]`"/>
+ <parameter name="field5" value="`$tmp.mcc`"/>
+ <parameter name="field6" value="`$tmp.mnc`"/>
+ <parameter name="field7" value="`$tmp.patchPLMNInfoListEntry.url`"/>
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/ranSlice-patch-sNSSAI-NRCellCU.json'`" />
+ <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.patchPLMNInfoListEntry.url`"/>
+ <parameter name="restapiUser" value="`$prop.controller.user`" />
+ <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+ <parameter name="httpMethod" value="PATCH"/>
+ <parameter name="responsePrefix" value="patch-cellCU-PLMNInfoList-response"/>
+ <parameter name='contentType' value='application/yang.patch+json' />
+ <parameter name='accept' value='application/yang.patch-status+json'/>
+ <parameter name='format' value='json' />
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error patching cellCU PLMNInfoList. Aborting RPC executiopn'/>
+ </set>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error updating NRcellCU - PLMNInfo. Aborting RPC executiopn'/>
+ </return>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSlice.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Response code"/>
+ <parameter name="field2" value="`$error-code`" />
+ </record>
+ <set>
+ <parameter name="tmp.so.callbackURL" value="`$payloadJson.input.callbackURL`"/>
+ <parameter name="tmp.reason" value="`$error-message`"/>
+ <parameter name="tmp.requestID" value="`$instantiateRANSlice-input.common-header.request-id`"/>
+ <parameter name="tmp.action" value="`$instantiateRANSlice-input.action`"/>
+ </set>
+ <switch test='`$error-code`'>
+ <outcome value='200'>
+ <set>
+ <parameter name="tmp.status" value="success"/>
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name="tmp.status" value="`$error-code`"/>
+ </set>
+ </outcome>
+ </switch>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/so-callback-response.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="URL for SO Callback Response"/>
+ <parameter name='field2' value="`$tmp.so.callbackURL`" />
+ <parameter name='field3' value="`$tmp.status`" />
+ <parameter name='field4' value="`$tmp.reason`" />
+ <parameter name='field5' value="`$tmp.requestID`" />
+ <parameter name='field6' value="`$tmp.action`" />
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/ranSlice-so-response.json'`" />
+ <parameter name="restapiUrl" value="`$tmp.so.callbackURL`"/>
+ <parameter name="httpMethod" value="POST"/>
+ <parameter name="responsePrefix" value="so-callback-modify-response"/>
+ <parameter name='contentType' value='application/json' />
+ <parameter name='format' value='json' />
+ <parameter name='accept' value='*/*' />
+ <parameter name="convertResponse" value="true"/>
+ <parameter name="restapiUser" value="`$prop.restapi.so.user`" />
+ <parameter name="restapiPassword" value="`$prop.restapi.so.password`"/>
+ <outcome value='failure'>
+ <block>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error sending SO Response" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="SO Response Sent "/>
+ </record>
+ </block>
+ </outcome>
+ </execute>
+ </block>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Successfully Patched - cellCU PLMNInfo List"/>
+ </record>
+ </block>
+ </outcome>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setPropertiesForList'>
+ <parameter name='prefixKey' value='tmp.CUCPList.response' />
+ <parameter name='keyName' value='gNBCUName' />
+ <parameter name='keyValue' value="`$tmp.CUCPName`"/>
+ </execute>
+ <block atomic='true'>
+ <set>
+ <parameter name='tmp.maxNumberOfConnsPercellCU' value='`$tmp.payload.maxNumberofConns / $tmp.cellCUList_length`' />
+ </set>
+ <set>
+ <parameter name='tmp.rRMPolicyDedicatedRatio.CellCU1' value='`$tmp.maxNumberOfConnsPercellCU * 100`' />
+ </set>
+ <set>
+ <parameter name='tmp.rRMPolicyDedicatedRatio_SliceProfile' value='`$tmp.rRMPolicyDedicatedRatio.CellCU1 / $prop.nrcellcu.maxNumberOfConnsPerCell`' />
+ </set>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="RRMPolicyRatio temp1 - "/>
+ <parameter name="field2" value="`$tmp.maxNumberOfConnsPercellCU`"/>
+ <parameter name="field3" value="RRMPolicyRatio temp2 - "/>
+ <parameter name="field4" value="`$tmp.rRMPolicyDedicatedRatio.CellCU1`"/>
+ <parameter name="field5" value="RRMPolicyRatio for this profile is - "/>
+ <parameter name="field6" value="`$tmp.rRMPolicyDedicatedRatio_SliceProfile`"/>
+ </record>
+ <switch test='`$prop.ransim-mounted`'>
+ <outcome value='false'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.RRMPolicyRatioEntry.ToNRCellCU`"/>
+ <parameter name="outputPath" value="tmp.getRRMPolicyRatio.url"/>
+ <parameter name="target" value="{idNearRTRIC}"/>
+ <parameter name="replacement" value="`$tmp.nearRTRICId`"/>
+ </execute>
+ </outcome>
+ <outcome value='true'>
+ <block atomic='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.RRMPolicyRatioEntry.ToNRCellCU.ransim-mounted`"/>
+ <parameter name="outputPath" value="tmp.getRRMPolicyRatio.url"/>
+ <parameter name="target" value="{idNearRTRIC}"/>
+ <parameter name="replacement" value="`$tmp.nearRTRICId`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.getRRMPolicyRatio.url`"/>
+ <parameter name="outputPath" value="tmp.getRRMPolicyRatio.url"/>
+ <parameter name="target" value="{mountName}"/>
+ <parameter name="replacement" value="`$tmp.CUCPName`"/>
+ </execute>
+ </block>
+ </outcome>
+ </switch>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.getRRMPolicyRatio.url`"/>
+ <parameter name="outputPath" value="tmp.getRRMPolicyRatio.url"/>
+ <parameter name="target" value="{idGNBCUCPFunction}"/>
+ <parameter name="replacement" value="`$tmp.CUCPName`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.getRRMPolicyRatio.url`"/>
+ <parameter name="outputPath" value="tmp.getRRMPolicyRatio.url"/>
+ <parameter name="target" value="{idNRCellCU}"/>
+ <parameter name="replacement" value="`$tmp.cellId[0]`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.getRRMPolicyRatio.url`"/>
+ <parameter name="restapiUser" value="`$prop.controller.user`" />
+ <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+ <parameter name="httpMethod" value="GET"/>
+ <parameter name="responsePrefix" value="get-rrmpolicyratio-response"/>
+ <parameter name='contentType' value='application/json' />
+ <parameter name='format' value='json' />
+ <parameter name='accept' value='application/json' />
+ <parameter name="convertResponse" value="true"/>
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error in retrieving RRMPolicyRatio. Aborting RPC executiopn'/>
+ </set>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error in Fetching RRMPolicyRatio - CellCU. Aborting RPC executiopn'/>
+ </return>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSlice.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Response code"/>
+ <parameter name="field2" value="`$error-code`" />
+ </record>
+ <set>
+ <parameter name="tmp.so.callbackURL" value="`$payloadJson.input.callbackURL`"/>
+ <parameter name="tmp.reason" value="`$error-message`"/>
+ <parameter name="tmp.requestID" value="`$instantiateRANSlice-input.common-header.request-id`"/>
+ <parameter name="tmp.action" value="`$instantiateRANSlice-input.action`"/>
+ </set>
+ <switch test='`$error-code`'>
+ <outcome value='200'>
+ <set>
+ <parameter name="tmp.status" value="success"/>
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name="tmp.status" value="`$error-code`"/>
+ </set>
+ </outcome>
+ </switch>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/so-callback-response.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="URL for SO Callback Response"/>
+ <parameter name='field2' value="`$tmp.so.callbackURL`" />
+ <parameter name='field3' value="`$tmp.status`" />
+ <parameter name='field4' value="`$tmp.reason`" />
+ <parameter name='field5' value="`$tmp.requestID`" />
+ <parameter name='field6' value="`$tmp.action`" />
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/ranSlice-so-response.json'`" />
+ <parameter name="restapiUrl" value="`$tmp.so.callbackURL`"/>
+ <parameter name="httpMethod" value="POST"/>
+ <parameter name="responsePrefix" value="so-callback-modify-response"/>
+ <parameter name='contentType' value='application/json' />
+ <parameter name='format' value='json' />
+ <parameter name='accept' value='*/*' />
+ <parameter name="convertResponse" value="true"/>
+ <parameter name="restapiUser" value="`$prop.restapi.so.user`" />
+ <parameter name="restapiPassword" value="`$prop.restapi.so.password`"/>
+ <outcome value='failure'>
+ <block>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error sending SO Response" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="SO Response Sent "/>
+ </record>
+ </block>
+ </outcome>
+ </execute>
+ </block>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Successfully Retrieved - RRMPolicyRatio"/>
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
+ <parameter name='filename' value='/opt/opendaylight/current/data/log/ranSlice-modifyallocate-cps-context.log' />
+ </execute>
+ </block>
+ </outcome>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.patchPLMNInfoListEntry.url`"/>
+ <parameter name="outputPath" value="tmp.patchPLMNInfoListEntry.url"/>
+ <parameter name="target" value="{idNRCellCU}"/>
+ <parameter name="replacement" value="`$tmp.cellId[0]`"/>
+ </execute>
+ <set>
+ <parameter name='tmp.rrmPolicyRatioList_length' value='`$get-rrmpolicyratio-response.attributes.RRMPolicyRatio_length`'/>
+ </set>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="RRMPolicyRatioList size"/>
+ <parameter name="field2" value="`$tmp.rrmPolicyRatioList_length`"/>
+ </record>
+ <for index='idcu-rrm' start='0' end='`$tmp.rrmPolicyRatioList_length`' >
+ <block atomic='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>
+ <parameter name='outputPath' value='tmp.rrmPolicyDedicatedRatiocellCU_old' />
+ <parameter name='source' value="`'get-rrmpolicyratio-response.attributes.RRMPolicyRatio['+ $idcu-rrm +'].attributes.rRMPolicyDedicatedRatio'`" />
+ </execute>
+ <set>
+ <parameter name='tmp.rrmPolicyDedicatedRatio_CellCU_new' value='`$tmp.rrmPolicyDedicatedRatiocellCU_old + $tmp.rRMPolicyDedicatedRatio_SliceProfile`' />
+ </set>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Existing RRMPolicyRatio for CellCU is - "/>
+ <parameter name="field2" value="`$tmp.rrmPolicyDedicatedRatiocellCU_old`"/>
+ <parameter name="field3" value="Updated RRMPolicyRatio for CellCU is - "/>
+ <parameter name="field4" value="`$tmp.rrmPolicyDedicatedRatio_CellCU_new`"/>
+ </record>
+ <switch test='`$prop.ransim-mounted`'>
+ <outcome value='false'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.RRMPolicyRatioEntry.ToNRCellCU`"/>
+ <parameter name="outputPath" value="tmp.getRRMPolicyRatio.url"/>
+ <parameter name="target" value="{idNearRTRIC}"/>
+ <parameter name="replacement" value="`$tmp.nearRTRICId`"/>
+ </execute>
+ </outcome>
+ <outcome value='true'>
+ <block atomic='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.RRMPolicyRatioEntry.ToNRCellCU.ransim-mounted`"/>
+ <parameter name="outputPath" value="tmp.getRRMPolicyRatio.url"/>
+ <parameter name="target" value="{idNearRTRIC}"/>
+ <parameter name="replacement" value="`$tmp.nearRTRICId`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.getRRMPolicyRatio.url`"/>
+ <parameter name="outputPath" value="tmp.getRRMPolicyRatio.url"/>
+ <parameter name="target" value="{mountName}"/>
+ <parameter name="replacement" value="`$tmp.CUCPName`"/>
+ </execute>
+ </block>
+ </outcome>
+ </switch>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.getRRMPolicyRatio.url`"/>
+ <parameter name="outputPath" value="tmp.getRRMPolicyRatio.url"/>
+ <parameter name="target" value="{idGNBCUCPFunction}"/>
+ <parameter name="replacement" value="`$tmp.CUCPName`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.getRRMPolicyRatio.url`"/>
+ <parameter name="outputPath" value="tmp.getRRMPolicyRatio.url"/>
+ <parameter name="target" value="{idNRCellCU}"/>
+ <parameter name="replacement" value="`$tmp.cellId[0]`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>
+ <parameter name='outputPath' value='tmp.rrmPolicyMembers' />
+ <parameter name='source' value="`'get-rrmpolicyratio-response.attributes.RRMPolicyRatio['+ $idcu-rrm+ ']'.attributes.rRMPolicyMemberList_length'`" />
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>
+ <parameter name='outputPath' value='tmp.RRMPolicyRatio_id' />
+ <parameter name='source' value="`'get-rrmpolicyratio-response.attributes.RRMPolicyRatio['+ $idcu-rrm+'].id'`" />
+ </execute>
+ <set>
+ <parameter name='tmp.RRMPolicyMember_id' value='`$tmp.rrmPolicyMembers+1`'/>
+ </set>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="RRMPolicyRatio_id is - "/>
+ <parameter name="field2" value="`$tmp.RRMPolicyRatio_id`"/>
+ <parameter name="field3" value="RRMPolicyMember_id - "/>
+ <parameter name="field4" value="`$tmp.RRMPolicyMember_id`"/>
+ <parameter name="field5" value="RRMPolicyRatio update URL is - "/>
+ <parameter name="field6" value="`$tmp.getRRMPolicyRatio.url`"/>
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/ranSlice-patch-RRMPolicyRatio-NRCellCU.json'`" />
+ <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.getRRMPolicyRatio.url`"/>
+ <parameter name="restapiUser" value="`$prop.controller.user`" />
+ <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+ <parameter name="httpMethod" value="PATCH"/>
+ <parameter name="responsePrefix" value="patch-cellCU-RRMPolicyRatio-response"/>
+ <parameter name='contentType' value='application/yang.patch+json' />
+ <parameter name='accept' value='application/yang.patch-status+json'/>
+ <parameter name='format' value='json' />
+ <outcome value='success'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Successfully Patched - cellCU RRMpolicyRatio"/>
+ </record>
+ </block>
+ </outcome>
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error patching cellCU RRMPolicyRatio. Aborting RPC executiopn'/>
+ </set>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error updating NRCellDU - RRMPolicyRAtio. Aborting RPC executiopn'/>
+ </return>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSlice.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Response code"/>
+ <parameter name="field2" value="`$error-code`" />
+ </record>
+ <set>
+ <parameter name="tmp.so.callbackURL" value="`$payloadJson.input.callbackURL`"/>
+ <parameter name="tmp.reason" value="`$error-message`"/>
+ <parameter name="tmp.requestID" value="`$instantiateRANSlice-input.common-header.request-id`"/>
+ <parameter name="tmp.action" value="`$instantiateRANSlice-input.action`"/>
+ </set>
+ <switch test='`$error-code`'>
+ <outcome value='200'>
+ <set>
+ <parameter name="tmp.status" value="success"/>
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name="tmp.status" value="`$error-code`"/>
+ </set>
+ </outcome>
+ </switch>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/so-callback-response.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="URL for SO Callback Response"/>
+ <parameter name='field2' value="`$tmp.so.callbackURL`" />
+ <parameter name='field3' value="`$tmp.status`" />
+ <parameter name='field4' value="`$tmp.reason`" />
+ <parameter name='field5' value="`$tmp.requestID`" />
+ <parameter name='field6' value="`$tmp.action`" />
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/ranSlice-so-response.json'`" />
+ <parameter name="restapiUrl" value="`$tmp.so.callbackURL`"/>
+ <parameter name="httpMethod" value="POST"/>
+ <parameter name="responsePrefix" value="so-callback-modify-response"/>
+ <parameter name='contentType' value='application/json' />
+ <parameter name='format' value='json' />
+ <parameter name='accept' value='*/*' />
+ <parameter name="convertResponse" value="true"/>
+ <parameter name="restapiUser" value="`$prop.restapi.so.user`" />
+ <parameter name="restapiPassword" value="`$prop.restapi.so.password`"/>
+ <outcome value='failure'>
+ <block>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error sending SO Response" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="SO Response Sent "/>
+ </record>
+ </block>
+ </outcome>
+ </execute>
+ </block>
+ </block>
+ </outcome>
+ </execute>
+ </block>
+ </for>
+ </block>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="CUCP - CPS update"/>
+ </record>
+ <set>
+ <parameter name='tmp.cellCULocalId' value='`$tmp.cellId[0]`'/>
+ <parameter name='tmp.maxNumberOfConns' value='`$tmp.payload.maxNumberofConns`'/>
+ <parameter name='tmp.gNBCUCPList.gNBCUName' value='`$tmp.CUCPName`'/>
+ <parameter name='tmp.gNBCUCPList.gNBId' value='`$tmp.gNBId`'/>
+ <parameter name='tmp.gNBCUCPList.nFType' value='RRC Connected Users'/>
+ </set>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="cellLocalId"/>
+ <parameter name="field2" value="`$tmp.cellId[0]`"/>
+ <parameter name="field3" value="pLMNId"/>
+ <parameter name="field4" value="`$tmp.payload.pLMNId`"/>
+ <parameter name="field5" value="maxNumberOfConns"/>
+ <parameter name="field6" value="`$tmp.maxNumberOfConns`"/>
+ <parameter name="field7" value="gNBCUName"/>
+ <parameter name="field8" value="`$tmp.gNBCUCPList.gNBCUName`"/>
+ <parameter name="field9" value="gNBId"/>
+ <parameter name="field10" value="`$tmp.gNBCUCPList.gNBId`"/>
+ <parameter name="field11" value="nFType"/>
+ <parameter name="field12" value="`$tmp.gNBCUCPList.nFType`"/>
+ </record>
+ <block atomic='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.cps.tbdmt.execute.endpoint`"/>
+ <parameter name="outputPath" value="tmp.cps.updateCUCP.url"/>
+ <parameter name="target" value="{schemaSet}"/>
+ <parameter name="replacement" value="`$prop.rannetwork.schemaset`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.cps.updateCUCP.url`"/>
+ <parameter name="outputPath" value="tmp.cps.updateCUCP.url"/>
+ <parameter name="target" value="{templateId}"/>
+ <parameter name="replacement" value="`$prop.tbdmt.template.put-nrcellcu`"/>
+ </execute>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="URL for CPS TDBMT to update CUCP in CPS"/>
+ <parameter name='field2' value="`$tmp.cps.updateCUCP.url`" />
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="restapiUrl" value="`$tmp.cps.updateCUCP.url`"/>
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/cps-templates/cps-put-gnbcucpfunction.json'`" />
+ <parameter name="httpMethod" value="POST"/>
+ <parameter name="responsePrefix" value="update-gNBCUCP-cps-response"/>
+ <parameter name='contentType' value='application/json' />
+ <parameter name='format' value='json' />
+ <parameter name='accept' value='application/json' />
+ <parameter name="convertResponse" value="true"/>
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error in updating NRCellCU. Aborting RPC executiopn'/>
+ </set>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error updating NRCellCU-PLMNInfo in ConfigDB. Aborting RPC executiopn'/>
+ </return>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSlice.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Response code"/>
+ <parameter name="field2" value="`$error-code`" />
+ </record>
+ <set>
+ <parameter name="tmp.so.callbackURL" value="`$payloadJson.input.callbackURL`"/>
+ <parameter name="tmp.reason" value="`$error-message`"/>
+ <parameter name="tmp.requestID" value="`$instantiateRANSlice-input.common-header.request-id`"/>
+ <parameter name="tmp.action" value="`$instantiateRANSlice-input.action`"/>
+ </set>
+ <switch test='`$error-code`'>
+ <outcome value='200'>
+ <set>
+ <parameter name="tmp.status" value="success"/>
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name="tmp.status" value="`$error-code`"/>
+ </set>
+ </outcome>
+ </switch>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/so-callback-response.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="URL for SO Callback Response"/>
+ <parameter name='field2' value="`$tmp.so.callbackURL`" />
+ <parameter name='field3' value="`$tmp.status`" />
+ <parameter name='field4' value="`$tmp.reason`" />
+ <parameter name='field5' value="`$tmp.requestID`" />
+ <parameter name='field6' value="`$tmp.action`" />
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/ranSlice-so-response.json'`" />
+ <parameter name="restapiUrl" value="`$tmp.so.callbackURL`"/>
+ <parameter name="httpMethod" value="POST"/>
+ <parameter name="responsePrefix" value="so-callback-modify-response"/>
+ <parameter name='contentType' value='application/json' />
+ <parameter name='format' value='json' />
+ <parameter name='accept' value='*/*' />
+ <parameter name="convertResponse" value="true"/>
+ <parameter name="restapiUser" value="`$prop.restapi.so.user`" />
+ <parameter name="restapiPassword" value="`$prop.restapi.so.password`"/>
+ <outcome value='failure'>
+ <block>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error sending SO Response" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="SO Response Sent "/>
+ </record>
+ </block>
+ </outcome>
+ </execute>
+ </block>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Successfully updated NRCellCU pLMNinfo "/>
+ </record>
+ </block>
+ </outcome>
+ </execute>
+ </block>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.configdb.getRRMPolicyRatio-existing.url`"/>
+ <parameter name="outputPath" value="tmp.configdb.getRRMPolicyRatio-existing.url"/>
+ <parameter name="target" value="{resourceId}"/>
+ <parameter name="replacement" value="`$tmp.cellId[0]`"/>
+ </execute>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="get RRMPolicyby Resource URL"/>
+ <parameter name="field2" value="`$tmp.configdb.getRRMPolicyRatio-existing.url`"/>
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.cps.tbdmt.execute.endpoint`"/>
+ <parameter name="outputPath" value="tmp.cps.rrmpolicy.getCUCP.url"/>
+ <parameter name="target" value="{schemaSet}"/>
+ <parameter name="replacement" value="`$prop.rannetwork.schemaset`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.cps.rrmpolicy.getCUCP.url`"/>
+ <parameter name="outputPath" value="tmp.cps.rrmpolicy.getCUCP.url"/>
+ <parameter name="target" value="{templateId}"/>
+ <parameter name="replacement" value="`$prop.tbdmt.template.get-nrcellcu-rrm-policy`"/>
+ </execute>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="URL for CPS TDBMT to get rrm policy in CPS"/>
+ <parameter name='field2' value="`$tmp.cps.rrmpolicy.getCUCP.url`" />
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="restapiUrl" value="`$tmp.cps.rrmpolicy.getCUCP.url`"/>
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/cps-templates/cps-get-nrcellcu-rrm-policy.json'`" />
+ <parameter name="httpMethod" value="POST"/>
+ <parameter name="responsePrefix" value="getrrmpolicyratioinfo-cps-response"/>
+ <parameter name='contentType' value='application/json' />
+ <parameter name='format' value='json' />
+ <parameter name='accept' value='application/json' />
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error in retrieving RRMPolicyRatio. Aborting RPC executiopn'/>
+ </set>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error in Fetching RRMPolicyRatio - CellCU. Aborting RPC executiopn'/>
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Successfully Retrieved - RRMPolicyRatio"/>
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
+ <parameter name='filename' value='/opt/opendaylight/current/data/log/ranSlice-modifyallocate-cps-context.log' />
+ </execute>
+ </block>
+ </outcome>
+ </execute>
+ <set>
+ <parameter name='tmp.rrmPolicyRatioCPS_length' value='`$getrrmpolicyratioinfo-cps-response.attributes.RRMPolicyRatio_length`'/>
+ </set>
+ <for index='idcu-rrm1' start='0' end='`$tmp.rrmPolicyRatioCPS_length`' >
+ <block atomic='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>
+ <parameter name='outputPath' value='tmp.RRMPolicyRatio_id' />
+ <parameter name='source' value="`'getrrmpolicyratioinfo-cps-response.attributes.RRMPolicyRatio['+$idcu-rrm1+'].id'`" />
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>
+ <parameter name='outputPath' value='tmp.nrcellcu-rrmpolicymembers.size' />
+ <parameter name='source' value="`'getrrmpolicyratioinfo-cps-response.attributes.RRMPolicyRatio['+$idcu-rrm1+'].attributes.rRMPolicyMemberList_length'`" />
+ </execute>
+ <set>
+ <parameter name='tmp.RRMPolicyMember_id' value='`$tmp.nrcellcu-rrmpolicymembers.size+1`'/>
+ </set>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="rRMPolicyid"/>
+ <parameter name="field2" value="`$tmp.RRMPolicyRatio_id`"/>
+ <parameter name="field3" value="rrmpolicyembers length"/>
+ <parameter name="field4" value="`$tmp.nrcellcu-rrmpolicymembers.size`"/>
+ <parameter name="field5" value="rrmpolicyemberid"/>
+ <parameter name="field6" value="`$tmp.RRMPolicyMember_id`"/>
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.cps.tbdmt.execute.endpoint`"/>
+ <parameter name="outputPath" value="tmp.cps.rrmpolicy.putCUCP.url"/>
+ <parameter name="target" value="{schemaSet}"/>
+ <parameter name="replacement" value="`$prop.rannetwork.schemaset`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.cps.rrmpolicy.putCUCP.url`"/>
+ <parameter name="outputPath" value="tmp.cps.rrmpolicy.putCUCP.url"/>
+ <parameter name="target" value="{templateId}"/>
+ <parameter name="replacement" value="`$prop.tbdmt.template.put-nrcellcu-rrm-policy`"/>
+ </execute>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="URL for CPS TDBMT to update rrm policy in CPS"/>
+ <parameter name='field2' value="`$tmp.cps.rrmpolicy.putCUCP.url`" />
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="restapiUrl" value="`$tmp.cps.rrmpolicy.putCUCP.url`"/>
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/cps-templates/cps-put-nrcellcu-rrm-policy-ratio.json'`" />
+ <parameter name="httpMethod" value="POST"/>
+ <parameter name="responsePrefix" value="update-gNBCUCP-rrmpolicy-configdb-response"/>
+ <parameter name='contentType' value='application/json' />
+ <parameter name='format' value='json' />
+ <parameter name='accept' value='application/json' />
+ <parameter name="convertResponse" value="true"/>
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error in updating RRMPolicy member - NRCellCU. Aborting RPC executiopn'/>
+ </set>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error updating NRCellCU-RRMPolicyRatio in ConfigDB. Aborting RPC executiopn'/>
+ </return>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSlice.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Response code"/>
+ <parameter name="field2" value="`$error-code`" />
+ </record>
+ <set>
+ <parameter name="tmp.so.callbackURL" value="`$payloadJson.input.callbackURL`"/>
+ <parameter name="tmp.reason" value="`$error-message`"/>
+ <parameter name="tmp.requestID" value="`$instantiateRANSlice-input.common-header.request-id`"/>
+ <parameter name="tmp.action" value="`$instantiateRANSlice-input.action`"/>
+ </set>
+ <switch test='`$error-code`'>
+ <outcome value='200'>
+ <set>
+ <parameter name="tmp.status" value="success"/>
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name="tmp.status" value="`$error-code`"/>
+ </set>
+ </outcome>
+ </switch>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/so-callback-response.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="URL for SO Callback Response"/>
+ <parameter name='field2' value="`$tmp.so.callbackURL`" />
+ <parameter name='field3' value="`$tmp.status`" />
+ <parameter name='field4' value="`$tmp.reason`" />
+ <parameter name='field5' value="`$tmp.requestID`" />
+ <parameter name='field6' value="`$tmp.action`" />
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/ranSlice-so-response.json'`" />
+ <parameter name="restapiUrl" value="`$tmp.so.callbackURL`"/>
+ <parameter name="httpMethod" value="POST"/>
+ <parameter name="responsePrefix" value="so-callback-modify-response"/>
+ <parameter name='contentType' value='application/json' />
+ <parameter name='format' value='json' />
+ <parameter name='accept' value='*/*' />
+ <parameter name="convertResponse" value="true"/>
+ <parameter name="restapiUser" value="`$prop.restapi.so.user`" />
+ <parameter name="restapiPassword" value="`$prop.restapi.so.password`"/>
+ <outcome value='failure'>
+ <block>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error sending SO Response" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="SO Response Sent "/>
+ </record>
+ </block>
+ </outcome>
+ </execute>
+ </block>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Successfully updated CPS - NRCellCU RRMPolicy "/>
+ </record>
+ </block>
+ </outcome>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.cps.tbdmt.execute.endpoint`"/>
+ <parameter name="outputPath" value="tmp.cps.rrmpolicy.member.putCUCP.url"/>
+ <parameter name="target" value="{schemaSet}"/>
+ <parameter name="replacement" value="`$prop.rannetwork.schemaset`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$tmp.cps.rrmpolicy.member.putCUCP.url`"/>
+ <parameter name="outputPath" value="tmp.cps.rrmpolicy.member.putCUCP.url"/>
+ <parameter name="target" value="{templateId}"/>
+ <parameter name="replacement" value="`$prop.tbdmt.template.put-nrcellcu-rrm-policy-member`"/>
+ </execute>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="URL for CPS TDBMT to update rrm policy member in CPS"/>
+ <parameter name='field2' value="`$tmp.cps.rrmpolicy.member.putCUCP.url`" />
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="restapiUrl" value="`$tmp.cps.rrmpolicy.member.putCUCP.url`"/>
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/cps-templates/cps-put-nrcellcu-rrm-policy-member.json'`" />
+ <parameter name="httpMethod" value="POST"/>
+ <parameter name="responsePrefix" value="update-nrcellcu-rrmpolicymember-configdb-response"/>
+ <parameter name='contentType' value='application/json' />
+ <parameter name='format' value='json' />
+ <parameter name='accept' value='application/json' />
+ <parameter name="convertResponse" value="true"/>
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error in updating RRMPolicyRatio - NRCellCU. Aborting RPC executiopn'/>
+ </set>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value='Error updating NRCellCU-RRMPolicyRatio in ConfigDB. Aborting RPC executiopn'/>
+ </return>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSlice.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Response code"/>
+ <parameter name="field2" value="`$error-code`" />
+ </record>
+ <set>
+ <parameter name="tmp.so.callbackURL" value="`$payloadJson.input.callbackURL`"/>
+ <parameter name="tmp.reason" value="`$error-message`"/>
+ <parameter name="tmp.requestID" value="`$instantiateRANSlice-input.common-header.request-id`"/>
+ <parameter name="tmp.action" value="`$instantiateRANSlice-input.action`"/>
+ </set>
+ <switch test='`$error-code`'>
+ <outcome value='200'>
+ <set>
+ <parameter name="tmp.status" value="success"/>
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name="tmp.status" value="`$error-code`"/>
+ </set>
+ </outcome>
+ </switch>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/so-callback-response.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="URL for SO Callback Response"/>
+ <parameter name='field2' value="`$tmp.so.callbackURL`" />
+ <parameter name='field3' value="`$tmp.status`" />
+ <parameter name='field4' value="`$tmp.reason`" />
+ <parameter name='field5' value="`$tmp.requestID`" />
+ <parameter name='field6' value="`$tmp.action`" />
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/ranSlice-so-response.json'`" />
+ <parameter name="restapiUrl" value="`$tmp.so.callbackURL`"/>
+ <parameter name="httpMethod" value="POST"/>
+ <parameter name="responsePrefix" value="so-callback-modify-response"/>
+ <parameter name='contentType' value='application/json' />
+ <parameter name='format' value='json' />
+ <parameter name='accept' value='*/*' />
+ <parameter name="convertResponse" value="true"/>
+ <parameter name="restapiUser" value="`$prop.restapi.so.user`" />
+ <parameter name="restapiPassword" value="`$prop.restapi.so.password`"/>
+ <outcome value='failure'>
+ <block>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error sending SO Response" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="SO Response Sent "/>
+ </record>
+ </block>
+ </outcome>
+ </execute>
+ </block>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Successfully updated CPS - NRCellCU RRMPolicyMember "/>
+ </record>
+ </block>
+ </outcome>
+ </execute>
+ </block>
+ </for>
+ </block>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ </block>
+ </for>
+ </block>
+ </for>
+ </block>
+ <block atomic='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue'>
+ <parameter name='outputPath' value='tmp.CUUPList_length' />
+ <parameter name='source' value="`'getNFNSSIRIC-cps-response.['+$idy+'].GNBCUUPFunction_length'`" />
+ </execute>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+ <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSliceModifyAllocate-cps.log" />
+ <parameter name="level" value="info" />
+ <parameter name="field1" value="Number of CUUP List Entries "/>
+ <parameter name="field2" value="`$tmp.CUUPList_length`"/>
+ <parameter name="field3" value="for the NearRTRIC"/>
+ <parameter name="field4" value="`$tmp.nearRTRICId`"/>
+ <parameter name="field5" value="applicable:"/>
+ <parameter name="field6" value="`$tmp.cu-applicable`"/>
+ </record>
+ <switch test='`$tmp.cu-applicable`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <for index='id-cuup' start='0' end='`$tmp.CUUPList_length`'>