summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/debconf/tasks/main.yml
blob: 1b5877e034e8ebc61182792da99c568dd84c9355 (plain)
1
2
3
4
5
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# Test code for the debconf module.
# (c) 2017, James Tanner <tanner.jc@gmail.com>

# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible.  If not, see <http://www.gnu.org/licenses/>.

##
## debconf query
##

- block:
    - name: query the tzdata package
      debconf:
          name: tzdata
      register: debconf_test0

    - name: validate results for test 0
      assert:
          that:
              - 'debconf_test0.changed is defined'
              - 'debconf_test0.current is defined'
              - '"tzdata/Zones/Etc" in debconf_test0.current'
              - 'debconf_test0.current["tzdata/Zones/Etc"] == "UTC"'

    - name: install debconf-utils
      apt:
        name: debconf-utils
        state: present
      register: debconf_utils_deb_install

    - name: Check if password is set
      debconf:
        name: ddclient
        question: ddclient/password
        value: "MySecretValue"
        vtype: password
      register: debconf_test1

    - name: validate results for test 1
      assert:
          that:
              - debconf_test1.changed

    - name: Change password again
      debconf:
        name: ddclient
        question: ddclient/password
        value: "MySecretValue"
        vtype: password
      no_log: yes
      register: debconf_test2

    - name: validate results for test 1
      assert:
          that:
              - not debconf_test2.changed

    - name: Multiselect value
      debconf:
        name: libnss-ldapd
        question: libnss-ldapd/nsswitch
        vtype: multiselect
        value:
          - passwd
          - group
          - shadow
      register: debconf_multiselect_test

    - name: validate results for multiselect test
      assert:
        that:
          - debconf_multiselect_test.changed

    - name: Multiselect value again (idempotency)
      debconf:
        name: libnss-ldapd
        question: libnss-ldapd/nsswitch
        vtype: multiselect
        value:
          - passwd
          - group
          - shadow
      register: debconf_multiselect_test_idem

    - name: validate results for multiselect test (idempotency)
      assert:
        that:
          - not debconf_multiselect_test_idem.changed

    - name: Multiselect value to check if ordered value
      debconf:
        name: libnss-ldapd
        question: libnss-ldapd/nsswitch
        vtype: multiselect
        value:
          - group
          - shadow
          - passwd
      register: debconf_multiselect_test_idem_2

    - name: validate results for multiselect test for ordered value
      assert:
        that:
          - not debconf_multiselect_test_idem_2.changed

    - name: Multiselect value to check backward compatibility
      debconf:
        name: libnss-ldapd
        question: libnss-ldapd/nsswitch
        vtype: multiselect
        value: group, shadow, passwd
      register: debconf_multiselect_test_idem_3

    - name: validate results for multiselect test for backward compatibility
      assert:
        that:
          - debconf_multiselect_test_idem_3.changed

    - name: Multiselect value to check if value contains invalid user input
      debconf:
        name: libnss-ldapd
        question: libnss-ldapd/nsswitch
        vtype: multiselect
        value:
          - group
          - 1
          - passwd
      register: debconf_multiselect_test_idem_4
      ignore_errors: yes

    - name: validate results for multiselect test for invalid value
      assert:
        that:
          - not debconf_multiselect_test_idem_4.changed
          - '"Invalid value provided" in debconf_multiselect_test_idem_4.msg'

    - name: Boolean vtype from boolean value
      debconf:
        name: libnns-ldap
        question: libnss-ldapd/clean_nsswitch
        vtype: boolean
        value: true
      register: debconf_bool_test_bool_1

    - name: validate results for boolean vtype from boolean value
      assert:
        that:
          - debconf_bool_test_bool_1.changed

    - name: Boolean vtype from string value
      debconf:
        name: libnns-ldap
        question: libnss-ldapd/clean_nsswitch
        vtype: boolean
        value: "FALSE"
      register: debconf_bool_test_bool_2

    - name: validate results for boolean vtype from string value
      assert:
        that:
          - debconf_bool_test_bool_2.changed

  always:
    - name: uninstall debconf-utils
      apt:
        name: debconf-utils
        state: absent
      when: debconf_utils_deb_install is changed

  when: ansible_distribution in ('Ubuntu', 'Debian')