From cd0d4d5a1e49a49c604f6cc7884cdcd13aff2d86 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Thu, 8 Sep 2011 14:29:37 +0200 Subject: [PATCH] rlib2: Convert /2/groups/[group_name]/rename to OpcodeResource MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: RenΓ© Nussbaumer <rn@google.com> --- lib/rapi/rlib2.py | 37 ++++++----------------- test/ganeti.rapi.rlib2_unittest.py | 48 ++++++++++++++++++++---------- 2 files changed, 42 insertions(+), 43 deletions(-) diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py index 1c2f22b91..ace53cfb0 100644 --- a/lib/rapi/rlib2.py +++ b/lib/rapi/rlib2.py @@ -648,40 +648,21 @@ class R_2_groups_name_modify(baserlib.OpcodeResource): }) -def _ParseRenameGroupRequest(name, data, dry_run): - """Parses a request for renaming a node group. - - @type name: string - @param name: name of the node group to rename - @type data: dict - @param data: the body received by the rename request - @type dry_run: bool - @param dry_run: whether to perform a dry run - - @rtype: L{opcodes.OpGroupRename} - @return: Node group rename opcode - - """ - return baserlib.FillOpcode(opcodes.OpGroupRename, data, { - "group_name": name, - "dry_run": dry_run, - }) - - -class R_2_groups_name_rename(baserlib.ResourceBase): +class R_2_groups_name_rename(baserlib.OpcodeResource): """/2/groups/[group_name]/rename resource. """ - def PUT(self): - """Changes the name of a node group. + PUT_OPCODE = opcodes.OpGroupRename - @return: a job id + def GetPutOpInput(self): + """Changes the name of a node group. """ - baserlib.CheckType(self.request_body, dict, "Body contents") - op = _ParseRenameGroupRequest(self.items[0], self.request_body, - self.dryRun()) - return self.SubmitJob([op]) + assert len(self.items) == 1 + return (self.request_body, { + "group_name": self.items[0], + "dry_run": self.dryRun(), + }) class R_2_groups_name_assign_nodes(baserlib.ResourceBase): diff --git a/test/ganeti.rapi.rlib2_unittest.py b/test/ganeti.rapi.rlib2_unittest.py index d3471c482..195fe03b3 100755 --- a/test/ganeti.rapi.rlib2_unittest.py +++ b/test/ganeti.rapi.rlib2_unittest.py @@ -680,37 +680,55 @@ class TestParseInstanceReinstallRequest(testutils.GanetiTestCase): self.assertFalse(ops[1].osparams) -class TestParseRenameGroupRequest(testutils.GanetiTestCase): - def setUp(self): - testutils.GanetiTestCase.setUp(self) - - self.Parse = rlib2._ParseRenameGroupRequest - +class TestGroupRename(unittest.TestCase): def test(self): - name = "instij0eeph7" + clfactory = _FakeClientFactory(_FakeClient) + + name = "group608242564" data = { - "new_name": "ua0aiyoo", + "new_name": "ua0aiyoo15112", } - op = self.Parse(name, data, False) + handler = _CreateHandler(rlib2.R_2_groups_name_rename, [name], {}, data, + clfactory) + job_id = handler.PUT() + + cl = clfactory.GetNextClient() + self.assertRaises(IndexError, clfactory.GetNextClient) + + (exp_job_id, (op, )) = cl.GetNextSubmittedJob() + self.assertEqual(job_id, exp_job_id) - self.assert_(isinstance(op, opcodes.OpGroupRename)) + self.assertTrue(isinstance(op, opcodes.OpGroupRename)) self.assertEqual(op.group_name, name) - self.assertEqual(op.new_name, "ua0aiyoo") + self.assertEqual(op.new_name, "ua0aiyoo15112") self.assertFalse(op.dry_run) + self.assertRaises(IndexError, cl.GetNextSubmittedJob) def testDryRun(self): - name = "instij0eeph7" + clfactory = _FakeClientFactory(_FakeClient) + + name = "group28548" data = { "new_name": "ua0aiyoo", } - op = self.Parse(name, data, True) + handler = _CreateHandler(rlib2.R_2_groups_name_rename, [name], { + "dry-run": ["1"], + }, data, clfactory) + job_id = handler.PUT() + + cl = clfactory.GetNextClient() + self.assertRaises(IndexError, clfactory.GetNextClient) + + (exp_job_id, (op, )) = cl.GetNextSubmittedJob() + self.assertEqual(job_id, exp_job_id) - self.assert_(isinstance(op, opcodes.OpGroupRename)) + self.assertTrue(isinstance(op, opcodes.OpGroupRename)) self.assertEqual(op.group_name, name) self.assertEqual(op.new_name, "ua0aiyoo") - self.assert_(op.dry_run) + self.assertTrue(op.dry_run) + self.assertRaises(IndexError, cl.GetNextSubmittedJob) class TestParseInstanceReplaceDisksRequest(unittest.TestCase): -- GitLab