BIND 10 trac811_new, updated. a2936cc155f8b5ce2afaa82820fa377a037f2be3 [trac811] revert changes to xfrout
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue May 17 20:25:56 UTC 2011
The branch, trac811_new has been updated
via a2936cc155f8b5ce2afaa82820fa377a037f2be3 (commit)
from 94cfeebfec6574350fb4980c2b0cc6a7d84ba4f7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a2936cc155f8b5ce2afaa82820fa377a037f2be3
Author: Jelte Jansen <jelte at isc.org>
Date: Tue May 17 22:25:23 2011 +0200
[trac811] revert changes to xfrout
so that we can merge this branch as discussed in the planning call today
-----------------------------------------------------------------------
Summary of changes:
src/bin/xfrout/tests/xfrout_test.py.in | 85 +------------------------------
src/bin/xfrout/xfrout.py.in | 74 ++--------------------------
src/bin/xfrout/xfrout.spec.pre.in | 23 ---------
3 files changed, 8 insertions(+), 174 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/bin/xfrout/tests/xfrout_test.py.in b/src/bin/xfrout/tests/xfrout_test.py.in
index 32d658e..472ef3c 100644
--- a/src/bin/xfrout/tests/xfrout_test.py.in
+++ b/src/bin/xfrout/tests/xfrout_test.py.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 Internet Systems Consortium.
+# Copyright (C) 2010 Internet Systems Consortium.
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -330,7 +330,6 @@ class MyUnixSockServer(UnixSockServer):
self._transfers_counter = 0
self._shutdown_event = threading.Event()
self._max_transfers_out = 10
- self._zones = {}
self._cc = MyCCSession()
self._log = isc.log.NSLogger('xfrout', '', severity = 'critical', log_to_console = False )
@@ -347,87 +346,9 @@ class TestUnixSockServer(unittest.TestCase):
recv_msg = self.unix._receive_query_message(self.read_sock)
self.assertEqual(recv_msg, send_msg)
- def _check_config(self, config_data):
- if 'transfers_out' in config_data:
- self.assertEqual(config_data['transfers_out'],
- self.unix._max_transfers_out)
- if 'zones' in config_data:
- for zone_config in config_data['zones']:
- self.assertIn(zone_config['name'], self.unix._zones)
- zone_info = self.unix._zones[zone_config['name']]
- if 'tsig_key' in zone_config:
- self.assertEqual(TSIGKey(zone_config['tsig_key']).to_text(),
- zone_info.tsig_key.to_text())
-
def test_updata_config_data(self):
- good_config1 = { 'transfers_out': 10,
- 'zones': [
- { 'name': 'example.com.',
- 'tsig_key': 'example.com:SFuWd/q99SzF8Yzd1QbB9g=='
- }
- ]
- }
- answer = self.unix.update_config_data(good_config1)
- self.assertEqual(0, parse_answer(answer)[0])
- self._check_config(good_config1)
-
- good_config2 = { 'transfers_out': 11,
- 'zones': [
- { 'name': 'example.com.'
- },
- { 'name': 'example2.com.',
- 'tsig_key': 'example2.com:SFuWd/q99SzF8Yzd1QbB9g=='
- }
- ]
- }
- answer = self.unix.update_config_data(good_config2)
- self.assertEqual(0, parse_answer(answer)[0])
- self._check_config(good_config2)
-
- bad_config = { 'transfers_out': 12,
- 'zones': [
- {}
- ]
- }
- answer = self.unix.update_config_data(bad_config)
- self.assertEqual(1, parse_answer(answer)[0])
- # Should still have the previous config
- self._check_config(good_config2)
-
- bad_config = { 'transfers_out': 13,
- 'zones': [ { 'name': 'example..com.' } ]
- }
- answer = self.unix.update_config_data(bad_config)
- self.assertEqual(1, parse_answer(answer)[0])
- # Should still have the previous config
- self._check_config(good_config2)
-
- bad_config = { 'transfers_out': 14,
- 'zones': [
- { 'name': 'example.com.',
- 'tsig_key': '::'
- }
- ]
- }
- answer = self.unix.update_config_data(bad_config)
- self.assertEqual(1, parse_answer(answer)[0])
- # Should still have the previous config
- self._check_config(good_config2)
-
- bad_config = { 'transfers_out': 15,
- 'zones': [
- { 'name': 'example.com.',
- 'tsig_key': 'example.com:SFuWd/q99SzF8Yzd1QbB9g=='
- },
- { 'name': 'example.com.',
- 'tsig_key': 'example.com:SFuWd/q99SzF8Yzd1QbB9g=='
- }
- ]
- }
- answer = self.unix.update_config_data(bad_config)
- self.assertEqual(1, parse_answer(answer)[0])
- # Should still have the previous config
- self._check_config(good_config2)
+ self.unix.update_config_data({'transfers_out':10 })
+ self.assertEqual(self.unix._max_transfers_out, 10)
def test_get_db_file(self):
self.assertEqual(self.unix.get_db_file(), "initdb.file")
diff --git a/src/bin/xfrout/xfrout.py.in b/src/bin/xfrout/xfrout.py.in
index 5733d56..17ca3eb 100755
--- a/src/bin/xfrout/xfrout.py.in
+++ b/src/bin/xfrout/xfrout.py.in
@@ -1,6 +1,6 @@
#!@PYTHON@
-# Copyright (C) 2010-2011 Internet Systems Consortium.
+# Copyright (C) 2010 Internet Systems Consortium.
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -301,38 +301,6 @@ class XfroutSession():
self._send_message_with_last_soa(msg, sock_fd, rrset_soa, message_upper_len)
-class XfroutZoneInfoException(Exception):
- """This exception if raised if the given information for ZoneInfo
- contains an error (i.e. if the given name or tsig key data does
- not parse correctly, or if information for a zone is found
- multiple times"""
- pass
-
-class ZoneInfo:
- def __init__(self, zone_config):
- self.set_zone_name(zone_config.get('name'))
- self.set_tsig_key(zone_config.get('tsig_key'))
-
- def set_zone_name(self, name_str):
- if name_str is None:
- raise XfroutZoneInfoException("Must have zone name for xfrout zone info")
- else:
- try:
- self.name = Name(name_str)
- except (EmptyLabel, TooLongLabel, BadLabelType, BadEscape,
- TooLongName, IncompleteName) as ne:
- raise XfroutZoneInfoException("bad zone name: " + name_str
- + " (" + str(ne) + ")")
-
- def set_tsig_key(self, tsig_key_str):
- if tsig_key_str is None:
- self.tsig_key = None
- else:
- try:
- self.tsig_key = TSIGKey(tsig_key_str)
- except InvalidParameter as ipe:
- raise XfroutZoneInfoException("bad TSIG key string: " + tsig_key_str)
-
class UnixSockServer(socketserver_mixin.NoPollMixIn, ThreadingUnixStreamServer):
'''The unix domain socket server which accept xfr query sent from auth server.'''
@@ -346,11 +314,6 @@ class UnixSockServer(socketserver_mixin.NoPollMixIn, ThreadingUnixStreamServer):
self._shutdown_event = shutdown_event
self._write_sock, self._read_sock = socket.socketpair()
self._log = log
- # these values are directly (re)set by update_config_data,
- # but the general error recovery there needs something to
- # be set
- self._zones = {}
- self._max_transfers_out = 10
self.update_config_data(config_data)
self._cc = cc
@@ -483,39 +446,12 @@ class UnixSockServer(socketserver_mixin.NoPollMixIn, ThreadingUnixStreamServer):
def update_config_data(self, new_config):
'''Apply the new config setting of xfrout module. '''
- old_max_transfers_out = self._max_transfers_out
- old_zones = self._zones
- err_msg = None
-
self._log.log_message('info', 'update config data start.')
self._lock.acquire()
self._max_transfers_out = new_config.get('transfers_out')
- zones = new_config.get('zones')
- if zones is not None:
- self._zones = {}
- try:
- for zone_config in zones:
- zone_info = ZoneInfo(zone_config)
- key = zone_info.name.to_text()
- if key in self._zones:
- raise XfroutZoneInfoException("zone " + key +
- " configured multiple times")
- self._zones[zone_info.name.to_text()] = zone_info
- except XfroutZoneInfoException as xzie:
- err_msg = "Bad zone information: " + str(xzie)
-
- if err_msg is not None:
- # restore previous config
- self._max_transfers_out = old_max_transfers_out
- self._zones = old_zones
- answer = create_answer(1, err_msg)
- else:
- self._log.log_message('info', 'update config data complete.')
- self._log.log_message('info', 'max transfer out : %d', self._max_transfers_out)
- answer = create_answer(0)
-
+ self._log.log_message('info', 'max transfer out : %d', self._max_transfers_out)
self._lock.release()
- return answer
+ self._log.log_message('info', 'update config data complete.')
def get_db_file(self):
file, is_default = self._cc.get_remote_config_value("Auth", "database_file")
@@ -577,7 +513,7 @@ class XfroutServer:
self._notifier.send_notify(zone_name, zone_class)
def config_handler(self, new_config):
- '''Update config data. TODO. Do error check for log_update_config'''
+ '''Update config data. TODO. Do error check'''
answer = create_answer(0)
for key in new_config:
if key not in self._config_data:
@@ -589,7 +525,7 @@ class XfroutServer:
self._log.update_config(new_config)
if self._unix_socket_server:
- answer = self._unix_socket_server.update_config_data(self._config_data)
+ self._unix_socket_server.update_config_data(self._config_data)
return answer
diff --git a/src/bin/xfrout/xfrout.spec.pre.in b/src/bin/xfrout/xfrout.spec.pre.in
index 96b9570..941db72 100644
--- a/src/bin/xfrout/xfrout.spec.pre.in
+++ b/src/bin/xfrout/xfrout.spec.pre.in
@@ -37,29 +37,6 @@
"item_type": "integer",
"item_optional": false,
"item_default": 1048576
- },
- {
- "item_name": "zones",
- "item_type": "list",
- "item_optional": false,
- "item_default": [],
- "list_item_spec":
- { "item_name": "zone_info",
- "item_type": "map",
- "item_optional": false,
- "item_default": {},
- "map_item_spec": [
- { "item_name": "name",
- "item_type": "string",
- "item_optional": false,
- "item_default": ""
- },
- { "item_name": "tsig_key",
- "item_type": "string",
- "item_optional": true
- }
- ]
- }
}
],
"commands": [
More information about the bind10-changes
mailing list