|
12 | 12 |
|
13 | 13 | import copy |
14 | 14 | import random |
| 15 | +import re |
15 | 16 | from unittest import mock |
16 | 17 | import uuid |
17 | 18 |
|
18 | 19 | from cinderclient import api_versions |
| 20 | +from keystoneauth1 import discover |
19 | 21 | from openstack.block_storage.v3 import _proxy |
20 | 22 | from openstack.block_storage.v3 import availability_zone as _availability_zone |
21 | 23 | from openstack.block_storage.v3 import backup as _backup |
@@ -97,6 +99,26 @@ def setUp(self): |
97 | 99 | spec=_proxy.Proxy, |
98 | 100 | ) |
99 | 101 | self.volume_sdk_client = self.app.client_manager.sdk_connection.volume |
| 102 | + self.set_volume_api_version() # default to the lowest |
| 103 | + |
| 104 | + def set_volume_api_version(self, version: str = '3.0'): |
| 105 | + """Set a fake block storage API version. |
| 106 | +
|
| 107 | + :param version: The fake microversion to "support". This should be a |
| 108 | + string of format '3.xx'. |
| 109 | + :returns: None |
| 110 | + """ |
| 111 | + assert re.match(r'3.\d+', version) |
| 112 | + |
| 113 | + self.volume_client.api_version = api_versions.APIVersion(version) |
| 114 | + |
| 115 | + self.volume_sdk_client.default_microversion = version |
| 116 | + self.volume_sdk_client.get_endpoint_data.return_value = ( |
| 117 | + discover.EndpointData( |
| 118 | + min_microversion='3.0', # cinder has not bumped this yet |
| 119 | + max_microversion=version, |
| 120 | + ) |
| 121 | + ) |
100 | 122 |
|
101 | 123 |
|
102 | 124 | class TestVolume( |
@@ -126,6 +148,7 @@ def setUp(self): |
126 | 148 |
|
127 | 149 | # TODO(stephenfin): Check if the responses are actually the same |
128 | 150 | create_one_snapshot = volume_v2_fakes.create_one_snapshot |
| 151 | +create_one_service = volume_v2_fakes.create_one_service |
129 | 152 |
|
130 | 153 |
|
131 | 154 | def create_one_availability_zone(attrs=None): |
|
0 commit comments