BIND 10 #2989: Python notify_out module should use general datasource configuration, not Auth/database_file

BIND 10 Development do-not-reply at isc.org
Tue Jun 4 22:50:58 UTC 2013


#2989: Python notify_out module should use general datasource configuration, not
Auth/database_file
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:
  jinmei                             |                Status:  new
                       Type:         |             Milestone:  Next-Sprint-
  defect                             |  Proposed
                   Priority:         |              Keywords:
  medium                             |             Sensitive:  0
                  Component:         |           Sub-Project:  DNS
  xfrout                             |  Estimated Difficulty:  0
               CVSS Scoring:         |           Total Hours:  0
            Defect Severity:  N/A    |
Feature Depending on Ticket:         |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
 This is a subtask of #2965.

 We'll update the isc.notify.notify_out module to get rid of the
 reference to the `Auth/database_file` config, etc.

 More specifics based on #2964:

 - import 'data_sources' module instead of 'Auth' as a remote module.
   See `Xfrin` constructor.
 - maintain `isc.server_common.DataSrcClientsMgr` object and call its
   reconfigure() from `Xfrin._datasrc_config_handler`
 - when a data source is necessary, get it from the `DataSrcClientsMgr`
   using its `get_client_list()`.  See xfrin_start().
 - then remove any reference to auth module, "db_file", sqlite3
   specifics, etc.

 A tricky point of notify_out is that it's also run on a different
 thread, and uses `ZoneFinder` in various places.  We could share it
 with the main xfrout threads with careful synchronization, but that
 will make the already messy implementation (wrt the naive use of
 threads) even messier.

 So my suggestion is to create and use a separate `DataSrcClientsMgr`
 in the notify_out module.  In the main xfrout module, when a config
 update for the data_sources module is delivered, it will reconfigure
 the main and notify's `DataSrcClientsMgr`.  It's a bit redundant, but
 resource-wise it shouldn't be that heavy in practice as we'll simply
 maintain two separate SQLite3 connections (so the cost is independent
 from the size or number of zones, for example).

 When we re-design and implement xfr's we can handle it in a cleaner way.

 On completion of this task, we can fully get rid of the old stuff from
 xfrout.  We should also be able to remove Auth/database_file from
 lettuce tests on xfrout.

-- 
Ticket URL: <http://bind10.isc.org/ticket/2989>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list