From 10be5f631a1a3c71ad40511e7e28862ee482aa7d Mon Sep 17 00:00:00 2001 From: Feng Shengqin Date: Sat, 14 Jan 2017 23:53:16 +0800 Subject: [PATCH] Support rename a container Change-Id: Idfbf604f474fca9775acd4d23b2ea1742a0d2a40 Closes-Bug: #1656073 --- zunclient/tests/unit/v1/test_containers.py | 19 +++++++++++++++++++ zunclient/v1/containers.py | 4 ++++ zunclient/v1/containers_shell.py | 11 +++++++++++ 3 files changed, 34 insertions(+) diff --git a/zunclient/tests/unit/v1/test_containers.py b/zunclient/tests/unit/v1/test_containers.py index a466a720..a7922d74 100644 --- a/zunclient/tests/unit/v1/test_containers.py +++ b/zunclient/tests/unit/v1/test_containers.py @@ -51,6 +51,7 @@ del CREATE_CONTAINER1['uuid'] force_delete1 = False force_delete2 = True signal = "SIGTERM" +name = "new-name" fake_responses = { '/v1/containers': @@ -200,6 +201,14 @@ fake_responses = { CREATE_CONTAINER1, ), }, + '/v1/containers/%s/rename?%s' % (CONTAINER1['id'], + parse.urlencode({'name': name})): + { + 'POST': ( + {}, + None, + ), + }, } @@ -424,3 +433,13 @@ class ContainerManagerTest(testtools.TestCase): ','.join(containers.CREATION_ATTRIBUTES)), self.mgr.run, **run_container_fail) self.assertEqual([], self.api.calls) + + def test_containers_rename(self): + containers = self.mgr.rename(CONTAINER1['id'], name) + expect = [ + ('POST', '/v1/containers/%s/rename?%s' + % (CONTAINER1['id'], parse.urlencode({'name': name})), + {'Content-Length': '0'}, None) + ] + self.assertEqual(expect, self.api.calls) + self.assertTrue(containers) diff --git a/zunclient/v1/containers.py b/zunclient/v1/containers.py index 8ff3b505..1ed5bbf8 100644 --- a/zunclient/v1/containers.py +++ b/zunclient/v1/containers.py @@ -148,3 +148,7 @@ class ContainerManager(base.Manager): "Key must be in %s" % ','.join(CREATION_ATTRIBUTES)) else: return self._create(self._path() + '?run=true', kwargs) + + def rename(self, id, name): + return self._action(id, '/rename', + qparams={'name': name}) diff --git a/zunclient/v1/containers_shell.py b/zunclient/v1/containers_shell.py index f2b556e8..ca935099 100644 --- a/zunclient/v1/containers_shell.py +++ b/zunclient/v1/containers_shell.py @@ -335,3 +335,14 @@ def do_run(cs, args): opts['labels'] = zun_utils.format_args(args.label) opts['image_pull_policy'] = args.image_pull_policy _show_container(cs.containers.run(**opts)) + + +@utils.arg('container', + metavar='', + help='ID or name of the container to rename.') +@utils.arg('name', + metavar='', + help='The new name for the container') +def do_rename(cs, args): + """Rename a container.""" + cs.containers.rename(args.container, args.name)