[svn] commit: r1186 - /trunk/src/lib/python/isc/config/cfgmgr.py

BIND 10 source code commits bind10-changes at lists.isc.org
Sun Mar 7 22:52:34 UTC 2010


Author: jelte
Date: Sun Mar  7 22:52:34 2010
New Revision: 1186

Log:
need deepcopy() instead of shallow copy() for reverting to older data when new config is not accepted

Modified:
    trunk/src/lib/python/isc/config/cfgmgr.py

Modified: trunk/src/lib/python/isc/config/cfgmgr.py
==============================================================================
--- trunk/src/lib/python/isc/config/cfgmgr.py (original)
+++ trunk/src/lib/python/isc/config/cfgmgr.py Sun Mar  7 22:52:34 2010
@@ -24,6 +24,7 @@
 import ast
 import pprint
 import os
+import copy
 from isc.cc import data
 
 class ConfigManagerDataReadError(Exception):
@@ -237,6 +238,7 @@
             return isc.config.ccsession.create_answer(1, "Wrong number of arguments")
         if len(cmd) == 2:
             # todo: use api (and check the data against the definition?)
+            old_data = copy.deepcopy(self.config.data)
             module_name = cmd[0]
             conf_part = data.find_no_exc(self.config.data, module_name)
             if conf_part:
@@ -256,9 +258,10 @@
                 rcode, val = isc.config.ccsession.parse_answer(answer)
                 if rcode == 0:
                     self.write_config()
+                else:
+                    self.config.data = old_data
         elif len(cmd) == 1:
-            # todo: use api (and check the data against the definition?)
-            old_data = self.config.data.copy()
+            old_data = copy.deepcopy(self.config.data)
             data.merge(self.config.data, cmd[0])
             # send out changed info
             got_error = False




More information about the bind10-changes mailing list