Switch the global serial_no to the top object
authorIustin Pop <iustin@google.com>
Sat, 27 Sep 2008 15:58:13 +0000 (15:58 +0000)
committerIustin Pop <iustin@google.com>
Sat, 27 Sep 2008 15:58:13 +0000 (15:58 +0000)
Currently the serial_no that is incremented every time the configuration
file is written is located on the 'cluster' object in the configuration
structure. However, this is wrong as the cluster serial_no should be
incremented only when the cluster state is changed (for whatever
definition of “changed” we will use), not simply because the
configuration file is written.

This patch changes so that the ConfigWriter._BumpSerialNo affects the
top-level ConfigData object.

Reviewed-by: ultrotter

lib/config.py

index e24a17d..ef2aedb 100644 (file)
@@ -677,7 +677,7 @@ class ConfigWriter:
     """Bump up the serial number of the config.
 
     """
-    self._config_data.cluster.serial_no += 1
+    self._config_data.serial_no += 1
 
   def _OpenConfig(self):
     """Read the config data from disk.
@@ -805,7 +805,8 @@ class ConfigWriter:
 
     self._config_data = objects.ConfigData(nodes={node: nodeconfig},
                                            instances={},
-                                           cluster=globalconfig)
+                                           cluster=globalconfig,
+                                           serial_no=1)
     self._WriteConfig()
 
   @locking.ssynchronized(_config_lock, shared=1)