Skip to content

Commit 6de365b

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "typing: Add hints to new bgpvpn commands"
2 parents 9938b06 + 117f6a5 commit 6de365b

4 files changed

Lines changed: 102 additions & 67 deletions

File tree

openstackclient/network/v2/bgpvpn/bgpvpn.py

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@
1212
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
1313
# License for the specific language governing permissions and limitations
1414
# under the License.
15-
#
1615

16+
import argparse
17+
from collections.abc import Iterable, Sequence
1718
import logging
18-
import typing as ty
19+
from typing import Any
1920

2021
from osc_lib.cli import format_columns
2122
from osc_lib.cli import identity as osc_id
@@ -59,15 +60,17 @@
5960
}
6061

6162

62-
def _get_columns(item):
63+
def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
6364
column_map: dict[str, str] = {}
6465
hidden_columns = ['location', 'tenant_id']
6566
return osc_utils.get_osc_show_columns_for_sdk_resource(
6667
item, column_map, hidden_columns
6768
)
6869

6970

70-
def _get_common_parser(parser, update=None):
71+
def _get_common_parser(
72+
parser: argparse.ArgumentParser, update: str | None = None
73+
) -> None:
7174
"""Adds to parser arguments common to create, set and unset commands.
7275
7376
:params ArgumentParser parser: argparse object contains all command's
@@ -95,7 +98,7 @@ def _get_common_parser(parser, update=None):
9598
REPEAT_RT = _("repeat option for multiple Route Targets")
9699
REPEAT_RD = _("repeat option for multiple Route Distinguishers")
97100

98-
def is_appended():
101+
def is_appended() -> bool:
99102
return update is None or update == 'set'
100103

101104
if update is None or update == 'set':
@@ -183,7 +186,9 @@ def is_appended():
183186
)
184187

185188

186-
def _args2body(client_manager, id, action, args):
189+
def _args2body(
190+
client_manager: Any, id: str, action: str, args: argparse.Namespace
191+
) -> dict[str, Any]:
187192

188193
if not (
189194
args.purge_route_target
@@ -198,7 +203,7 @@ def _args2body(client_manager, id, action, args):
198203
):
199204
bgpvpn = client_manager.network.get_bgpvpn(id)
200205

201-
attrs: dict[str, ty.Any] = {}
206+
attrs: dict[str, Any] = {}
202207

203208
if 'name' in args and args.name is not None:
204209
attrs['name'] = str(args.name)
@@ -265,7 +270,7 @@ def _args2body(client_manager, id, action, args):
265270
class CreateBgpvpn(command.ShowOne):
266271
_description = _("Create BGP VPN resource")
267272

268-
def get_parser(self, prog_name):
273+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
269274
parser = super().get_parser(prog_name)
270275
osc_id.add_project_owner_option_to_parser(parser)
271276
_get_common_parser(parser)
@@ -280,7 +285,9 @@ def get_parser(self, prog_name):
280285
)
281286
return parser
282287

283-
def take_action(self, parsed_args):
288+
def take_action(
289+
self, parsed_args: argparse.Namespace
290+
) -> tuple[Sequence[str], Iterable[Any]]:
284291
client = self.app.client_manager.network
285292
attrs = {}
286293
if parsed_args.name is not None:
@@ -317,7 +324,7 @@ def take_action(self, parsed_args):
317324
class SetBgpvpn(command.Command):
318325
_description = _("Set BGP VPN properties")
319326

320-
def get_parser(self, prog_name):
327+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
321328
parser = super().get_parser(prog_name)
322329
parser.add_argument(
323330
'bgpvpn',
@@ -327,7 +334,7 @@ def get_parser(self, prog_name):
327334
_get_common_parser(parser, update='set')
328335
return parser
329336

330-
def take_action(self, parsed_args):
337+
def take_action(self, parsed_args: argparse.Namespace) -> None:
331338
client = self.app.client_manager.network
332339
id = client.find_bgpvpn(parsed_args.bgpvpn, ignore_missing=False)['id']
333340
body = _args2body(self.app.client_manager, id, 'set', parsed_args)
@@ -337,7 +344,7 @@ def take_action(self, parsed_args):
337344
class UnsetBgpvpn(command.Command):
338345
_description = _("Unset BGP VPN properties")
339346

340-
def get_parser(self, prog_name):
347+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
341348
parser = super().get_parser(prog_name)
342349
parser.add_argument(
343350
'bgpvpn',
@@ -347,7 +354,7 @@ def get_parser(self, prog_name):
347354
_get_common_parser(parser, update='unset')
348355
return parser
349356

350-
def take_action(self, parsed_args):
357+
def take_action(self, parsed_args: argparse.Namespace) -> None:
351358
client = self.app.client_manager.network
352359
id = client.find_bgpvpn(parsed_args.bgpvpn, ignore_missing=False)['id']
353360
body = _args2body(self.app.client_manager, id, 'unset', parsed_args)
@@ -357,7 +364,7 @@ def take_action(self, parsed_args):
357364
class DeleteBgpvpn(command.Command):
358365
_description = _("Delete BGP VPN resource(s)")
359366

360-
def get_parser(self, prog_name):
367+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
361368
parser = super().get_parser(prog_name)
362369
parser.add_argument(
363370
'bgpvpns',
@@ -367,7 +374,7 @@ def get_parser(self, prog_name):
367374
)
368375
return parser
369376

370-
def take_action(self, parsed_args):
377+
def take_action(self, parsed_args: argparse.Namespace) -> None:
371378
client = self.app.client_manager.network
372379
fails = 0
373380
for id_or_name in parsed_args.bgpvpns:
@@ -393,7 +400,7 @@ def take_action(self, parsed_args):
393400
class ListBgpvpn(command.Lister):
394401
_description = _("List BGP VPN resources")
395402

396-
def get_parser(self, prog_name):
403+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
397404
parser = super().get_parser(prog_name)
398405
osc_id.add_project_owner_option_to_parser(parser)
399406
parser.add_argument(
@@ -413,7 +420,9 @@ def get_parser(self, prog_name):
413420
)
414421
return parser
415422

416-
def take_action(self, parsed_args):
423+
def take_action(
424+
self, parsed_args: argparse.Namespace
425+
) -> tuple[Sequence[str], Iterable[tuple[Any, ...]]]:
417426
client = self.app.client_manager.network
418427
params = {}
419428
if parsed_args.project is not None:
@@ -443,7 +452,7 @@ def take_action(self, parsed_args):
443452
class ShowBgpvpn(command.ShowOne):
444453
_description = _("Show information of a given BGP VPN")
445454

446-
def get_parser(self, prog_name):
455+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
447456
parser = super().get_parser(prog_name)
448457
parser.add_argument(
449458
'bgpvpn',
@@ -452,7 +461,9 @@ def get_parser(self, prog_name):
452461
)
453462
return parser
454463

455-
def take_action(self, parsed_args):
464+
def take_action(
465+
self, parsed_args: argparse.Namespace
466+
) -> tuple[Sequence[str], Iterable[Any]]:
456467
client = self.app.client_manager.network
457468
id = client.find_bgpvpn(parsed_args.bgpvpn, ignore_missing=False)['id']
458469
obj = client.get_bgpvpn(id)

openstackclient/network/v2/bgpvpn/network_association.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@
1212
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
1313
# License for the specific language governing permissions and limitations
1414
# under the License.
15-
#
1615

16+
import argparse
17+
from collections.abc import Iterable, Sequence
1718
import logging
18-
import typing as ty
19+
from typing import Any
1920

2021
from osc_lib.cli import identity as osc_id
2122
from osc_lib.cli import parseractions
@@ -34,10 +35,10 @@
3435
('project_id', 'Project', column_util.LIST_LONG_ONLY),
3536
('network_id', 'Network ID', column_util.LIST_BOTH),
3637
)
37-
_formatters: dict[str, ty.Any] = {}
38+
_formatters: dict[str, Any] = {}
3839

3940

40-
def _get_columns(item):
41+
def _get_columns(item: Any) -> tuple[tuple[str, ...], tuple[str, ...]]:
4142
column_map: dict[str, str] = {}
4243
hidden_columns = ['location', 'name', 'tenant_id']
4344
return osc_utils.get_osc_show_columns_for_sdk_resource(
@@ -48,7 +49,7 @@ def _get_columns(item):
4849
class CreateBgpvpnNetAssoc(command.ShowOne):
4950
_description = _("Create a BGP VPN network association")
5051

51-
def get_parser(self, prog_name):
52+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
5253
parser = super().get_parser(prog_name)
5354
osc_id.add_project_owner_option_to_parser(parser)
5455
parser.add_argument(
@@ -63,13 +64,15 @@ def get_parser(self, prog_name):
6364
)
6465
return parser
6566

66-
def take_action(self, parsed_args):
67+
def take_action(
68+
self, parsed_args: argparse.Namespace
69+
) -> tuple[Sequence[str], Iterable[Any]]:
6770
client = self.app.client_manager.network
6871
bgpvpn = client.find_bgpvpn(parsed_args.bgpvpn, ignore_missing=False)
6972
network = client.find_network(
7073
parsed_args.resource, ignore_missing=False
7174
)
72-
body: dict[str, ty.Any] = {'network_id': network['id']}
75+
body: dict[str, Any] = {'network_id': network['id']}
7376
if 'project' in parsed_args and parsed_args.project is not None:
7477
project_id = osc_id.find_project(
7578
self.app.client_manager.sdk_connection,
@@ -91,7 +94,7 @@ class DeleteBgpvpnNetAssoc(command.Command):
9194
"Delete a BGP VPN network association(s) for a given BGP VPN"
9295
)
9396

94-
def get_parser(self, prog_name):
97+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
9598
parser = super().get_parser(prog_name)
9699
parser.add_argument(
97100
'resource_association_ids',
@@ -106,7 +109,7 @@ def get_parser(self, prog_name):
106109
)
107110
return parser
108111

109-
def take_action(self, parsed_args):
112+
def take_action(self, parsed_args: argparse.Namespace) -> None:
110113
client = self.app.client_manager.network
111114
bgpvpn = client.find_bgpvpn(parsed_args.bgpvpn, ignore_missing=False)
112115
fails = 0
@@ -138,7 +141,7 @@ def take_action(self, parsed_args):
138141
class ListBgpvpnNetAssoc(command.Lister):
139142
_description = _("List BGP VPN network associations for a given BGP VPN")
140143

141-
def get_parser(self, prog_name):
144+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
142145
parser = super().get_parser(prog_name)
143146
parser.add_argument(
144147
'bgpvpn',
@@ -161,7 +164,9 @@ def get_parser(self, prog_name):
161164
)
162165
return parser
163166

164-
def take_action(self, parsed_args):
167+
def take_action(
168+
self, parsed_args: argparse.Namespace
169+
) -> tuple[Sequence[str], Iterable[tuple[Any, ...]]]:
165170
client = self.app.client_manager.network
166171
bgpvpn = client.find_bgpvpn(parsed_args.bgpvpn, ignore_missing=False)
167172
params = {}
@@ -187,7 +192,7 @@ def take_action(self, parsed_args):
187192
class ShowBgpvpnNetAssoc(command.ShowOne):
188193
_description = _("Show information of a given BGP VPN network association")
189194

190-
def get_parser(self, prog_name):
195+
def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
191196
parser = super().get_parser(prog_name)
192197
parser.add_argument(
193198
'resource_association_id',
@@ -201,7 +206,9 @@ def get_parser(self, prog_name):
201206
)
202207
return parser
203208

204-
def take_action(self, parsed_args):
209+
def take_action(
210+
self, parsed_args: argparse.Namespace
211+
) -> tuple[Sequence[str], Iterable[Any]]:
205212
client = self.app.client_manager.network
206213
bgpvpn = client.find_bgpvpn(parsed_args.bgpvpn, ignore_missing=False)
207214
obj = client.get_bgpvpn_network_association(

0 commit comments

Comments
 (0)