@@ -33,23 +33,23 @@ def set_mgr_net_proto_uri(sut: SystemUnderTest, data):
33
33
34
34
35
35
def find_certificates (sut : SystemUnderTest , data ):
36
- if 'NetworkProtocol' in data :
37
- uri = data [ 'NetworkProtocol' ][ '@odata.id' ]
38
- r = sut .session . get (sut . rhost + uri )
36
+ uri = data . get ( 'NetworkProtocol' , {}). get ( '@odata.id' )
37
+ if uri :
38
+ r = sut .get (uri )
39
39
yield {'uri' : uri , 'response' : r }
40
40
if r .ok :
41
41
d = utils .get_response_json (r )
42
- if 'HTTPS' in d and 'Certificates' in d [ 'HTTPS' ]:
43
- coll_uri = d [ 'HTTPS' ][ 'Certificates' ][ '@odata.id' ]
44
- r = sut .session . get (sut . rhost + coll_uri )
42
+ coll_uri = d . get ( 'HTTPS' , {}). get ( 'Certificates' , {}). get ( '@odata.id' )
43
+ if coll_uri :
44
+ r = sut .get (coll_uri )
45
45
yield {'uri' : coll_uri , 'response' : r }
46
46
if r .ok :
47
47
d = utils .get_response_json (r )
48
- if 'Members' in d and len ( d [ 'Members' ]):
49
- for m in d [ 'Members' ]:
50
- uri = m [ '@odata.id' ]
48
+ for m in d . get ( 'Members' , [ ]):
49
+ uri = m . get ( '@odata.id' )
50
+ if uri :
51
51
# uncomment next 2 lines if we need to read certs
52
- # r = session .get(sut.rhost + uri)
52
+ # r = sut .get(uri)
53
53
# yield {'uri': uri, 'response': r}
54
54
sut .add_cert (coll_uri , uri )
55
55
@@ -65,25 +65,24 @@ def get_default_resources(sut: SystemUnderTest, uri='/redfish/v1/',
65
65
:return: dict elements containing the URI and `requests` response
66
66
"""
67
67
# do GETs on spec-defined URIs
68
- yield {'uri' : '/redfish' , 'response' : sut .session .get (
69
- sut .rhost + '/redfish' )}
68
+ yield {'uri' : '/redfish' , 'response' : sut .get ('/redfish' )}
70
69
yield {'uri' : '/redfish/v1/odata' , 'response' :
71
- sut .session . get (sut . rhost + '/redfish/v1/odata' )}
70
+ sut .get ('/redfish/v1/odata' )}
72
71
yield {'uri' : '/redfish/v1' , 'response' :
73
- sut .session . get (sut . rhost + '/redfish/v1' )}
72
+ sut .get ('/redfish/v1' )}
74
73
yield {'uri' : '/redfish/v1/$metadata' , 'response' :
75
- sut .session . get (sut . rhost + '/redfish/v1/$metadata' ,
76
- headers = {'accept' : 'application/xml' })}
74
+ sut .get ('/redfish/v1/$metadata' ,
75
+ headers = {'accept' : 'application/xml' })}
77
76
yield {'uri' : '/redfish/v1/openapi.yaml' ,
78
77
'request_type' : RequestType .YAML ,
79
- 'response' : sut .session . get (sut . rhost + '/redfish/v1/openapi.yaml' ,
80
- headers = {'accept' : 'application/yaml' })}
78
+ 'response' : sut .get ('/redfish/v1/openapi.yaml' ,
79
+ headers = {'accept' : 'application/yaml' })}
81
80
82
81
# do HEAD on the service root
83
- r = sut .session . head (sut . rhost + uri )
82
+ r = sut .head (uri )
84
83
yield {'uri' : uri , 'response' : r }
85
84
# do GET on the service root
86
- r = sut .session . get (sut . rhost + uri )
85
+ r = sut .get (uri )
87
86
yield {'uri' : uri , 'response' : r }
88
87
root = utils .get_response_json (r ) if r .status_code == requests .codes .OK else {}
89
88
@@ -93,29 +92,30 @@ def get_default_resources(sut: SystemUnderTest, uri='/redfish/v1/',
93
92
sut .set_supported_query_params (root .get ('ProtocolFeaturesSupported' , {}))
94
93
95
94
for prop in ['Systems' , 'Chassis' ]:
96
- if prop in root :
97
- uri = root [ prop ][ '@odata.id' ]
95
+ uri = root . get ( prop , {}). get ( '@odata.id' )
96
+ if uri :
98
97
sut .set_nav_prop_uri (prop , uri )
99
- r = sut .session . get (sut . rhost + uri )
98
+ r = sut .get (uri )
100
99
yield {'uri' : uri , 'response' : r }
101
100
if r .ok :
102
101
data = utils .get_response_json (r )
103
102
if 'Members' in data and len (data ['Members' ]):
104
- uri = data ['Members' ][0 ]['@odata.id' ]
105
- r = sut .session .get (sut .rhost + uri )
106
- yield {'uri' : uri , 'response' : r }
103
+ uri = data ['Members' ][0 ].get ('@odata.id' )
104
+ if uri :
105
+ r = sut .get (uri )
106
+ yield {'uri' : uri , 'response' : r }
107
107
108
- if 'Managers' in root :
109
- uri = root [ 'Managers' ][ '@odata.id' ]
108
+ uri = root . get ( 'Managers' , {}). get ( '@odata.id' )
109
+ if uri :
110
110
sut .set_nav_prop_uri ('Managers' , uri )
111
- r = sut .session . get (sut . rhost + uri )
111
+ r = sut .get (uri )
112
112
yield {'uri' : uri , 'response' : r }
113
113
if r .ok :
114
114
data = utils .get_response_json (r )
115
- if 'Members' in data and len ( data [ 'Members' ]):
116
- for m in data [ 'Members' ]:
117
- uri = m [ '@odata.id' ]
118
- r = sut .session . get (sut . rhost + uri )
115
+ for m in data . get ( 'Members' , [ ]):
116
+ uri = m . get ( '@odata.id' )
117
+ if uri :
118
+ r = sut .get (uri )
119
119
yield {'uri' : uri , 'response' : r }
120
120
if r .ok :
121
121
d = utils .get_response_json (r )
@@ -124,31 +124,31 @@ def get_default_resources(sut: SystemUnderTest, uri='/redfish/v1/',
124
124
for c in find_certificates (sut , d ):
125
125
yield c
126
126
127
- if 'AccountService' in root :
128
- uri = root [ 'AccountService' ][ '@odata.id' ]
127
+ uri = root . get ( 'AccountService' , {}). get ( '@odata.id' )
128
+ if uri :
129
129
sut .set_nav_prop_uri ('AccountService' , uri )
130
- r = sut .session . get (sut . rhost + uri )
130
+ r = sut .get (uri )
131
131
yield {'uri' : uri , 'response' : r }
132
132
if r .ok :
133
133
data = utils .get_response_json (r )
134
- if 'PrivilegeMap' in data :
135
- uri = data [ 'PrivilegeMap' ][ '@odata.id' ]
134
+ uri = data . get ( 'PrivilegeMap' , {}). get ( '@odata.id' )
135
+ if uri :
136
136
sut .set_nav_prop_uri ('PrivilegeMap' , uri )
137
137
for prop in ['Accounts' , 'Roles' ]:
138
- if prop in data :
139
- uri = data [ prop ][ '@odata.id' ]
140
- r = sut .session . get (sut . rhost + uri )
138
+ uri = data . get ( prop , {}). get ( '@odata.id' )
139
+ if uri :
140
+ r = sut .get (uri )
141
141
yield {'uri' : uri , 'response' : r }
142
142
sut .set_nav_prop_uri (prop , uri )
143
143
if r .ok :
144
144
d = utils .get_response_json (r )
145
- if 'Members' in d and len ( d [ 'Members' ]) :
146
- if prop == 'Accounts' :
147
- resource_type = ResourceType . MANAGER_ACCOUNT
148
- # get accounts up to sut.username
149
- for m in d [ 'Members' ]:
150
- uri = m [ '@odata.id' ]
151
- r = sut .session . get (sut . rhost + uri )
145
+ if prop == 'Accounts' :
146
+ resource_type = ResourceType . MANAGER_ACCOUNT
147
+ # get accounts up to sut.username
148
+ for m in d . get ( 'Members' , []):
149
+ uri = m . get ( '@odata.id' )
150
+ if uri :
151
+ r = sut .get (uri )
152
152
yield {'uri' : uri , 'response' : r ,
153
153
'resource_type' : resource_type }
154
154
if r .ok :
@@ -157,46 +157,48 @@ def get_default_resources(sut: SystemUnderTest, uri='/redfish/v1/',
157
157
== sut .username ):
158
158
break
159
159
160
- else :
161
- resource_type = ResourceType .ROLE
162
- # get all the roles
163
- for m in d ['Members' ]:
164
- uri = m ['@odata.id' ]
165
- r = sut .session .get (sut .rhost + uri )
160
+ else :
161
+ resource_type = ResourceType .ROLE
162
+ # get all the roles
163
+ for m in d .get ('Members' , []):
164
+ uri = m .get ('@odata.id' )
165
+ if uri :
166
+ r = sut .get (uri )
166
167
yield {'uri' : uri , 'response' : r ,
167
168
'resource_type' : resource_type }
168
169
if r .ok :
169
170
sut .add_role (utils .get_response_json (r ))
170
171
171
- if 'SessionService' in root :
172
- uri = root [ 'SessionService' ][ '@odata.id' ]
173
- r = sut .session . get (sut . rhost + uri )
172
+ uri = root . get ( 'SessionService' , {}). get ( '@odata.id' )
173
+ if uri :
174
+ r = sut .get (uri )
174
175
yield {'uri' : uri , 'response' : r }
175
176
if r .ok :
176
177
data = utils .get_response_json (r )
177
- if 'Sessions' in data :
178
- uri = data [ 'Sessions' ][ '@odata.id' ]
179
- r = sut .session . get (sut . rhost + uri )
178
+ uri = data . get ( 'Sessions' , {}). get ( '@odata.id' )
179
+ if uri :
180
+ r = sut .get (uri )
180
181
yield {'uri' : uri , 'response' : r }
181
182
if r .ok :
182
183
data = utils .get_response_json (r )
183
184
if 'Members' in data and len (data ['Members' ]):
184
- uri = data ['Members' ][0 ]['@odata.id' ]
185
- r = sut .session .get (sut .rhost + uri )
186
- yield {'uri' : uri , 'response' : r }
185
+ uri = data ['Members' ][0 ].get ('@odata.id' )
186
+ if uri :
187
+ r = sut .get (uri )
188
+ yield {'uri' : uri , 'response' : r }
187
189
188
- if 'EventService' in root :
189
- uri = root [ 'EventService' ][ '@odata.id' ]
190
+ uri = root . get ( 'EventService' , {}). get ( '@odata.id' )
191
+ if uri :
190
192
sut .set_nav_prop_uri ('EventService' , uri )
191
- r = sut .session . get (sut . rhost + uri )
193
+ r = sut .get (uri )
192
194
yield {'uri' : uri , 'response' : r }
193
195
if r .ok :
194
196
data = utils .get_response_json (r )
195
- if 'Subscriptions' in data :
196
- sut . set_nav_prop_uri (
197
- 'Subscriptions' , data [ 'Subscriptions' ][ '@odata.id' ] )
198
- if 'ServerSentEventUri' in data :
199
- uri = data [ 'ServerSentEventUri' ]
197
+ uri = data . get ( 'Subscriptions' , {}). get ( '@odata.id' )
198
+ if uri :
199
+ sut . set_nav_prop_uri ( 'Subscriptions' , uri )
200
+ uri = data . get ( 'ServerSentEventUri' )
201
+ if uri :
200
202
sut .set_server_sent_event_uri (uri )
201
203
r , event_dest_uri = utils .get_sse_stream (sut )
202
204
if event_dest_uri :
@@ -205,10 +207,10 @@ def get_default_resources(sut: SystemUnderTest, uri='/redfish/v1/',
205
207
yield {'uri' : uri , 'response' : r ,
206
208
'request_type' : RequestType .STREAMING }
207
209
208
- if 'CertificateService' in root :
209
- uri = root [ 'CertificateService' ][ '@odata.id' ]
210
+ uri = root . get ( 'CertificateService' , {}). get ( '@odata.id' )
211
+ if uri :
210
212
sut .set_nav_prop_uri ('CertificateService' , uri )
211
- r = sut .session . get (sut . rhost + uri )
213
+ r = sut .get (uri )
212
214
yield {'uri' : uri , 'response' : r }
213
215
214
216
@@ -286,7 +288,7 @@ def data_modification_requests(sut: SystemUnderTest):
286
288
new_user , new_pwd , new_uri = create_account (
287
289
sut , sut .session , request_type = RequestType .NORMAL )
288
290
if new_uri :
289
- response = sut .session . get (sut . rhost + new_uri )
291
+ response = sut .get (new_uri )
290
292
sut .add_response (new_uri , response )
291
293
if response .ok :
292
294
etag = utils .get_response_etag (response )
@@ -344,7 +346,7 @@ def unsupported_requests(sut: SystemUnderTest):
344
346
response = sut .post (uri , json = {})
345
347
sut .add_response (uri , response , request_type = RequestType .UNSUPPORTED_REQ )
346
348
# Unsupported HTTP methods return HTTP 501
347
- response = sut .session . request ('FAKEMETHODFORTEST' , sut . rhost + uri )
349
+ response = sut .request ('FAKEMETHODFORTEST' , uri )
348
350
sut .add_response (uri , response , request_type = RequestType .UNSUPPORTED_REQ )
349
351
350
352
@@ -354,9 +356,8 @@ def basic_auth_requests(sut: SystemUnderTest):
354
356
}
355
357
uri = sut .sessions_uri
356
358
# good request
357
- r = requests .get (sut .rhost + uri , headers = headers ,
358
- auth = (sut .username , sut .password ),
359
- verify = sut .verify )
359
+ r = sut .get (uri , headers = headers , auth = (sut .username , sut .password ),
360
+ no_session = True )
360
361
sut .add_response (uri , r , request_type = RequestType .BASIC_AUTH )
361
362
362
363
@@ -435,21 +436,20 @@ def bad_auth_requests(sut: SystemUnderTest):
435
436
# IP will be blocked for 600 seconds."
436
437
uri = sut .sessions_uri
437
438
h = headers .copy ()
438
- r = requests .get (sut .rhost + uri , headers = h ,
439
- auth = (acct .new_username (set ()), acct .new_password (sut )),
440
- verify = sut .verify )
439
+ r = sut .get (uri , headers = h , auth = (acct .new_username (set ()), acct .new_password (sut )),
440
+ no_session = True )
441
441
sut .add_response (uri , r , request_type = RequestType .BAD_AUTH )
442
442
# request with bad auth token
443
443
token = 'rfpv%012x' % random .randrange (2 ** 48 ) # ex: 'rfpv9e40b1f54c8a'
444
444
sut .add_priv_info (token )
445
445
uri = '/redfish/v1/RPVfoobar'
446
446
h = headers .copy ()
447
447
h .update ({'X-Auth-Token' : token })
448
- r = requests .get (sut . rhost + uri , headers = h , verify = sut . verify )
448
+ r = sut .get (uri , headers = h , no_session = True )
449
449
sut .add_response (uri , r , request_type = RequestType .BAD_AUTH )
450
450
451
451
452
452
def read_uris_no_auth (sut : SystemUnderTest , session ):
453
453
for uri in sut .get_all_uris ():
454
- response = session .get (sut . rhost + uri )
454
+ response = sut .get (uri , session = session )
455
455
sut .add_response (uri , response , request_type = RequestType .NO_AUTH )
0 commit comments