BIND 10 #2676: Provide ccsession::rpc_call and replace usual calls with it

BIND 10 Development do-not-reply at isc.org
Mon Feb 18 11:45:48 UTC 2013


#2676: Provide ccsession::rpc_call and replace usual calls with it
-------------------------------------+-------------------------------------
            Reporter:  vorner        |                        Owner:
                Type:  enhancement   |  UnAssigned
            Priority:  medium        |                       Status:
           Component:  Inter-module  |  reviewing
  communication                      |                    Milestone:
            Keywords:                |  Sprint-20130219
           Sensitive:  0             |                   Resolution:
         Sub-Project:  Core          |                 CVSS Scoring:
Estimated Difficulty:  5             |              Defect Severity:  N/A
         Total Hours:  0             |  Feature Depending on Ticket:
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
Changes (by vorner):

 * owner:  vorner => UnAssigned
 * status:  accepted => reviewing


Comment:

 I decided to split the ticket in half, so this one is the python part.
 I'll
 create the ticket for C++ part and take it in a short time, but I think
 the
 python part can be reviewed separately, as it is independent, and there's
 no
 need to wait with that.

 I decided to put it onto the `ModuleCCSession`, since it creates the
 command
 using `create_command` and parses the answer by `parse_reply`, and these
 are in
 `isc.config.session`. This, however, is little bit problematic. There are
 two
 modules that have one `ModuleCCSession`, but send commands through a
 separate
 ccsession, due to some problems with threads (these are `XfrIn` and
 `ZoneMrg`).
 I'd like to discuss what to do with these, I have several ideas:
  * Move the `create_command` and `parse_reply` (and the others) to
 `isc.cc`.
    This, however, has the drawback that a lot of code would need to be
 changed
    (because, for example, some of them throw `ModuleCCSessionError`).
  * Create two `ModuleCCSession`s for the modules (and don't start the
 others to
    listen for commands, and provide empty command handlers for them). Use
 them
    for the rpc calls.
  * Solve the problems with threads.
  * Leave it as it is, with the FIXME as in the branch and manually
 specifying
    `want_answer`.

 I would wait with changelog until the C++ part is complete as well.

 I kept the `rpc_call` name, as the other methods there seem to be named in
 this
 manner. So I tried to keep consistency inside the whole class.

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


More information about the bind10-tickets mailing list