projects
/
ganeti-local
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LUSetInstanceParams: nic parameters
[ganeti-local]
/
lib
/
rpc.py
diff --git
a/lib/rpc.py
b/lib/rpc.py
index
12791fe
..
e4bb938
100644
(file)
--- a/
lib/rpc.py
+++ b/
lib/rpc.py
@@
-217,7
+217,7
@@
class Client:
"""Call nodes and return results.
@rtype: list
"""Call nodes and return results.
@rtype: list
- @returns: List of RPC results
+ @return: List of RPC results
"""
assert _http_manager, "RPC module not intialized"
"""
assert _http_manager, "RPC module not intialized"
@@
-260,7
+260,7
@@
class RpcRunner(object):
self._cfg = cfg
self.port = utils.GetNodeDaemonPort()
self._cfg = cfg
self.port = utils.GetNodeDaemonPort()
- def _InstDict(self, instance):
+ def _InstDict(self, instance, hvp=None, bep=None):
"""Convert the given instance to a dict.
This is done via the instance's ToDict() method and additionally
"""Convert the given instance to a dict.
This is done via the instance's ToDict() method and additionally
@@
-268,6
+268,10
@@
class RpcRunner(object):
@type instance: L{objects.Instance}
@param instance: an Instance object
@type instance: L{objects.Instance}
@param instance: an Instance object
+ @type hvp: dict or None
+ @param hvp: a dictionary with overriden hypervisor parameters
+ @type bep: dict or None
+ @param bep: a dictionary with overriden backend parameters
@rtype: dict
@return: the instance dict, with the hvparams filled with the
cluster defaults
@rtype: dict
@return: the instance dict, with the hvparams filled with the
cluster defaults
@@
-276,7
+280,11
@@
class RpcRunner(object):
idict = instance.ToDict()
cluster = self._cfg.GetClusterInfo()
idict["hvparams"] = cluster.FillHV(instance)
idict = instance.ToDict()
cluster = self._cfg.GetClusterInfo()
idict["hvparams"] = cluster.FillHV(instance)
+ if hvp is not None:
+ idict["hvparams"].update(hvp)
idict["beparams"] = cluster.FillBE(instance)
idict["beparams"] = cluster.FillBE(instance)
+ if bep is not None:
+ idict["beparams"].update(bep)
return idict
def _ConnectList(self, client, node_list, call):
return idict
def _ConnectList(self, client, node_list, call):
@@
-425,14
+433,14
@@
class RpcRunner(object):
"""
return self._SingleNodeCall(node, "bridges_exist", [bridges_list])
"""
return self._SingleNodeCall(node, "bridges_exist", [bridges_list])
- def call_instance_start(self, node, instance, extra_args):
+ def call_instance_start(self, node, instance, hvp, bep):
"""Starts an instance.
This is a single-node call.
"""
"""Starts an instance.
This is a single-node call.
"""
- return self._SingleNodeCall(node, "instance_start",
- [self._InstDict(instance), extra_args])
+ idict = self._InstDict(instance, hvp=hvp, bep=bep)
+ return self._SingleNodeCall(node, "instance_start", [idict])
def call_instance_shutdown(self, node, instance):
"""Stops an instance.
def call_instance_shutdown(self, node, instance):
"""Stops an instance.
@@
-515,24
+523,23
@@
class RpcRunner(object):
return self._SingleNodeCall(node, "instance_migrate",
[self._InstDict(instance), target, live])
return self._SingleNodeCall(node, "instance_migrate",
[self._InstDict(instance), target, live])
- def call_instance_reboot(self, node, instance, reboot_type, extra_args):
+ def call_instance_reboot(self, node, instance, reboot_type):
"""Reboots an instance.
This is a single-node call.
"""
return self._SingleNodeCall(node, "instance_reboot",
"""Reboots an instance.
This is a single-node call.
"""
return self._SingleNodeCall(node, "instance_reboot",
- [self._InstDict(instance), reboot_type,
- extra_args])
+ [self._InstDict(instance), reboot_type])
- def call_instance_os_add(self, node, inst):
+ def call_instance_os_add(self, node, inst, reinstall):
"""Installs an OS on the given instance.
This is a single-node call.
"""
return self._SingleNodeCall(node, "instance_os_add",
"""Installs an OS on the given instance.
This is a single-node call.
"""
return self._SingleNodeCall(node, "instance_os_add",
- [self._InstDict(inst)])
+ [self._InstDict(inst), reinstall])
def call_instance_run_rename(self, node, inst, old_name):
"""Run the OS rename script for an instance.
def call_instance_run_rename(self, node, inst, old_name):
"""Run the OS rename script for an instance.
@@
-1023,6
+1030,16
@@
class RpcRunner(object):
"""
return self._SingleNodeCall(node, "node_demote_from_mc", [])
"""
return self._SingleNodeCall(node, "node_demote_from_mc", [])
+
+ def call_node_powercycle(self, node, hypervisor):
+ """Tries to powercycle a node.
+
+ This is a single-node call.
+
+ """
+ return self._SingleNodeCall(node, "node_powercycle", [hypervisor])
+
+
def call_test_delay(self, node_list, duration):
"""Sleep for a fixed time on given node(s).
def call_test_delay(self, node_list, duration):
"""Sleep for a fixed time on given node(s).
@@
-1118,6
+1135,6
@@
class RpcRunner(object):
"""
cluster = self._cfg.GetClusterInfo()
"""
cluster = self._cfg.GetClusterInfo()
- hv_full = cluster.FillDict(cluster.hvparams.get(hvname, {}), hvparams)
+ hv_full = objects.FillDict(cluster.hvparams.get(hvname, {}), hvparams)
return self._MultiNodeCall(node_list, "hypervisor_validate_params",
[hvname, hv_full])
return self._MultiNodeCall(node_list, "hypervisor_validate_params",
[hvname, hv_full])