BIND 10 #1461: Implement DDNS system tests

BIND 10 Development do-not-reply at isc.org
Thu Jun 14 20:40:12 UTC 2012


#1461: Implement DDNS system tests
-------------------------------------+-------------------------------------
                   Reporter:  jelte  |                 Owner:  jelte
                       Type:  task   |                Status:  reviewing
                   Priority:         |             Milestone:
  medium                             |  Sprint-20120619
                  Component:  DDNS   |            Resolution:
                   Keywords:         |             Sensitive:  0
            Defect Severity:  N/A    |           Sub-Project:  DNS
Feature Depending on Ticket:  DDNS   |  Estimated Difficulty:  7
        Add Hours to Ticket:  0      |           Total Hours:  0
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by muks):

 * owner:  muks => jelte


Comment:

 Hi jelte

 1. The config files should be formatted into multi-line ones (just like in
 the other lettuce tests). This makes both the file and future diffs easier
 to read.

 2. The following are perhaps best moved to bind10_control.py:

 {{{
 + at step('Configure BIND10 to run DDNS')
 + at step('Configure BIND10 to stop running DDNS')
 }}}

 3. There's a trailing newline added at the end of example.feature.

 4. This can't be fixed, right?

 {{{
         # Note: test spec says refused here, system returns SERVFAIL
         #The DDNS response should be REFUSED
         The DDNS response should be SERVFAIL
 }}}

 5. DDNS_RUNNING should perhaps be changed to DDNS_STARTED to make it
 consistent with other *_STARTED ids. This is a lettuce ticket, but maybe
 you can throw that in as it's a minor change and used here anyway.

 6. If `prepare_update()` accepts a zone name, maybe `set_serial_to()`
 should too.. but up to you :)

 7. Does this sequence log any messages to indicate that the ACL was
 updated? If so, we should wait for it to avoid a race. If not, we should
 log and wait for it.

 {{{
         # Test 4
         When I send bind10 the following commands
         """
         config add DDNS/zones
         config set DDNS/zones[0]/origin example.org
         config add DDNS/zones[0]/update_acl {"action": "ACCEPT", "from":
 "127.0.0.1"}
         config commit
         """
 }}}

 8. Even here, it would be good to doubly check any log message output by
 b10-ddns for the update. The `nsupdate` return is sufficient, but the log
 check would indicate our code in the particular handler was invoked and
 also avoid a race with `nsupdate`.
 {{{
         # Test 5
         When I use DDNS to set the SOA serial to 1237
         The DDNS response should be SUCCESS
         And the SOA serial for example.org should be 1237
 }}}

 9. Is DDNS restarted automatically after the shutdown? In this case,
 please add a comment between the two lettuce statements:
 {{{
         # Test 6
         When I send bind10 the command DDNS shutdown

 +       # Perhaps add this too:
 +       And wait for new bind10 stderr message DDNS_STOPPED
 +
 +       # DDNS is now automatically restarted by BoB.
 +
         # Test 7
         And wait for new bind10 stderr message DDNS_RUNNING

 }}}

 10. Is this due to a race in the next lettuce command getting to DDNS
 before it's ready?

 {{{
         # Test 8
         # Known issue: after shutdown, first new attempt results in
 SERVFAIL
         When I use DDNS to set the SOA serial to 1238
         The DDNS response should be SERVFAIL
         And the SOA serial for example.org should be 1237
 }}}

 11. Same as item 9 here:
 {{{
         # Test 9
         When I send bind10 the command Auth shutdown
         And wait for new bind10 stderr message AUTH_SERVER_STARTED
 }}}

 12. Does `update_acl` allow IP addresses only? Are hostnames not allowed?
 Also, why is it called `update_acl` and not just `acl` ? (Sorry about the
 silly questions, but I'm asking out of ignorance).
 {{{
 @step('set DDNS ACL ([0-9]+) for ([0-9.]+) to ([A-Z]+)')
 def set_ddns_acl_to(step, nr, address, action):
 }}}

 Back to you :)

-- 
Ticket URL: <https://bind10.isc.org/ticket/1461#comment:12>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list