BIND 10 #2965: xfrout should use general datasource configuration, not Auth/database_file
BIND 10 Development
do-not-reply at isc.org
Tue Jun 4 23:02:35 UTC 2013
#2965: xfrout should use general datasource configuration, not Auth/database_file
-------------------------------------+-------------------------------------
Reporter: jinmei | Owner:
Type: defect | Status: new
Priority: medium | Milestone: Next-
Component: xfrout | 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 xfrin, there's one tricky point:
> `XfroutSession._get_zone_soa()`
> needs to use `ZoneFinder`s. This cannot be done by multiple threads
> (on the same shared data source client) at the same time, so this call
> should use some synchronization.
>
> Changes to notify_out module will also non trivial, so I suggest
> moving that part into a different ticket. Until it's done, xfrout
> will still keep the old `Auth/database_file`, db_file, etc.
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 xfrin, there's one tricky point:
`XfroutSession._get_zone_soa()`
needs to use `ZoneFinder`s. This cannot be done by multiple threads
(on the same shared data source client) at the same time, so this call
should use some synchronization.
Changes to notify_out module will also non trivial, so I suggest
moving that part into a different ticket. Until it's done, xfrout
will still keep the old `Auth/database_file`, db_file, etc.
--
--
Ticket URL: <http://bind10.isc.org/ticket/2965#comment:6>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list