Skip to content

Commit 5b52873

Browse files
committed
network: Move TaaS commands to a separate entrypoint group
Resolve a TODO from the review round. Change-Id: I819f6b8545081037a500bebefcbde898e62fdcc5 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
1 parent 97c2238 commit 5b52873

3 files changed

Lines changed: 32 additions & 9 deletions

File tree

openstackclient/network/client.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
API_VERSION_OPTION = 'os_network_api_version'
2424
API_NAME = 'network'
2525
API_VERSIONS = ('2.0', '2')
26+
API_EXTENSIONS = ('taas',)
2627

2728

2829
def make_client(instance):

openstackclient/shell.py

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,15 +118,42 @@ def _load_plugins(self):
118118
},
119119
)
120120

121-
# Command groups deal only with major versions
122-
version = '.v' + version_opt.replace('.', '_').split('_')[0]
123-
cmd_group = 'openstack.' + api.replace('-', '_') + version
121+
# Build our command group which we expect to look like:
122+
#
123+
# openstack.<service>.vN
124+
#
125+
# Note that command groups deal only with major versions
126+
cmd_group = '.'.join(
127+
[
128+
'openstack',
129+
api.replace('-', '_'),
130+
'v' + version_opt.replace('.', '_').split('_')[0],
131+
]
132+
)
124133
self.command_manager.add_command_group(cmd_group)
125134
self.log.debug(
126135
'%(name)s API version %(version)s, cmd group %(group)s',
127136
{'name': api, 'version': version_opt, 'group': cmd_group},
128137
)
129138

139+
mod_extensions = getattr(mod, 'API_EXTENSIONS', None)
140+
if not mod_extensions:
141+
continue
142+
143+
for extension in mod_extensions:
144+
extension_cmd_group = '.'.join([cmd_group, extension])
145+
self.command_manager.add_command_group(extension_cmd_group)
146+
self.log.debug(
147+
'%(name)s API version %(version)s '
148+
'(%(extension)s extension), cmd group %(group)s',
149+
{
150+
'name': api,
151+
'version': version_opt,
152+
'extension': extension,
153+
'group': cmd_group,
154+
},
155+
)
156+
130157
def _load_commands(self):
131158
"""Load commands via cliff/stevedore
132159

pyproject.toml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ authors = [
1111
readme = {file = "README.rst", content-type = "text/x-rst"}
1212
license = {text = "Apache-2.0"}
1313
dynamic = ["version", "dependencies"]
14-
# dependencies = [ ]
1514
requires-python = ">=3.10"
1615
classifiers = [
1716
"Environment :: OpenStack",
@@ -27,10 +26,6 @@ classifiers = [
2726
"Programming Language :: Python :: 3.13",
2827
]
2928

30-
# [project.optional-dependencies]
31-
# test = [
32-
# ]
33-
3429
[project.urls]
3530
Homepage = "https://docs.openstack.org/python-openstackclient/"
3631
Repository = "https://opendev.org/openstack/python-openstackclient/"
@@ -540,7 +535,7 @@ subnet_pool_set = "openstackclient.network.v2.subnet_pool:SetSubnetPool"
540535
subnet_pool_show = "openstackclient.network.v2.subnet_pool:ShowSubnetPool"
541536
subnet_pool_unset = "openstackclient.network.v2.subnet_pool:UnsetSubnetPool"
542537

543-
# Tap-as-a-Service
538+
[project.entry-points."openstack.network.v2.taas"]
544539
tap_flow_create = "openstackclient.network.v2.taas.tap_flow:CreateTapFlow"
545540
tap_flow_delete = "openstackclient.network.v2.taas.tap_flow:DeleteTapFlow"
546541
tap_flow_list = "openstackclient.network.v2.taas.tap_flow:ListTapFlow"

0 commit comments

Comments
 (0)