2 Documentation Test suite for SFC Service Functions, Operates functions from Restconf APIs.
4 Suite Teardown Delete All Sessions
7 Library OperatingSystem
8 Library RequestsLibrary
9 Library HttpLibrary.HTTP
10 Variables ../../../variables/Variables.py
11 Resource ../../../libraries/Utils.robot
12 Resource ../../../libraries/TemplatedRequests.robot
15 Basic Environment Setup Tests
16 [Documentation] Prepare Basic Test Environment
17 Add Elements To URI From File ${SERVICE_FORWARDERS_URI} ${SERVICE_FORWARDERS_FILE}
18 Add Elements To URI From File ${SERVICE_NODES_URI} ${SERVICE_NODES_FILE}
19 Add Elements To URI From File ${SERVICE_FUNCTIONS_URI} ${SERVICE_FUNCTIONS_FILE}
20 Add Elements To URI From File ${SERVICE_CHAINS_URI} ${SERVICE_CHAINS_FILE}
21 Add Elements To URI From File ${SERVICE_FUNCTION_PATHS_URI} ${SERVICE_FUNCTION_PATHS_FILE}
23 Create and Get Rendered Service Path
24 [Documentation] Create and Get Rendered Service Path Through RESTConf APIs
25 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT}
26 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}
27 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
28 ${elements}= Create List SFC1-100-Path-1 "parent-service-function-path":"SFC1-100" "hop-number":0 "service-index":255 "hop-number":1
29 ... "service-index":254 "hop-number":2 "service-index":253
30 Check For Elements At URI ${OPERATIONAL_RSPS_URI} ${elements}
32 Create Get Rendered Service Path Failure
33 [Documentation] Create Rendered Service Path Failure Cases
34 ${resp} RequestsLibrary.Post Request session ${OPERATIONS_CREATE_RSP_URI} data=${CREATE_RSP_FAILURE_INPUT} headers=${headers}
35 Should Be Equal As Strings ${resp.status_code} 500
37 Get Rendered Service Path By Name
38 [Documentation] Get Rendered Service Path By Name Through RESTConf APIs
39 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT}
40 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1
41 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
42 ${elements}= Create List SFC1-100-Path-1 "parent-service-function-path":"SFC1-100" "hop-number":0 "service-index":255 "hop-number":1
43 ... "service-index":254 "hop-number":2 "service-index":253
44 Check For Elements At URI ${OPERATIONAL_RSPS_URI} ${elements}
46 Get Non Existing Rendered Service Path
47 [Documentation] Get Non Existing Rendered Service Path Through RESTConf APIs
48 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT}
49 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/non-existing-rsp
50 Should Be Equal As Strings ${resp.status_code} 404
51 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}
52 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
53 Should Not Contain ${resp.content} non-existing-rsp
55 Delete one Rendered Service Path By Name
56 [Documentation] Delete One Rendered Service Path By Name Through RESTConf APIs
57 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT}
58 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1
59 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
60 Should Contain ${resp.content} SFC1-100-Path-1
61 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP1_INPUT}
62 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1
63 Should Be Equal As Strings ${resp.status_code} 404
64 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}
65 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
66 Should Not Contain ${resp.content} SFC1-100-Path-1
68 Delete Non Existing Rendered Service Path By Name
69 [Documentation] Delete One Rendered Service Path By Name Through RESTConf APIs
70 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT}
71 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1
72 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
73 Should Contain ${resp.content} SFC1-100-Path-1
74 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP2_INPUT}
75 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}
76 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
77 Should Not Contain ${resp.content} {"rendered-service-paths":{}}
79 Get Rendered Service Path Hop
80 [Documentation] Get Rendered Service Path By Name Through RESTConf APIs
81 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT}
82 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/0/
83 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
84 ${elements}= Create List "hop-number":0 "service-index":255 "service-function-name":"dpi
85 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/0/ ${elements}
86 ${elements}= Create List "hop-number":1 "service-index":254 "service-function-name":"napt44
87 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/1/ ${elements}
88 ${elements}= Create List "hop-number":2 "service-index":253 "service-function-name":"firewall
89 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/2/ ${elements}
90 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/3/
91 Should Be Equal As Strings ${resp.status_code} 404
92 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP1_INPUT}
94 Generate RSPs with Random Schedule Algorithm type
95 [Documentation] Generate RSPs with Random Schedule Algorithm type Through RESTConf APIs
96 Remove All Elements At URI ${SERVICE_SCHED_TYPES_URI}
97 Add Elements To URI From File ${SERVICE_RANDOM_SCHED_TYPE_URI} ${SERVICE_RANDOM_SCHED_TYPE_FILE}
98 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT}
99 ${elements}= Create List "hop-number":0 "service-index":255 "service-function-name":"dpi
100 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/0/ ${elements}
101 ${elements}= Create List "hop-number":1 "service-index":254 "service-function-name":"napt44
102 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/1/ ${elements}
103 ${elements}= Create List "hop-number":2 "service-index":253 "service-function-name":"firewall
104 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/2/ ${elements}
105 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP2_INPUT}
106 ${elements}= Create List "hop-number":0 "service-index":255 "service-function-name":"dpi
107 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-2/rendered-service-path-hop/0/ ${elements}
108 ${elements}= Create List "hop-number":1 "service-index":254 "service-function-name":"napt44
109 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-2/rendered-service-path-hop/1/ ${elements}
110 ${elements}= Create List "hop-number":2 "service-index":253 "service-function-name":"firewall
111 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-2/rendered-service-path-hop/2/ ${elements}
112 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP1_INPUT}
113 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP2_INPUT}
115 Generate RSPs with Round Robin Schedule Algorithm type
116 [Documentation] Generate RSPs with Round Robin Schedule Algorithm type
118 Remove All Elements At URI ${SERVICE_SCHED_TYPES_URI}
119 Add Elements To URI From File ${SERVICE_ROUNDROBIN_SCHED_TYPE_URI} ${SERVICE_ROUNDROBIN_SCHED_TYPE_FILE}
120 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT}
121 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP2_INPUT}
122 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP3_INPUT}
123 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP4_INPUT}
124 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP5_INPUT}
125 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP6_INPUT}
126 ${path1_hop0} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/0/
127 ${path1_hop1} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/1/
128 ${path1_hop2} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/2/
129 ${path2_hop0} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-2/rendered-service-path-hop/0/
130 ${path2_hop1} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-2/rendered-service-path-hop/1/
131 ${path2_hop2} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-2/rendered-service-path-hop/2/
132 ${path3_hop0} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-3/rendered-service-path-hop/0/
133 ${path3_hop1} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-3/rendered-service-path-hop/1/
134 ${path3_hop2} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-3/rendered-service-path-hop/2/
135 ${path4_hop0} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-4/rendered-service-path-hop/0/
136 ${path4_hop1} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-4/rendered-service-path-hop/1/
137 ${path4_hop2} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-4/rendered-service-path-hop/2/
138 ${path5_hop0} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-5/rendered-service-path-hop/0/
139 ${path5_hop1} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-5/rendered-service-path-hop/1/
140 ${path5_hop2} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-5/rendered-service-path-hop/2/
141 ${path6_hop0} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-6/rendered-service-path-hop/0/
142 ${path6_hop1} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-6/rendered-service-path-hop/1/
143 ${path6_hop2} Get JSON Elements From URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-6/rendered-service-path-hop/2/
144 Should Be Equal ${path1_hop0} ${path4_hop0}
145 Should Not Be Equal ${path1_hop0} ${path2_hop0}
146 Should Be Equal ${path1_hop1} ${path4_hop1}
147 Should Not Be Equal ${path1_hop1} ${path2_hop1}
148 Should Be Equal ${path1_hop2} ${path4_hop2}
149 Should Not Be Equal ${path1_hop2} ${path2_hop2}
150 Should Be Equal ${path2_hop0} ${path5_hop0}
151 Should Not Be Equal ${path2_hop0} ${path3_hop0}
152 Should Be Equal ${path2_hop1} ${path5_hop1}
153 Should Not Be Equal ${path2_hop1} ${path3_hop1}
154 Should Be Equal ${path2_hop2} ${path5_hop2}
155 Should Not Be Equal ${path2_hop2} ${path3_hop2}
156 Should Be Equal ${path3_hop0} ${path6_hop0}
157 Should Not Be Equal ${path3_hop0} ${path1_hop0}
158 Should Be Equal ${path3_hop1} ${path6_hop1}
159 Should Not Be Equal ${path3_hop1} ${path1_hop1}
160 Should Be Equal ${path3_hop2} ${path6_hop2}
161 Should Not Be Equal ${path3_hop2} ${path1_hop2}
162 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP1_INPUT}
163 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP2_INPUT}
164 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP3_INPUT}
165 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP4_INPUT}
166 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP5_INPUT}
167 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP6_INPUT}
169 Generate RSPs with Shortest Path Schedule Algorithm type
170 [Documentation] Generate RSPs with Shortest Path Schedule Algorithm type Through RESTConf APIs
171 Remove All Elements At URI ${SERVICE_SCHED_TYPES_URI}
172 Add Elements To URI From File ${SERVICE_SHORTESTPATH_SCHED_TYPE_URI} ${SERVICE_SHORTESTPATH_SCHED_TYPE_FILE}
173 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP1_INPUT}
174 ${elements}= Create List "hop-number":0 "service-index":255 "service-function-name":"dpi-1
175 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/0/ ${elements}
176 ${elements}= Create List "hop-number":1 "service-index":254 "service-function-name":"napt44
177 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/1/ ${elements}
178 ${elements}= Create List "hop-number":2 "service-index":253 "service-function-name":"firewall
179 Check For Elements At URI ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/2/ ${elements}
180 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/0/
181 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
182 ${fwd_hop1} Extract Value From Content ${resp.content} /rendered-service-path-hop/0/service-function-forwarder
183 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/1/
184 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
185 ${fwd_hop2} Extract Value From Content ${resp.content} /rendered-service-path-hop/0/service-function-forwarder
186 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-1/rendered-service-path-hop/2/
187 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
188 ${fwd_hop3} Extract Value From Content ${resp.content} /rendered-service-path-hop/0/service-function-forwarder
189 Should Be Equal ${fwd_hop1} ${fwd_hop2}
190 Should Be Equal ${fwd_hop2} ${fwd_hop3}
191 Post Elements To URI As JSON ${OPERATIONS_CREATE_RSP_URI} ${CREATE_RSP2_INPUT}
192 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-2/rendered-service-path-hop/0/
193 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
194 ${fwd_hop1} Extract Value From Content ${resp.content} /rendered-service-path-hop/0/service-function-forwarder
195 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-2/rendered-service-path-hop/1/
196 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
197 ${fwd_hop2} Extract Value From Content ${resp.content} /rendered-service-path-hop/0/service-function-forwarder
198 ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_RSPS_URI}rendered-service-path/SFC1-100-Path-2/rendered-service-path-hop/2/
199 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
200 ${fwd_hop3} Extract Value From Content ${resp.content} /rendered-service-path-hop/0/service-function-forwarder
201 Should Be Equal ${fwd_hop1} ${fwd_hop2}
202 Should Be Equal ${fwd_hop2} ${fwd_hop3}
203 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP1_INPUT}
204 Post Elements To URI As JSON ${OPERATIONS_DELETE_RSP_URI} ${DELETE_RSP2_INPUT}
206 Clean Datastore After Tests
207 [Documentation] Clean All Items In Datastore After Tests
208 Remove All Elements At URI ${SERVICE_FUNCTIONS_URI}
209 Remove All Elements At URI ${SERVICE_FORWARDERS_URI}
210 Remove All Elements At URI ${SERVICE_NODES_URI}
211 Remove All Elements At URI ${SERVICE_CHAINS_URI}
212 Remove All Elements At URI ${SERVICE_SCHED_TYPES_URI}
213 Remove All Elements At URI ${SERVICE_FUNCTION_PATHS_URI}
216 Post Elements To URI As JSON
217 [Arguments] ${uri} ${data}
218 ${resp} RequestsLibrary.Post Request session ${uri} data=${data} headers=${headers}
219 Should Contain ${ALLOWED_STATUS_CODES} ${resp.status_code}
221 Get JSON Elements From URI
223 ${resp} RequestsLibrary.Get Request session ${uri}
224 ${value} To Json ${resp.content}
228 [Documentation] Create session and initialize ODL version specific variables
229 Create Session session http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}
231 Run Keyword If '${ODL_STREAM}' == 'stable-lithium' Set Suite Variable ${VERSION_DIR} lithium
232 ... ELSE Set Suite Variable ${VERSION_DIR} master
233 Set Suite Variable ${SERVICE_FUNCTIONS_URI} /restconf/config/service-function:service-functions/
234 Set Suite Variable ${SERVICE_FUNCTIONS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-functions.json
235 Set Suite Variable ${SERVICE_FORWARDERS_URI} /restconf/config/service-function-forwarder:service-function-forwarders/
236 Set Suite Variable ${SERVICE_FORWARDERS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-forwarders.json
237 Set Suite Variable ${SERVICE_NODES_URI} /restconf/config/service-node:service-nodes/
238 Set Suite Variable ${SERVICE_NODES_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-nodes.json
239 Set Suite Variable ${SERVICE_CHAINS_URI} /restconf/config/service-function-chain:service-function-chains/
240 Set Suite Variable ${SERVICE_CHAINS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-chains.json
241 Set Suite Variable ${SERVICE_FUNCTION_PATHS_URI} /restconf/config/service-function-path:service-function-paths/
242 Set Suite Variable ${SERVICE_FUNCTION_PATHS_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-paths.json
243 Set Suite Variable ${SERVICE_SCHED_TYPES_URI} /restconf/config/service-function-scheduler-type:service-function-scheduler-types/
244 Set Suite Variable ${SERVICE_SCHED_TYPE_URI_BASE} ${SERVICE_SCHED_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:
245 Set Suite Variable ${SERVICE_RANDOM_SCHED_TYPE_URI} ${SERVICE_SCHED_TYPE_URI_BASE}random
246 Set Suite Variable ${SERVICE_RANDOM_SCHED_TYPE_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-random-schedule-type.json
247 Set Suite Variable ${SERVICE_ROUNDROBIN_SCHED_TYPE_URI} ${SERVICE_SCHED_TYPE_URI_BASE}round-robin
248 Set Suite Variable ${SERVICE_ROUNDROBIN_SCHED_TYPE_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-roundrobin-schedule-type.json
249 Set Suite Variable ${SERVICE_LOADBALANCE_SCHED_TYPE_URI} ${SERVICE_SCHED_TYPE_URI_BASE}load-balance
250 Set Suite Variable ${SERVICE_LOADBALANCE_SCHED_TYPE_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-loadbalance-schedule-type.json
251 Set Suite Variable ${SERVICE_SHORTESTPATH_SCHED_TYPE_URI} ${SERVICE_SCHED_TYPE_URI_BASE}shortest-path
252 Set Suite Variable ${SERVICE_SHORTESTPATH_SCHED_TYPE_FILE} ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-shortestpath-schedule-type.json
253 Set Suite Variable ${RENDERED_SERVICE_PATHS_URI} /restconf/config/rendered-service-path:rendered-service-paths/
254 Set Suite Variable ${OPERATIONAL_RSPS_URI} /restconf/operational/rendered-service-path:rendered-service-paths/
255 Set Suite Variable ${OPERATIONS_CREATE_RSP_URI} /restconf/operations/rendered-service-path:create-rendered-path/
256 Set Suite Variable ${OPERATIONS_DELETE_RSP_URI} /restconf/operations/rendered-service-path:delete-rendered-path
257 Set Suite Variable ${CREATE_RSP1_INPUT} {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-1"}}
258 Set Suite Variable ${CREATE_RSP2_INPUT} {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-2"}}
259 Set Suite Variable ${CREATE_RSP3_INPUT} {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-3"}}
260 Set Suite Variable ${CREATE_RSP4_INPUT} {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-4"}}
261 Set Suite Variable ${CREATE_RSP5_INPUT} {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-5"}}
262 Set Suite Variable ${CREATE_RSP6_INPUT} {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-6"}}
263 Set Suite Variable ${CREATE_RSP_FAILURE_INPUT} {"input":{"parent-service-function-path":"SFC1-empty","name":"SFC1-empty-Path-1"}}
264 Set Suite Variable ${DELETE_RSP1_INPUT} {"input":{"name":"SFC1-100-Path-1"}}
265 Set Suite Variable ${DELETE_RSP2_INPUT} {"input":{"name":"SFC1-100-Path-2"}}
266 Set Suite Variable ${DELETE_RSP3_INPUT} {"input":{"name":"SFC1-100-Path-3"}}
267 Set Suite Variable ${DELETE_RSP4_INPUT} {"input":{"name":"SFC1-100-Path-4"}}
268 Set Suite Variable ${DELETE_RSP5_INPUT} {"input":{"name":"SFC1-100-Path-5"}}
269 Set Suite Variable ${DELETE_RSP6_INPUT} {"input":{"name":"SFC1-100-Path-6"}}