WIP: leverage remote microversion without requiring human config
Change-Id: I197e6c30c8514e1f72cb1ce3ebad851802632203
This commit is contained in:
parent
7241770603
commit
ce9dea9841
|
@ -63,9 +63,23 @@ 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 minimum and remote microversions."""
|
||||
_, resp_body = self._show_request(None, uri='/')
|
||||
version = resp_body.get('default_version', {})
|
||||
api_min = version.get('min_version')
|
||||
api_max = version.get('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,8 @@ class BaseBaremetalTest(api_version_utils.BaseMicroversionTest,
|
|||
|
||||
cfg_min_version = CONF.baremetal.min_microversion
|
||||
cfg_max_version = CONF.baremetal.max_microversion
|
||||
|
||||
# Check versions and skip based upon *configuration*
|
||||
api_version_utils.check_skip_with_microversion(cls.min_microversion,
|
||||
cls.max_microversion,
|
||||
cfg_min_version,
|
||||
|
@ -100,6 +102,15 @@ class BaseBaremetalTest(api_version_utils.BaseMicroversionTest,
|
|||
else:
|
||||
cls.client = cls.os_admin.baremetal.BaremetalClient()
|
||||
|
||||
# Skip the test if the class version doesn't match.
|
||||
if cls.min_microversion or cls.max_microversion:
|
||||
api_min, api_max = cls.client.get_min_max_api_microversions()
|
||||
api_version_utils.check_skip_with_microversion(
|
||||
cls.min_microversion,
|
||||
cls.max_microversion,
|
||||
api_min,
|
||||
api_max)
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(BaseBaremetalTest, cls).resource_setup()
|
||||
|
|
Loading…
Reference in New Issue