759e285184
It appears that simply setting stdin to an empty string is insufficient to make newlist calls from Ansible correctly look like they're coming from a non-interactive shell. As it turns out, newer versions of the command include a -a (--automate) option which does exactly what we want: sends list admin notifications on creation without prompting for manual confirmation. Drop the test-time addition of -q to quell listadmin notifications, as we now block outbound 25/tcp from nodes in our deploy tests. This has repeatedly exposed a testing gap, where the behavior in production was broken because of newlist processes hanging awaiting user input even though we never experienced it in testing due to the -q addition there. Change-Id: I550ea802929235d55750c4d99c7d9beec28260f0
34 lines
1.2 KiB
YAML
34 lines
1.2 KiB
YAML
# The bulk of this role can likely be replaced with:
|
|
# https://github.com/CCI-MOC/moc-ansible-mailman
|
|
# Just a note for possible future improvement.
|
|
|
|
- name: Block for multihost lists
|
|
block:
|
|
- name: Check if the site list exists
|
|
command: list_lists --bare
|
|
environment:
|
|
HOST: "{{ mm_site_listdomain }}"
|
|
register: listlists
|
|
- name: Create the site list if it doesn't exist
|
|
command:
|
|
cmd: "newlist -a {{ mm_list_name }} {{ mm_list_admin }} {{ mm_list_password }}"
|
|
environment:
|
|
HOST: "{{ mm_site_listdomain }}"
|
|
when:
|
|
- ( listlists.stdout_lines | intersect([ mm_list_name ]) | length | int ) == 0
|
|
when: mm_site_name != "_default"
|
|
|
|
- name: Block for normal lists
|
|
block:
|
|
- name: Check if the list exists
|
|
command: list_lists --bare
|
|
register: listlists
|
|
- name: Create the list if it doesn't exist
|
|
command:
|
|
cmd: "newlist -a {{ mm_list_name }} {{ mm_list_admin }} {{ mm_list_password }}"
|
|
when:
|
|
- ( listlists.stdout_lines | intersect([ mm_list_name ]) | length | int ) == 0
|
|
when: mm_site_name == "_default"
|
|
|
|
# TODO we accept a description parameter but don't do anything with it
|