From b9f72b4e9b9d8bb03f0848896dda262b6c9a65a3 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Sat, 27 Sep 2008 15:58:51 +0000 Subject: [PATCH] Update the cluster serial_no on certain operations This patch adds update of the cluster serial number for: - add/remove node (as the cluster's node list is changed) - add/remove/rename instance (as the cluster's instance list is changed) - change the volume group name The rule for updating this attribute is when cluster-wide properties are changed, but not individual node/instance ones. There are other remaining cases to handle, pending on the ssconf changes. Reviewed-by: ultrotter --- lib/config.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/config.py b/lib/config.py index 8635a8b4e..53dc9bd54 100644 --- a/lib/config.py +++ b/lib/config.py @@ -424,6 +424,7 @@ class ConfigWriter: self._OpenConfig() instance.serial_no = 1 self._config_data.instances[instance.name] = instance + self._config_data.cluster.serial_no += 1 self._WriteConfig() def _SetInstanceStatus(self, instance_name, status): @@ -462,6 +463,7 @@ class ConfigWriter: if instance_name not in self._config_data.instances: raise errors.ConfigurationError("Unknown instance '%s'" % instance_name) del self._config_data.instances[instance_name] + self._config_data.cluster.serial_no += 1 self._WriteConfig() @locking.ssynchronized(_config_lock) @@ -490,6 +492,7 @@ class ConfigWriter: disk.iv_name)) self._config_data.instances[inst.name] = inst + self._config_data.cluster.serial_no += 1 self._WriteConfig() @locking.ssynchronized(_config_lock) @@ -584,6 +587,7 @@ class ConfigWriter: self._OpenConfig() node.serial_no = 1 self._config_data.nodes[node.name] = node + self._config_data.cluster.serial_no += 1 self._WriteConfig() @locking.ssynchronized(_config_lock) @@ -598,6 +602,7 @@ class ConfigWriter: raise errors.ConfigurationError("Unknown node '%s'" % node_name) del self._config_data.nodes[node_name] + self._config_data.cluster.serial_no += 1 self._WriteConfig() @locking.ssynchronized(_config_lock, shared=1) @@ -827,6 +832,7 @@ class ConfigWriter: """ self._OpenConfig() self._config_data.cluster.volume_group_name = vg_name + self._config_data.cluster.serial_no += 1 self._WriteConfig() @locking.ssynchronized(_config_lock, shared=1) -- GitLab