Revision 1f334d96

b/lib/rapi/client.py
1068 1068
                             ("/%s/nodes/%s/evacuate" %
1069 1069
                              (GANETI_RAPI_VERSION, node)), query, None)
1070 1070

  
1071
  def MigrateNode(self, node, live=True, dry_run=False):
1071
  def MigrateNode(self, node, mode=None, dry_run=False):
1072 1072
    """Migrates all primary instances from a node.
1073 1073

  
1074 1074
    @type node: str
1075 1075
    @param node: node to migrate
1076
    @type live: bool
1077
    @param live: whether to use live migration
1076
    @type mode: string
1077
    @param mode: if passed, it will overwrite the live migration type,
1078
        otherwise the hypervisor default will be used
1078 1079
    @type dry_run: bool
1079 1080
    @param dry_run: whether to perform a dry run
1080 1081

  
......
1083 1084

  
1084 1085
    """
1085 1086
    query = []
1086
    if live:
1087
      query.append(("live", 1))
1087
    if mode is not None:
1088
      query.append(("mode", mode))
1088 1089
    if dry_run:
1089 1090
      query.append(("dry-run", 1))
1090 1091

  
b/test/ganeti.rapi.client_unittest.py
775 775
    self.assertEqual(1111, self.client.MigrateNode("node-a", dry_run=True))
776 776
    self.assertHandler(rlib2.R_2_nodes_name_migrate)
777 777
    self.assertItems(["node-a"])
778
    self.assertQuery("live", ["1"])
778
    self.assert_("mode" not in self.rapi.GetLastHandler().queryargs)
779
    self.assertDryRun()
780

  
781
    self.rapi.AddResponse("1112")
782
    self.assertEqual(1112, self.client.MigrateNode("node-a", dry_run=True,
783
                                                   mode="live"))
784
    self.assertHandler(rlib2.R_2_nodes_name_migrate)
785
    self.assertItems(["node-a"])
786
    self.assertQuery("mode", ["live"])
779 787
    self.assertDryRun()
780 788

  
781 789
  def testGetNodeRole(self):

Also available in: Unified diff