NSLCMOperationKeywords.robot 93.4 KB
Newer Older
aureliano sinatra's avatar
aureliano sinatra committed
1
*** Settings ***
Giacomo Bernini's avatar
Giacomo Bernini committed
2
Resource   environment/variables.txt
3
Library    REST     ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT}    ssl_verify=false
aureliano sinatra's avatar
aureliano sinatra committed
4
5
6
7
8
Library    JSONLibrary
Library    Process
Library    JSONSchemaLibrary    schemas/
Library    OperatingSystem
Library    MockServerLibrary
root's avatar
root committed
9
Library    Collections
10
Library    String
11
12
13
14
#Variables  descriptors/SOL006/VNFD/vnfd_SOL006.yaml
#Variables  descriptors/SOL006/NSD/nsd_SOL006.yaml
#Variables  descriptors/SOL001/VNFD/vnfd_SOL001.yaml
#Variables  descriptors/SOL001/NSD/nsd_SOL001.yaml
aureliano sinatra's avatar
aureliano sinatra committed
15
16
17
18
19
20
21
22

*** Keywords ***
Initialize System
    Start Process  java  -jar  ../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar  -serverPort  ${callback_port}  alias=mockInstance
    Wait For Process  handle=mockInstance  timeout=5s  on_timeout=continue
    Create Mock Session  ${callback_uri}:${callback_port} 
    
Check Operation Occurrence Id
Frank Bryden's avatar
Frank Bryden committed
23
    Set Global Variable    @{nsLcmOpOccId}    ${response['headers']['Location']}
aureliano sinatra's avatar
aureliano sinatra committed
24
25
26
27
28
29
30
    Should Not Be Empty    ${nsLcmOpOccId}
    
Create Sessions
    Start Process  java  -jar  ../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar  -serverPort  ${callback_port}  alias=mockInstance
    Wait For Process  handle=mockInstance  timeout=5s  on_timeout=continue
    Create Mock Session  ${callback_uri}:${callback_port}   
    
31
Check subscription existence
aureliano sinatra's avatar
aureliano sinatra committed
32
33
    Set Headers    {"Accept":"${ACCEPT}"}  
    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
34
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
35
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} 
aureliano sinatra's avatar
aureliano sinatra committed
36
37
    Integer    response status    200
    
root's avatar
root committed
38
39
40
Check Instance Deleted
    Set Headers    {"Accept":"${ACCEPT}"}  
    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
41
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
42
    Delete    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}
root's avatar
root committed
43
    Integer    response status    404
root's avatar
root committed
44
    
aureliano sinatra's avatar
aureliano sinatra committed
45
Check Fail not supported
46
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
47
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_lcm_op_occs/${nsLcmOpOccId}
aureliano sinatra's avatar
aureliano sinatra committed
48
49
50
    # how to check if Fail is not supported? Also In Sol002
    
Check Cancel not supported
51
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
52
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_lcm_op_occs/${nsLcmOpOccId}
aureliano sinatra's avatar
aureliano sinatra committed
53
54
55
    # how to check if Cancel is not supported? Also In Sol002
    
Check Continue not supported
56
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
57
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_lcm_op_occs/${nsLcmOpOccId}
aureliano sinatra's avatar
aureliano sinatra committed
58
59
60
    # how to check if Continue is not supported? Also In Sol002
    
Check retry not supported
61
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
62
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_lcm_op_occs/${nsLcmOpOccId}
aureliano sinatra's avatar
aureliano sinatra committed
63
64
65
    # how to check if retry is not supported? Also In Sol002
    
Check Rollback not supported
66
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
67
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_lcm_op_occs/${nsLcmOpOccId}
aureliano sinatra's avatar
aureliano sinatra committed
68
69
70
    # how to check if rollback is not supported? Also In Sol002
    
Check resource FAILED_TEMP
71
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
72
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_lcm_op_occs/${nsLcmOpOccId} 
aureliano sinatra's avatar
aureliano sinatra committed
73
74
    String    response body operationState    FAILED_TEMP

75
76
Check resource not 
    [Arguments]   ${status}
77
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
78
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_lcm_op_occs/${nsLcmOpOccId} 
79
80
    Should Not Be Equal As Strings  response body operationState    ${status}

aureliano sinatra's avatar
aureliano sinatra committed
81
82
83
84
85
86
87
88
89
Check Operation Notification Status is
    [Arguments]    ${status}
    Check Operation Notification    NsLcmOperationOccurrenceNotification   ${status}

Check Operation Notification
    [Arguments]    ${element}    ${status}=""
    ${json}=	Get File	schemas/${element}.schema.json
    Configure Notification Forward    ${element}    ${callback_endpoint}    ${callback_endpoint_fwd}
    Configure Notification Status Handler    ${callback_endpoint_fwd}    ${status}
Frank Bryden's avatar
Frank Bryden committed
90
91
    ${BODY}=    evaluate    json.dumps(${json})    json
    &{notification_request}=  Create Mock Request Matcher	POST  ${callback_endpoint}  body_type="JSON"    body=${BODY}
aureliano sinatra's avatar
aureliano sinatra committed
92
93
94
95
96
97
    Wait Until Keyword Succeeds    2 min   10 sec   Verify Mock Expectation    ${notification_request}
    Clear Requests    ${callback_endpoint}
    Clear Requests    ${callback_endpoint_fwd}
    
Configure Notification Forward
    [Arguments]    ${element}    ${endpoint}    ${endpoint_fwd}    
98
   # ${BODY}=	evaluate	json.loads('''${json}''')	json
aureliano sinatra's avatar
aureliano sinatra committed
99
    Log  Creating mock HTTP forward to handle ${element}
100
    &{notification_tmp}=  Create Mock Request Matcher	POST  ${endpoint}  body_type="JSON_SCHEMA"    body=${element}
aureliano sinatra's avatar
aureliano sinatra committed
101
102
103
104
105
    &{notification_fwd}=  Create Mock Http Forward	${endpoint_fwd}
    Create Mock Expectation With Http Forward  ${notification_tmp}  ${notification_fwd}
    
Configure Notification Status Handler
    [Arguments]    ${endpoint}    ${status}=""
Frank Bryden's avatar
Frank Bryden committed
106
107
    ${json}=    evaluate    {"notificationStatus": {}}
    Run Keyword If   '${status}' != ""  set to dictionary    ${json["notificationStatus"]}    dp=${status}    
aureliano sinatra's avatar
aureliano sinatra committed
108
    ${BODY}=    evaluate    json.dumps(${json})    json
109
    Log  Creating mock request and response to handle ${endpoint}
110
111
    &{req}=  Create Mock Request Matcher	POST  ${endpoint}  body_type="JSON"    body=${BODY}
    Set Global Variable    ${notification_request}    ${req}
Frank Bryden's avatar
Frank Bryden committed
112
113
    &{headers} =	Create Dictionary	"Content-Type"="application/json"
    &{notification_response}=  Create Mock Response	headers=${headers}  status_code=204
aureliano sinatra's avatar
aureliano sinatra committed
114
115
116
117
    Create Mock Expectation  ${notification_request}  ${notification_response}    
        
Check resource operationState is
    [Arguments]    ${state} 
118
    String    ${response['body']['operationState']}   ${state}
Frank Bryden's avatar
Frank Bryden committed
119
120
121
122
123

Check resource Instantiated
    Wait Until Keyword Succeeds    2 min   10 sec   Probe resource Instantiated

Probe resource Instantiated 
aureliano sinatra's avatar
aureliano sinatra committed
124
125
    Set Headers    {"Accept":"${ACCEPT}"}  
    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
126
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
127
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId} 
128
    String    response body nsState    INSTANTIATED
Frank Bryden's avatar
Frank Bryden committed
129

aureliano sinatra's avatar
aureliano sinatra committed
130
Check resource not_instantiated
Frank Bryden's avatar
Frank Bryden committed
131
132
133
134
    Wait Until Keyword Succeeds    2 min   10 sec   Probe resource not_instantiated

Probe resource not_instantiated
    [Arguments]  ${fresh_resource}=0
aureliano sinatra's avatar
aureliano sinatra committed
135
136
    Set Headers    {"Accept":"${ACCEPT}"}  
    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
137
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Frank Bryden's avatar
Frank Bryden committed
138
139
    Log     ${fresh_resource}
    ${instanceId}=  Set Variable If	    ${fresh_resource} == 0   ${nsInstanceId}   ${response['body']['id']}
Najam UI Hassan's avatar
Najam UI Hassan committed
140
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${instanceId}
141
    String    response body nsState     NOT_INSTANTIATED
aureliano sinatra's avatar
aureliano sinatra committed
142

143
Check operation resource state is FAILED_TEMP    
aureliano sinatra's avatar
aureliano sinatra committed
144
145
    Set Headers    {"Accept":"${ACCEPT}"}  
    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
146
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
147
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId} 
aureliano sinatra's avatar
aureliano sinatra committed
148
    String    response body instantiationState    FAILED_TEMP 
149
    
150
151
Check operation resource state is not FAILED_TEMP
    Check operation resource state is FAILED_TEMP    
aureliano sinatra's avatar
aureliano sinatra committed
152
153
    Set Headers    {"Accept":"${ACCEPT}"}  
    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
154
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
155
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId} 
Giacomo Bernini's avatar
Giacomo Bernini committed
156
    String  response body instantiationState  not  FAILED_TEMP
aureliano sinatra's avatar
aureliano sinatra committed
157
158
159
160

Check resource is finally failed
    Set Headers    {"Accept":"${ACCEPT}"}  
    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
161
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
162
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId} 
aureliano sinatra's avatar
aureliano sinatra committed
163
164
    String    response body instantiationState    FINALLY_FAILED 

aureliano sinatra's avatar
aureliano sinatra committed
165
166
167
Launch another LCM operation
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
168
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
169
170
    ${template}=    Get File    jsons/scaleNsToLevelRequest.json
    ${body}=        Format String   ${template}     instantiationLevelId=${instantiationLevelId}
Najam UI Hassan's avatar
Najam UI Hassan committed
171
    Post    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/scale_to_level    ${body}
aureliano sinatra's avatar
aureliano sinatra committed
172
173
    Integer    response status    202

174
Check resource existence
aureliano sinatra's avatar
aureliano sinatra committed
175
176
    Set Headers    {"Accept":"${ACCEPT}"}  
    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
177
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
178
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId} 
aureliano sinatra's avatar
aureliano sinatra committed
179
180
181
182
183
    Integer    response status    200
    
Check HTTP Response Status Code Is
    [Arguments]    ${expected_status}
    Log    Validate Status code    
184
    Should Be Equal as Strings  ${response['status']}    ${expected_status}
aureliano sinatra's avatar
aureliano sinatra committed
185
186
    Log    Status code validated 
    
root's avatar
root committed
187
188
189
Check Postcondition NS Instance is deleted
    Set Headers    {"Accept":"${ACCEPT}"}  
    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
190
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
191
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${disabledNsdId} 
root's avatar
root committed
192
193
    Integer    response status    404
    
aureliano sinatra's avatar
aureliano sinatra committed
194
195
Check HTTP Response Header Contains
    [Arguments]    ${HEADER_TOCHECK}
196
    Should Contain     ${response['headers']}    ${HEADER_TOCHECK}
197
    Log    Header is present
aureliano sinatra's avatar
aureliano sinatra committed
198
199
200
    
Check HTTP Response Body Json Schema Is
    [Arguments]    ${input}
201
202
    Run Keyword If    '${input}' == 'ProblemDetails'    Should Contain    ${response['headers']['Content-Type']}    application/problem+json
    ...    ELSE    Should Contain    ${response['headers']['Content-Type']}    application/json
203
204
    ${schema} =    Catenate    SEPARATOR=    ${input}    .schema.json
    Validate Json    ${schema}    ${response['body']}
aureliano sinatra's avatar
aureliano sinatra committed
205
206
    Log    Json Schema Validation OK
    
root's avatar
root committed
207
208
209
Check Postcondition NS Instance is not deleted
    Set Headers    {"Accept":"${ACCEPT}"}  
    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
210
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
211
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId} 
root's avatar
root committed
212
213
    Integer    response status    200
    
aureliano sinatra's avatar
aureliano sinatra committed
214
215
216
Check HTTP Response Header ContentType is
    [Arguments]    ${expected_contentType}
    Log    Validate content type
217
    Should Be Equal as Strings   ${response['headers']['Content-Type']}    ${expected_contentType}
aureliano sinatra's avatar
aureliano sinatra committed
218
219
220
    Log    Content Type validated 

POST New nsInstance
Najam UI Hassan's avatar
Najam UI Hassan committed
221
    Log    Create NS instance by POST to ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances
aureliano sinatra's avatar
aureliano sinatra committed
222
223
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
224
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
225
    Run Keyword If    ${check_descriptors} == 1    PARSE the NS Descriptor File
226
    ${template}=    Get File    jsons/CreateNsRequest.json 
227
    ${body}=        Format String   ${template}     nsdId=${NS_DescriptorID}   nsInstanceName=${nsInstanceName}   vimAccountId=${vimAccountId}   nsInstanceDescription=${nsInstanceDescription}
Najam UI Hassan's avatar
Najam UI Hassan committed
228
    Post    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances    ${body}
aureliano sinatra's avatar
aureliano sinatra committed
229
    ${outputResponse}=    Output    response
230
	Set Global Variable    ${response}    ${outputResponse}     
aureliano sinatra's avatar
aureliano sinatra committed
231

232
233
234
235
236
Check HTTP Response Body NsInstance content against VNF Descriptor
    #${check_descriptors} flag, 1 to check descriptors
    Run Keyword If    ${check_descriptors} == 1    Check Individual NsInstance Content

Check Individual NsInstance Content    
237
238
    PARSE the Descriptor File
    Match the Response Attributes with Descriptors
239
    
240
241
PARSE the Descriptor File
    Run Keyword If  '${descriptorType}'=='SOL001'    Fetch Information from SOL001 descriptor file    ELSE    Fetch Information from SOL006 descriptor file
242
    
243
Fetch Information from SOL001 descriptor file
244
    Import Variables  ${CURDIR}/descriptors/SOL001/VNFD/vnfd_SOL001.yaml
245
246
247
248
249
    @{VDU_labels}=    Create List
    @{VNF_labels}=    Create List
    @{VirtualLink_labels}=    Create List
    @{CP_labels}=    Create List
    @{Storage_labels}=    Create List
250
251
252
253
254
255
256
257
258

    FOR    ${key}    IN    @{node_types.keys()}
        ${node_type}=    Get Variable Value    ${node_types['${key}']['derived_from']}
        ${is_VNF}=    Run Keyword And Return Status    Should Be Equal As Strings    ${node_type}    ${tosca_type_VNF}
        Run Keyword If    ${is_VNF}    Set Global Variable    ${tosca_type_derived_from_VNF}    ${key}
    END  
    ${derived_type_is_used}=    Run Keyword And Return Status    Should not be empty    ${tosca_type_derived_from_VNF}
    Run Keyword If    ${derived_type_is_used}    Set Global Variable    ${tosca_type_VNF}    ${tosca_type_derived_from_VNF}

259
    FOR    ${key}    IN    @{topology_template.node_templates.keys()} 
260
        ${key_type}=    Get Variable Value    ${topology_template.node_templates['${key}'].type}
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
        ${VDU_check}=    Run Keyword And Return Status    Should Be Equal As Strings    ${key_type}   ${tosca_type_VDU_compute}
        ${VNF_check}=    Run Keyword And Return Status    Should Be Equal As Strings    ${key_type}    ${tosca_type_VNF}
        ${Link_check}=    Run Keyword And Return Status    Should Be Equal As Strings    ${key_type}    ${tosca_type_virtual_link}
        ${VDUcp_check}=    Run Keyword And Return Status    Should Be Equal As Strings    ${key_type}    ${tosca_type_VDU_cp}
        ${Storage_check}=    Run Keyword And Return Status    Should Be Equal As Strings    ${key_type}    ${tosca_type_storage}
        Run Keyword If    ${VDU_check}    Append To List    ${VDU_labels}    ${key}
        Run Keyword If    ${VNF_check}    Append To List    ${VNF_labels}    ${key}
        Run Keyword If    ${VNF_check}    Get VNF Attributes from SOL001    ${key}            
        Run Keyword If    ${Link_check}    Append To List    ${VirtualLink_labels}    ${key}
        Run Keyword If    ${VDUcp_check}    Append To List    ${CP_labels}    ${key}
        Run Keyword If    ${Storage_check}    Append To List    ${Storage_labels}    ${key}
    END
    Set Global Variable    @{VDU_IDs}    @{VDU_labels}
    Set Global Variable    @{VNF_IDs}    @{VNF_labels}
    Set Global Variable    @{VirtualLink_IDs}    @{VirtualLink_labels}
    Set Global Variable    @{CP_IDs}    @{CP_labels}
    Set Global Variable    @{Storage_IDs}    @{Storage_labels}

Get VNF Attributes from SOL001
    [Arguments]    ${VNF_label}
281
    Import Variables  ${CURDIR}/descriptors/SOL001/VNFD/vnfd_SOL001.yaml
282
283
284
285
286
287
    ${descriptor_id}=    Get Variable Value    ${topology_template.node_templates['${VNF_label}'].properties.descriptor_id}
    ${provider}=    Get Variable Value    ${topology_template.node_templates['${VNF_label}'].properties.provider}
    ${product_name}=    Get Variable Value    ${topology_template.node_templates['${VNF_label}'].properties.product_name}
    ${software_version}=    Get Variable Value    ${topology_template.node_templates['${VNF_label}'].properties.software_version}
    ${descriptor_version}=    Get Variable Value    ${topology_template.node_templates['${VNF_label}'].properties.descriptor_version}
    ${flavour_id}=    Get Variable Value    ${topology_template.node_templates['${VNF_label}'].properties.flavour_id}
288
    
289
290
291
292
293
294
    Set Global Variable    ${Descriptor_ID}    ${descriptor_id}
    Set Global Variable    ${Provider}    ${provider}
    Set Global Variable    ${Product_Name}    ${product_name}
    Set Global Variable    ${Software_Version}    ${software_version}
    Set Global Variable    ${Descriptor_Version}    ${descriptor_version}
    Set Global Variable    ${Flavour_ID}    ${flavour_id}
zafar's avatar
zafar committed
295

296
Fetch Information from SOL006 descriptor file
297
    Import Variables    ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
298
299
    ${descriptor_id}=    Get Variable Value    ${nfv.vnfd[0].id}
    ${provider}=    Get Variable Value    ${nfv.vnfd[0].provider}
300
301
    ${product_name}=    Get Variable Value    ${nfv.vnfd[0]['product-name']}
    ${software_version}=    Get Variable Value    ${nfv.vnfd[0]['software-version']}
302
303
    ${descriptor_version}=    Get Variable Value    ${nfv.vnfd[0].version}    
    ${VDUcount}=    Get Length    ${nfv.vnfd[0].vdu}
304
305
306
    ${extCP_count}=    Get Length    ${nfv.vnfd[0]['ext-cpd']}
    ${virtualLink_count}=    Get length    ${nfv.vnfd[0]['int-virtual-link-desc']}
    ${instantiation_levels}=    Get Length    ${nfv.vnfd[0].df['instantiation-level']}    
307
308
309
    FOR    ${key}    IN    @{nfv.vnfd[0].keys()}
        ${VDU_check}=    Run Keyword And Return Status    Should Be Equal As Strings    ${key}    vdu
        Run Keyword If    ${VDU_check}    Get VDU IDs    ${VDUcount}
310
        ${extCP_check}=    Run Keyword And Return Status    Should Be Equal As Strings    ${key}    ext-cpd
311
        Run Keyword If    ${extCP_check}    Get External CP IDs    ${extCP_count}
312
        ${virtualLink_check}=    Run Keyword And Return Status    Should Be Equal As Strings    ${key}    int-virtual-link-desc
313
314
315
316
317
318
319
320
321
        Run Keyword If    ${virtualLink_check}    Get Virtual Link IDs   ${virtualLink_count}    
        ${DF_check}=    Run Keyword And Return Status    Should Be Equal As Strings    ${key}    df
        Run Keyword If    ${DF_check}    Get Instantiation Levels    ${instantiation_levels}    
    END
    Set Global Variable    ${Descriptor_ID}    ${descriptor_id}
    Set Global Variable    ${Provider}    ${provider}
    Set Global Variable    ${Product_Name}    ${product_name}
    Set Global Variable    ${Software_Version}    ${software_version}
    Set Global Variable    ${Descriptor_Version}    ${descriptor_version}
zafar's avatar
zafar committed
322

323
324
Get VDU IDs
    [Arguments]    ${count}    
325
    Import Variables    ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
326
327
328
    @{VDU_labels}=    Create List
    ${Storage_labels}=    Create List
    FOR    ${i}    IN RANGE    ${count}
329
330
        Append To List    ${VDU_labels}    ${nfv.vnfd[0].vdu[${i}]['id']}
        Append To List    ${Storage_labels}    ${nfv.vnfd[0].vdu[${i}]['virtual-storage-desc']} 
331
332
333
334
335
336
337
        Get Internal CPs for each VDU    ${i}   
    END
    Set Global Variable    ${VDU_IDs}    ${VDU_labels}
    Set Global Variable    ${Storage_IDs}    ${Storage_labels}
            
Get Internal CPs for each VDU
    [Arguments]    ${vdu}
338
    Import Variables    ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
339
    ${count}=    Get Length    ${nfv.vnfd[0].vdu[${vdu}]['int-cpd']}    
340
341
    ${internal_CPs}=    Create List
    FOR    ${i}    IN RANGE    ${count}
342
        Append To List    ${internal_CPs}    ${nfv.vnfd[0].vdu[${vdu}]['int-cpd'][${i}]['id']} 
343
344
345
346
347
    END
    Set Global Variable    ${internalCP_IDs}    ${internal_CPs}
    
Get External CP IDs
    [Arguments]    ${count}    
348
    Import Variables    ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
349
350
    @{external_CPs}=    Create List
    FOR    ${i}    IN RANGE    ${count}
351
        Append To List    ${external_CPs}    ${nfv.vnfd[0]['ext-cpd'][${i}]['id']} 
352
353
    END
    Set Global Variable    ${externalCP_IDs}    ${external_CPs}
354

355
356
Get Virtual Link IDs
    [Arguments]    ${count}    
357
    Import Variables    ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
358
    @{VirtualLink_labels}=    Create List
359
    FOR    ${i}    IN RANGE    ${count}
360
        Append To List    ${VirtualLink_labels}    ${nfv.vnfd[0]['int-virtual-link-desc'][${i}]['id']} 
361
362
363
364
365
    END
    Set Global Variable    ${VirtualLink_IDs}    ${VirtualLink_labels}

Get Instantiation Levels
    [Arguments]    ${count}
366
    Import Variables    ${CURDIR}/descriptors/SOL006/VNFD/vnfd_SOL006.yaml
367
368
    @{Instantiation_Levels}=    Create List
    FOR    ${i}    IN RANGE    ${count}
369
        Append To List    ${Instantiation_Levels}    ${nfv.vnfd[0].df['instantiation-level'][${i}]['id']} 
370
    END
371
372
373
374
    Set Global Variable    ${InstantiationLevel_IDs}    ${Instantiation_Levels}

Match the Response Attributes with Descriptors
    #Checking Response attributes with VNF Descriptors
375
376
377
378
379
380
381
382
383
384
385
386
    Should Be Equal As Strings    ${response['body']['vnfInstance'][0]['vnfdId']}    ${Descriptor_ID}
    Should Be Equal As Strings    ${response['body']['vnfInstance'][0]['vnfProvider']}    ${Provider}
    Should Be Equal As Strings    ${response['body']['vnfInstance'][0]['vnfProductName']}    ${Product_Name}
    Should Be Equal As Strings    ${response['body']['vnfInstance'][0]['vnfSoftwareVersion']}    ${Software_Version}
    Should Be Equal As Strings    ${response['body']['vnfInstance'][0]['vnfdVersion']}    ${Descriptor_Version}
    Should Be Equal As Strings    ${response['body']['vnfInstance'][0]['instantiatedVnfInfo']['flavourId']}    ${Flavour_ID}
    List Should Contain Value    ${VDU_IDs}    ${response['body']['vnfInstance'][0]['instantiatedVnfInfo']['vnfcResourceInfo']['vduId']}        
    Run Keyword If  '${descriptorType}'=='SOL006'    List Should Contain Value    ${externalCP_IDs}    ${response['body']['vnfInstance'][0]['instantiatedVnfInfo']['extCpInfo'][0]['cpdId']}
    Run Keyword If  '${descriptorType}'=='SOL006'    List Should Contain Value    ${internalCP_IDs}    ${response['body']['vnfInstance'][0]['instantiatedVnfInfo']['extCpInfo'][0]['cpdId']}
    Run Keyword If  '${descriptorType}'=='SOL001'    List Should Contain Value    ${CP_IDs}    ${response['body']['vnfInstance'][0]['instantiatedVnfInfo']['extCpInfo'][0]['cpdId']}
    List Should Contain value    ${Storage_IDs}    ${response['body']['vnfInstance'][0]['instantiatedVnfInfo']['virtualStorageResourceInfo'][0]['virtualStorageDescId']}
    List Should Contain Value    ${VirtualLink_IDs}    ${response['body']['vnfInstance'][0]['instantiatedVnfInfo']['extManagedVirtualLinkInfo'][0]['vnfVirtualLinkDescId']}
387

388
POST New nsInstance with DISABLED nsd
Najam UI Hassan's avatar
Najam UI Hassan committed
389
    Log    Create NS instance by POST to ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances
390
391
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
392
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
393
394
    ${template}=    Get File    jsons/CreateNsRequest.json 
    ${body}=        Format String   ${template}     nsdId=${disabledNsdId}   nsInstanceName=${nsInstanceName}   vimAccountId=${vimAccountId}   nsInstanceDescription=${nsInstanceDescription}
Najam UI Hassan's avatar
Najam UI Hassan committed
395
    Post    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances    ${body}
396
397
398
    ${outputResponse}=    Output    response
	Set Global Variable    ${response}    ${outputResponse}  

aureliano sinatra's avatar
aureliano sinatra committed
399
400
401
402
GET NsInstances
    Log    Query NS The GET method queries information about multiple NS instances.
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
403
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
404
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances
aureliano sinatra's avatar
aureliano sinatra committed
405
    ${outputResponse}=    Output    response
406
	Set Global Variable    ${response}    ${outputResponse}
aureliano sinatra's avatar
aureliano sinatra committed
407
	
408
409
410
411
412
413
414
415
GET NsInstances using filtering parameter
    Log    Query NS The GET method queries information about multiple NS instances.
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
    Get   ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances?${POS_filter_nsInstances}
    ${outputResponse}=    Output    response
	Set Global Variable    ${response}    ${outputResponse}
aureliano sinatra's avatar
aureliano sinatra committed
416
417
418
419
420

GET NsInstance Invalid Attribute-Based filtering parameter
    Log    Query NS The GET method queries information about multiple NS instances.
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
421
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
422
    Get   ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances?${NEG_filter_nsInstances}
aureliano sinatra's avatar
aureliano sinatra committed
423
    ${outputResponse}=    Output    response
424
	Set Global Variable    ${response}    ${outputResponse}
aureliano sinatra's avatar
aureliano sinatra committed
425
426
427
428
429
	
GET NsInstance Invalid Attribute Selector
    Log    Query NS The GET method queries information about multiple NS instances.
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
430
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} 
Najam UI Hassan's avatar
Najam UI Hassan committed
431
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances?fields=wrong_field	
aureliano sinatra's avatar
aureliano sinatra committed
432
    ${outputResponse}=    Output    response
433
	Set Global Variable    ${response}    ${outputResponse}  
aureliano sinatra's avatar
aureliano sinatra committed
434
	
aureliano sinatra's avatar
aureliano sinatra committed
435
436
437
Get NSInstances with all_fields attribute selector
    Log    Get the list of NSInstances, using fields
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
438
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
439
    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances?all_fields
aureliano sinatra's avatar
aureliano sinatra committed
440
441
442
443
444
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
Get NSInstances with exclude_default attribute selector
    Log    Get the list of NSInstances, using fields
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
445
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
446
    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances?exclude_default
aureliano sinatra's avatar
aureliano sinatra committed
447
448
449
450
451
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
Get NSInstances with fields attribute selector
    Log    Get the list of NSInstances, using fields
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
452
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
453
    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances?fields=${fields_nsInstances}
aureliano sinatra's avatar
aureliano sinatra committed
454
    ${output}=    Output    response
455
456
457
458
    Set Suite Variable    ${response}    ${output}
Get NSInstances with fields and exclude_default attribute selector
    Log    Get the list of NSInstances, using fields
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
459
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
460
    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances?fields=${fields_nsInstances}&exclude_default
461
    ${output}=    Output    response
aureliano sinatra's avatar
aureliano sinatra committed
462
463
464
465
    Set Suite Variable    ${response}    ${output}	
Get NSInstances with exclude_fields attribute selector
    Log    Get the list of NSInstances, using fields
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
466
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
467
    GET    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances?exclude_fields=${fields_nsInstances}
aureliano sinatra's avatar
aureliano sinatra committed
468
469
470
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output} 
    	
aureliano sinatra's avatar
aureliano sinatra committed
471
472
473
474
PUT NSInstances
    log    Trying to perform a PUT. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
475
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
476
    Put    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances
aureliano sinatra's avatar
aureliano sinatra committed
477
    ${outputResponse}=    Output    response
478
	Set Global Variable    ${response}    ${outputResponse}   
aureliano sinatra's avatar
aureliano sinatra committed
479
480
481
482
483
	
PATCH NSInstances
    log    Trying to perform a PATCH. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
484
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
485
    Patch    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances
aureliano sinatra's avatar
aureliano sinatra committed
486
    ${outputResponse}=    Output    response
487
	Set Global Variable    ${response}    ${outputResponse}  
aureliano sinatra's avatar
aureliano sinatra committed
488
489
490
491
492
	
DELETE NSInstances
    log    Trying to perform a DELETE. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
493
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
494
    Delete    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances
aureliano sinatra's avatar
aureliano sinatra committed
495
    ${outputResponse}=    Output    response
496
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
497
498
499
500
501

POST IndividualNSInstance
    Log    Trying to perform a POST. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
502
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
503
    Post    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nonExistentNsId}
aureliano sinatra's avatar
aureliano sinatra committed
504
    ${outputResponse}=    Output    response
505
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
506
507
508
509
510
	
GET IndividualNSInstance
    Log    Trying to get information about an individual NS instance
    Set Headers    {"Accept":"${ACCEPT}"}  
    Set Headers    {"Content-Type": "${CONTENT_TYPE}"}
511
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
512
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}
513
    ${Etag}=    Output    response headers ETag
aureliano sinatra's avatar
aureliano sinatra committed
514
    ${outputResponse}=    Output    response
515
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
516

aureliano sinatra's avatar
aureliano sinatra committed
517
    
aureliano sinatra's avatar
aureliano sinatra committed
518
519
520
521
PUT IndividualNSInstance
    Log    Trying to perform a PUT. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
522
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
523
    Put    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}
aureliano sinatra's avatar
aureliano sinatra committed
524
    ${outputResponse}=    Output    response
525
	Set Global Variable    ${response}    ${outputResponse} 	
aureliano sinatra's avatar
aureliano sinatra committed
526
527
528
529
530
	
PATCH IndividualNSInstance
    Log    Trying to perform a PATCH. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
531
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
532
    Patch    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}
aureliano sinatra's avatar
aureliano sinatra committed
533
    ${outputResponse}=    Output    response
534
	Set Global Variable    ${response}    ${outputResponse} 	
aureliano sinatra's avatar
aureliano sinatra committed
535
536
537
	
DELETE IndividualNSInstance
    log    Trying to delete an individual VNF instance
538
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
539
    Delete    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}
aureliano sinatra's avatar
aureliano sinatra committed
540
    ${outputResponse}=    Output    response
541
	Set Global Variable    ${response}    ${outputResponse} 	
aureliano sinatra's avatar
aureliano sinatra committed
542
543
544
545
	

DELETE IndividualNSInstance Conflict
    log    Trying to delete an individual VNF instance
546
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
547
    Delete    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${ConflictNsInstanceId}
aureliano sinatra's avatar
aureliano sinatra committed
548
    ${outputResponse}=    Output    response
549
	Set Global Variable    ${response}    ${outputResponse} 	
aureliano sinatra's avatar
aureliano sinatra committed
550
551
552
553


DELETE Instantiate NSInstance
    log    Trying to delete an instantiate NS instance. This method should not be implemented
554
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
555
    Delete    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/instantiate
aureliano sinatra's avatar
aureliano sinatra committed
556
    ${outputResponse}=    Output    response
557
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
558
559
560
561
562
 
 PATCH Instantiate NSInstance
    log    Trying to patch an instantiate NS instance. This method should not be implemented 
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
563
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
564
    Patch    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/instantiate
aureliano sinatra's avatar
aureliano sinatra committed
565
    ${outputResponse}=    Output    response
566
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
567
568
569
570
571
 
PUT Instantiate NSInstance
    log    Trying to put an instantiate NS instance. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
572
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
573
    Put    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/instantiate
aureliano sinatra's avatar
aureliano sinatra committed
574
    ${outputResponse}=    Output    response
575
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
576
577
578
579
580
	
GET Instantiate NSInstance
    log    Trying to get an instantiate NS instance. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
581
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
582
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/instantiate
aureliano sinatra's avatar
aureliano sinatra committed
583
    ${outputResponse}=    Output    response
584
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
585
	
586
 POST Instantiate nsInstance
aureliano sinatra's avatar
aureliano sinatra committed
587
588
589
    Log    Trying to Instantiate a ns Instance
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
590
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
591
    Run Keyword If    ${check_descriptors} == 1    PARSE the NS Descriptor File
592
    ${template}=    Get File    jsons/InstantiateNs.json
593
    ${body}=        Format String   ${template}     nsFlavourId=${nsFlavourId}   vimAccountId=${vimAccountId}   nsdId=${nsdId}    sapdId=${SAP_IDs[0]}
Najam UI Hassan's avatar
Najam UI Hassan committed
594
    Post    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/instantiate    ${body}
aureliano sinatra's avatar
aureliano sinatra committed
595
    ${outputResponse}=    Output    response
596
	Set Global Variable    ${response}    ${outputResponse}
aureliano sinatra's avatar
aureliano sinatra committed
597
598
599
	
DELETE Scale NSInstance
    log    Trying to delete an Scale NS instance. This method should not be implemented
600
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
601
    Delete    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/scale
aureliano sinatra's avatar
aureliano sinatra committed
602
    ${outputResponse}=    Output    response
603
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
604
605
606
607
608
 
 PATCH Scale NSInstance
    log    Trying to patch an Scale NS instance. This method should not be implemented 
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
609
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
610
    Patch    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/scale
aureliano sinatra's avatar
aureliano sinatra committed
611
    ${outputResponse}=    Output    response
612
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
613
614
615
616
617
 
PUT Scale NSInstance
    log    Trying to put an Scale NS instance. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
618
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
619
    Put    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/scale
aureliano sinatra's avatar
aureliano sinatra committed
620
    ${outputResponse}=    Output    response
621
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
622
623
624
625
626
	
GET Scale NSInstance
    log    Trying to get an Scale NS instance. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
627
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
628
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/scale
aureliano sinatra's avatar
aureliano sinatra committed
629
    ${outputResponse}=    Output    response
630
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
631
632
633
634
635
	
POST scale nsInstance
	Log    Trying to Instantiate a scale NS Instance
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
636
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
637
    Run Keyword If    ${check_descriptors} == 1    PARSE the Descriptor File
638
    ${template}=    Get File    jsons/ScaleNs.json
639
    ${body}=        Format String   ${template}     scaleType=${scaleType}   scaleTimeout=${scaleTimeout}   scaleVnfType=${scaleVnfType}   scaleGroupDescriptor=${scaleGroupDescriptor}   scaleMemberVnfIndex=${scaleMemberVnfIndex}    vnfInstantiationLevelId=${InstantiationLevel_IDs[0]}
Najam UI Hassan's avatar
Najam UI Hassan committed
640
	Post    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/scale    ${body}
aureliano sinatra's avatar
aureliano sinatra committed
641
    ${outputResponse}=    Output    response
642
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
643
644
645
	
DELETE Update NSInstance
    log    Trying to delete an Update NS instance. This method should not be implemented
646
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
647
    Delete    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/update
aureliano sinatra's avatar
aureliano sinatra committed
648
    ${outputResponse}=    Output    response
649
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
650
651
652
653
654
 
 PATCH Update NSInstance
    log    Trying to patch an Update NS instance. This method should not be implemented 
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
655
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
656
    Patch    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/update
aureliano sinatra's avatar
aureliano sinatra committed
657
    ${outputResponse}=    Output    response
658
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
659
660
661
662
663
 
PUT Update NSInstance
    log    Trying to put an Update NS instance. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
664
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
665
    Put    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/update
aureliano sinatra's avatar
aureliano sinatra committed
666
    ${outputResponse}=    Output    response
667
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
668
669
670
671
672
	
GET Update NSInstance
    log    Trying to get an Update NS instance. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
673
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
674
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/update
aureliano sinatra's avatar
aureliano sinatra committed
675
    ${outputResponse}=    Output    response
676
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
677
678
679
680
681
	
POST Update NSInstance
	Log    Trying to Instantiate a Update NS Instance
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
682
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
683
684
    Run Keyword If    ${check_descriptors} == 1    PARSE the Descriptor File
    Run Keyword If    ${check_descriptors} == 1    PARSE the NS Descriptor File  
685
    ${template} =    Get File    jsons/UpdateNsRequest.json
686
    ${body}=        Format String   ${template}     vnfdId=${descriptor_id}    vnfFlavourId=${Flavour_ID}    newFlavourId=${Flavour_ID}    vnfVirtualLinkDescId=${VirtualLink_IDs[0]}    instantiationLevelId=${InstantiationLevel_IDs[1]}    vnfInstantiationLevelId=${InstantiationLevel_IDs[0]}    newNsdId=${NS_DescriptorID}    sapdId=${SAP_IDs[0]}    vnfInstanceId=${vnfInstanceId}    
687
    Post    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/update    ${body}
aureliano sinatra's avatar
aureliano sinatra committed
688
    ${outputResponse}=    Output    response
689
	Set Global Variable    ${response}    ${outputResponse} 
690
 
aureliano sinatra's avatar
aureliano sinatra committed
691
692
DELETE Heal NSInstance
    log    Trying to Delete an Heal NS instance. This method should not be implemented
693
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
694
    Delete    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/heal
aureliano sinatra's avatar
aureliano sinatra committed
695
    ${outputResponse}=    Output    response
696
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
697
698
699
700
701
 
 PATCH Heal NSInstance
    log    Trying to patch an Heal NS instance. This method should not be implemented 
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
702
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
703
    Patch    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/heal
aureliano sinatra's avatar
aureliano sinatra committed
704
    ${outputResponse}=    Output    response
705
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
706
707
708
709
710
 
PUT Heal NSInstance
    log    Trying to put an Heal NS instance. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
711
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
712
    Put    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/heal
aureliano sinatra's avatar
aureliano sinatra committed
713
    ${outputResponse}=    Output    response
714
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
715
716
717
718
719
	
GET Heal NSInstance
    log    Trying to get an Heal NS instance. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
720
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
721
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/heal
aureliano sinatra's avatar
aureliano sinatra committed
722
    ${outputResponse}=    Output    response
723
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
724
725
726
727
728
	
POST Heal NSInstance
	Log    Trying to Instantiate a Heal NS Instance
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
729
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
730
731
    ${template}=    Get File    jsons/HealNsRequest.json
    ${body}=        Format String   ${template}     nsDegreeHealing=${nsDegreeHealing}
Najam UI Hassan's avatar
Najam UI Hassan committed
732
	Post    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/heal    ${body}
aureliano sinatra's avatar
aureliano sinatra committed
733
    ${outputResponse}=    Output    response
734
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
735
736
737
	
DELETE Terminate NSInstance
    log    Trying to Delete an Terminate NS instance. This method should not be implemented
738
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
739
    Delete    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/terminate
aureliano sinatra's avatar
aureliano sinatra committed
740
    ${outputResponse}=    Output    response
741
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
742
743
744
745
746
 
PATCH Terminate NSInstance
    log    Trying to patch an Terminate NS instance. This method should not be implemented 
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
747
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
748
    Patch    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/terminate
aureliano sinatra's avatar
aureliano sinatra committed
749
    ${outputResponse}=    Output    response
750
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
751
752
753
754
755
 
PUT Terminate NSInstance
    log    Trying to put an Terminate NS instance. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
756
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
757
    Put    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/terminate
aureliano sinatra's avatar
aureliano sinatra committed
758
    ${outputResponse}=    Output    response
759
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
760
761
762
763
764
	
GET Terminate NSInstance
    log    Trying to Get an Terminate NS instance. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}  
765
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
766
    Get    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/terminate
aureliano sinatra's avatar
aureliano sinatra committed
767
    ${outputResponse}=    Output    response
768
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
769
770
771
772
773
	
POST Terminate NSInstance
	Log    Trying to Instantiate a Terminate NS Instance
    Set Headers  {"Accept":"${ACCEPT}"}  
    Set Headers  {"Content-Type": "${CONTENT_TYPE}"}
774
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
aureliano sinatra's avatar
aureliano sinatra committed
775
    ${body}=    Get File    jsons/TerminateNsRequest.json
Najam UI Hassan's avatar
Najam UI Hassan committed
776
	Post    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_instances/${nsInstanceId}/terminate    ${body}
aureliano sinatra's avatar
aureliano sinatra committed
777
    ${outputResponse}=    Output    response
778
	Set Global Variable    ${response}    ${outputResponse} 
aureliano sinatra's avatar
aureliano sinatra committed
779
		
780
POST NS LCM OP Occurrences
aureliano sinatra's avatar
aureliano sinatra committed
781
782
    log    Trying to perform a POST. This method should not be implemented
    Set Headers  {"Accept":"${ACCEPT}"}  
783
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Najam UI Hassan's avatar
Najam UI Hassan committed
784
    Post    ${apiRoot}/${apiName}/${apiMajorVersion}/ns_lcm_op_occs