Revision: 1168
Author:
J.S.P...@gmail.com
Date: Fri Aug 16 07:25:30 2013
Log: Adding unique key for zone_origin-zone_type-view_dep
http://code.google.com/p/roster-dns-management/source/detail?r=1168
Modified:
/trunk/roster-core/roster_core/embedded_files.py
/trunk/test/core_regtest.py
/trunk/test/dnsmkzone_test.py
=======================================
--- /trunk/roster-core/roster_core/embedded_files.py Thu Jul 18 12:56:58
2013
+++ /trunk/roster-core/roster_core/embedded_files.py Fri Aug 16 07:25:30
2013
@@ -290,8 +290,9 @@
PRIMARY KEY (`zone_view_assignments_id`),
UNIQUE KEY `unique_zone_name_zone_dependency`
(`zone_view_assignments_zone_name`,`zone_view_assignments_view_dependency`),
- UNIQUE KEY `unique_zone_origin_view_dependency`
- (`zone_view_assignments_view_dependency`,`zone_origin`),
+ UNIQUE KEY `unique_zone_origin_zone_type_view_dependency`
+ (`zone_view_assignments_view_dependency`,`zone_origin`,
+ `zone_view_assignments_zone_type`),
INDEX `zone_name` (`zone_view_assignments_zone_name`,
`zone_view_assignments_view_dependency`),
INDEX `view_dependency_3` (`zone_view_assignments_view_dependency`),
=======================================
--- /trunk/test/core_regtest.py Thu Aug 15 08:06:22 2013
+++ /trunk/test/core_regtest.py Fri Aug 16 07:25:30 2013
@@ -631,6 +631,22 @@
self.core_instance.UpdateGroupReversePermission,
u'
192.168.0.0/24', u'no_group', [u'ptr', u'cname'])
+ def testMakeZoneZoneOriginZoneTypeViewDependencyError(self):
+ self.core_instance.MakeView(u'test_view')
+ self.core_instance.MakeZone(u'test_zone1', u'master', u'test_zone.')
+ self.core_instance.MakeZone(u'test_zone2', u'slave', u'test_zone.')
+ self.assertRaises(MySQLdb.IntegrityError,
+ self.core_instance.MakeZone, u'test_zone3', u'master', u'test_zone.')
+
+ #Raises since the above zones were made in the any view.
+ self.assertRaises(MySQLdb.IntegrityError,
+ self.core_instance.MakeZone, u'test_zone4', u'master', u'test_zone.',
+ view_name=u'test_view')
+
+ #This should work fine, though.
+ self.core_instance.MakeZone(u'test_zone4', u'master', u'test_zone.',
+ view_name=u'test_view', make_any=False)
+
def testReverseRangeZoneAssignmentMakeRemoveListUpdateRemove(self):
self.core_instance.MakeZone(u'10.in-addr.arpa', u'master',
u'10.in-addr.arpa.')
=======================================
--- /trunk/test/dnsmkzone_test.py Thu Aug 15 08:18:41 2013
+++ /trunk/test/dnsmkzone_test.py Fri Aug 16 07:25:30 2013
@@ -350,6 +350,33 @@
'zone_name: reverse_zone cidr_block: 192.168/27 \n')
output.close()
+ def testMakeMultipleZonesWithSameZoneOriginError(self):
+ self.core_instance.MakeView(u'test_view')
+ output = os.popen('python %s forward -z test_zone1 -v test_view
--origin '
+ '
dept.university.edu. --type master '
+ '-s %s -u %s -p %s --config-file %s' % (EXEC,
+ self.server_name, USERNAME, PASSWORD,
USER_CONFIG))
+ self.assertEqual(output.read(),
+ 'ADDED FORWARD ZONE: zone_name: test_zone1 zone_type: master '
+ 'zone_origin:
dept.university.edu. zone_options: None view_name:
test_view\n')
+ output.close()
+ output = os.popen('python %s forward -z test_zone2 -v test_view
--origin '
+ '
dept.university.edu. --type master '
+ '-s %s -u %s -p %s --config-file %s' % (EXEC,
+ self.server_name, USERNAME, PASSWORD,
USER_CONFIG))
+ output_string = output.read()
+ output.close()
+ self.assertTrue('UNKNOWN ERROR(IntegrityError)' in output_string)
+ self.assertTrue('Duplicate entry' in output_string)
+ output = os.popen('python %s forward -z test_zone3 -v test_view
--origin '
+ '
dept.university.edu. --type slave '
+ '-s %s -u %s -p %s --config-file %s' % (EXEC,
+ self.server_name, USERNAME, PASSWORD,
USER_CONFIG))
+ self.assertEqual(output.read(),
+ 'ADDED FORWARD ZONE: zone_name: test_zone3 zone_type: slave '
+ 'zone_origin:
dept.university.edu. zone_options: None view_name:
test_view\n')
+ output.close()
+
def testErrors(self):
output = os.popen('python %s forward -v test_view -z test_zone
--origin '
'
dept.univiersity.edu. --type master '