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