087fbd7dd7
In switching to all-HTTPS for Mailman sites, it was missed that only the plain HTTP vhosts set a DocumentRoot of /var/www. This was only used for publishing metadata so went unnoticed until now. Rather than add a DocumentRoot to the new HTTPS vhosts, simply use Aliases to map the specific files we want to expose, for improved clarity and to make it less likely they'll be overlooked in configuration in the future. In order to make sure the archives.yaml file exists at server creation, before its cronjob fires for the first time, add a direct invocation of the script which builds it. Move all tasks related to this after the tasks which create the mailing lists, so that the generated file will include them. This also simplifies testing. For the non-multihost configuration, only robots.txt is expected to be present, so don't add an alias for archives.yaml there. Also add regression tests to ensure we keep these working. Change-Id: I6b54b0386f0ea9f888c1f23580ad8698314474b9
138 lines
6.6 KiB
Python
138 lines
6.6 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
testinfra_hosts = ['lists.openstack.org']
|
|
|
|
def test_mm_list_is_present(host):
|
|
cmd = host.run('HOST=lists.airshipit.org list_lists --bare')
|
|
assert 'airship-discuss' in cmd.stdout
|
|
|
|
cmd = host.run('HOST=lists.opendev.org list_lists --bare')
|
|
assert 'service-discuss' in cmd.stdout
|
|
|
|
cmd = host.run('HOST=lists.openinfra.dev list_lists --bare')
|
|
assert 'staff' in cmd.stdout
|
|
|
|
cmd = host.run('HOST=lists.openstack.org list_lists --bare')
|
|
assert 'openstack-discuss' in cmd.stdout
|
|
|
|
cmd = host.run('HOST=lists.starlingx.io list_lists --bare')
|
|
assert 'starlingx-discuss' in cmd.stdout
|
|
|
|
cmd = host.run('HOST=lists.zuul-ci.org list_lists --bare')
|
|
assert 'zuul-discuss' in cmd.stdout
|
|
|
|
def test_mm_list_site(host):
|
|
cmd = host.run('curl --insecure '
|
|
'--resolve lists.airshipit.org:443:127.0.0.1 '
|
|
'https://lists.airshipit.org/cgi-bin/mailman/listinfo')
|
|
assert '<TITLE>lists.airshipit.org Mailing Lists</TITLE>' in cmd.stdout
|
|
cmd = host.run('curl --insecure '
|
|
'--resolve lists.opendev.org:443:127.0.0.1 '
|
|
'https://lists.opendev.org/cgi-bin/mailman/listinfo')
|
|
assert '<TITLE>lists.opendev.org Mailing Lists</TITLE>' in cmd.stdout
|
|
cmd = host.run('curl --insecure '
|
|
'--resolve lists.openinfra.dev:443:127.0.0.1 '
|
|
'https://lists.openinfra.dev/cgi-bin/mailman/listinfo')
|
|
assert '<TITLE>lists.openinfra.dev Mailing Lists</TITLE>' in cmd.stdout
|
|
cmd = host.run('curl --insecure '
|
|
'--resolve lists.openstack.org:443:127.0.0.1 '
|
|
'https://lists.openstack.org/cgi-bin/mailman/listinfo')
|
|
assert '<TITLE>lists.openstack.org Mailing Lists</TITLE>' in cmd.stdout
|
|
cmd = host.run('curl --insecure '
|
|
'--resolve lists.starlingx.io:443:127.0.0.1 '
|
|
'https://lists.starlingx.io/cgi-bin/mailman/listinfo')
|
|
assert '<TITLE>lists.starlingx.io Mailing Lists</TITLE>' in cmd.stdout
|
|
cmd = host.run('curl --insecure '
|
|
'--resolve lists.zuul-ci.org:443:127.0.0.1 '
|
|
'https://lists.zuul-ci.org/cgi-bin/mailman/listinfo')
|
|
assert '<TITLE>lists.zuul-ci.org Mailing Lists</TITLE>' in cmd.stdout
|
|
|
|
def test_mm_list_site_redirect_http(host):
|
|
cmd = host.run('curl '
|
|
'--resolve lists.airshipit.org:80:127.0.0.1 '
|
|
'http://lists.airshipit.org/cgi-bin/mailman/listinfo')
|
|
assert ('The document has moved <a href="'
|
|
'https://lists.airshipit.org/cgi-bin/mailman/listinfo'
|
|
'">here</a>') in cmd.stdout
|
|
cmd = host.run('curl '
|
|
'--resolve lists.opendev.org:80:127.0.0.1 '
|
|
'http://lists.opendev.org/cgi-bin/mailman/listinfo')
|
|
assert ('The document has moved <a href="'
|
|
'https://lists.opendev.org/cgi-bin/mailman/listinfo'
|
|
'">here</a>') in cmd.stdout
|
|
cmd = host.run('curl '
|
|
'--resolve lists.openinfra.dev:80:127.0.0.1 '
|
|
'http://lists.openinfra.dev/cgi-bin/mailman/listinfo')
|
|
assert ('The document has moved <a href="'
|
|
'https://lists.openinfra.dev/cgi-bin/mailman/listinfo'
|
|
'">here</a>') in cmd.stdout
|
|
cmd = host.run('curl '
|
|
'--resolve lists.openstack.org:80:127.0.0.1 '
|
|
'http://lists.openstack.org/cgi-bin/mailman/listinfo')
|
|
assert ('The document has moved <a href="'
|
|
'https://lists.openstack.org/cgi-bin/mailman/listinfo'
|
|
'">here</a>') in cmd.stdout
|
|
cmd = host.run('curl '
|
|
'--resolve lists.starlingx.io:80:127.0.0.1 '
|
|
'http://lists.starlingx.io/cgi-bin/mailman/listinfo')
|
|
assert ('The document has moved <a href="'
|
|
'https://lists.starlingx.io/cgi-bin/mailman/listinfo'
|
|
'">here</a>') in cmd.stdout
|
|
cmd = host.run('curl '
|
|
'--resolve lists.zuul-ci.org:80:127.0.0.1 '
|
|
'http://lists.zuul-ci.org/cgi-bin/mailman/listinfo')
|
|
assert ('The document has moved <a href="'
|
|
'https://lists.zuul-ci.org/cgi-bin/mailman/listinfo'
|
|
'">here</a>') in cmd.stdout
|
|
|
|
def test_mm_list_site_redirect_listinfo(host):
|
|
cmd = host.run('curl --insecure '
|
|
'--resolve lists.openstack.org:443:127.0.0.1 '
|
|
'https://lists.openstack.org/cgi-bin/mailman/listinfo/staff')
|
|
assert ('The document has moved <a href="'
|
|
'https://lists.openinfra.dev/cgi-bin/mailman/listinfo/staff'
|
|
'">here</a>') in cmd.stdout
|
|
cmd = host.run('curl --insecure --location '
|
|
'--resolve lists.openinfra.dev:443:127.0.0.1 '
|
|
'--resolve lists.openstack.org:443:127.0.0.1 '
|
|
'https://lists.openstack.org/cgi-bin/mailman/listinfo/staff')
|
|
assert '<TITLE>Staff Info Page</TITLE>' in cmd.stdout
|
|
|
|
def test_mm_list_site_redirect_archives(host):
|
|
cmd = host.run('curl --insecure '
|
|
'--resolve lists.openstack.org:443:127.0.0.1 '
|
|
'https://lists.openstack.org/pipermail/staff/')
|
|
assert ('The document has moved <a href="'
|
|
'https://lists.openinfra.dev/pipermail/staff/'
|
|
'">here</a>') in cmd.stdout
|
|
cmd = host.run('curl --insecure --location '
|
|
'--resolve lists.openinfra.dev:443:127.0.0.1 '
|
|
'--resolve lists.openstack.org:443:127.0.0.1 '
|
|
'https://lists.openstack.org/pipermail/staff/')
|
|
assert '<h1>The Staff Archives </h1>' in cmd.stdout
|
|
|
|
def test_mm_list_site_static_files(host):
|
|
cmd = host.run('curl --insecure '
|
|
'--resolve lists.opendev.org:443:127.0.0.1 '
|
|
'https://lists.opendev.org/archives.yaml')
|
|
assert 'service-discuss' in cmd.stdout
|
|
cmd = host.run('curl --insecure '
|
|
'--resolve lists.opendev.org:443:127.0.0.1 '
|
|
'https://lists.opendev.org/robots.txt')
|
|
assert 'Disallow: /' in cmd.stdout
|
|
|
|
def test_domain_aliases(host):
|
|
domain_aliases = host.file('/etc/aliases.domain')
|
|
assert domain_aliases.exists
|
|
assert domain_aliases.contains('staff@lists.openstack.org: staff@lists.openinfra.dev')
|