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

rlib2: Convert /2/instances/[inst]/prepare-export to OpcodeResource


Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
parent 973ec124
No related branches found
No related tags found
No related merge requests found
...@@ -986,23 +986,20 @@ class R_2_instances_name_deactivate_disks(baserlib.OpcodeResource): ...@@ -986,23 +986,20 @@ class R_2_instances_name_deactivate_disks(baserlib.OpcodeResource):
}) })
class R_2_instances_name_prepare_export(baserlib.ResourceBase): class R_2_instances_name_prepare_export(baserlib.OpcodeResource):
"""/2/instances/[instance_name]/prepare-export resource. """/2/instances/[instance_name]/prepare-export resource.
""" """
def PUT(self): PUT_OPCODE = opcodes.OpBackupPrepare
"""Prepares an export for an instance.
@return: a job id def GetPutOpInput(self):
"""Prepares an export for an instance.
""" """
instance_name = self.items[0] return ({}, {
mode = self._checkStringVariable("mode") "instance_name": self.items[0],
"mode": self._checkStringVariable("mode"),
op = opcodes.OpBackupPrepare(instance_name=instance_name, })
mode=mode)
return self.SubmitJob([op])
def _ParseExportInstanceRequest(name, data): def _ParseExportInstanceRequest(name, data):
......
...@@ -446,6 +446,30 @@ class TestInstanceDeactivateDisks(unittest.TestCase): ...@@ -446,6 +446,30 @@ class TestInstanceDeactivateDisks(unittest.TestCase):
self.assertRaises(IndexError, cl.GetNextSubmittedJob) self.assertRaises(IndexError, cl.GetNextSubmittedJob)
class TestBackupPrepare(unittest.TestCase):
def test(self):
clfactory = _FakeClientFactory(_FakeClient)
queryargs = {
"mode": constants.EXPORT_MODE_REMOTE,
}
handler = _CreateHandler(rlib2.R_2_instances_name_prepare_export,
["inst17925"], queryargs, {}, 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.OpBackupPrepare))
self.assertEqual(op.instance_name, "inst17925")
self.assertEqual(op.mode, constants.EXPORT_MODE_REMOTE)
self.assertFalse(hasattr(op, "dry_run"))
self.assertFalse(hasattr(op, "force"))
self.assertRaises(IndexError, cl.GetNextSubmittedJob)
class TestParseInstanceCreateRequestVersion1(testutils.GanetiTestCase): class TestParseInstanceCreateRequestVersion1(testutils.GanetiTestCase):
def setUp(self): def setUp(self):
testutils.GanetiTestCase.setUp(self) testutils.GanetiTestCase.setUp(self)
......
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