Revision de40437a test/ganeti.rapi.client_unittest.py

b/test/ganeti.rapi.client_unittest.py
152 152
    self.assertEqual(client._INST_CREATE_REQV1, rlib2._INST_CREATE_REQV1)
153 153
    self.assertEqual(client._INST_REINSTALL_REQV1, rlib2._INST_REINSTALL_REQV1)
154 154
    self.assertEqual(client._NODE_MIGRATE_REQV1, rlib2._NODE_MIGRATE_REQV1)
155
    self.assertEqual(client._NODE_EVAC_RES1, rlib2._NODE_EVAC_RES1)
155 156
    self.assertEqual(client._INST_NIC_PARAMS, constants.INIC_PARAMS)
156 157
    self.assertEqual(client.JOB_STATUS_QUEUED, constants.JOB_STATUS_QUEUED)
157 158
    self.assertEqual(client.JOB_STATUS_WAITLOCK, constants.JOB_STATUS_WAITLOCK)
......
817 818
    self.assertItems(["node-foo"])
818 819

  
819 820
  def testEvacuateNode(self):
821
    self.rapi.AddResponse(serializer.DumpJson([rlib2._NODE_EVAC_RES1]))
820 822
    self.rapi.AddResponse("9876")
821 823
    job_id = self.client.EvacuateNode("node-1", remote_node="node-2")
822 824
    self.assertEqual(9876, job_id)
823 825
    self.assertHandler(rlib2.R_2_nodes_name_evacuate)
824 826
    self.assertItems(["node-1"])
825
    self.assertQuery("remote_node", ["node-2"])
827
    self.assertEqual(serializer.LoadJson(self.rapi.GetLastRequestData()),
828
                     { "remote_node": "node-2", })
829
    self.assertEqual(self.rapi.CountPending(), 0)
826 830

  
831
    self.rapi.AddResponse(serializer.DumpJson([rlib2._NODE_EVAC_RES1]))
827 832
    self.rapi.AddResponse("8888")
828 833
    job_id = self.client.EvacuateNode("node-3", iallocator="hail", dry_run=True)
829 834
    self.assertEqual(8888, job_id)
830 835
    self.assertItems(["node-3"])
831
    self.assertQuery("iallocator", ["hail"])
836
    self.assertEqual(serializer.LoadJson(self.rapi.GetLastRequestData()),
837
                     { "iallocator": "hail", })
832 838
    self.assertDryRun()
833 839

  
834 840
    self.assertRaises(client.GanetiApiError,
835 841
                      self.client.EvacuateNode,
836 842
                      "node-4", iallocator="hail", remote_node="node-5")
843
    self.assertEqual(self.rapi.CountPending(), 0)
844

  
845
  def testEvacuateNodeOldResponse(self):
846
    self.rapi.AddResponse(serializer.DumpJson([]))
847
    self.assertRaises(client.GanetiApiError, self.client.EvacuateNode,
848
                      "node-4", accept_old=False)
849
    self.assertEqual(self.rapi.CountPending(), 0)
850

  
851
    self.rapi.AddResponse(serializer.DumpJson([]))
852
    self.assertRaises(client.GanetiApiError, self.client.EvacuateNode,
853
                      "node-4", accept_old=True)
854
    self.assertEqual(self.rapi.CountPending(), 0)
855

  
856
    self.rapi.AddResponse(serializer.DumpJson([]))
857
    self.assertRaises(client.GanetiApiError, self.client.EvacuateNode,
858
                      "node-4", accept_old=True, primary=True)
859
    self.assertEqual(self.rapi.CountPending(), 0)
860

  
861
    self.rapi.AddResponse(serializer.DumpJson([]))
862
    self.assertRaises(client.GanetiApiError, self.client.EvacuateNode,
863
                      "node-4", accept_old=True, secondary=False)
864
    self.assertEqual(self.rapi.CountPending(), 0)
865

  
866
    for sec in [True, None]:
867
      self.rapi.AddResponse(serializer.DumpJson([]))
868
      self.rapi.AddResponse(serializer.DumpJson([["res", "foo"]]))
869
      result = self.client.EvacuateNode("node-3", iallocator="hail",
870
                                        dry_run=True, accept_old=True,
871
                                        primary=False, secondary=sec)
872
      self.assertEqual(result, [["res", "foo"]])
873
      self.assertItems(["node-3"])
874
      self.assertQuery("iallocator", ["hail"])
875
      self.assertFalse(self.rapi.GetLastRequestData())
876
      self.assertDryRun()
877
      self.assertEqual(self.rapi.CountPending(), 0)
837 878

  
838 879
  def testMigrateNode(self):
839 880
    self.rapi.AddResponse(serializer.DumpJson([]))

Also available in: Unified diff