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