Move OpenInfra mailing lists to new domain

The OpenInfra Foundation is switching from openinfra.dev to
openinfra.org, so move all the mailing lists to prefer the new
addresses and URLs while still supporting the previous ones.

Also add some redirect testing to exercise the Apache rewrites.

Change-Id: Ic10d6519e2a1c4ddab38fdb3119cc20ee62ca741
This commit is contained in:
Jeremy Stanley 2024-11-26 19:30:42 +00:00
parent 8be94508be
commit 242322f07c
3 changed files with 78 additions and 12 deletions

View File

@ -11,6 +11,7 @@ letsencrypt_certs:
- lists.airshipit.org
- lists.katacontainers.io
- lists.openinfra.dev
- lists.openinfra.org
- lists.openstack.org
- lists.starlingx.io
- lists.zuul-ci.org
@ -81,7 +82,7 @@ exim_transports:
return_path = ${local_part:$return_path}+$local_part=$domain@${domain:$return_path}
# Mailman Configs
mailman_multihost: true
mm_domains: 'lists.openstack.org:lists.zuul-ci.org:lists.airshipit.org:lists.starlingx.io:lists.opendev.org:lists.openinfra.dev:lists.katacontainers.io'
mm_domains: 'lists.openstack.org:lists.zuul-ci.org:lists.airshipit.org:lists.starlingx.io:lists.opendev.org:lists.openinfra.dev:lists.openinfra.org:lists.katacontainers.io'
exim_local_domains: "@:{{ mm_domains }}"
exim_enable_spf: true
exim_aliases:
@ -121,16 +122,31 @@ exim_aliases:
# But that requires updating our main exim config so that needs more thought.
postorius: ':blackhole: outgoing email only from this address'
exim_domain_aliases:
community@lists.openstack.org: community@lists.openinfra.dev
asia-advisory-board@lists.openinfra.dev: asia-advisory-board@lists.openinfra.org
community@lists.openinfra.dev: community@lists.openinfra.org
community@lists.openstack.org: community@lists.openinfra.org
edge-computing@lists.openstack.org: edge-computing@lists.opendev.org
foundation@lists.openstack.org: foundation@lists.openinfra.dev
foundation-board@lists.openstack.org: foundation-board@lists.openinfra.dev
foundation-board-confidential@lists.openstack.org: foundation-board-confidential@lists.openinfra.dev
goldmembers@lists.openstack.org: goldmembers@lists.openinfra.dev
marketing@lists.openstack.org: marketing@lists.openinfra.dev
staff@lists.openstack.org: staff@lists.openinfra.dev
summit-programming-committee@lists.openinfra.dev: summit-track-chairs@lists.openinfra.dev
summitsponsors@lists.openstack.org: summitsponsors@lists.openinfra.dev
europe-advisory-board@lists.openinfra.dev: europe-advisory-board@lists.openinfra.org
foundation@lists.openinfra.dev: foundation@lists.openinfra.org
foundation@lists.openstack.org: foundation@lists.openinfra.org
foundation-board@lists.openinfra.dev: foundation-board@lists.openinfra.org
foundation-board@lists.openstack.org: foundation-board@lists.openinfra.org
foundation-board-confidential@lists.openinfra.dev: foundation-board-confidential@lists.openinfra.org
foundation-board-confidential@lists.openstack.org: foundation-board-confidential@lists.openinfra.org
goldmembers@lists.openinfra.dev: goldmembers@lists.openinfra.org
goldmembers@lists.openstack.org: goldmembers@lists.openinfra.org
marketing@lists.openinfra.dev: marketing@lists.openinfra.org
marketing@lists.openstack.org: marketing@lists.openinfra.org
nordix@lists.openinfra.dev: nordix@lists.openinfra.org
openinfra-asia@lists.openinfra.dev: openinfra-asia@lists.openinfra.org
openinfra-europe@lists.openinfra.dev: openinfra-europe@lists.openinfra.org
staff@lists.openinfra.dev: staff@lists.openinfra.org
staff@lists.openstack.org: staff@lists.openinfra.org
summit-track-chairs@lists.openinfra.dev: summit-track-chairs@lists.openinfra.org
summit-programming-committee@lists.openinfra.dev: summit-track-chairs@lists.openinfra.org
summitsponsors@lists.openinfra.dev: summitsponsors@lists.openinfra.org
summitsponsors@lists.openstack.org: summitsponsors@lists.openinfra.org
vmware-migration-wg@lists.openinfra.dev: vmware-migration-wg@lists.openinfra.org
openinfralabs@lists.opendev.org: ':fail: this mailing list is not in use'
mailman_sites:
# First entry in this list is the primary web domain
@ -215,7 +231,7 @@ mailman_sites:
- name: kata-hypervisor
description: 'Discussion of security and virtualization targeted at container use cases'
owner: 'jonathan@openstack.org'
- listdomain: lists.openinfra.dev
- listdomain: lists.openinfra.org
install_languages: ['en']
lists:
- name: asia-advisory-board

View File

@ -14,9 +14,17 @@
Use UserAgentFilter
RewriteEngine On
# The lists.openinfra.dev site has moved to lists.openinfra.org
ServerAlias lists.openinfra.dev
RewriteCond %{SERVER_NAME} =lists.openinfra.dev
RewriteRule "/(.*)lists.openinfra.dev(.*)" "$1lists.openinfra.org$2"
RewriteCond %{SERVER_NAME} =lists.openinfra.dev
RewriteRule "/(.*)" "https://lists.openinfra.org/$1" [L,R=301]
# Use mod rewrite to redirect as we want to preserve the FQDN for each
# mm3 vhost.
RewriteEngine On
RewriteRule "/(.*)" "https://%{HTTP_HOST}/$1" [R=301]
</VirtualHost>
@ -53,10 +61,19 @@
RewriteEngine On
RewriteRule ^/robots.txt$ /var/www/robots/robots.txt [L]
# Handle old Mailman v2/pipermail links
RewriteRule "/pipermail/(.*)" "/var/lib/mailman/web-data/mm2archives/%{HTTP_HOST}/public/$1"
RewriteRule "/cgi-bin/mailman/listinfo/(.*)" "https://%{HTTP_HOST}/mailman3/lists/$1.%{HTTP_HOST}/"
RewriteRule "/cgi-bin/mailman/listinfo" "https://%{HTTP_HOST}/mailman3/lists/"
# The lists.openinfra.dev site has moved to lists.openinfra.org
ServerAlias lists.openinfra.dev
RewriteCond %{SERVER_NAME} =lists.openinfra.dev
RewriteRule "/(.*)lists.openinfra.dev(.*)" "$1lists.openinfra.org$2"
RewriteCond %{SERVER_NAME} =lists.openinfra.dev
RewriteRule "/(.*)" "https://lists.openinfra.org/$1" [L,R=301]
ProxyPassMatch ^/static/ !
ProxyPass "/" "uwsgi://localhost:8080/"

View File

@ -43,6 +43,30 @@ def test_robots(host):
assert 'Disallow: /accounts/*' in cmd.stdout
assert 'Allow: /archives/*' in cmd.stdout
def test_http_to_https_redirects(host):
cmd = host.run('curl '
'--resolve lists.opendev.org:80:127.0.0.1 '
'http://lists.opendev.org/mailman3/lists/service-discuss.lists.opendev.org/')
assert '301 Moved Permanently' in cmd.stdout
assert 'https://lists.opendev.org/mailman3/lists/service-discuss.lists.opendev.org/' in cmd.stdout
def test_domain_redirects(host):
cmd = host.run('curl '
'--resolve lists.openinfra.dev:80:127.0.0.1 '
'http://lists.openinfra.dev/mailman3/lists/foundation.lists.openinfra.dev/')
assert '301 Moved Permanently' in cmd.stdout
assert 'https://lists.openinfra.org/mailman3/lists/foundation.lists.openinfra.org/' in cmd.stdout
cmd = host.run('curl --insecure '
'--resolve lists.openinfra.dev:443:127.0.0.1 '
'https://lists.openinfra.dev/mailman3/lists/foundation.lists.openinfra.dev/')
assert '301 Moved Permanently' in cmd.stdout
assert 'https://lists.openinfra.org/mailman3/lists/foundation.lists.openinfra.org/' in cmd.stdout
cmd = host.run('curl --insecure '
'--resolve lists.openinfra.dev:443:127.0.0.1 '
'https://lists.openinfra.dev/archives/list/foundation@lists.openinfra.dev/')
assert '301 Moved Permanently' in cmd.stdout
assert 'https://lists.openinfra.org/archives/list/foundation@lists.openinfra.org/' in cmd.stdout
def test_mailman3_screenshots(host):
shots = (
("https://lists.opendev.org:443", None, "mm3-opendev-main.png"),
@ -54,6 +78,15 @@ def test_mailman3_screenshots(host):
("https://lists.opendev.org:443"
"/accounts/login/?next=/mailman3/lists/",
None, "mm3-opendev-login.png"),
("https://lists.openinfra.org:443", None, "mm3-openinfra-main.png"),
("https://lists.openinfra.org:443/archives/",
None, "mm3-openinfra-archives.png"),
("https://lists.openinfra.org:443"
"/archives/list/foundation@lists.openinfra.org/",
None, "mm3-openinfra-list.png"),
("https://lists.openinfra.org:443"
"/accounts/login/?next=/mailman3/lists/",
None, "mm3-openinfra-login.png"),
("https://lists.openstack.org:443", None, "mm3-openstack-main.png"),
("https://lists.openstack.org:443/archives/",
None, "mm3-openstack-archives.png"),