diff --git a/lib/rapi/client.py b/lib/rapi/client.py index 483f7289a48ce5da00c8e522b740e53e0fce24ae..94000967aef2b4ec01055fb276ece2f4eaa7073f 100644 --- a/lib/rapi/client.py +++ b/lib/rapi/client.py @@ -1068,13 +1068,14 @@ class GanetiRapiClient(object): ("/%s/nodes/%s/evacuate" % (GANETI_RAPI_VERSION, node)), query, None) - def MigrateNode(self, node, live=True, dry_run=False): + def MigrateNode(self, node, mode=None, dry_run=False): """Migrates all primary instances from a node. @type node: str @param node: node to migrate - @type live: bool - @param live: whether to use live migration + @type mode: string + @param mode: if passed, it will overwrite the live migration type, + otherwise the hypervisor default will be used @type dry_run: bool @param dry_run: whether to perform a dry run @@ -1083,8 +1084,8 @@ class GanetiRapiClient(object): """ query = [] - if live: - query.append(("live", 1)) + if mode is not None: + query.append(("mode", mode)) if dry_run: query.append(("dry-run", 1)) diff --git a/test/ganeti.rapi.client_unittest.py b/test/ganeti.rapi.client_unittest.py index de0474c35a5472081df7b57612ef91f8324c6496..6069bcf993aba57dfdf372d3852dc757441d61bc 100755 --- a/test/ganeti.rapi.client_unittest.py +++ b/test/ganeti.rapi.client_unittest.py @@ -775,7 +775,15 @@ class GanetiRapiClientTests(testutils.GanetiTestCase): self.assertEqual(1111, self.client.MigrateNode("node-a", dry_run=True)) self.assertHandler(rlib2.R_2_nodes_name_migrate) self.assertItems(["node-a"]) - self.assertQuery("live", ["1"]) + self.assert_("mode" not in self.rapi.GetLastHandler().queryargs) + self.assertDryRun() + + self.rapi.AddResponse("1112") + self.assertEqual(1112, self.client.MigrateNode("node-a", dry_run=True, + mode="live")) + self.assertHandler(rlib2.R_2_nodes_name_migrate) + self.assertItems(["node-a"]) + self.assertQuery("mode", ["live"]) self.assertDryRun() def testGetNodeRole(self):