static method to get_highest_client_server_version
This method takes a url for the cinder server endpoint and queries the server for version info. It then returns the min of the server's highest supported version and the cinderclients MAX_VERSION. Change-Id: Ifb3478f1dba660a5d75d243dc2aaf6b421940752
This commit is contained in:
parent
4395dbdda6
commit
d10b467af4
cinderclient
@ -97,6 +97,13 @@ def get_server_version(url):
|
|||||||
return api_versions.APIVersion("2.0"), api_versions.APIVersion("2.0")
|
return api_versions.APIVersion("2.0"), api_versions.APIVersion("2.0")
|
||||||
|
|
||||||
|
|
||||||
|
def get_highest_client_server_version(url):
|
||||||
|
min_server, max_server = get_server_version(url)
|
||||||
|
max_server_version = api_versions.APIVersion.get_string(max_server)
|
||||||
|
|
||||||
|
return min(float(max_server_version), float(api_versions.MAX_VERSION))
|
||||||
|
|
||||||
|
|
||||||
def get_volume_api_from_url(url):
|
def get_volume_api_from_url(url):
|
||||||
scheme, netloc, path, query, frag = urlparse.urlsplit(url)
|
scheme, netloc, path, query, frag = urlparse.urlsplit(url)
|
||||||
components = path.split("/")
|
components = path.split("/")
|
||||||
|
@ -332,3 +332,22 @@ class GetAPIVersionTestCase(utils.TestCase):
|
|||||||
min_version, max_version = cinderclient.client.get_server_version(url)
|
min_version, max_version = cinderclient.client.get_server_version(url)
|
||||||
self.assertEqual(min_version, api_versions.APIVersion('3.0'))
|
self.assertEqual(min_version, api_versions.APIVersion('3.0'))
|
||||||
self.assertEqual(max_version, api_versions.APIVersion('3.16'))
|
self.assertEqual(max_version, api_versions.APIVersion('3.16'))
|
||||||
|
|
||||||
|
@mock.patch('cinderclient.client.requests.get')
|
||||||
|
def test_get_highest_client_server_version(self, mock_request):
|
||||||
|
|
||||||
|
mock_response = utils.TestResponse({
|
||||||
|
"status_code": 200,
|
||||||
|
"text": json.dumps(fakes.fake_request_get())
|
||||||
|
})
|
||||||
|
|
||||||
|
mock_request.return_value = mock_response
|
||||||
|
|
||||||
|
url = "http://192.168.122.127:8776/v3/e5526285ebd741b1819393f772f11fc3"
|
||||||
|
|
||||||
|
highest = cinderclient.client.get_highest_client_server_version(url)
|
||||||
|
current_client_MAX_VERSION = float(api_versions.MAX_VERSION)
|
||||||
|
if current_client_MAX_VERSION > 3.16:
|
||||||
|
self.assertEqual(3.16, highest)
|
||||||
|
else:
|
||||||
|
self.assertEqual(current_client_MAX_VERSION, highest)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user