BIND 10 #2966: ddns should use general datasource configuration, not Auth/database_file

BIND 10 Development do-not-reply at isc.org
Tue Jun 4 23:02:02 UTC 2013


#2966: ddns should use general datasource configuration, not Auth/database_file
-------------------------------------+-------------------------------------
            Reporter:  jinmei        |                        Owner:
                Type:  defect        |                       Status:  new
            Priority:  medium        |                    Milestone:  Next-
           Component:  DDNS          |  Sprint-Proposed
            Keywords:                |                   Resolution:
           Sensitive:  0             |                 CVSS Scoring:
         Sub-Project:  DNS           |              Defect Severity:  N/A
Estimated Difficulty:  0             |  Feature Depending on Ticket:
         Total Hours:  0             |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
Description changed by jinmei:

Old description:

> subject should say all. we'll need this by the time
> we support non-SQLite3 based data source, so it's probably
> the time to schedule it.
>
> 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.
>
> In the case of DDNS, I think we'll update the helper
> `isc.ddns.ZoneConfig` so that:
> - it will internally maintain `DataSrcClientsMgr`, instead of taking
>   a specific datasrc_client in the constructor.
> - it will have a new "reconfigure_datasrc()" method, which calls
>   `DataSrcClientsMgr.reconfigure()`
> - its find_zone() will first identify the corresponding data source
>   client list for the class, and then call find() to get the data
>   source client to use.
>
> The main DDNS module will call `ZoneConfig.reconfigure_datasrc()`
> from the remote config update callback for the data_sources module.
>
> DDNS is not threaded, so we don't have to worry about inter-thread
> implications.

New description:

 subject should say all. we'll need this by the time
 we support non-SQLite3 based data source, so it's probably
 the time to schedule it.

 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 the remote config update callback for the
   data_sources module.  See `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.

 In the case of DDNS, I think we'll update the helper
 `isc.ddns.ZoneConfig` so that:
 - it will internally maintain `DataSrcClientsMgr`, instead of taking
   a specific datasrc_client in the constructor.
 - it will have a new "reconfigure_datasrc()" method, which calls
   `DataSrcClientsMgr.reconfigure()`
 - its find_zone() will first identify the corresponding data source
   client list for the class, and then call find() to get the data
   source client to use.

 The main DDNS module will call `ZoneConfig.reconfigure_datasrc()`
 from the remote config update callback for the data_sources module.

 DDNS is not threaded, so we don't have to worry about inter-thread
 implications.

--

-- 
Ticket URL: <http://bind10.isc.org/ticket/2966#comment:4>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list