On Thu, Jul 23, 2015 at 07:33:55PM +0200, 'Klaus Aehlig' via ganeti-devel wrote:
In this way, the auto-balancing functionality of the
maintenance daemon can conveniently be controlled via
the OpSetParams opcode.

Signed-off-by: Klaus Aehlig <[email protected]>
---
lib/cmdlib/cluster/__init__.py |  6 ++++++
lib/config/__init__.py         | 10 ++++++++++
2 files changed, 16 insertions(+)

diff --git a/lib/cmdlib/cluster/__init__.py b/lib/cmdlib/cluster/__init__.py
index 6f395a6..39c2186 100644
--- a/lib/cmdlib/cluster/__init__.py
+++ b/lib/cmdlib/cluster/__init__.py
@@ -1798,6 +1798,12 @@ class LUClusterSetParams(LogicalUnit):
    if self.op.maint_round_delay is not None:
      self.cfg.SetMaintdRoundDelay(self.op.maint_round_delay)

+    if self.op.maint_balance is not None:
+      self.cfg.SetMaintdBalance(self.op.maint_balance)
+
+    if self.op.maint_balance_threshold is not None:
+      self.cfg.SetMaintdBalanceThreshold(self.op.maint_balance_threshold)
+
    network_name = self.op.instance_communication_network
    if network_name is not None:
      return self._ModifyInstanceCommunicationNetwork(self.cfg,
diff --git a/lib/config/__init__.py b/lib/config/__init__.py
index 618a8f6..cc25bb1 100644
--- a/lib/config/__init__.py
+++ b/lib/config/__init__.py
@@ -3388,6 +3388,16 @@ class ConfigWriter(object):
    utils.SimpleRetry(True, self._wconfd.SetMaintdRoundDelay, 0.1, 30,
                      args=[delay])

+  def SetMaintdBalance(self, flag):
+    """Enable/disable auto-balancing by the maintenance daemon"""
+    utils.SimpleRetry(True, self._wconfd.SetMaintdBalance, 0.1, 30,
+                      args=[flag])
+
+  def SetMaintdBalanceThreshold(self, score):
+    """Set the minimal score improvement per move for balancing steps"""
+    utils.SimpleRetry(True, self._wconfd.SetMaintdBalanceThreshold, 0.1, 30,
+                      args=[score])
+

class DetachedConfig(ConfigWriter):
  """Read-only snapshot of the config."""
--
2.4.3.573.g4eafbef


LGTM

Reply via email to