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
599de0a
..
e4bb938
100644
(file)
--- a/
lib/rpc.py
+++ b/
lib/rpc.py
@@
-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):
+ 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)])
+ 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.
@@
-1022,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).
@@
-1117,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])