From 34d657bae4361b9d6fd8c6314dc7cca57b51c773 Mon Sep 17 00:00:00 2001 From: Iustin Pop Date: Wed, 23 Sep 2009 18:39:05 +0200 Subject: [PATCH] Automatically cleanup _temporary_ids at save Signed-off-by: Iustin Pop Reviewed-by: Michael Hanselmann --- lib/config.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/config.py b/lib/config.py index 487d480..46f4134 100644 --- a/lib/config.py +++ b/lib/config.py @@ -207,6 +207,13 @@ class ConfigWriter: self._temporary_ids.add(unique_id) return unique_id + def _CleanupTemporaryIDs(self): + """Cleanups the _temporary_ids structure. + + """ + existing = self._AllIDs(include_temporary=False) + self._temporary_ids = self._temporary_ids - existing + def _AllMACs(self): """Return all MACs present in the config. @@ -1119,6 +1126,10 @@ class ConfigWriter: """Write the configuration data to persistent storage. """ + # first, cleanup the _temporary_ids set, if an ID is now in the + # other objects it should be discarded to prevent unbounded growth + # of that structure + self._CleanupTemporaryIDs() config_errors = self._UnlockedVerifyConfig() if config_errors: raise errors.ConfigurationError("Configuration data is not" -- 1.7.10.4