From b989e85d9db678b00efb34a2d91f663d85d01ffe Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Sat, 27 Sep 2008 15:58:22 +0000 Subject: [PATCH] Initialize and update the serial_no on objects This patch add initialization of the serial_no on instance and nodes, and update of the field whenever an object is updated in the generic case, via ConfigWriter.Update(obj) and in the specific case of instances' state being modified manually. Reviewed-by: ultrotter --- lib/config.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/config.py b/lib/config.py index ef2aedbec..8635a8b4e 100644 --- a/lib/config.py +++ b/lib/config.py @@ -422,6 +422,7 @@ class ConfigWriter: logging.info("Instance '%s' DISK_LAYOUT: %s", instance.name, all_lvs) self._OpenConfig() + instance.serial_no = 1 self._config_data.instances[instance.name] = instance self._WriteConfig() @@ -441,6 +442,7 @@ class ConfigWriter: instance = self._config_data.instances[instance_name] if instance.status != status: instance.status = status + instance.serial_no += 1 self._WriteConfig() @locking.ssynchronized(_config_lock) @@ -580,6 +582,7 @@ class ConfigWriter: logging.info("Adding node %s to configuration" % node.name) self._OpenConfig() + node.serial_no = 1 self._config_data.nodes[node.name] = node self._WriteConfig() @@ -801,7 +804,7 @@ class ConfigWriter: if secondary_ip is None: secondary_ip = primary_ip nodeconfig = objects.Node(name=node, primary_ip=primary_ip, - secondary_ip=secondary_ip) + secondary_ip=secondary_ip, serial_no=1) self._config_data = objects.ConfigData(nodes={node: nodeconfig}, instances={}, @@ -880,4 +883,6 @@ class ConfigWriter: if not test: raise errors.ConfigurationError("Configuration updated since object" " has been read or unknown object") + target.serial_no += 1 + self._WriteConfig() -- GitLab