bindctl_commands.feature 7.38 KB
Newer Older
1
2
3
Feature: control with bindctl
    Assorted tests using bindctl for the administration of BIND 10.

4

5
    Scenario: Removing modules
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
        # This test runs the original example configuration, which has
        # a number of modules. It then removes all non-essential modules,
        # and checks whether they do disappear from the list of running
        # modules (note that it 'misuses' the help command for this,
        # there is a Boss command 'show_processes' but it's output is
        # currently less standardized than 'help')
        Given I have bind10 running with configuration bindctl_commands.config
        And wait for bind10 stderr message BIND10_STARTED_CC
        And wait for bind10 stderr message CMDCTL_STARTED
        And wait for bind10 stderr message ZONEMGR_STARTED
        And wait for bind10 stderr message AUTH_SERVER_STARTED
        And wait for bind10 stderr message XFRIN_STARTED
        And wait for bind10 stderr message XFROUT_STARTED
        And wait for bind10 stderr message STATS_STARTING
        And wait for bind10 stderr message STATHTTPD_STARTED

        Then remove bind10 configuration Boss/components/NOSUCHMODULE
        last bindctl output should contain Error

        bind10 module Xfrout should be running
        bind10 module Stats should be running
        bind10 module Zonemgr should be running
        bind10 module Xfrin should be running
        bind10 module Auth should be running
        bind10 module StatsHttpd should be running
        bind10 module Resolver should not be running

        Then remove bind10 configuration Boss/components value b10-xfrout
        And wait for new bind10 stderr message BIND10_PROCESS_ENDED
        last bindctl output should not contain Error

        # assuming it won't error for further modules (if it does, the final
        # 'should not be running' tests would fail anyway)
        Then remove bind10 configuration Boss/components value b10-stats-httpd
        And wait for new bind10 stderr message BIND10_PROCESS_ENDED
        last bindctl output should not contain Error

        Then remove bind10 configuration Boss/components value b10-stats
        And wait for new bind10 stderr message BIND10_PROCESS_ENDED
        last bindctl output should not contain Error

        Then remove bind10 configuration Boss/components value b10-zonemgr
        And wait for new bind10 stderr message BIND10_PROCESS_ENDED
        last bindctl output should not contain Error

        Then remove bind10 configuration Boss/components value b10-xfrin
        And wait for new bind10 stderr message BIND10_PROCESS_ENDED
        last bindctl output should not contain Error

        Then remove bind10 configuration Boss/components value b10-auth
        And wait for new bind10 stderr message BIND10_PROCESS_ENDED
        last bindctl output should not contain Error

        # After these ^^^ have been stopped...
        bind10 module Xfrout should not be running
        bind10 module Zonemgr should not be running
        bind10 module Xfrin should not be running
        bind10 module Auth should not be running
        bind10 module StatsHttpd should not be running
        bind10 module Stats should not be running
        bind10 module Resolver should not be running

    Scenario: Executing scripts from files
        # This test tests the 'execute' command, which reads and executes
        # bindctl commands from a file
71
        Given I have bind10 running with configuration bindctl/bindctl.config
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
        And wait for bind10 stderr message BIND10_STARTED_CC
        And wait for bind10 stderr message CMDCTL_STARTED

        # first a few bad commands
        When I send bind10 the command execute
        last bindctl output should contain Error
        When I send bind10 the command execute file
        last bindctl output should contain Error
        When I send bind10 the command execute file data/commands/nosuchfile
        last bindctl output should contain Error

        # empty list should be no-op
        When I send bind10 the command execute file data/commands/empty
        last bindctl output should not contain Error

        # some tests of directives like !echo and !verbose
        When I send bind10 the command execute file data/commands/directives
        last bindctl output should not contain Error
        last bindctl output should not contain commentexample1
91
92
93
94
95
96
97
        last bindctl output should contain echoexample2
        last bindctl output should contain verbosecommentexample3
        last bindctl output should not contain commentexample4
        last bindctl output should contain echoexample5
        last bindctl output should contain echoexample6
        last bindctl output should contain verbosecommentexample7
        last bindctl output should not contain commentexample8
98
99
100
101
102
103

        # bad_command contains a bad command, at which point execution should stop
        When I send bind10 the command execute file data/commands/bad_command
        last bindctl output should contain shouldshow
        last bindctl output should contain Error
        last bindctl output should not contain shouldnotshow
Jelte Jansen's avatar
Jelte Jansen committed
104
105
        # This would fail if the entire list was passed, or the configuration
        # was committed
106
107
108
        send bind10 the command config show Boss/components
        last bindctl output should not contain b10-auth

109
110
111
        # nested_command contains another execute script
        When I send bind10 the command execute file data/commands/nested
        last bindctl output should contain shouldshow
112
        last bindctl output should not contain Error
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156

        # show commands from a file
        When I send bind10 the command execute file data/commands/bad_command show
        last bindctl output should not contain Error
        last bindctl output should contain shouldshow
        last bindctl output should contain shouldnotshow

    Scenario: Executing builting script init_authoritative_server
        Given I have bind10 running with configuration bindctl/bindctl.config
        And wait for bind10 stderr message BIND10_STARTED_CC
        And wait for bind10 stderr message CMDCTL_STARTED

        When I send bind10 the command execute init_authoritative_server show
        # just test some parts of the output
        last bindctl output should contain /Boss/components/b10-auth/special
        last bindctl output should contain /Boss/components/b10-zonemgr/kind
        last bindctl output should contain Please

        # nothing should have been changed
        When I send bind10 the command config diff
        last bindctl output should contain {}

        # ok now make sure modules aren't running, execute it, and make
        # sure modules are running
        bind10 module Auth should not be running
        bind10 module Xfrout should not be running
        bind10 module Xfrin should not be running
        bind10 module Zonemgr should not be running

        When I send bind10 the following commands:
        """
        execute init_authoritative_server
        config commit
        """
        And wait for bind10 stderr message AUTH_SERVER_STARTED
        And wait for bind10 stderr message ZONEMGR_STARTED
        And wait for bind10 stderr message XFRIN_STARTED
        And wait for bind10 stderr message XFROUT_STARTED

        last bindctl output should not contain Error
        bind10 module Auth should be running
        bind10 module Xfrout should be running
        bind10 module Xfrin should be running
        bind10 module Zonemgr should be running