Skip to content

Commit 6f6bbf7

Browse files
committed
typing: Add missing ensure_service_version calls
This will ensure we narrow types accordingly and prevent some future issues as more of SDK is typed. Note that we only do this in the volume commands: the common and compute commands _should_ handle both volume v2 and volume v3 APIs. Change-Id: Ibb437e7811d6336b716fe08d48dc2d1ba960b08c Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
1 parent 9bdbc60 commit 6f6bbf7

7 files changed

Lines changed: 67 additions & 21 deletions

File tree

openstackclient/volume/v2/service.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from collections.abc import Iterable, Sequence
1919
from typing import Any
2020

21+
from openstack import utils as sdk_utils
2122
from osc_lib import exceptions
2223
from osc_lib import utils
2324

@@ -51,7 +52,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
5152
def take_action(
5253
self, parsed_args: argparse.Namespace
5354
) -> tuple[Sequence[str], Iterable[tuple[Any, ...]]]:
54-
volume_client = self.app.client_manager.sdk_connection.volume
55+
volume_client = sdk_utils.ensure_service_version(
56+
self.app.client_manager.sdk_connection.volume, '2'
57+
)
5558

5659
columns: tuple[str, ...] = (
5760
"binary",
@@ -129,7 +132,9 @@ def take_action(self, parsed_args: argparse.Namespace) -> None:
129132
)
130133
raise exceptions.CommandError(msg)
131134

132-
volume_client = self.app.client_manager.sdk_connection.volume
135+
volume_client = sdk_utils.ensure_service_version(
136+
self.app.client_manager.sdk_connection.volume, '2'
137+
)
133138

134139
service = volume_client.find_service(
135140
parsed_args.service, ignore_missing=False, host=parsed_args.host

openstackclient/volume/v2/volume.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,9 @@ def take_action(
282282
# volume from snapshot or source volume
283283
size = parsed_args.size
284284

285-
volume_client = self.app.client_manager.sdk_connection.volume
285+
volume_client = sdk_utils.ensure_service_version(
286+
self.app.client_manager.sdk_connection.volume, '2'
287+
)
286288
image_client = self.app.client_manager.image
287289

288290
source_volume = None
@@ -419,7 +421,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
419421
return parser
420422

421423
def take_action(self, parsed_args: argparse.Namespace) -> None:
422-
volume_client = self.app.client_manager.sdk_connection.volume
424+
volume_client = sdk_utils.ensure_service_version(
425+
self.app.client_manager.sdk_connection.volume, '2'
426+
)
423427
result = 0
424428

425429
for volume in parsed_args.volumes:
@@ -635,7 +639,10 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
635639
return parser
636640

637641
def take_action(self, parsed_args: argparse.Namespace) -> None:
638-
volume_client = self.app.client_manager.sdk_connection.volume
642+
volume_client = sdk_utils.ensure_service_version(
643+
self.app.client_manager.sdk_connection.volume, '2'
644+
)
645+
639646
volume = volume_client.find_volume(
640647
parsed_args.volume, ignore_missing=False
641648
)

openstackclient/volume/v2/volume_backend.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from collections.abc import Iterable, Sequence
1919
from typing import Any
2020

21+
from openstack import utils as sdk_utils
2122
from osc_lib.cli import format_columns
2223
from osc_lib import utils
2324

@@ -40,7 +41,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
4041
def take_action(
4142
self, parsed_args: argparse.Namespace
4243
) -> tuple[Sequence[str], Iterable[tuple[Any, ...]]]:
43-
volume_client = self.app.client_manager.sdk_connection.volume
44+
volume_client = sdk_utils.ensure_service_version(
45+
self.app.client_manager.sdk_connection.volume, '2'
46+
)
4447

4548
columns = [
4649
'Title',
@@ -92,7 +95,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
9295
def take_action(
9396
self, parsed_args: argparse.Namespace
9497
) -> tuple[Sequence[str], Iterable[tuple[Any, ...]]]:
95-
volume_client = self.app.client_manager.sdk_connection.volume
98+
volume_client = sdk_utils.ensure_service_version(
99+
self.app.client_manager.sdk_connection.volume, '2'
100+
)
96101

97102
if parsed_args.long:
98103
columns = [

openstackclient/volume/v2/volume_backup.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from typing import Any
2222

2323
from cliff import columns as cliff_columns
24+
from openstack import utils as sdk_utils
2425
from osc_lib import exceptions
2526
from osc_lib import utils
2627

@@ -110,7 +111,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
110111
def take_action(
111112
self, parsed_args: argparse.Namespace
112113
) -> tuple[Sequence[str], Iterable[Any]]:
113-
volume_client = self.app.client_manager.sdk_connection.volume
114+
volume_client = sdk_utils.ensure_service_version(
115+
self.app.client_manager.sdk_connection.volume, '2'
116+
)
114117

115118
volume_id = volume_client.find_volume(
116119
parsed_args.volume,
@@ -163,7 +166,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
163166
return parser
164167

165168
def take_action(self, parsed_args: argparse.Namespace) -> None:
166-
volume_client = self.app.client_manager.sdk_connection.volume
169+
volume_client = sdk_utils.ensure_service_version(
170+
self.app.client_manager.sdk_connection.volume, '2'
171+
)
167172
result = 0
168173

169174
for backup in parsed_args.backups:
@@ -247,7 +252,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
247252
def take_action(
248253
self, parsed_args: argparse.Namespace
249254
) -> tuple[Sequence[str], Iterable[tuple[Any, ...]]]:
250-
volume_client = self.app.client_manager.sdk_connection.volume
255+
volume_client = sdk_utils.ensure_service_version(
256+
self.app.client_manager.sdk_connection.volume, '2'
257+
)
251258

252259
columns: tuple[str, ...] = (
253260
'id',
@@ -362,7 +369,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
362369
def take_action(
363370
self, parsed_args: argparse.Namespace
364371
) -> tuple[Sequence[str], Iterable[Any]]:
365-
volume_client = self.app.client_manager.sdk_connection.volume
372+
volume_client = sdk_utils.ensure_service_version(
373+
self.app.client_manager.sdk_connection.volume, '2'
374+
)
366375

367376
backup = volume_client.find_backup(
368377
parsed_args.backup,
@@ -428,7 +437,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
428437
return parser
429438

430439
def take_action(self, parsed_args: argparse.Namespace) -> None:
431-
volume_client = self.app.client_manager.sdk_connection.volume
440+
volume_client = sdk_utils.ensure_service_version(
441+
self.app.client_manager.sdk_connection.volume, '2'
442+
)
432443

433444
backup = volume_client.find_backup(
434445
parsed_args.backup,
@@ -465,7 +476,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
465476
def take_action(
466477
self, parsed_args: argparse.Namespace
467478
) -> tuple[Sequence[str], Iterable[Any]]:
468-
volume_client = self.app.client_manager.sdk_connection.volume
479+
volume_client = sdk_utils.ensure_service_version(
480+
self.app.client_manager.sdk_connection.volume, '2'
481+
)
469482
backup = volume_client.find_backup(
470483
parsed_args.backup, ignore_missing=False
471484
)

openstackclient/volume/v2/volume_snapshot.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
221221
return parser
222222

223223
def take_action(self, parsed_args: argparse.Namespace) -> None:
224-
volume_client = self.app.client_manager.sdk_connection.volume
224+
volume_client = sdk_utils.ensure_service_version(
225+
self.app.client_manager.sdk_connection.volume, '2'
226+
)
225227
result = 0
226228

227229
for snapshot in parsed_args.snapshots:
@@ -311,7 +313,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
311313
def take_action(
312314
self, parsed_args: argparse.Namespace
313315
) -> tuple[Sequence[str], Iterable[tuple[Any, ...]]]:
314-
volume_client = self.app.client_manager.sdk_connection.volume
316+
volume_client = sdk_utils.ensure_service_version(
317+
self.app.client_manager.sdk_connection.volume, '2'
318+
)
315319
identity_client = self.app.client_manager.identity
316320

317321
columns: tuple[str, ...] = (
@@ -456,7 +460,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
456460
return parser
457461

458462
def take_action(self, parsed_args: argparse.Namespace) -> None:
459-
volume_client = self.app.client_manager.sdk_connection.volume
463+
volume_client = sdk_utils.ensure_service_version(
464+
self.app.client_manager.sdk_connection.volume, '2'
465+
)
460466

461467
snapshot = volume_client.find_snapshot(
462468
parsed_args.snapshot, ignore_missing=False

openstackclient/volume/v3/service.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
5252
def take_action(
5353
self, parsed_args: argparse.Namespace
5454
) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
55-
volume_client = self.app.client_manager.sdk_connection.volume
55+
volume_client = sdk_utils.ensure_service_version(
56+
self.app.client_manager.sdk_connection.volume, '3'
57+
)
5658

5759
columns: tuple[str, ...] = (
5860
"binary",
@@ -136,7 +138,9 @@ def take_action(self, parsed_args: argparse.Namespace) -> None:
136138
)
137139
raise exceptions.CommandError(msg)
138140

139-
volume_client = self.app.client_manager.sdk_connection.volume
141+
volume_client = sdk_utils.ensure_service_version(
142+
self.app.client_manager.sdk_connection.volume, '3'
143+
)
140144

141145
service = volume_client.find_service(
142146
parsed_args.service, ignore_missing=False, host=parsed_args.host

openstackclient/volume/v3/volume_snapshot.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
328328
def take_action(
329329
self, parsed_args: argparse.Namespace
330330
) -> tuple[tuple[str, ...], Iterable[tuple[Any, ...]]]:
331-
volume_client = self.app.client_manager.sdk_connection.volume
331+
volume_client = sdk_utils.ensure_service_version(
332+
self.app.client_manager.sdk_connection.volume, '3'
333+
)
332334
identity_client = self.app.client_manager.identity
333335

334336
columns: tuple[str, ...] = (
@@ -473,7 +475,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
473475
return parser
474476

475477
def take_action(self, parsed_args: argparse.Namespace) -> None:
476-
volume_client = self.app.client_manager.sdk_connection.volume
478+
volume_client = sdk_utils.ensure_service_version(
479+
self.app.client_manager.sdk_connection.volume, '3'
480+
)
477481

478482
snapshot = volume_client.find_snapshot(
479483
parsed_args.snapshot, ignore_missing=False
@@ -580,7 +584,9 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
580584
return parser
581585

582586
def take_action(self, parsed_args: argparse.Namespace) -> None:
583-
volume_client = self.app.client_manager.sdk_connection.volume
587+
volume_client = sdk_utils.ensure_service_version(
588+
self.app.client_manager.sdk_connection.volume, '3'
589+
)
584590

585591
snapshot = volume_client.find_snapshot(
586592
parsed_args.snapshot, ignore_missing=False

0 commit comments

Comments
 (0)