Revision: 1157
Author:
J.S.P...@gmail.com
Date: Thu Aug 8 03:27:50 2013
Log: Fixing a bug that would not export a view if it did not have any
zone files in the view. (e.g. a single slave zone)
http://code.google.com/p/roster-dns-management/source/detail?r=1157
Modified:
/trunk/roster-config-manager/roster_config_manager/config_lib.py
/trunk/test/config_lib_test.py
=======================================
--- /trunk/roster-config-manager/roster_config_manager/config_lib.py Fri
Jul 19 13:56:34 2013
+++ /trunk/roster-config-manager/roster_config_manager/config_lib.py Thu
Aug 8 03:27:50 2013
@@ -216,9 +216,9 @@
# Files in /root_config_dir/server/named
# All directories
for view in named_files:
+ self.__AddToTarFile__('%s/%s/%s' % (server_dir,
server_file,
+ view), self.root_config_dir, tar_file)
if( view == '
named.ca' ):
- self.__AddToTarFile__('%s/%s/%s' % (server_dir,
server_file,
- view), self.root_config_dir, tar_file)
continue
try:
view_files = os.listdir('%s/%s/%s/%s' %
(self.root_config_dir,
@@ -227,6 +227,7 @@
raise ExporterListFileError('Can not list files in '
'%s/%s/%s/%s.' % (self.root_config_dir, server_dir,
server_file, view))
+
# Files in /root_config_dir/server/named/view
# All files
for zone in view_files:
=======================================
--- /trunk/test/config_lib_test.py Thu Jan 10 12:30:22 2013
+++ /trunk/test/config_lib_test.py Thu Aug 8 03:27:50 2013
@@ -118,6 +118,28 @@
if( os.path.exists('test_data/config_test_dir') ):
shutil.rmtree('test_data/config_test_dir')
+ #Testing the exporting of a slave zone with no records to make sure
+ #that config_lib tars an empty folder.
+ def testTarringSlaveZone(self):
+ for zone in self.core_instance.ListZones():
+ self.core_instance.RemoveZone(zone)
+ self.core_instance.MakeDnsServer(u'server1', u'some_user',
u'/bind/dir/',
+ u'/test/dir/')
+ self.core_instance.MakeDnsServerSet(u'server_set1')
+ self.core_instance.MakeDnsServerSetAssignments(u'server1',
u'server_set1')
+ self.core_instance.MakeDnsServerSetViewAssignments(u'external', 1,
u'server_set1')
+
+ self.core_instance.MakeZone(u'test_zone', u'slave', u'test_zone.',
+ view_name=u'external', make_any=False)
+ self.core_instance.MakeNamedConfGlobalOption(u'server_set1',
u'recursion no;')
+
+ tree_exporter_instance = tree_exporter.BindTreeExport(CONFIG_FILE)
+ tree_exporter_instance.ExportAllBindTrees()
+ config_lib_instance = config_lib.ConfigLib(CONFIG_FILE)
+ config_lib_instance.UnTarDnsTree()
+ self.assertTrue(os.path.exists(os.path.join(self.root_config_dir,
+ 'server1/named/external')))
+
def testFindDnsTreeFilename(self):
config_lib_instance = config_lib.ConfigLib(CONFIG_FILE)
tree_exporter_instance = tree_exporter.BindTreeExport(CONFIG_FILE)