Revision 87fd3ec7

b/lib/rapi/rlib2.py
665 665
      })
666 666

  
667 667

  
668
class R_2_groups_name_assign_nodes(baserlib.ResourceBase):
668
class R_2_groups_name_assign_nodes(baserlib.OpcodeResource):
669 669
  """/2/groups/[group_name]/assign-nodes resource.
670 670

  
671 671
  """
672
  def PUT(self):
673
    """Assigns nodes to a group.
672
  PUT_OPCODE = opcodes.OpGroupAssignNodes
674 673

  
675
    @return: a job id
674
  def GetPutOpInput(self):
675
    """Assigns nodes to a group.
676 676

  
677 677
    """
678
    op = baserlib.FillOpcode(opcodes.OpGroupAssignNodes, self.request_body, {
678
    assert len(self.items) == 1
679
    return (self.request_body, {
679 680
      "group_name": self.items[0],
680 681
      "dry_run": self.dryRun(),
681 682
      "force": self.useForce(),
682 683
      })
683 684

  
684
    return self.SubmitJob([op])
685

  
686 685

  
687 686
def _ParseInstanceCreateRequestVersion1(data, dry_run):
688 687
  """Parses an instance creation request version 1.
b/test/ganeti.rapi.rlib2_unittest.py
272 272
    self.assertRaises(IndexError, cl.GetNextSubmittedJob)
273 273

  
274 274

  
275
class TestGroupAssignNodes(unittest.TestCase):
276
  def test(self):
277
    clfactory = _FakeClientFactory(_FakeClient)
278
    handler = _CreateHandler(rlib2.R_2_groups_name_assign_nodes, ["grp-a"], {
279
      "dry-run": ["1"],
280
      "force": ["1"],
281
      }, {
282
      "nodes": ["n2", "n3"],
283
      }, clfactory)
284
    job_id = handler.PUT()
285

  
286
    cl = clfactory.GetNextClient()
287
    self.assertRaises(IndexError, clfactory.GetNextClient)
288

  
289
    (exp_job_id, (op, )) = cl.GetNextSubmittedJob()
290
    self.assertEqual(job_id, exp_job_id)
291
    self.assertTrue(isinstance(op, opcodes.OpGroupAssignNodes))
292
    self.assertEqual(op.group_name, "grp-a")
293
    self.assertEqual(op.nodes, ["n2", "n3"])
294
    self.assertTrue(op.dry_run)
295
    self.assertTrue(op.force)
296

  
297
    self.assertRaises(IndexError, cl.GetNextSubmittedJob)
298

  
299

  
275 300
class TestParseInstanceCreateRequestVersion1(testutils.GanetiTestCase):
276 301
  def setUp(self):
277 302
    testutils.GanetiTestCase.setUp(self)

Also available in: Unified diff