DG Update and Templates for ranSlice feature
[ccsdk/distribution.git] / platform-logic / ran-slice-api / src / main / xml / ran-slice-api_instantiateRANSlice.xml
1 <service-logic
2     xmlns='http://www.onap.org/sdnc/svclogic'
3     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='ran-slice-api' version='${project.version}'>
4     <method rpc='instantiateRANSlice' mode='sync'>
5         <block atomic='true'>
6             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
7                 <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSlice.log" />
8                 <parameter name="level" value="info" />
9                 <parameter name="field1" value="RPC to handle instantiateRANSlice.: "/>
10                 <parameter name="field2" value="`$instantiate-r-a-n-slice-input.action`"/>
11                 <parameter name="field3" value="`$instantiate-r-a-n-slice-input.common-header.timestamp`"/>
12                 <parameter name="field4" value="`$instantiate-r-a-n-slice-input.common-header.request-id`"/>
13                 <parameter name="field5" value="`$instantiate-r-a-n-slice-input.common-header.originator-id`"/>
14                 <parameter name="field6" value="RPC Payload String "/>
15                 <parameter name="field7" value="`$instantiate-r-a-n-slice-input.payload`"/>
16             </record>
17             <set>
18                 <parameter name='error-code' value='200' />
19                 <parameter name='error-message' value='Successful execution of instantiateRANSice RPC' />
20             </set>
21             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='jsonStringToCtx'>
22                 <parameter name='source' value='instantiate-r-a-n-slice-input.payload' />
23                 <parameter name='outputPath' value='payloadJson' />
24                 <parameter name='isEscaped' value='false' />
25                 <outcome value='success'>
26                     <block atomic='true'>
27                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
28                             <parameter name='filename' value='/opt/opendaylight/current/data/log/ranSlice-instantiateRANSlice-context.log' />
29                         </execute>
30                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
31                             <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSlice.log" />
32                             <parameter name="level" value="info" />
33                             <parameter name="field1" value="Payload for instantiateRANSlice.: "/>
34                             <parameter name="field2" value="`$payloadJson.input.sliceProfile.sliceProfileId`"/>
35                             <parameter name="field3" value="`$payloadJson.input.sliceProfile.NSSAI`"/>
36                             <parameter name="field4" value="`$payloadJson.input.sliceProfile.maxNumberofUEs`"/>
37                             <parameter name="field5" value="`$payloadJson.input.sliceProfile.latency`"/>
38                             <parameter name="field6" value="`$payloadJson.input.sliceProfile.uLThptPerSlice`"/>
39                             <parameter name="field7" value="`$payloadJson.input.sliceProfile.dLThptPerSlice`"/>
40                             <parameter name="field8" value="`$payloadJson.input.sliceProfile.maxNumberofConns`"/>
41                             <parameter name="field9" value="`$payloadJson.input.sliceProfile.coverageAreaList[0]`"/>
42                             <parameter name="field10" value="`$payloadJson.input.sliceProfile.uEMobilityLevel`"/>
43                             <parameter name="field11" value="`$payloadJson.input.sliceProfile.resourceSharingLevel`"/>
44                             <parameter name="field12" value="`$payloadJson.input.RANNSSIId`"/>
45                             <parameter name="field13" value="`$payloadJson.input.RANNFNSSIId`"/>
46                             <parameter name="field14" value="`$payloadJson.input.callbackURL`"/>
47                         </record>
48                     </block>
49                 </outcome>
50             </execute>
51             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
52                 <parameter name='filename' value='/opt/opendaylight/current/data/log/ranSlice-instantiateRANSlice-context.log' />
53             </execute>
54             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
55                 <parameter name='fileName' value='/opt/onap/ccsdk/data/properties/ran-slice-api-dg.properties' />
56                 <parameter name='contextPrefix' value='prop' />
57             </execute>
58             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
59                 <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSlice.log" />
60                 <parameter name="level" value="info" />
61                 <parameter name="field1" value="Properties read .. controller details "/>
62                 <parameter name="field2" value="`$prop.controller.user`"/>
63                 <parameter name="field3" value="`$prop.controller.pwd`"/>
64                 <parameter name="field4" value="`$prop.controller.url`"/>
65                 <parameter name="field5" value="ransim-mounted (true/false): "/>
66                 <parameter name="field6" value="`$prop.ransim-mounted`"/>
67                 <parameter name="field7" value="config DB deployed (true/false): "/>
68                 <parameter name="field8" value="`$prop.configdb-deployed`"/>
69             </record>
70             <set>
71                 <parameter name='tmp.payload.trackingArea' value='`$payloadJson.input.sliceProfile.coverageAreaList[0]`'/>
72                 <parameter name='tmp.payload.callbackURL' value='`$payloadJson.input.callbackURL`'/>
73                 <parameter name='tmp.payload.RANNFNSSIId' value='`$payloadJson.input.RANNFNSSIId`'/>
74                 <parameter name='tmp.payload.RANNSSIId' value='`$payloadJson.input.RANNSSIId`'/>
75                 <parameter name='tmp.payload.coverageAreaList_length' value='`$payloadJson.input.sliceProfile.coverageAreaList_length`'/>
76                 <parameter name='tmp.payload.dLThptPerSlice' value='`$payloadJson.input.sliceProfile.dLThptPerSlice`'/>
77                 <parameter name='tmp.payload.latency' value='`$payloadJson.input.sliceProfile.latency`'/>
78                 <parameter name='tmp.payload.maxNumberofConns' value='`$payloadJson.input.sliceProfile.maxNumberofConns`'/>
79                 <parameter name='tmp.payload.maxNumberofUEs' value='`$payloadJson.input.sliceProfile.maxNumberofUEs`'/>
80                 <parameter name='tmp.payload.resourceSharingLevel' value='`$payloadJson.input.sliceProfile.resourceSharingLevel`'/>
81                 <parameter name='tmp.payload.sliceProfileId' value='`$payloadJson.input.sliceProfile.sliceProfileId`'/>
82                 <parameter name='tmp.payload.sNSSAI' value='`$payloadJson.input.sliceProfile.sNSSAI`'/>
83                 <parameter name='tmp.payload.uEMobilityLevel' value='`$payloadJson.input.sliceProfile.uEMobilityLevel`'/>
84                 <parameter name='tmp.payload.uLThptPerSlice' value='`$payloadJson.input.sliceProfile.uLThptPerSlice`'/>
85                 <parameter name='tmp.payload.pLMNId' value='`$payloadJson.input.sliceProfile.pLMNIdList[0]`'/>
86             </set>
87             <set>
88                 <parameter name='tmp.RRMPolicyRatioID.NearRTRIC' value="`'NearRTRIC-' + $payloadJson.input.sliceProfile.sliceProfileId  + '-' + $payloadJson.input.sliceProfile.coverageAreaList[0]`" />
89                 <parameter name='tmp.RRMPolicyRatioID.GNBDUFunction' value="`'GNBDUFunction-' + $payloadJson.input.sliceProfile.sliceProfileId  + '-' + $payloadJson.input.sliceProfile.coverageAreaList[0]`" />
90                 <parameter name='tmp.RRMPolicyRatioID.NRCellDU' value="`'NRCellDU-' + $payloadJson.input.sliceProfile.sliceProfileId  + '-' + $payloadJson.input.sliceProfile.coverageAreaList[0]`" />
91                 <parameter name='tmp.RRMPolicyRatioID.GNBCUUPFunction' value="`'GNBCUUPFunction-' + $payloadJson.input.sliceProfile.sliceProfileId  + '-' + $payloadJson.input.sliceProfile.coverageAreaList[0]`" />
92                 <parameter name='tmp.RRMPolicyRatioID.GNBCUCPFunction' value="`'GNBCUCPFunction-' + $payloadJson.input.sliceProfile.sliceProfileId  + '-' + $payloadJson.input.sliceProfile.coverageAreaList[0]`" />
93                 <parameter name='tmp.RRMPolicyRatioID.NRCellCU' value="`'NRCellCU-' + $payloadJson.input.sliceProfile.sliceProfileId  + '-' + $payloadJson.input.sliceProfile.coverageAreaList[0]`" />
94                 <parameter name='prop.ranNetwork.RRMPolicyRatioMemberID' value='`$prop.ranNetwork.RRMPolicyRatioMemberID + 1`' />
95             </set>
96             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>
97                 <parameter name="string" value="`$tmp.payload.pLMNId`" />
98                 <parameter name="result" value="tmp.mcc"/>
99                 <parameter name="begin-index" value="0" />
100                 <parameter name="end-index" value="3" />
101             </execute>
102             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>
103                 <parameter name="string" value="`$tmp.payload.pLMNId`" />
104                 <parameter name="result" value="tmp.mnc"/>
105                 <parameter name="begin-index" value="4" />
106             </execute>
107             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
108                 <parameter name="file" value="/opt/opendaylight/current/data/log/instantiateRANSlice.log" />
109                 <parameter name="level" value="info" />
110                 <parameter name="field1" value="PLMNID from Payload: MCC-MNC "/>
111                 <parameter name="field2" value="`$tmp.mcc`"/>
112                 <parameter name="field3" value="`$tmp.mnc`"/>
113             </record>
114             <switch test='`$prop.configdb-deployed`'>
115                 <outcome value='true'>
116                     <block atomic='true'>
117                         <switch test='`$instantiate-r-a-n-slice-input.action`'>
118                             <outcome value='allocate'>
119                                 <block atomic="true">
120                                     <call module='GENERIC-RESOURCE-API' rpc='instantiateRANSliceAllocate' mode='sync' >
121                                         <outcome value='failure'>
122                                             <return status='failure'>
123                                                 <parameter name='ack-final' value='Y' />
124                                             </return>
125                                         </outcome>
126                                     </call>
127                                 </block>
128                             </outcome>
129                             <outcome value='modify-allocate'>
130                                 <block atomic="true">
131                                     <call module='GENERIC-RESOURCE-API' rpc='instantiateRANSliceModifyAllocate' mode='sync' >
132                                         <outcome value='failure'>
133                                             <return status='failure'>
134                                                 <parameter name='ack-final' value='Y' />
135                                             </return>
136                                         </outcome>
137                                     </call>
138                                 </block>
139                             </outcome>
140                             <outcome value='modify-deallocate'>
141                                 <block atomic="true">
142                                     <call module='GENERIC-RESOURCE-API' rpc='instantiateRANSliceModifyDeallocate' mode='sync' >
143                                         <outcome value='failure'>
144                                             <return status='failure'>
145                                                 <parameter name='ack-final' value='Y' />
146                                             </return>
147                                         </outcome>
148                                     </call>
149                                 </block>
150                             </outcome>
151                             <outcome value='reconfigure'>
152                                 <block atomic="true">
153                                     <call module='GENERIC-RESOURCE-API' rpc='instantiateRANSliceReconfigure' mode='sync' >
154                                         <outcome value='failure'>
155                                             <return status='failure'>
156                                                 <parameter name='ack-final' value='Y' />
157                                             </return>
158                                         </outcome>
159                                     </call>
160                                 </block>
161                             </outcome>
162                         </switch>
163                     </block>
164                 </outcome>
165             </switch>
166             <return status='success'>
167                 <parameter name="ack-final" value="Y" />
168                 <parameter name="error-code" value="200" />
169                 <parameter name="error-message" value="SUCCESSFUL Execution" />
170             </return>
171         </block>
172     </method>
173 </service-logic>