Skip to content
Snippets Groups Projects
Commit f3db88ba authored by Michael Hanselmann's avatar Michael Hanselmann
Browse files

rlib2: Convert /2/instances/[inst]/modify to OpcodeResource


Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
parent d76f9b5d
No related branches found
No related tags found
No related merge requests found
......@@ -1065,33 +1065,19 @@ class R_2_instances_name_rename(baserlib.OpcodeResource):
})
def _ParseModifyInstanceRequest(name, data):
"""Parses a request for modifying an instance.
@rtype: L{opcodes.OpInstanceSetParams}
@return: Instance modify opcode
"""
return baserlib.FillOpcode(opcodes.OpInstanceSetParams, data, {
"instance_name": name,
})
class R_2_instances_name_modify(baserlib.ResourceBase):
class R_2_instances_name_modify(baserlib.OpcodeResource):
"""/2/instances/[instance_name]/modify resource.
"""
def PUT(self):
"""Changes some parameters of an instance.
PUT_OPCODE = opcodes.OpInstanceSetParams
@return: a job id
def GetPutOpInput(self):
"""Changes parameters of an instance.
"""
baserlib.CheckType(self.request_body, dict, "Body contents")
op = _ParseModifyInstanceRequest(self.items[0], self.request_body)
return self.SubmitJob([op])
return (self.request_body, {
"instance_name": self.items[0],
})
class R_2_instances_name_disk_grow(baserlib.ResourceBase):
......
......@@ -867,13 +867,10 @@ class TestParseRenameInstanceRequest(testutils.GanetiTestCase):
self.assertRaises(IndexError, cl.GetNextSubmittedJob)
class TestParseModifyInstanceRequest(testutils.GanetiTestCase):
def setUp(self):
testutils.GanetiTestCase.setUp(self)
self.Parse = rlib2._ParseModifyInstanceRequest
class TestParseModifyInstanceRequest(unittest.TestCase):
def test(self):
clfactory = _FakeClientFactory(_FakeClient)
name = "instush8gah"
test_disks = [
......@@ -898,8 +895,16 @@ class TestParseModifyInstanceRequest(testutils.GanetiTestCase):
"disk_template": disk_template,
}
op = self.Parse(name, data)
self.assert_(isinstance(op, opcodes.OpInstanceSetParams))
handler = _CreateHandler(rlib2.R_2_instances_name_modify,
[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.assertTrue(isinstance(op, opcodes.OpInstanceSetParams))
self.assertEqual(op.instance_name, name)
self.assertEqual(op.hvparams, hvparams)
self.assertEqual(op.beparams, beparams)
......@@ -911,13 +916,27 @@ class TestParseModifyInstanceRequest(testutils.GanetiTestCase):
self.assertFalse(hasattr(op, "remote_node"))
self.assertFalse(hasattr(op, "os_name"))
self.assertFalse(hasattr(op, "force_variant"))
self.assertFalse(hasattr(op, "dry_run"))
self.assertRaises(IndexError, cl.GetNextSubmittedJob)
def testDefaults(self):
clfactory = _FakeClientFactory(_FakeClient)
name = "instir8aish31"
op = self.Parse(name, {})
self.assert_(isinstance(op, opcodes.OpInstanceSetParams))
handler = _CreateHandler(rlib2.R_2_instances_name_modify,
[name], {}, {}, 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.assertTrue(isinstance(op, opcodes.OpInstanceSetParams))
self.assertEqual(op.instance_name, name)
for i in ["hvparams", "beparams", "osparams", "force", "nics", "disks",
"disk_template", "remote_node", "os_name", "force_variant"]:
self.assertFalse(hasattr(op, i))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment