WIP: leverage remote microversion without requiring human config
Change-Id: I197e6c30c8514e1f72cb1ce3ebad851802632203
This commit is contained in:
parent
7241770603
commit
c7e4219cd4
@ -63,9 +63,22 @@ class BaremetalClient(rest_client.RestClient):
|
||||
def get_headers(self):
|
||||
headers = super(BaremetalClient, self).get_headers()
|
||||
if BAREMETAL_MICROVERSION:
|
||||
# NOTE(TheJulia): This is not great, because it can blind a test
|
||||
# to the actual version supported.
|
||||
headers[self.api_microversion_header_name] = BAREMETAL_MICROVERSION
|
||||
return headers
|
||||
|
||||
def get_raw_headers(self):
|
||||
"""A proper get headers without guessing the microversion."""
|
||||
return super(BaremetalClient, self).get_headers()
|
||||
|
||||
def get_min_max_api_microversions(self):
|
||||
"""Returns a tuple of min, max microversions."""
|
||||
headers = self.get_raw_headers()
|
||||
api_min = headers.get('x-openstack-ironic-api-minimum-version')
|
||||
api_max = headers.get('x-openstack-ironic-api-maximum-version')
|
||||
return (api_min, api_max)
|
||||
|
||||
def request(self, *args, **kwargs):
|
||||
resp, resp_body = super(BaremetalClient, self).request(*args, **kwargs)
|
||||
latest_microversion = api_version_utils.LATEST_MICROVERSION
|
||||
|
@ -76,6 +76,15 @@ class BaseBaremetalTest(api_version_utils.BaseMicroversionTest,
|
||||
|
||||
cfg_min_version = CONF.baremetal.min_microversion
|
||||
cfg_max_version = CONF.baremetal.max_microversion
|
||||
|
||||
# Explicitly check with the remote endpoint, gather the versions
|
||||
# and feed that into the skip check if not overridden.
|
||||
api_min, api_max = cls.client.get_min_max_api_microversions()
|
||||
if not cfg_min_version:
|
||||
cfg_min_version = api_min
|
||||
if not cfg_max_version:
|
||||
cfg_max_version = api_max
|
||||
|
||||
api_version_utils.check_skip_with_microversion(cls.min_microversion,
|
||||
cls.max_microversion,
|
||||
cfg_min_version,
|
||||
|
Loading…
Reference in New Issue
Block a user