---
lib/rapi/rlib2.py | 8 ++------
test/ganeti.rapi.rlib2_unittest.py | 16 ++++++++++++++++
2 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py
index e450923..b99047e 100644
--- a/lib/rapi/rlib2.py
+++ b/lib/rapi/rlib2.py
@@ -229,15 +229,11 @@ class R_2_os(baserlib.ResourceBase):
return os_names
-class R_2_redist_config(baserlib.ResourceBase):
+class R_2_redist_config(baserlib.OpcodeResource):
"""/2/redistribute-config resource.
"""
- def PUT(self):
- """Redistribute configuration to all nodes.
-
- """
- return self.SubmitJob([opcodes.OpClusterRedistConf()])
+ PUT_OPCODE = opcodes.OpClusterRedistConf
class R_2_cluster_modify(baserlib.OpcodeResource):
diff --git a/test/ganeti.rapi.rlib2_unittest.py
b/test/ganeti.rapi.rlib2_unittest.py
index 15917fc..0f62046 100755
--- a/test/ganeti.rapi.rlib2_unittest.py
+++ b/test/ganeti.rapi.rlib2_unittest.py
@@ -159,6 +159,22 @@ class TestClusterModify(unittest.TestCase):
self.assertRaises(IndexError, clfactory.GetNextClient)
+class TestRedistConfig(unittest.TestCase):
+ def test(self):
+ clfactory = _FakeClientFactory(_FakeClient)
+ handler = _CreateHandler(rlib2.R_2_redist_config, [], [], None, 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.OpClusterRedistConf))
+
+ self.assertRaises(IndexError, cl.GetNextSubmittedJob)
+
+
class TestParseInstanceCreateRequestVersion1(testutils.GanetiTestCase):
def setUp(self):
testutils.GanetiTestCase.setUp(self)
--
1.7.6