Newer
Older
Elian Kraja
committed
*** Settings ***
Library JSONSchemaLibrary schemas/
Resource environment/variables.txt # Generic Parameters
Library OperatingSystem
Library JSONLibrary
Elian Kraja
committed
Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_verify=false
Library Process
Library MockServerLibrary
Elian Kraja
committed
*** Keywords ***
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Get all VNF Packages
Log Trying to get all VNF Packages present in the NFVO Catalogue
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages
${output}= Output response
Set Suite Variable ${response} ${output}
Check HTTP Response Body Does Not Contain softwareImages
Log Checking that field element is missing
${softwareImages}= Get Value From Json ${response['body']} $..softwareImages
Should Be Empty ${softwareImages}
Log Element is empty as expected
Check HTTP Response Body Does Not Contain additionalArtifacts
Log Checking that field element is missing
${additionalArtifacts}= Get Value From Json ${response['body']} $..additionalArtifacts
Should Be Empty ${additionalArtifacts}
Log Element is empty as expected
Check HTTP Response Body Does Not Contain userDefinedData
Log Checking that field element is missing
${userDefinedData}= Get Value From Json ${response['body']} $..userDefinedData
Should Be Empty ${userDefinedData}
Log Element is empty as expected
Check HTTP Response Body Does Not Contain checksum
Log Checking that field element is missing
${checksum}= Get Value From Json ${response['body']} $..checksum
Should Be Empty ${checksum}
Log Element is empty as expected
GET VNF Packages with attribute-based filter
Log Trying to get all VNF Packages present in the NFVO Catalogue, using filter params
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages?${POS_FILTER}
${output}= Output response
Set Suite Variable ${response} ${output}
Check HTTP Response Body VnfPkgsInfo Matches the requested Attribute-Based Filter
Log Checking that attribute-based filter is matched
@{attr} = Split String ${POS_FILTER} ,${VAR_SEPERATOR}
@{var_id} = Split String @{attr}[0] ,${SEPERATOR}
@{var_provider} = Split String @{attr}[1] ,${SEPERATOR}
Should Be True "${response['body'][0]['vnfdId']}"=="@{var_id}[1]" and "${response['body'][0]['vnfProvider']}"=="@{var_provider}[1]"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
GET VNF Packages with invalid attribute-based filter
Log Trying to perform a negative get, filtering by the inexistent filter 'nfvId'
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages?${NEG_FILTER}
${output}= Output response
Set Suite Variable ${response} ${output}
Get all VNF Packages with malformed authorization token
Pass Execution If ${AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication
Log The GET method queries using invalid token
Set Headers {"Accept": "${ACCEPT_JSON}"}
Set Headers {"Authorization": "${BAD_AUTHORIZATION}"}
Log Execute Query and validate response
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_packages
${output}= Output response
Set Suite Variable ${response} ${output}
Get all VNF Packages without authorization token
Pass Execution If ${AUTH_USAGE} == 0 Skipping test as it is not supporting authentication
Log The GET method queries omitting token
Set Headers {"Accept": "${ACCEPT_JSON}"}
Log Execute Query and validate response
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_packages
${output}= Output response
Set Suite Variable ${response} ${output}
GET VNF Packages with all_fields attribute selector
Log Trying to get all VNF Packages present in the NFVO Catalogue, using filter params
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages?all_fields
${output}= Output response
Set Suite Variable ${response} ${output}
Check HTTP Response Body VnfPkgsInfo Matches the requested all_fields selector
Log Trying to validate softwareImages schema
${softwareImages}= Get Value From Json ${response['body']} $..softwareImages
Validate Json softwareImage.schema.json ${softwareImages[0]}
Log Validation for softwareImage schema OK
Log Trying to validate additionalArtifacts schema
${additional_artifacts}= Get Value From Json ${response['body']} $..additionalArtifacts
Validate Json additionalArtifacts.schema.json ${additional_artifacts[0]}
Log Validation for additionalArtifacts schema OK
${links}= Get Value From Json ${response['body']} $.._links
Validate Json links.schema.json ${links[0]}
Log Validation for _links schema OK
GET VNF Packages with exclude_default attribute selector
Log Trying to get all VNF Packages present in the NFVO Catalogue, using exclude_default filter.
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages?exclude_default
${output}= Output response
Set Suite Variable ${response} ${output}
Check HTTP Response Body VnfPkgsInfo Matches the requested exclude_default selector
Log Checking missing information for softwareImages element
${softwareImages}= Get Value From Json ${response['body']} $..softwareImages
Should Be Empty ${softwareImages}
Log softwareImages element is missing as excepted
Log Checking missing information for additionalArtifact element
${additional_artifacts}= Get Value From Json ${response['body']} $..additionalArtifacts
Should Be Empty ${additional_artifacts}
Log additionalArtifact element is missing as excepted
GET VNF Packages with fields attribute selector
Log Trying to get all VNF Packages present in the NFVO Catalogue, using fields
Pass Execution If ${NFVO_FIELDS} == 0 The NFVO is not able to use fields parameter
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages?fields=${fields}
${output}= Output response
Set Suite Variable ${response} ${output}
Check HTTP Response Body vnfPkgsInfo Matches the requested fields selector
Log Trying to validate softwareImages schema
${softwareImages}= Get Value From Json ${response['body']} $..softwareImages
Validate Json softwareImage.schema.json ${softwareImages[0]}
Log Validation for softwareImage schema OK
Log Trying to validate additionalArtifacts schema
${additional_artifacts}= Get Value From Json ${response['body']} $..additionalArtifacts
Validate Json additionalArtifacts.schema.json ${additional_artifacts[0]}
Log Validation for additionalArtifacts schema OK
GET VNF Packages with exclude_fields attribute selector
Log Trying to get all VNF Packages present in the NFVO Catalogue, using fields
Pass Execution If ${NFVO_FIELDS} == 0 The NFVO is not able to use fields parameter
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages?exclude_fields=${fields}
${output}= Output response
Set Suite Variable ${response} ${output}
Check HTTP Response Body vnfPkgsInfo Matches the requested exclude_fields selector
Log Checking missing information for softwareImages element
${softwareImages}= Get Value From Json ${response['body']} $..softwareImages
Should Be Empty ${softwareImages}
Log softwareImages element is missing as excepted
Log Checking missing information for additionalArtifact element
${additional_artifacts}= Get Value From Json ${response['body']} $..additionalArtifacts
Should Be Empty ${additional_artifacts}
Log additionalArtifact element is missing as excepted
GET all VNF Packages with invalid resource endpoint
Log Trying to perform a GET on a erroneous URI
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${erroneousVnfPkgId}
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
${output}= Output response
Set Suite Variable ${response} ${output}
Send Post Request to create new VNF Package Resource
Log Creating a new VNF Package
Set Headers {"Accept": "${ACCEPT_JSON}"}
Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"}
${body}= Get File jsons/CreateVnfPkgInfoRequest.json
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
POST ${apiRoot}/${apiName}/${apiVersion}/vnf_packages ${body}
${output}= Output response
Set Suite Variable ${response} ${output}
Check Postcondition VNF Package Resource Exists
Log Checking that nsd info exists
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${response['body']['id']}
${output}= Output response
Set Suite Variable ${response} ${output}
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is vnfPkgInfo
Send PUT Request for all VNF Packages
Log Trying to perform a PUT (method should not be implemented)
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
PUT ${apiRoot}/${apiName}/${apiVersion}/vnf_packages
${output}= Output response
Set Suite Variable ${response} ${output}
Loading full blame...