Skip to content

Commit 56e10cd

Browse files
committed
typing: Typing updates for openstacksdk 4.15.0
More of SDK is typed. That exposes more bugs. Change-Id: I8a9a839e2d06a8b29b0b596ca8233a59979deba1 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
1 parent 7fae757 commit 56e10cd

7 files changed

Lines changed: 32 additions & 19 deletions

File tree

openstackclient/compute/v2/console.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ def take_action(
155155
)
156156

157157
display_columns, columns = _get_console_columns(console)
158-
data = utils.get_dict_properties(console, columns)
158+
# this is a bug in SDK
159+
# https://review.opendev.org/c/openstack/openstacksdk/+/992548
160+
data = utils.get_dict_properties(console, columns) # type: ignore[arg-type]
159161

160162
return (display_columns, data)

openstackclient/compute/v2/console_connection.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,10 @@ def take_action(
4949
self, parsed_args: argparse.Namespace
5050
) -> tuple[Sequence[str], Iterable[Any]]:
5151
compute_client = self.app.client_manager.compute
52-
data = compute_client.validate_console_auth_token(parsed_args.token)
53-
display_columns, columns = _get_console_connection_columns(data)
54-
data = utils.get_dict_properties(data, columns)
52+
auth_token = compute_client.validate_console_auth_token(
53+
parsed_args.token
54+
)
55+
display_columns, columns = _get_console_connection_columns(auth_token)
56+
data = utils.get_dict_properties(auth_token, columns)
5557

5658
return (display_columns, data)

openstackclient/compute/v2/server.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -703,9 +703,10 @@ def take_action(self, parsed_args: argparse.Namespace) -> None:
703703
errors = 0
704704
for security_group in security_groups:
705705
try:
706+
# SDK wants a SecurityGroup object but will handle a dict
706707
compute_client.add_security_group_to_server(
707708
server,
708-
{'name': security_group},
709+
{'name': security_group}, # type: ignore[arg-type]
709710
)
710711
except sdk_exceptions.HttpException as e:
711712
errors += 1
@@ -4214,9 +4215,10 @@ def take_action(self, parsed_args: argparse.Namespace) -> None:
42144215
errors = 0
42154216
for security_group in security_groups:
42164217
try:
4218+
# SDK wants a SecurityGroup object but will handle a dict
42174219
compute_client.remove_security_group_from_server(
42184220
server,
4219-
{'name': security_group},
4221+
{'name': security_group}, # type: ignore[arg-type]
42204222
)
42214223
except sdk_exceptions.HttpException as e:
42224224
errors += 1
@@ -4320,17 +4322,17 @@ def take_action(self, parsed_args: argparse.Namespace) -> None:
43204322
compute_client = self.app.client_manager.compute
43214323
image_client = self.app.client_manager.image
43224324

4323-
image_ref = None
4325+
image = None
43244326
if parsed_args.image:
4325-
image_ref = image_client.find_image(
4327+
image = image_client.find_image(
43264328
parsed_args.image, ignore_missing=False
43274329
).id
43284330

43294331
server = compute_client.find_server(
43304332
parsed_args.server, ignore_missing=False
43314333
)
43324334
compute_client.rescue_server(
4333-
server, admin_pass=parsed_args.password, image_ref=image_ref
4335+
server, admin_pass=parsed_args.password, image=image
43344336
)
43354337

43364338

openstackclient/compute/v2/service.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import logging
2121
from typing import Any
2222

23+
from openstack.compute.v2 import service as _service
2324
from openstack import utils as sdk_utils
2425
from osc_lib import exceptions
2526
from osc_lib import utils
@@ -199,7 +200,7 @@ def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
199200
@staticmethod
200201
def _find_service_by_host_and_binary(
201202
compute_client: Any, host: str, binary: str
202-
) -> Any:
203+
) -> _service.Service:
203204
"""Utility method to find a compute service by host and binary
204205
205206
:param host: the name of the compute service host
@@ -264,13 +265,17 @@ def take_action(self, parsed_args: argparse.Namespace) -> None:
264265
enabled = False
265266

266267
if enabled is not None:
268+
# these are bugs in SDK
269+
# https://review.opendev.org/c/openstack/openstacksdk/+/992549
267270
if enabled:
268271
compute_client.enable_service(
269-
service_id, parsed_args.host, parsed_args.service
272+
service_id, # type: ignore[arg-type]
273+
parsed_args.host,
274+
parsed_args.service,
270275
)
271276
else:
272277
compute_client.disable_service(
273-
service_id,
278+
service_id, # type: ignore[arg-type]
274279
parsed_args.host,
275280
parsed_args.service,
276281
parsed_args.disable_reason,

openstackclient/image/v2/metadef_namespaces.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -393,9 +393,7 @@ def take_action(self, parsed_args: argparse.Namespace) -> None:
393393

394394
errors = 0
395395
if parsed_args.all_tags:
396-
namespace = image_client.remove_tags_from_metadef_namespace(
397-
namespace
398-
)
396+
image_client.remove_tags_from_metadef_namespace(namespace)
399397
elif parsed_args.tags:
400398
for tag in parsed_args.tags:
401399
try:

openstackclient/tests/unit/compute/v2/test_server.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7539,7 +7539,7 @@ def test_rescue(self):
75397539
self.server.id, ignore_missing=False
75407540
)
75417541
self.compute_client.rescue_server.assert_called_once_with(
7542-
self.server, admin_pass=None, image_ref=None
7542+
self.server, admin_pass=None, image=None
75437543
)
75447544
self.assertIsNone(result)
75457545

@@ -7566,7 +7566,7 @@ def test_rescue_with_image(self):
75667566
self.server.id, ignore_missing=False
75677567
)
75687568
self.compute_client.rescue_server.assert_called_once_with(
7569-
self.server, admin_pass=None, image_ref=new_image.id
7569+
self.server, admin_pass=None, image=new_image.id
75707570
)
75717571
self.assertIsNone(result)
75727572

@@ -7589,7 +7589,7 @@ def test_rescue_with_password(self):
75897589
self.server.id, ignore_missing=False
75907590
)
75917591
self.compute_client.rescue_server.assert_called_once_with(
7592-
self.server, admin_pass=password, image_ref=None
7592+
self.server, admin_pass=password, image=None
75937593
)
75947594
self.assertIsNone(result)
75957595

openstackclient/volume/v2/volume_backup.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,8 +404,12 @@ def take_action(
404404
)
405405
raise exceptions.CommandError(msg % parsed_args.volume)
406406

407+
# this is a bug in SDK
408+
# https://review.opendev.org/c/openstack/openstacksdk/+/992473
407409
restore = volume_client.restore_backup(
408-
backup.id, volume=volume_id, name=volume_name
410+
backup.id,
411+
volume=volume_id, # type: ignore[arg-type]
412+
name=volume_name, # type: ignore[arg-type]
409413
)
410414

411415
data = utils.get_dict_properties(restore, columns)

0 commit comments

Comments
 (0)