From 6dcca2ee42d4cd5b57f1bd02a21f4223bbbc4695 Mon Sep 17 00:00:00 2001 From: caishan Date: Thu, 15 Mar 2018 03:08:30 -0700 Subject: [PATCH] Add network-list to zunclient This change adds network list support to the python-zunclient project for the network-list command. The zun command network-list is now: zun network-list Change-Id: I59f1fc63989796a1623ebc62c0dfae8e2dd33be8 --- zunclient/api_versions.py | 2 +- zunclient/tests/unit/test_shell.py | 8 ++++---- zunclient/v1/containers.py | 4 ++++ zunclient/v1/containers_shell.py | 15 +++++++++++++++ 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/zunclient/api_versions.py b/zunclient/api_versions.py index c427f998..4b3b5a3e 100644 --- a/zunclient/api_versions.py +++ b/zunclient/api_versions.py @@ -31,7 +31,7 @@ if not LOG.handlers: HEADER_NAME = "OpenStack-API-Version" SERVICE_TYPE = "container" MIN_API_VERSION = '1.1' -MAX_API_VERSION = '1.12' +MAX_API_VERSION = '1.13' DEFAULT_API_VERSION = MAX_API_VERSION _SUBSTITUTIONS = {} diff --git a/zunclient/tests/unit/test_shell.py b/zunclient/tests/unit/test_shell.py index 0e5ded22..8b6446cf 100644 --- a/zunclient/tests/unit/test_shell.py +++ b/zunclient/tests/unit/test_shell.py @@ -246,7 +246,7 @@ class ShellTest(utils.TestCase): project_domain_id='', project_domain_name='', user_domain_id='', user_domain_name='', profile=None, endpoint_override=None, insecure=False, - version=api_versions.APIVersion('1.12')) + version=api_versions.APIVersion('1.13')) def test_main_option_region(self): self.make_env() @@ -274,7 +274,7 @@ class ShellTest(utils.TestCase): project_domain_id='', project_domain_name='', user_domain_id='', user_domain_name='', profile=None, endpoint_override=None, insecure=False, - version=api_versions.APIVersion('1.12')) + version=api_versions.APIVersion('1.13')) @mock.patch('zunclient.client.Client') def test_main_endpoint_internal(self, mock_client): @@ -288,7 +288,7 @@ class ShellTest(utils.TestCase): project_domain_id='', project_domain_name='', user_domain_id='', user_domain_name='', profile=None, endpoint_override=None, insecure=False, - version=api_versions.APIVersion('1.12')) + version=api_versions.APIVersion('1.13')) class ShellTestKeystoneV3(ShellTest): @@ -319,4 +319,4 @@ class ShellTestKeystoneV3(ShellTest): project_domain_id='', project_domain_name='Default', user_domain_id='', user_domain_name='Default', endpoint_override=None, insecure=False, profile=None, - version=api_versions.APIVersion('1.12')) + version=api_versions.APIVersion('1.13')) diff --git a/zunclient/v1/containers.py b/zunclient/v1/containers.py index 21d67053..b0907fa5 100644 --- a/zunclient/v1/containers.py +++ b/zunclient/v1/containers.py @@ -216,6 +216,10 @@ class ContainerManager(base.Manager): return self._action(container, '/network_attach', qparams={'network': network}) + def network_list(self, container): + return self._list(self._path(container) + '/network_list', + "networks") + def remove_security_group(self, id, security_group): return self._action(id, '/remove_security_group', qparams={'name': security_group}) diff --git a/zunclient/v1/containers_shell.py b/zunclient/v1/containers_shell.py index afe399ad..2bc7367f 100644 --- a/zunclient/v1/containers_shell.py +++ b/zunclient/v1/containers_shell.py @@ -783,6 +783,21 @@ def do_network_attach(cs, args): "failed: %(e)s" % {'container': args.container, 'e': e}) +@utils.arg('container', + metavar='', + help='ID or name of the container to display network info.') +def do_network_list(cs, args): + """List networks on a container""" + opts = {} + opts['container'] = args.container + opts = zun_utils.remove_null_parms(**opts) + networks = cs.containers.network_list(**opts) + columns = ('net_id', 'subnet_id', 'port_id', 'version', 'ip_address') + utils.print_list(networks, columns, + {'versions': zun_utils.print_list_field('versions')}, + sortby_index=None) + + @utils.arg('container', metavar='', help='ID or name of the container to remove security group.')