---
 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

Reply via email to