Ansible mailman configs
This converts our existing puppeted mailman configuration into a set of ansible roles and a new playbook. We don't try to do anything new and instead do our best to map from puppet to ansible as closely as possible. This helps reduce churn and will help us find problems more quickly if they happen. Followups will further cleanup the puppetry. Change-Id: If8cdb1164c9000438d1977d8965a92ca8eebe4df
This commit is contained in:
parent
8346b9ac6f
commit
4c4e27cb3a
@ -138,8 +138,6 @@ groups:
|
||||
- elasticsearch[0-9]*.open*.org
|
||||
- ethercalc[0-9]*.open*.org
|
||||
- health[0-9]*.openstack.org
|
||||
- lists*.katacontainers.io
|
||||
- lists*.open*.org
|
||||
- logstash-worker[0-9]*.open*.org
|
||||
- logstash[0-9]*.open*.org
|
||||
- mirror-update[0-9]*.openstack.org
|
||||
@ -165,8 +163,6 @@ groups:
|
||||
- elasticsearch[0-9]*.open*.org
|
||||
- ethercalc[0-9]*.open*.org
|
||||
- health[0-9]*.openstack.org
|
||||
- lists*.katacontainers.io
|
||||
- lists*.open*.org
|
||||
- lists-dev[0-9]*.open*.org
|
||||
- logstash-worker[0-9]*.open*.org
|
||||
- logstash[0-9]*.open*.org
|
||||
|
@ -58,3 +58,18 @@ exim_transports:
|
||||
headers_add = Errors-To: ${return_path}
|
||||
extra_users:
|
||||
- jbryce
|
||||
mailman_multihost: false
|
||||
mailman_listdomain: 'lists.katacontainers.io'
|
||||
mailman_lists:
|
||||
- name: kata-dev
|
||||
description: 'Kata Containers Development Mailing List (not for usage questions)'
|
||||
admin: 'jonathan@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: kata-hypervisor
|
||||
description: 'Discussion of security and virtualization targeted at container use cases'
|
||||
admin: 'jonathan@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: embargo-notice
|
||||
description: 'Announcements of embargoed notices for the Kata Containers project'
|
||||
admin: 'jonathan@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
|
@ -94,3 +94,265 @@ exim_transports:
|
||||
headers_remove = Errors-To
|
||||
max_rcpt = 1
|
||||
return_path = ${local_part:$return_path}+$local_part=$domain@${domain:$return_path}
|
||||
mailman_multihost: true
|
||||
mailman_sites:
|
||||
- name: airship
|
||||
listdomain: lists.airshipit.org
|
||||
install_languages: ['en']
|
||||
lists:
|
||||
- name: mailman
|
||||
description: 'The mailman site list'
|
||||
admin: 'nobody@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: airship-announce
|
||||
description: 'Announcements of Airship releases and other important information.'
|
||||
admin: 'jonathan@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: airship-discuss
|
||||
description: 'Discussion of Airship usage and development.'
|
||||
admin: 'jonathan@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: airship-job-failures
|
||||
description: 'Notification messages for failures from CICD jobs.'
|
||||
admin: 'roman.gorshunov@att.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: airship-security
|
||||
description: 'Public Airship security advisories.'
|
||||
admin: 'andrew.walters@att.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: airship-embargo-notice
|
||||
description: 'Embargoed security vulnerability announcements for Airship consumers.'
|
||||
admin: 'andrew.walters@att.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: opendev
|
||||
listdomain: lists.opendev.org
|
||||
install_languages: ['en']
|
||||
lists:
|
||||
- name: mailman
|
||||
description: 'The mailman site list'
|
||||
admin: 'nobody@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: rust-vmm
|
||||
description: 'Collaborating on Rust-based virtual machine monitors.'
|
||||
admin: 'claire@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: rustyk8s
|
||||
description: 'Collaborating on Rust-based Kubernetes API.'
|
||||
admin: 'allison@lohutok.net'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: nbmp-discuss
|
||||
description: 'Collaborating on Network Based Media Processing related platform and infrastructure systems usage and development.'
|
||||
admin: 'ildiko@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: service-announce
|
||||
description: 'Announcement list for OpenDev services.'
|
||||
admin: 'cboylan@sapwetik.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: service-discuss
|
||||
description: 'Discussion list for OpenDev services.'
|
||||
admin: 'cboylan@sapwetik.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: service-incident
|
||||
description: 'Private list for OpenDev incident coordination.'
|
||||
admin: 'cboylan@sapwetik.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openinfralabs
|
||||
description: 'Discussion of the OpenInfra Labs academic and research resource sharing effort'
|
||||
admin: 'mnaser@vexxhost.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack
|
||||
listdomain: lists.openstack.org
|
||||
install_languages: ['de', 'fr', 'it', 'ko', 'ru', 'vi', 'zh_TW']
|
||||
lists:
|
||||
- name: mailman
|
||||
description: 'The mailman site list'
|
||||
admin: 'nobody@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-es
|
||||
description: 'Lista de correo acerca de OpenStack en español'
|
||||
admin: 'flavio@redhat.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-fr
|
||||
description: 'List of the OpenStack french user group'
|
||||
admin: 'erwan@erwan.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-de
|
||||
description: 'List for German-speaking OpenStack users'
|
||||
admin: 'christian@berendt.io'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-i18n
|
||||
description: 'List of the OpenStack Internationalization team.'
|
||||
admin: 'guoyingc@cn.ibm.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-i18n-de
|
||||
description: 'List of the German OpenStack Internationalization team.'
|
||||
admin: 'robert.simai@suse.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-ir
|
||||
description: 'OpenStack IRAN Community Discussions in Persian/Farsi'
|
||||
admin: 'Roozbeh.Shafiee@Gmail.Com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-it
|
||||
description: 'Discussioni su OpenStack in italiano'
|
||||
admin: 'stefano@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-el
|
||||
description: 'List of the OpenStack Greek User Group'
|
||||
admin: 'aparathyras@stackmasters.eu'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-travel-committee
|
||||
description: 'Private discussions for the OpenStack Travel Program Committee for Hong Kong Summit 2013.'
|
||||
admin: 'communitymngr@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-personas
|
||||
description: 'A group of designers, researchers, developers, writers and users that are creating a set of personas for OpenStack that are intended to help drive development around the needs of our users.'
|
||||
admin: 'pieter.c.kruithof-jr@hp.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-vi
|
||||
description: 'Discussions in Vietnamese - please add Vietnamese translation here'
|
||||
admin: 'hang.tran@dtt.vn'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-tw
|
||||
description: 'OpenStack Taiwan User Group 臺灣使用者郵件群組)'
|
||||
admin: 'macjacktw@hotmail.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-ko
|
||||
description: 'OpenStack Korea Community Discussions in Korean (오픈스택 한국 커뮤니티 메일링리스트)'
|
||||
admin: 'ianyrchoi@gmail.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-ru
|
||||
description: 'Рассылка для обсуждения OpenStack на русском'
|
||||
admin: 'ilyaalekseyev@acm.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-zh
|
||||
description: 'OpenStack社区中文讨论群组'
|
||||
admin: 'yeluaiesec@gmail.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: nov-2013-track-chairs
|
||||
description: 'Coordination of tracks at OpenStack Summit April 2013'
|
||||
admin: 'claire@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-track-chairs
|
||||
description: 'Coordination of tracks at OpenStack Summits'
|
||||
admin: 'claire@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: summitsponsors
|
||||
description: 'Coordination among OpenStack Summit event sponsors'
|
||||
admin: 'claire@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-sos
|
||||
description: 'Coordination of activities for Significant Others at Summits'
|
||||
admin: 'dms@danplanet.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: defcore-committee
|
||||
description: 'Discussions of the OpenStack Foundation Core Definition Committee'
|
||||
admin: 'josh@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: ambassadors
|
||||
description: 'Private discussions between OpenStack Ambassadors'
|
||||
admin: 'tom@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: superuser
|
||||
description: 'Discussions for Superuser editorial advisors to collaborate, and for readers to be able to contact the editorial team to make suggestions, provide feedback'
|
||||
admin: 'lauren@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: admin-cert-wg
|
||||
description: 'Collaboration workspace for members of the Certified OpenStack Administrator Working Group of the User Commitee/Board.'
|
||||
admin: 'heidi@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-api-consumers
|
||||
description: 'Discussions around consuming the OpenStack REST APIs and development of API-consuming SDKs and frameworks'
|
||||
admin: 'mordred@inaugust.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: enterprise-wg
|
||||
description: 'Collaboration workspace for members of the Win The Enterprise Working Group of the User Commitee/Board.'
|
||||
admin: 'carol.l.barrett@intel.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: product-wg
|
||||
description: 'Collaboration workspace for OpenStack-related Product Managers working group.'
|
||||
admin: 'stefano@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: tax-affairs
|
||||
description: 'board committee focused on tax issues.'
|
||||
admin: 'seanroberts66@gmail.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: third-party-announce
|
||||
description: 'Announcements for third party CI operators.'
|
||||
admin: 'anteaya@anteaya.info'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: foundation-testing-standards
|
||||
description: 'OpenStack Foundation test standards (for humans, not drivers) working group list.'
|
||||
admin: 'seanroberts66@gmail.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: analyst-relations
|
||||
description: 'Coordination of Analyst Relations Working Group.'
|
||||
admin: 'lauren@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: app-catalog-admin
|
||||
description: 'Coordinate admin details for OpenStack Community App Catalog.'
|
||||
admin: 'doc@aedo.net'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-i18n-fr
|
||||
description: 'List of the OpenStack Internationalization team, french local group.'
|
||||
admin: 'jftalta@gmail.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: release-job-failures
|
||||
description: 'Notification messages for failures from release-related build jobs.'
|
||||
admin: 'doug@doughellmann.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: embargo-notice
|
||||
description: 'Announcements to stakeholders for embargoed security vulnerabilities.'
|
||||
admin: 'jeremy@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: release-announce
|
||||
description: 'Announcement of official OpenStack releases.'
|
||||
admin: 'thierry@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: edge-computing
|
||||
description: 'Organizing efforts around the edge-computing focus area.'
|
||||
admin: 'claire@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-mentoring
|
||||
description: 'List to coordinate interactions between mentors and mentees of the OpenStack mentoring program. Also for questions about the mentoring program (i.e. how to get involved, how it works, etc.'
|
||||
admin: 'amy@demarco.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: openstack-discuss
|
||||
description: 'Discussion of OpenStack usage and development.'
|
||||
admin: 'fungi@yuggoth.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: starlingx
|
||||
listdomain: lists.starlingx.io
|
||||
install_languages: ['en']
|
||||
lists:
|
||||
- name: mailman
|
||||
description: 'The mailman site list'
|
||||
admin: 'nobody@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: starlingx-announce
|
||||
description: 'Announcements of StarlingX releases and other important information.'
|
||||
admin: 'jonathan@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: starlingx-discuss
|
||||
description: 'Discussion of StarlingX usage and development.'
|
||||
admin: 'jonathan@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: zuul
|
||||
listdomain: lists.zuul-ci.org
|
||||
install_languages: ['en']
|
||||
lists:
|
||||
- name: mailman
|
||||
description: 'The mailman site list'
|
||||
admin: 'nobody@openstack.org'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: zuul-announce
|
||||
description: 'Announcements of Zuul releases and other important information.'
|
||||
admin: 'corvus@inaugust.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: zuul-discuss
|
||||
description: 'Discussion of Zuul usage and development.'
|
||||
admin: 'corvus@inaugust.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
- name: zuul-jobs-failures
|
||||
description: 'Gets notifications about zuul-jobs periodic job failures.'
|
||||
admin: 'ssbarnea@redhat.com'
|
||||
password: "{{ mailman_list_password }}"
|
||||
|
@ -20,24 +20,6 @@ node /^cacti\d+\.open.*\.org$/ {
|
||||
}
|
||||
}
|
||||
|
||||
# Node-OS: xenial
|
||||
node /^lists\d*\.open.*\.org$/ {
|
||||
class { 'openstack_project::server': }
|
||||
|
||||
class { 'openstack_project::lists':
|
||||
listpassword => hiera('listpassword'),
|
||||
}
|
||||
}
|
||||
|
||||
# Node-OS: xenial
|
||||
node /^lists\d*\.katacontainers\.io$/ {
|
||||
class { 'openstack_project::server': }
|
||||
|
||||
class { 'openstack_project::kata_lists':
|
||||
listpassword => hiera('listpassword'),
|
||||
}
|
||||
}
|
||||
|
||||
# Node-OS: xenial
|
||||
node /^paste\d*\.open.*\.org$/ {
|
||||
$group = "paste"
|
||||
|
@ -20,8 +20,6 @@ results:
|
||||
|
||||
lists.katacontainers.io:
|
||||
- mailman
|
||||
- puppet
|
||||
- puppet4
|
||||
|
||||
logstash-worker02.openstack.org:
|
||||
- logstash-worker
|
||||
|
1
playbooks/roles/mailman-list/README.rst
Normal file
1
playbooks/roles/mailman-list/README.rst
Normal file
@ -0,0 +1 @@
|
||||
Role to create a mailman list if it doesn't already exist
|
35
playbooks/roles/mailman-list/tasks/main.yaml
Normal file
35
playbooks/roles/mailman-list/tasks/main.yaml
Normal file
@ -0,0 +1,35 @@
|
||||
# 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: Set mailman site root fact
|
||||
set_fact:
|
||||
mm_site_root: "/srv/mailman/{{ mm_site_name }}"
|
||||
cacheable: no
|
||||
- name: Check if the site list exists
|
||||
command: list_lists --bare
|
||||
environment:
|
||||
MAILMAN_SITE_DIR: "{{ mm_site_root }}"
|
||||
register: listlists
|
||||
- name: Create the site list if it doesn't exist
|
||||
command: "newlist {% if mailman_test_mode is defined and mailman_test_mode %} -q {% endif %} {{ mm_list_name }} {{ mm_list_admin }} {{ mm_list_password }}"
|
||||
environment:
|
||||
MAILMAN_SITE_DIR: "{{ mm_site_root }}"
|
||||
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: "newlist {% if mailman_test_mode is defined and mailman_test_mode %} -q {% endif %} {{ 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
|
1
playbooks/roles/mailman-site/README.rst
Normal file
1
playbooks/roles/mailman-site/README.rst
Normal file
@ -0,0 +1 @@
|
||||
Role to configure a mailman site in a multihost environment
|
@ -0,0 +1,60 @@
|
||||
The administrative requests are displayed in one of two ways, on a <a
|
||||
href="%(summaryurl)s">summary page</a>, and on a <em>details</em> page.
|
||||
The summary page contains pending subscription and unsubscription
|
||||
requests, as well as postings being held for your approval, grouped by
|
||||
sender email address. The details page contains a more detailed view of
|
||||
each held message, including the all the message's headers and an
|
||||
excerpt of the message body.
|
||||
|
||||
<p>On all the pages, the following actions are available:
|
||||
|
||||
<ul> <li><b>Defer</b> -- Defer your decision until later. No action is
|
||||
taken now for this pending administrative request, but for held
|
||||
postings, you can still forward or preserve the message (see below).
|
||||
|
||||
<li><b>Approve</b> -- Approve the message, sending it on to the list.
|
||||
For membership requests, approve the change in membership status.
|
||||
|
||||
<li><b>Reject</b> -- Reject the message, sending a rejection notice to
|
||||
the sender, and discarding the original message. For membership
|
||||
requests, reject the change in membership status. In either case, you
|
||||
should add a reason for the rejection in the accompanying text box.
|
||||
|
||||
<li><b>Discard</b> -- Throw away the original message, without sending a
|
||||
rejection notice. For membership requests, this simply discards the
|
||||
request without notice to the person making the request. This is
|
||||
usually the action you want to take for known spam. </ul>
|
||||
|
||||
<p>For held messages, turn on the <b>Preserve</b> option if you want to
|
||||
save a copy of the message for the site administrator. This is useful
|
||||
for abusive messages that you want to discard, but need to keep a record
|
||||
of for later inspection.
|
||||
|
||||
<p>Turn on the <b>Forward to</b> option, and fill in the forwarding
|
||||
address if you want to forward the message to someone else not on the
|
||||
list. To edit a held message before it is sent on to the list, you
|
||||
should forward the message to yourself (or the list owners), and discard
|
||||
the original message. Then, when the message shows up in your mailbox,
|
||||
make your edits and resend the message to the list, including an
|
||||
<tt>Approved:</tt> header with the list password as its value. It is
|
||||
proper netiquette in this case to include a note in the resent message,
|
||||
explaining that you have modified the text.
|
||||
|
||||
<p>If the sender is a list member who is being moderated, you can
|
||||
optionally clear their moderation flag. This is useful when your list
|
||||
is configured to put new members on probation, and you've decided that
|
||||
this member can be trusted to post to the list without approval.
|
||||
|
||||
<p>If the sender is not a list member, you can add the email address to
|
||||
a <em>sender filter</em>. Sender filters are described on the <a
|
||||
href="%(filterurl)s">sender filter privacy page</a>, and may be one of
|
||||
<b>auto-accept</b> (Accepts), <b>auto-hold</b> (Holds),
|
||||
<b>auto-reject</b> (Rejects), or <b>auto-discard</b> (Discards). This
|
||||
option will not be available if the address is already on one of the
|
||||
sender filters.
|
||||
|
||||
<p>When you're finished, click on the <em>Submit All Data</em> button at
|
||||
the top or bottom of the page. This button will submit all selected
|
||||
actions for all administrative requests that you've made a decision for.
|
||||
|
||||
<p><a href="%(summaryurl)s">Return to the summary page</a>.
|
@ -0,0 +1,10 @@
|
||||
This page contains a subset of the <em>%(listname)s</em> mailing list
|
||||
postings that are being held for your approval. It currently shows
|
||||
%(description)s
|
||||
|
||||
<p>For each administrative request, please select the action to take,
|
||||
clicking on the <b>Submit All Data</b> when finished. More detailed
|
||||
instructions are available <a href="%(detailsurl)s">here</a>.
|
||||
|
||||
<p>You can also <a href="%(summaryurl)s">view a summary</a> of all
|
||||
pending requests.
|
@ -0,0 +1,14 @@
|
||||
This page contains a summary of the current set of administrative
|
||||
requests requiring your approval for the
|
||||
<a href="%(adminurl)s"><em>%(listname)s</em> mailing list</a>.
|
||||
First, you will find the list of pending
|
||||
subscription and unsubscription requests, if any, followed by any
|
||||
postings being held for your approval.
|
||||
|
||||
<p>For each administrative request, please select the action to take,
|
||||
clicking on the <b>Submit All Data</b> button when finished.
|
||||
<a href="%(detailsurl)s">More detailed instructions</a> are also
|
||||
available.
|
||||
|
||||
<p>You can also <a href="%(viewallurl)s">view the details</a> of all
|
||||
held postings.
|
@ -0,0 +1,3 @@
|
||||
%(member)s has been successfully subscribed to %(listname)s.
|
||||
|
||||
|
@ -0,0 +1,2 @@
|
||||
%(member)s has been removed from %(listname)s.
|
||||
|
@ -0,0 +1,40 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>%(listname)s %(who)s Authentication</title>
|
||||
<script>function sf(){document.f.adminpw.focus();}</script>
|
||||
</head>
|
||||
<body bgcolor="#ffffff" onLoad="sf()">
|
||||
<FORM METHOD=POST ACTION="%(path)s" name="f">
|
||||
%(message)s
|
||||
<TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
|
||||
<TR>
|
||||
<TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
|
||||
<B><FONT COLOR="#000000" SIZE="+1">%(listname)s %(who)s
|
||||
Authentication</FONT></B>
|
||||
</TD>
|
||||
</TR>
|
||||
<tr>
|
||||
<TD><div ALIGN="Right">List %(who)s Password:</div></TD>
|
||||
<TD><INPUT TYPE="password" NAME="adminpw" SIZE="30"></TD>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2 align=middle><INPUT type="SUBMIT"
|
||||
name="admlogin"
|
||||
value="Let me in...">
|
||||
</td>
|
||||
</tr>
|
||||
</TABLE>
|
||||
<p><strong><em>Important:</em></strong> From this point on, you
|
||||
must have cookies enabled in your browser, otherwise no
|
||||
administrative changes will take effect.
|
||||
|
||||
<p>Session cookies are used in Mailman's
|
||||
administrative interface so that you don't need to
|
||||
re-authenticate with every administrative operation. This
|
||||
cookie will expire automatically when you exit your browser, or
|
||||
you can explicitly expire the cookie by hitting the
|
||||
<em>Logout</em> link under <em>Other Administrative
|
||||
Activities</em> (which you'll see once you successfully log in).
|
||||
</FORM>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,15 @@
|
||||
Your request to %(requestaddr)s:
|
||||
|
||||
%(cmd)s
|
||||
|
||||
has been forwarded to the person running the list.
|
||||
|
||||
This is probably because you are trying to subscribe to a 'closed'
|
||||
list.
|
||||
|
||||
You will receive email notification of the list owner's decision about
|
||||
your subscription request.
|
||||
|
||||
Any questions about the list owner's policy should be directed to:
|
||||
|
||||
%(adminaddr)s
|
@ -0,0 +1,4 @@
|
||||
<LI><A HREF="%(filename)s">%(subject)s
|
||||
</A><A NAME="%(sequence)i"> </A>
|
||||
<I>%(author)s
|
||||
</I>
|
@ -0,0 +1,64 @@
|
||||
</ul>
|
||||
<p>
|
||||
<a name="end"><b>Last message date:</b></a>
|
||||
<i>%(lastdate)s</i><br>
|
||||
<b>Archived on:</b> <i>%(archivedate)s</i>
|
||||
<p>
|
||||
<ul>
|
||||
<li> <b>Messages sorted by:</b>
|
||||
%(thread_ref)s
|
||||
%(subject_ref)s
|
||||
%(author_ref)s
|
||||
%(date_ref)s
|
||||
<li><b><a href="%(listinfo)s">More info on this list...
|
||||
</a></b></li>
|
||||
</ul>
|
||||
<div class="container">
|
||||
<hr>
|
||||
<i>This archive was generated by Pipermail %(version)s.</i>
|
||||
|
||||
<div id="footer">
|
||||
<div class="span-4">
|
||||
<h3>OpenStack</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/projects/">Projects</a></li>
|
||||
<li><a href="https://security.openstack.org/">OpenStack Security</a></li>
|
||||
<li><a href="https://www.openstack.org/projects/openstack-faq/">Common Questions</a></li>
|
||||
<li><a href="https://www.openstack.org/blog/">Blog</a></li>
|
||||
<li><a href="https://www.openstack.org/news/">News</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Community</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/community/">User Groups</a></li>
|
||||
<li><a href="https://www.openstack.org/events/">Events</a></li>
|
||||
<li><a href="https://www.openstack.org/jobs/">Jobs</a></li>
|
||||
<li><a href="https://www.openstack.org/foundation/companies/">Companies</a></li>
|
||||
<li><a href="https://docs.opendev.org/opendev/infra-manual/latest/developers.html">Contribute</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Documentation</h3>
|
||||
<ul>
|
||||
<li><a href="https://docs.openstack.org/">OpenStack Manuals</a></li>
|
||||
<li><a href="https://www.openstack.org/software/start/">Getting Started</a></li>
|
||||
<li><a href="https://developer.openstack.org">API Documentation</a></li>
|
||||
<li><a href="https://wiki.openstack.org/">Wiki</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<h3>Branding & Legal</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/brand/">Logos & Guidelines</a></li>
|
||||
<li><a href="https://www.openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>
|
||||
<li><a href="https://www.openstack.org/privacy/">Privacy Policy</a></li>
|
||||
<li><a href="https://wiki.openstack.org/CLA">OpenStack CLA</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</BODY>
|
||||
</HTML>
|
@ -0,0 +1,89 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<title>OpenStack Open Source Cloud Computing Software » The %(listname)s %(archive)s Archive by %(archtype)s</title>
|
||||
<META NAME="robots" CONTENT="noindex,follow">
|
||||
%(encoding)s
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href='https://fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'>
|
||||
|
||||
<!-- Framework CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/screen.css" type="text/css" media="screen, projection">
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/print.css" type="text/css" media="print">
|
||||
|
||||
<!-- IE CSS -->
|
||||
<!--[if lt IE 8]><link rel="stylesheet" href="https://openstack.org/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
|
||||
|
||||
<!-- OpenStack Specific CSS -->
|
||||
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/dropdown.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<!-- Page Specific CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/home.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://openstack.org/themes/openstack/css/main.css?m=1335457934" />
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-17511903-1']);
|
||||
_gaq.push(['_setDomainName', '.openstack.org']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<div class="container">
|
||||
<div id="header">
|
||||
<div class="span-5">
|
||||
<h1 id="logo"><a href="/">Open Stack</a></h1>
|
||||
</div>
|
||||
<div class="span-19 last blueLine">
|
||||
|
||||
<div id="navigation" class="span-19">
|
||||
<ul id="Menu1">
|
||||
<li><a href="https://openstack.org/" title="Go to the Home page" class="link" >Home</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/projects/" title="Go to the OpenStack Projects page" class="link">Projects</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/user-stories/" title="Go to the User Stories page" class="link">User Stories</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/community/" title="Go to the Community page" class="current">Community</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a></li>
|
||||
<li><a href="https://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
|
||||
<li><a href="https://docs.openstack.org/" title="Go to OpenStack Documentation">Documentation</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Page Content -->
|
||||
|
||||
<div class="container">
|
||||
<a name="start"></A>
|
||||
<h1>%(archive)s Archives by %(archtype)s</h1>
|
||||
<ul>
|
||||
<li> <b>Messages sorted by:</b>
|
||||
%(thread_ref)s
|
||||
%(subject_ref)s
|
||||
%(author_ref)s
|
||||
%(date_ref)s
|
||||
|
||||
<li><b><a href="%(listinfo)s">More info on this list...
|
||||
</a></b></li>
|
||||
</ul>
|
||||
<p><b>Starting:</b> <i>%(firstdate)s</i><br>
|
||||
<b>Ending:</b> <i>%(lastdate)s</i><br>
|
||||
<b>Messages:</b> %(size)s<p>
|
||||
<ul>
|
@ -0,0 +1 @@
|
||||
</table>
|
@ -0,0 +1,4 @@
|
||||
<table border=3>
|
||||
<tr><td>Archive</td>
|
||||
<td>View by:</td>
|
||||
<td>Downloadable version</td></tr>
|
@ -0,0 +1,130 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<title>OpenStack Open Source Cloud Computing Software » The %(listname)s Archives</title>
|
||||
<META NAME="robots" CONTENT="noindex,follow">
|
||||
%(meta)s
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href='https://fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'>
|
||||
|
||||
<!-- Framework CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/screen.css" type="text/css" media="screen, projection">
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/print.css" type="text/css" media="print">
|
||||
|
||||
<!-- IE CSS -->
|
||||
<!--[if lt IE 8]><link rel="stylesheet" href="https://openstack.org/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
|
||||
|
||||
<!-- OpenStack Specific CSS -->
|
||||
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/dropdown.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<!-- Page Specific CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/home.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://openstack.org/themes/openstack/css/main.css?m=1335457934" />
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-17511903-1']);
|
||||
_gaq.push(['_setDomainName', '.openstack.org']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<div class="container">
|
||||
<div id="header">
|
||||
<div class="span-5">
|
||||
<h1 id="logo"><a href="/">Open Stack</a></h1>
|
||||
</div>
|
||||
<div class="span-19 last blueLine">
|
||||
|
||||
<div id="navigation" class="span-19">
|
||||
<ul id="Menu1">
|
||||
<li><a href="https://openstack.org/" title="Go to the Home page" class="link" >Home</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/projects/" title="Go to the OpenStack Projects page" class="link">Projects</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/user-stories/" title="Go to the User Stories page" class="link">User Stories</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/community/" title="Go to the Community page" class="current">Community</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a></li>
|
||||
<li><a href="https://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
|
||||
<li><a href="https://docs.openstack.org/" title="Go to OpenStack Documentation">Documentation</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Page Content -->
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>The %(listname)s Archives </h1>
|
||||
<p>
|
||||
You can get <a href="%(listinfo)s">more information about this list</a>
|
||||
or you can <a href="%(fullarch)s">download the full raw archive</a>
|
||||
(%(size)s).
|
||||
</p>
|
||||
%(noarchive_msg)s
|
||||
%(archive_listing_start)s
|
||||
%(archive_listing)s
|
||||
%(archive_listing_end)s
|
||||
<div class="container">
|
||||
<hr>
|
||||
<div id="footer">
|
||||
<div class="span-4">
|
||||
<h3>OpenStack</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/projects/">Projects</a></li>
|
||||
<li><a href="https://security.openstack.org/">OpenStack Security</a></li>
|
||||
<li><a href="https://www.openstack.org/projects/openstack-faq/">Common Questions</a></li>
|
||||
<li><a href="https://www.openstack.org/blog/">Blog</a></li>
|
||||
<li><a href="https://www.openstack.org/news/">News</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Community</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/community/">User Groups</a></li>
|
||||
<li><a href="https://www.openstack.org/events/">Events</a></li>
|
||||
<li><a href="https://www.openstack.org/jobs/">Jobs</a></li>
|
||||
<li><a href="https://www.openstack.org/foundation/companies/">Companies</a></li>
|
||||
<li><a href="https://docs.opendev.org/opendev/infra-manual/latest/developers.html">Contribute</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Documentation</h3>
|
||||
<ul>
|
||||
<li><a href="https://docs.openstack.org/">OpenStack Manuals</a></li>
|
||||
<li><a href="https://www.openstack.org/software/start/">Getting Started</a></li>
|
||||
<li><a href="https://developer.openstack.org">API Documentation</a></li>
|
||||
<li><a href="https://wiki.openstack.org/">Wiki</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<h3>Branding & Legal</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/brand/">Logos & Guidelines</a></li>
|
||||
<li><a href="https://www.openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>
|
||||
<li><a href="https://www.openstack.org/privacy/">Privacy Policy</a></li>
|
||||
<li><a href="https://wiki.openstack.org/CLA">OpenStack CLA</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</BODY>
|
||||
</HTML>
|
@ -0,0 +1,12 @@
|
||||
|
||||
<tr>
|
||||
<td>%(archivelabel)s:</td>
|
||||
<td>
|
||||
<A href="%(archive)s/thread.html">[ Thread ]</a>
|
||||
<A href="%(archive)s/subject.html">[ Subject ]</a>
|
||||
<A href="%(archive)s/author.html">[ Author ]</a>
|
||||
<A href="%(archive)s/date.html">[ Date ]</a>
|
||||
</td>
|
||||
%(textlink)s
|
||||
</tr>
|
||||
|
@ -0,0 +1,131 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<title>OpenStack Open Source Cloud Computing Software » The %(listname)s Archives</title>
|
||||
<META NAME="robots" CONTENT="noindex,follow">
|
||||
%(meta)s
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href='https://fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'>
|
||||
|
||||
<!-- Framework CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/screen.css" type="text/css" media="screen, projection">
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/print.css" type="text/css" media="print">
|
||||
|
||||
<!-- IE CSS -->
|
||||
<!--[if lt IE 8]><link rel="stylesheet" href="https://openstack.org/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
|
||||
|
||||
<!-- OpenStack Specific CSS -->
|
||||
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/dropdown.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<!-- Page Specific CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/home.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://openstack.org/themes/openstack/css/main.css?m=1335457934" />
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-17511903-1']);
|
||||
_gaq.push(['_setDomainName', '.openstack.org']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<div class="container">
|
||||
<div id="header">
|
||||
<div class="span-5">
|
||||
<h1 id="logo"><a href="/">Open Stack</a></h1>
|
||||
</div>
|
||||
<div class="span-19 last blueLine">
|
||||
|
||||
<div id="navigation" class="span-19">
|
||||
<ul id="Menu1">
|
||||
<li><a href="https://openstack.org/" title="Go to the Home page" class="link" >Home</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/projects/" title="Go to the OpenStack Projects page" class="link">Projects</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/user-stories/" title="Go to the User Stories page" class="link">User Stories</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/community/" title="Go to the Community page" class="current">Community</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a></li>
|
||||
<li><a href="https://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
|
||||
<li><a href="https://docs.openstack.org/" title="Go to OpenStack Documentation">Documentation</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Page Content -->
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>The %(listname)s Archives </h1>
|
||||
<p>
|
||||
You can get <a href="%(listinfo)s">more information about this list</a>.
|
||||
</p>
|
||||
%(noarchive_msg)s
|
||||
%(archive_listing_start)s
|
||||
%(archive_listing)s
|
||||
%(archive_listing_end)s
|
||||
|
||||
<div class="container">
|
||||
<hr>
|
||||
|
||||
<div id="footer">
|
||||
<div class="span-4">
|
||||
<h3>OpenStack</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/projects/">Projects</a></li>
|
||||
<li><a href="https://security.openstack.org/">OpenStack Security</a></li>
|
||||
<li><a href="https://www.openstack.org/projects/openstack-faq/">Common Questions</a></li>
|
||||
<li><a href="https://www.openstack.org/blog/">Blog</a></li>
|
||||
<li><a href="https://www.openstack.org/news/">News</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Community</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/community/">User Groups</a></li>
|
||||
<li><a href="https://www.openstack.org/events/">Events</a></li>
|
||||
<li><a href="https://www.openstack.org/jobs/">Jobs</a></li>
|
||||
<li><a href="https://www.openstack.org/foundation/companies/">Companies</a></li>
|
||||
<li><a href="https://docs.opendev.org/opendev/infra-manual/latest/developers.html">Contribute</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Documentation</h3>
|
||||
<ul>
|
||||
<li><a href="https://docs.openstack.org/">OpenStack Manuals</a></li>
|
||||
<li><a href="https://www.openstack.org/software/start/">Getting Started</a></li>
|
||||
<li><a href="https://developer.openstack.org">API Documentation</a></li>
|
||||
<li><a href="https://wiki.openstack.org/">Wiki</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<h3>Branding & Legal</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/brand/">Logos & Guidelines</a></li>
|
||||
<li><a href="https://www.openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>
|
||||
<li><a href="https://www.openstack.org/privacy/">Privacy Policy</a></li>
|
||||
<li><a href="https://wiki.openstack.org/CLA">OpenStack CLA</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
@ -0,0 +1,168 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
|
||||
<TITLE>OpenStack Open Source Cloud Computing Software » Message: %(title)s </TITLE>
|
||||
<LINK REL="Index" HREF="index.html" >
|
||||
<LINK REL="made" HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s">
|
||||
<META NAME="robots" CONTENT="index,nofollow">
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href='https://fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'>
|
||||
|
||||
<!-- Framework CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/screen.css" type="text/css" media="screen, projection">
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/print.css" type="text/css" media="print">
|
||||
|
||||
<!-- IE CSS -->
|
||||
<!--[if lt IE 8]><link rel="stylesheet" href="https://openstack.org/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
|
||||
|
||||
<!-- OpenStack Specific CSS -->
|
||||
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/dropdown.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<!-- Page Specific CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/home.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://openstack.org/themes/openstack/css/main.css?m=1335457934" />
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-17511903-1']);
|
||||
_gaq.push(['_setDomainName', '.openstack.org']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
<style type="text/css">
|
||||
pre {
|
||||
white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
|
||||
}
|
||||
</style>
|
||||
%(encoding)s
|
||||
%(prev)s
|
||||
%(next)s
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<div class="container">
|
||||
<div id="header">
|
||||
<div class="span-5">
|
||||
<h1 id="logo"><a href="/">Open Stack</a></h1>
|
||||
</div>
|
||||
<div class="span-19 last blueLine">
|
||||
|
||||
<div id="navigation" class="span-19">
|
||||
<ul id="Menu1">
|
||||
<li><a href="https://openstack.org/" title="Go to the Home page" class="link" >Home</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/projects/" title="Go to the OpenStack Projects page" class="link">Projects</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/user-stories/" title="Go to the User Stories page" class="link">User Stories</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/community/" title="Go to the Community page" class="current">Community</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a></li>
|
||||
<li><a href="https://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
|
||||
<li><a href="https://docs.openstack.org/" title="Go to OpenStack Documentation">Documentation</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Page Content -->
|
||||
|
||||
<div class="container">
|
||||
<H1>%(subject_html)s</H1>
|
||||
<B>%(author_html)s</B>
|
||||
<A HREF="mailto:%(email_url)s?Subject=%(subject_url)s&In-Reply-To=%(in_reply_to_url)s"
|
||||
TITLE="%(subject_html)s">%(email_html)s
|
||||
</A><BR>
|
||||
<I>%(datestr_html)s</I>
|
||||
<P><UL>
|
||||
%(prev_wsubj)s
|
||||
%(next_wsubj)s
|
||||
<LI> <B>Messages sorted by:</B>
|
||||
<a href="date.html#%(sequence)s">[ date ]</a>
|
||||
<a href="thread.html#%(sequence)s">[ thread ]</a>
|
||||
<a href="subject.html#%(sequence)s">[ subject ]</a>
|
||||
<a href="author.html#%(sequence)s">[ author ]</a>
|
||||
</LI>
|
||||
</UL>
|
||||
<HR>
|
||||
<!--beginarticle-->
|
||||
%(body)s
|
||||
<!--endarticle-->
|
||||
<HR>
|
||||
<P><UL>
|
||||
<!--threads-->
|
||||
%(prev_wsubj)s
|
||||
%(next_wsubj)s
|
||||
<LI> <B>Messages sorted by:</B>
|
||||
<a href="date.html#%(sequence)s">[ date ]</a>
|
||||
<a href="thread.html#%(sequence)s">[ thread ]</a>
|
||||
<a href="subject.html#%(sequence)s">[ subject ]</a>
|
||||
<a href="author.html#%(sequence)s">[ author ]</a>
|
||||
</LI>
|
||||
</UL>
|
||||
|
||||
<hr>
|
||||
<a href="%(listurl)s">More information about the %(listname)s
|
||||
mailing list</a><br>
|
||||
|
||||
|
||||
<div class="container">
|
||||
<hr>
|
||||
|
||||
<div id="footer">
|
||||
<div class="span-4">
|
||||
<h3>OpenStack</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/projects/">Projects</a></li>
|
||||
<li><a href="https://security.openstack.org/">OpenStack Security</a></li>
|
||||
<li><a href="https://www.openstack.org/projects/openstack-faq/">Common Questions</a></li>
|
||||
<li><a href="https://www.openstack.org/blog/">Blog</a></li>
|
||||
<li><a href="https://www.openstack.org/news/">News</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Community</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/community/">User Groups</a></li>
|
||||
<li><a href="https://www.openstack.org/events/">Events</a></li>
|
||||
<li><a href="https://www.openstack.org/jobs/">Jobs</a></li>
|
||||
<li><a href="https://www.openstack.org/foundation/companies/">Companies</a></li>
|
||||
<li><a href="https://docs.opendev.org/opendev/infra-manual/latest/developers.html">Contribute</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Documentation</h3>
|
||||
<ul>
|
||||
<li><a href="https://docs.openstack.org/">OpenStack Manuals</a></li>
|
||||
<li><a href="https://www.openstack.org/software/start/">Getting Started</a></li>
|
||||
<li><a href="https://developer.openstack.org">API Documentation</a></li>
|
||||
<li><a href="https://wiki.openstack.org/">Wiki</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<h3>Branding & Legal</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/brand/">Logos & Guidelines</a></li>
|
||||
<li><a href="https://www.openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>
|
||||
<li><a href="https://www.openstack.org/privacy/">Privacy Policy</a></li>
|
||||
<li><a href="https://wiki.openstack.org/CLA">OpenStack CLA</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body></html>
|
@ -0,0 +1,13 @@
|
||||
This is a Mailman mailing list bounce action notice:
|
||||
|
||||
List: %(listname)s
|
||||
Member: %(addr)s
|
||||
Action: Subscription %(negative)s%(did)s.
|
||||
Reason: Excessive or fatal bounces.
|
||||
%(but)s
|
||||
|
||||
%(reenable)s
|
||||
The triggering bounce notice is attached below.
|
||||
|
||||
Questions?
|
||||
Contact the Mailman site administrator at %(owneraddr)s.
|
@ -0,0 +1,7 @@
|
||||
The %(real_name)s@%(host_name)s mailing list has %(count)d request(s)
|
||||
waiting for your consideration at:
|
||||
|
||||
%(adminDB)s
|
||||
|
||||
Please attend to this at your earliest convenience. This notice of
|
||||
pending requests, if any, will be sent out daily.
|
@ -0,0 +1,34 @@
|
||||
The %(listname)s mailing list has just undergone a big change. It is
|
||||
running on a new mailing list package called "Mailman". This will
|
||||
hopefully solve a lot of problems that administering this list has
|
||||
presented.
|
||||
|
||||
How does this affect you?
|
||||
|
||||
1) Mail intended for the whole list should be sent to: %(listaddr)s.
|
||||
|
||||
2) You have been given an arbitrary password to prevent others from
|
||||
unsubscribing you without your knowledge. It will be mailed to you in
|
||||
a separate email, which you may have already received. Don't worry if
|
||||
you forget this password; a reminder will be sent to you via email
|
||||
every month.
|
||||
|
||||
3) If you have World Wide Web access, you can use it any time to
|
||||
unsubscribe from this list, to switch to and from digest mode, to
|
||||
check back issues of the list (which will be available after the list
|
||||
has been getting posts for a day or so), etc. The Web address for
|
||||
these resources is:
|
||||
|
||||
%(listinfo_url)s
|
||||
|
||||
4) If you do not have WWW access, you can do these same things via
|
||||
email. Send mail to %(requestaddr)s with a subject or body containing
|
||||
just the word "help" (without the quotes). You will receive an
|
||||
automated reply giving you further directions.
|
||||
|
||||
Please address any questions or problems with this new setup to:
|
||||
%(adminaddr)s.
|
||||
|
||||
This message was auto-generated by Mailman %(version)s. For more
|
||||
information on the Mailman software, visit the Mailman homepage at
|
||||
http://www.list.org/
|
@ -0,0 +1,19 @@
|
||||
This is a reminder, sent out once a month, about your %(hostname)s
|
||||
mailing list memberships. It includes your subscription info and how
|
||||
to use it to change it or unsubscribe from a list.
|
||||
|
||||
You can visit the URLs to change your membership status or
|
||||
configuration, including unsubscribing, setting digest-style delivery
|
||||
or disabling delivery altogether (e.g., for a vacation), and so on.
|
||||
|
||||
In addition to the URL interfaces, you can also use email to make such
|
||||
changes. For more info, send a message to the '-request' address of
|
||||
the list (for example, %(exreq)s) containing just the word 'help' in
|
||||
the message body, and an email message will be sent to you with
|
||||
instructions.
|
||||
|
||||
If you have questions, problems, comments, etc, send them to
|
||||
%(owner)s. Thanks!
|
||||
|
||||
Passwords for %(useraddr)s:
|
||||
|
@ -0,0 +1,25 @@
|
||||
Your membership in the mailing list %(listname)s has been disabled
|
||||
%(reason)s. You will not get any more messages from this
|
||||
list until you re-enable your membership. You will receive
|
||||
%(noticesleft)s more reminders like this before your membership in the
|
||||
list is deleted.
|
||||
|
||||
To re-enable your membership, you can simply respond to this message
|
||||
(leaving the Subject: line intact), or visit the confirmation page at
|
||||
|
||||
%(confirmurl)s
|
||||
|
||||
You can also visit your membership page at
|
||||
|
||||
%(optionsurl)s
|
||||
|
||||
On your membership page, you can change various delivery options such
|
||||
as your email address and whether you get digests or not. As a
|
||||
reminder, your membership password is
|
||||
|
||||
%(password)s
|
||||
|
||||
If you have any questions or problems, you can contact the list owner
|
||||
at
|
||||
|
||||
%(owneraddr)s
|
@ -0,0 +1,125 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<title>OpenStack Open Source Cloud Computing Software » The %(listname)s Archives</title>
|
||||
<META NAME="robots" CONTENT="noindex,follow">
|
||||
<!-- Google Fonts -->
|
||||
<link href='https://fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'>
|
||||
|
||||
<!-- Framework CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/screen.css" type="text/css" media="screen, projection">
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/print.css" type="text/css" media="print">
|
||||
|
||||
<!-- IE CSS -->
|
||||
<!--[if lt IE 8]><link rel="stylesheet" href="https://openstack.org/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
|
||||
|
||||
<!-- OpenStack Specific CSS -->
|
||||
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/dropdown.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<!-- Page Specific CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/home.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://openstack.org/themes/openstack/css/main.css?m=1335457934" />
|
||||
i<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-17511903-1']);
|
||||
_gaq.push(['_setDomainName', '.openstack.org']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<div class="container">
|
||||
<div id="header">
|
||||
<div class="span-5">
|
||||
<h1 id="logo"><a href="/">Open Stack</a></h1>
|
||||
</div>
|
||||
<div class="span-19 last blueLine">
|
||||
|
||||
<div id="navigation" class="span-19">
|
||||
<ul id="Menu1">
|
||||
<li><a href="https://openstack.org/" title="Go to the Home page" class="link" >Home</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/projects/" title="Go to the OpenStack Projects page" class="link">Projects</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/user-stories/" title="Go to the User Stories page" class="link">User Stories</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/community/" title="Go to the Community page" class="current">Community</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a></li>
|
||||
<li><a href="https://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
|
||||
<li><a href="https://docs.openstack.org/" title="Go to OpenStack Documentation">Documentation</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Page Content -->
|
||||
|
||||
<div class="container">
|
||||
<h1>The %(listname)s Archives </h1>
|
||||
<p>
|
||||
No messages have been posted to this list yet, so the archives are
|
||||
currently empty. You can get <a href="%(listinfo)s">more information
|
||||
about this list</a>.
|
||||
</p>
|
||||
<div class="container">
|
||||
<hr>
|
||||
|
||||
<div id="footer">
|
||||
<div class="span-4">
|
||||
<h3>OpenStack</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/projects/">Projects</a></li>
|
||||
<li><a href="https://security.openstack.org/">OpenStack Security</a></li>
|
||||
<li><a href="https://www.openstack.org/projects/openstack-faq/">Common Questions</a></li>
|
||||
<li><a href="https://www.openstack.org/blog/">Blog</a></li>
|
||||
<li><a href="https://www.openstack.org/news/">News</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Community</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/community/">User Groups</a></li>
|
||||
<li><a href="https://www.openstack.org/events/">Events</a></li>
|
||||
<li><a href="https://www.openstack.org/jobs/">Jobs</a></li>
|
||||
<li><a href="https://www.openstack.org/foundation/companies/">Companies</a></li>
|
||||
<li><a href="https://docs.opendev.org/opendev/infra-manual/latest/developers.html">Contribute</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Documentation</h3>
|
||||
<ul>
|
||||
<li><a href="https://docs.openstack.org/">OpenStack Manuals</a></li>
|
||||
<li><a href="https://www.openstack.org/software/start/">Getting Started</a></li>
|
||||
<li><a href="https://developer.openstack.org">API Documentation</a></li>
|
||||
<li><a href="https://wiki.openstack.org/">Wiki</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<h3>Branding & Legal</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/brand/">Logos & Guidelines</a></li>
|
||||
<li><a href="https://www.openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>
|
||||
<li><a href="https://www.openstack.org/privacy/">Privacy Policy</a></li>
|
||||
<li><a href="https://wiki.openstack.org/CLA">OpenStack CLA</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</BODY>
|
||||
</HTML>
|
@ -0,0 +1,28 @@
|
||||
This text can include
|
||||
<a href="http://docs.python.org/library/stdtypes.html#string-formatting-operations">Python
|
||||
format strings</a> which are resolved against list attributes. The
|
||||
list of substitutions allowed are:
|
||||
|
||||
<ul>
|
||||
<li><b>real_name</b> - The "pretty" name of the list; usually
|
||||
the list name with capitalization.
|
||||
|
||||
<li><b>list_name</b> - The name by which the list is
|
||||
identified in URLs, where case is significant.
|
||||
|
||||
<li><b>host_name</b> - The fully qualified domain name
|
||||
that the list server runs on.
|
||||
|
||||
<li><b>web_page_url</b> - The base URL for Mailman. This
|
||||
can be appended with,
|
||||
e.g. <em>listinfo/%(list_name)s</em> to yield the
|
||||
listinfo page for the mailing list.
|
||||
|
||||
<li><b>description</b> - The brief description of the
|
||||
mailing list.
|
||||
|
||||
<li><b>info</b> - The full description of the mailing
|
||||
list.
|
||||
|
||||
<li><b>cgiext</b> - The extension added to CGI scripts.
|
||||
</ul>
|
@ -0,0 +1,33 @@
|
||||
Help for %(listname)s mailing list:
|
||||
|
||||
This is email command help for version %(version)s of the "Mailman"
|
||||
list manager. The following describes commands you can send to get
|
||||
information about and control your subscription to Mailman lists at
|
||||
this site. A command can be in the subject line or in the body of the
|
||||
message.
|
||||
|
||||
Note that much of the following can also be accomplished via the World
|
||||
Wide Web, at:
|
||||
|
||||
%(listinfo_url)s
|
||||
|
||||
In particular, you can use the Web site to have your password sent to
|
||||
your delivery address.
|
||||
|
||||
List specific commands (subscribe, who, etc) should be sent to the
|
||||
*-request address for the particular list, e.g. for the 'mailman'
|
||||
list, use 'mailman-request@...'.
|
||||
|
||||
About the descriptions - words in "<>"s signify REQUIRED items and
|
||||
words in "[]" denote OPTIONAL items. Do not include the "<>"s or
|
||||
"[]"s when you use the commands.
|
||||
|
||||
The following commands are valid:
|
||||
|
||||
%(commands)s
|
||||
|
||||
Commands should be sent to %(requestaddr)s
|
||||
|
||||
Questions and concerns for the attention of a person should be sent to
|
||||
|
||||
%(adminaddr)s
|
@ -0,0 +1,20 @@
|
||||
Your address "%(email)s" has been invited to join the %(listname)s
|
||||
mailing list at %(hostname)s by the %(listname)s mailing list owner.
|
||||
You may accept the invitation by simply replying to this message,
|
||||
keeping the Subject: header intact.
|
||||
|
||||
You can also visit this web page:
|
||||
|
||||
%(confirmurl)s
|
||||
|
||||
Or you should include the following line -- and only the following
|
||||
line -- in a message to %(requestaddr)s:
|
||||
|
||||
confirm %(cookie)s
|
||||
|
||||
Note that simply sending a `reply' to this message should work from
|
||||
most mail readers.
|
||||
|
||||
If you want to decline this invitation, please simply disregard this
|
||||
message. If you have any questions, please send them to
|
||||
%(listowner)s.
|
@ -0,0 +1,254 @@
|
||||
<!-- $Revision: 5865 $ -->
|
||||
<HTML>
|
||||
|
||||
<TITLE>OpenStack Open Source Cloud Computing Software » <MM-List-Name> - <MM-List-Description></TITLE>
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href='https://fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'>
|
||||
|
||||
<!-- Framework CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/screen.css" type="text/css" media="screen, projection">
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/print.css" type="text/css" media="print">
|
||||
|
||||
<!-- IE CSS -->
|
||||
<!--[if lt IE 8]><link rel="stylesheet" href="https://openstack.org/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
|
||||
|
||||
<!-- OpenStack Specific CSS -->
|
||||
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/dropdown.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<!-- Page Specific CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/home.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://openstack.org/themes/openstack/css/main.css?m=1335457934" />
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-17511903-1']);
|
||||
_gaq.push(['_setDomainName', '.openstack.org']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<div class="container">
|
||||
<div id="header">
|
||||
<div class="span-5">
|
||||
<h1 id="logo"><a href="/">Open Stack</a></h1>
|
||||
</div>
|
||||
<div class="span-19 last blueLine">
|
||||
|
||||
<div id="navigation" class="span-19">
|
||||
<ul id="Menu1">
|
||||
|
||||
<li><a href="https://openstack.org/" title="Go to the Home page" class="link" >Home</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/projects/" title="Go to the OpenStack Projects page" class="link">Projects</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/user-stories/" title="Go to the User Stories page" class="link">User Stories</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/community/" title="Go to the Community page" class="current">Community</a></li>
|
||||
|
||||
<li><a href="https://openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a></li>
|
||||
<li><a href="https://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
|
||||
<li><a href="https://docs.openstack.org/" title="Go to OpenStack Documentation">Documentation</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Page Content -->
|
||||
|
||||
<div class="container">
|
||||
<P>
|
||||
<TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
|
||||
<TR>
|
||||
<TD COLSPAN="2" WIDTH="100%" BGCOLOR="#D8D8D8" ALIGN="CENTER">
|
||||
<B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name> --
|
||||
<MM-List-Description></FONT></B>
|
||||
</TD>
|
||||
</TR>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<TD COLSPAN="1" WIDTH="100%" BGCOLOR="#B6D8E2">
|
||||
<B><FONT COLOR="#000000">About <MM-List-Name></FONT></B>
|
||||
</TD>
|
||||
<TD COLSPAN="1" WIDTH="100%" BGCOLOR="#B6D8E2">
|
||||
<MM-lang-form-start><MM-displang-box> <MM-list-langs>
|
||||
<MM-form-end>
|
||||
<MM-Subscribe-Form-Start>
|
||||
</TD>
|
||||
</TR>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<P><MM-List-Info></P>
|
||||
<p> To see the collection of prior postings to the list,
|
||||
visit the <MM-Archive><MM-List-Name>
|
||||
Archives</MM-Archive>.
|
||||
<MM-Restricted-List-Message>
|
||||
</p>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD COLSPAN="2" WIDTH="100%" BGCOLOR="#B6D8E2">
|
||||
<B><FONT COLOR="#000000">Using <MM-List-Name></FONT></B>
|
||||
</TD>
|
||||
</TR>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
To post a message to all the list members, send email to
|
||||
<A HREF="mailto:<MM-Posting-Addr>"><MM-Posting-Addr></A>.
|
||||
|
||||
<p>You can subscribe to the list, or change your existing
|
||||
subscription, in the sections below.
|
||||
</td>
|
||||
</tr>
|
||||
<TR>
|
||||
<TD COLSPAN="2" WIDTH="100%" BGCOLOR="#B6D8E2">
|
||||
<B><FONT COLOR="#000000">Subscribing to <MM-List-Name></FONT></B>
|
||||
</TD>
|
||||
</TR>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<P>
|
||||
Subscribe to <MM-List-Name> by filling out the following
|
||||
form.
|
||||
<ul>
|
||||
<MM-List-Subscription-Msg>
|
||||
<TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
|
||||
WIDTH="70%" HEIGHT= "112">
|
||||
<TR>
|
||||
<TD BGCOLOR="#dddddd" WIDTH="55%">Your email address:</TD>
|
||||
<TD WIDTH="33%"><MM-Subscribe-Box>
|
||||
</TD>
|
||||
<TD WIDTH="12%"> </TD></TR>
|
||||
<tr>
|
||||
<td bgcolor="#dddddd" width="55%">Your name (optional):</td>
|
||||
<td width="33%"><mm-fullname-box></td>
|
||||
<TD WIDTH="12%"> </TD></TR>
|
||||
<TR>
|
||||
<TD COLSPAN="3"><FONT SIZE=-1>You may enter a
|
||||
privacy password below. This provides only mild security,
|
||||
but should prevent others from messing with your
|
||||
subscription. <b>Do not use a valuable password</b> as
|
||||
it will occasionally be emailed back to you in cleartext.
|
||||
|
||||
<p>If you choose not to enter a password, one will be
|
||||
automatically generated for you, and it will be sent to
|
||||
you once you've confirmed your subscription. You can
|
||||
always request a mail-back of your password when you edit
|
||||
your personal options.
|
||||
<MM-Reminder>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD BGCOLOR="#dddddd">Pick a password:</TD>
|
||||
<TD><MM-New-Password-Box></TD>
|
||||
<TD> </TD></TR>
|
||||
<TR>
|
||||
<TD BGCOLOR="#dddddd">Reenter password to confirm:</TD>
|
||||
<TD><MM-Confirm-Password></TD>
|
||||
<TD> </TD></TR>
|
||||
<tr>
|
||||
<TD BGCOLOR="#dddddd">Which language do you prefer to display your messages?</TD>
|
||||
<TD> <MM-list-langs></TD>
|
||||
<TD> </TD></TR>
|
||||
<mm-digest-question-start>
|
||||
<tr>
|
||||
<td>Would you like to receive list mail batched in a daily
|
||||
digest?
|
||||
</td>
|
||||
<td><MM-Undigest-Radio-Button> No
|
||||
<MM-Digest-Radio-Button> Yes
|
||||
</TD>
|
||||
</tr>
|
||||
<mm-digest-question-end>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<center><MM-Subscribe-Button></P></center>
|
||||
</TABLE>
|
||||
<MM-Form-End>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<TR>
|
||||
<TD COLSPAN="2" WIDTH="100%" BGCOLOR="#B6D8E2">
|
||||
<a name="subscribers">
|
||||
<B><FONT COLOR="#000000"><MM-List-Name> Subscribers</FONT></B></a>
|
||||
</TD>
|
||||
</TR>
|
||||
<tr>
|
||||
<TD COLSPAN="2" WIDTH="100%">
|
||||
<MM-Roster-Form-Start>
|
||||
<MM-Roster-Option>
|
||||
<MM-Form-End>
|
||||
<p>
|
||||
<MM-Options-Form-Start>
|
||||
<MM-Editing-Options>
|
||||
<MM-Form-End>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="container">
|
||||
<MM-Mailman-Footer>
|
||||
<hr />
|
||||
<div id="footer">
|
||||
<div class="span-4">
|
||||
<h3>OpenStack</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/projects/">Projects</a></li>
|
||||
<li><a href="https://security.openstack.org/">OpenStack Security</a></li>
|
||||
<li><a href="https://www.openstack.org/projects/openstack-faq/">Common Questions</a></li>
|
||||
<li><a href="https://www.openstack.org/blog/">Blog</a></li>
|
||||
<li><a href="https://www.openstack.org/news/">News</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Community</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/community/">User Groups</a></li>
|
||||
<li><a href="https://www.openstack.org/events/">Events</a></li>
|
||||
<li><a href="https://www.openstack.org/jobs/">Jobs</a></li>
|
||||
<li><a href="https://www.openstack.org/foundation/companies/">Companies</a></li>
|
||||
<li><a href="https://docs.opendev.org/opendev/infra-manual/latest/developers.html">Contribute</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Documentation</h3>
|
||||
<ul>
|
||||
<li><a href="https://docs.openstack.org/">OpenStack Manuals</a></li>
|
||||
<li><a href="https://www.openstack.org/software/start/">Getting Started</a></li>
|
||||
<li><a href="https://developer.openstack.org">API Documentation</a></li>
|
||||
<li><a href="https://wiki.openstack.org/">Wiki</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<h3>Branding & Legal</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/brand/">Logos & Guidelines</a></li>
|
||||
<li><a href="https://www.openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>
|
||||
<li><a href="https://www.openstack.org/privacy/">Privacy Policy</a></li>
|
||||
<li><a href="https://wiki.openstack.org/CLA">OpenStack CLA</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</BODY>
|
||||
</HTML>
|
@ -0,0 +1,13 @@
|
||||
Send %(real_name)s mailing list submissions to
|
||||
%(got_list_email)s
|
||||
|
||||
To subscribe or unsubscribe via the World Wide Web, visit
|
||||
%(got_listinfo_url)s
|
||||
or, via email, send a message with subject or body 'help' to
|
||||
%(got_request_email)s
|
||||
|
||||
You can reach the person managing the list at
|
||||
%(got_owner_email)s
|
||||
|
||||
When replying, please edit your Subject line so it is more specific than
|
||||
"Re: Contents of %(real_name)s digest..."
|
@ -0,0 +1,35 @@
|
||||
The mailing list `%(listname)s' has just been created for you. The
|
||||
following is some basic information about your mailing list.
|
||||
|
||||
Your mailing list password is:
|
||||
|
||||
%(password)s
|
||||
|
||||
You need this password to configure your mailing list. You also need
|
||||
it to handle administrative requests, such as approving mail if you
|
||||
choose to run a moderated list.
|
||||
|
||||
You can configure your mailing list at the following web page:
|
||||
|
||||
%(admin_url)s
|
||||
|
||||
The web page for users of your mailing list is:
|
||||
|
||||
%(listinfo_url)s
|
||||
|
||||
You can even customize these web pages from the list configuration
|
||||
page. However, you do need to know HTML to be able to do this.
|
||||
|
||||
There is also an email-based interface for users (not administrators)
|
||||
of your list; you can get info about using it by sending a message
|
||||
with just the word `help' as subject or in the body, to:
|
||||
|
||||
%(requestaddr)s
|
||||
|
||||
To unsubscribe a user: from the mailing list 'listinfo' web page,
|
||||
click on or enter the user's email address as if you were that user.
|
||||
Where that user would put in their password to unsubscribe, put in
|
||||
your admin password. You can also use your password to change
|
||||
member's options, including digestification, delivery disabling, etc.
|
||||
|
||||
Please address all questions to %(siteowner)s.
|
@ -0,0 +1,8 @@
|
||||
We have received a message from your address `%(sender)s' requesting
|
||||
an automated response from the %(listname)s mailing list. We have
|
||||
seen %(num)s such messages from you today. In order to avoid problems
|
||||
such as mail loops between email robots, we will not be sending you
|
||||
any further email responses today. Please try again tomorrow.
|
||||
|
||||
If you believe this message is in error, or if you have any questions,
|
||||
please contact the list owner at %(owneremail)s.
|
@ -0,0 +1,422 @@
|
||||
<html>
|
||||
<head>
|
||||
<link rel="SHORTCUT ICON" href="<mm-favicon>">
|
||||
<title>OpenStack Open Source Cloud Computing Software » <MM-Presentable-User> membership configuration for <MM-List-Name> </title>
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href='https://fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'>
|
||||
|
||||
<!-- Framework CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/screen.css" type="text/css" media="screen, projection">
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/print.css" type="text/css" media="print">
|
||||
|
||||
<!-- IE CSS -->
|
||||
<!--[if lt IE 8]><link rel="stylesheet" href="https://openstack.org/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
|
||||
|
||||
<!-- OpenStack Specific CSS -->
|
||||
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/dropdown.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<!-- Page Specific CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/home.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://openstack.org/themes/openstack/css/main.css?m=1335457934" />
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-17511903-1']);
|
||||
_gaq.push(['_setDomainName', '.openstack.org']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<div class="container">
|
||||
<div id="header">
|
||||
<div class="span-5">
|
||||
<h1 id="logo"><a href="/">Open Stack</a></h1>
|
||||
</div>
|
||||
<div class="span-19 last blueLine">
|
||||
|
||||
<div id="navigation" class="span-19">
|
||||
<ul id="Menu1">
|
||||
<li><a href="https://openstack.org/" title="Go to the Home page" class="link" >Home</a></li>
|
||||
<li><a href="https://openstack.org/projects/" title="Go to the OpenStack Projects page" class="link">Projects</a></li>
|
||||
<li><a href="https://openstack.org/user-stories/" title="Go to the User Stories page" class="link">User Stories</a></li>
|
||||
<li><a href="https://openstack.org/community/" title="Go to the Community page" class="current">Community</a></li>
|
||||
<li><a href="https://openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a></li>
|
||||
<li><a href="https://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
|
||||
<li><a href="https://docs.openstack.org/" title="Go to OpenStack Documentation">Documentation</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Page Content -->
|
||||
|
||||
<div class="container">
|
||||
|
||||
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
|
||||
<TR><TD WIDTH="100%" BGCOLOR="#D8D8D8"><B>
|
||||
<FONT COLOR="#000000" SIZE=+1>
|
||||
<MM-List-Name> mailing list membership configuration for
|
||||
<MM-Presentable-User>
|
||||
</FONT></B></TD></TR>
|
||||
</TABLE>
|
||||
<p>
|
||||
<table width="100%" border="0" cellspacing="5" cellpadding="5">
|
||||
<tr><td>
|
||||
<b><MM-Presentable-User></b>'s subscription status,
|
||||
password, and options for the <MM-List-Name> mailing list.
|
||||
</td><td><MM-Form-Start><mm-logout-button><MM-Form-End></td>
|
||||
</tr><tr>
|
||||
<td colspan="2">
|
||||
<MM-Case-Preserved-User>
|
||||
|
||||
<MM-Disabled-Notice>
|
||||
|
||||
<p><mm-results>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<MM-Form-Start>
|
||||
<p>
|
||||
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
|
||||
<TR><TD WIDTH="100%" BGCOLOR="#B6D8E2" colspan="2">
|
||||
<FONT COLOR="#000000">
|
||||
<B>Changing your <MM-List-Name> membership information</B>
|
||||
</FONT></TD></TR>
|
||||
<tr><td colspan="2">You can change the address that you are subscribed
|
||||
to the mailing list with by entering the new address in the
|
||||
fields below. Note that a confirmation email will be sent to
|
||||
the new address, and the change must be confirmed before it is
|
||||
processed.
|
||||
|
||||
<p>Confirmations time out after about <mm-pending-days>.
|
||||
|
||||
<p>You can also optionally set or change your real name
|
||||
(i.e. <em>John Smith</em>).
|
||||
|
||||
<p>If you want to make the membership changes for all the
|
||||
lists that you are subscribed to at <mm-host>, turn on the
|
||||
<em>Change globally</em> check box.
|
||||
|
||||
</td></tr>
|
||||
<tr><td><center>
|
||||
<table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
|
||||
<tr><td bgcolor="#dddddd"><div align="right">New address:</div></td>
|
||||
<td><mm-new-address-box></td>
|
||||
</tr>
|
||||
<tr><td bgcolor="#dddddd"><div align="right">Again to
|
||||
confirm:</div></td>
|
||||
<td><mm-confirm-address-box></td>
|
||||
</tr>
|
||||
</tr></table></center>
|
||||
</td>
|
||||
<td><center>
|
||||
<table border="0" cellspacing="2" cellpadding="2" width="80%" cols="2">
|
||||
<tr><td bgcolor="#dddddd"><div align="right">Your name
|
||||
(optional):</div></td>
|
||||
<td><mm-fullname-box></td>
|
||||
</tr>
|
||||
</table></center>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td colspan="2"><center><mm-change-address-button>
|
||||
<p><mm-global-change-of-address>Change globally</center></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
|
||||
<TR><TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
|
||||
<B>Unsubscribing from <MM-List-Name></B></td>
|
||||
|
||||
<TD WIDTH="50%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
|
||||
<B>Your other <MM-Host> subscriptions</B>
|
||||
</FONT></TD></TR>
|
||||
|
||||
<tr><td>
|
||||
Turn on the confirmation checkbox and hit this button to
|
||||
unsubscribe from this mailing list. <strong>Warning:</strong>
|
||||
This action will be taken immediately!
|
||||
<p>
|
||||
<center><MM-Unsubscribe-Button></center></td>
|
||||
<td>
|
||||
You can view a list of all the other mailing lists at
|
||||
<mm-host> for which you are a member. Use this if you want to
|
||||
make the same membership option changes to this other
|
||||
subscriptions.
|
||||
|
||||
<p>
|
||||
<center><MM-Other-Subscriptions-Submit></center>
|
||||
</TD></TR>
|
||||
</table>
|
||||
|
||||
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
|
||||
<TR><TD COLSPAN=2 WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
|
||||
<B>Your <MM-List-Name> Password</B>
|
||||
</FONT></TD></TR>
|
||||
|
||||
<tr valign="TOP"><td WIDTH="50%">
|
||||
<a name=reminder>
|
||||
<center>
|
||||
<h3>Forgotten Your Password?</h3>
|
||||
</center>
|
||||
Click this button to have your password emailed to your
|
||||
membership address.
|
||||
<p><MM-Umbrella-Notice>
|
||||
<center>
|
||||
<MM-Email-My-Pw>
|
||||
</center>
|
||||
</td>
|
||||
|
||||
<td WIDTH="50%">
|
||||
<a name=changepw>
|
||||
<center>
|
||||
<h3>Change Your Password</h3>
|
||||
<TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2" WIDTH="70%" COLS=2>
|
||||
<TR><TD BGCOLOR="#dddddd"><div align="right">New
|
||||
password:</div></TD>
|
||||
<TD><MM-New-Pass-Box></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD BGCOLOR="#dddddd"><div align="right">Again to
|
||||
confirm:</div></TD>
|
||||
<TD><MM-Confirm-Pass-Box></TD>
|
||||
</TR>
|
||||
</table>
|
||||
|
||||
<MM-Change-Pass-Button>
|
||||
<p><center><mm-global-pw-changes-button>Change globally.
|
||||
</center>
|
||||
</TABLE>
|
||||
|
||||
<p>
|
||||
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="5">
|
||||
<TR><TD WIDTH="100%" BGCOLOR="#FFF0D0"><FONT COLOR="#000000">
|
||||
<B>Your <MM-List-Name> Subscription Options</B>
|
||||
</FONT></TD></TR>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
<i><strong>Current values are checked.</strong></i>
|
||||
|
||||
<p>Note that some of the options have a <em>Set globally</em>
|
||||
checkbox. Checking this field will cause the changes to be made to
|
||||
every mailing list that you are a member of on <mm-host>. Click on
|
||||
<em>List my other subscriptions</em> above to see which other mailing
|
||||
lists you are subscribed to.
|
||||
<p>
|
||||
<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%">
|
||||
<tr><TD BGCOLOR="#cccccc">
|
||||
<a name="disable">
|
||||
<strong>Mail delivery</strong></a><p>
|
||||
Set this option to <em>Enabled</em> to receive messages posted
|
||||
to this mailing list. Set it to <em>Disabled</em> if you want
|
||||
to stay subscribed, but don't want mail delivered to you for a
|
||||
while (e.g. you're going on vacation). If you disable mail
|
||||
delivery, don't forget to re-enable it when you come back; it
|
||||
will not be automatically re-enabled.
|
||||
</td><td bgcolor="#cccccc">
|
||||
<mm-delivery-enable-button>Enabled<br>
|
||||
<mm-delivery-disable-button>Disabled<p>
|
||||
<mm-global-deliver-button><i>Set globally</i>
|
||||
</td></tr>
|
||||
|
||||
<tr><TD BGCOLOR="#cccccc">
|
||||
<strong>Set Digest Mode</strong><p>
|
||||
If you turn digest mode on, you'll get posts bundled together
|
||||
(usually one per day but possibly more on busy lists), instead
|
||||
of singly when they're sent. If digest mode is changed from
|
||||
on to off, you may receive one last digest.
|
||||
</td><td bgcolor="#cccccc">
|
||||
<MM-Undigest-Radio-Button>Off<br>
|
||||
<MM-Digest-Radio-Button>On
|
||||
</td></tr>
|
||||
|
||||
<tr><TD BGCOLOR="#cccccc">
|
||||
<strong>Get MIME or Plain Text Digests?</strong><p>
|
||||
Your mail reader may or may not support MIME digests. In
|
||||
general MIME digests are preferred, but if you have a problem
|
||||
reading them, select plain text digests.
|
||||
</td><td bgcolor="#cccccc">
|
||||
<MM-Mime-Digests-Button>MIME<br>
|
||||
<MM-Plain-Digests-Button>Plain Text<p>
|
||||
<mm-global-mime-button><i>Set globally</i>
|
||||
</td></tr>
|
||||
|
||||
<tr><TD BGCOLOR="#cccccc">
|
||||
<strong>Receive your own posts to the list?</strong><p>
|
||||
Ordinarily, you will get a copy of every message you post to
|
||||
the list. If you don't want to receive this copy, set this
|
||||
option to <em>No</em>.
|
||||
</td><td bgcolor="#cccccc">
|
||||
<mm-dont-receive-own-mail-button>No<br>
|
||||
<mm-receive-own-mail-button>Yes
|
||||
</td></tr>
|
||||
|
||||
<tr><TD BGCOLOR="#cccccc">
|
||||
<strong>Receive acknowledgement mail when you send mail to
|
||||
the list?</strong><p>
|
||||
</td><td bgcolor="#cccccc">
|
||||
<mm-dont-ack-posts-button>No<br>
|
||||
<mm-ack-posts-button>Yes
|
||||
</td></tr>
|
||||
|
||||
<tr><td bgcolor="#cccccc">
|
||||
<strong>Get password reminder email for this list?</strong><p>
|
||||
Once a month, you will get an email containing a password
|
||||
reminder for every list at this host to which you are
|
||||
subscribed. You can turn this off on a per-list basis by
|
||||
selecting <em>No</em> for this option. If you turn off
|
||||
password reminders for all the lists you are subscribed to, no
|
||||
reminder email will be sent to you.
|
||||
</td><td bgcolor="#cccccc">
|
||||
<mm-dont-get-password-reminder-button>No<br>
|
||||
<mm-get-password-reminder-button>Yes<p>
|
||||
<mm-global-remind-button><i>Set globally</i>
|
||||
</td></tr>
|
||||
|
||||
<tr><TD BGCOLOR="#cccccc">
|
||||
<strong>Conceal yourself from subscriber list?</strong><p>
|
||||
When someone views the list membership, your email address is
|
||||
normally shown (in an obscured fashion to thwart spam
|
||||
harvesters). If you do not want your email address to show up
|
||||
on this membership roster at all, select <em>Yes</em> for this option.
|
||||
</td><td bgcolor="#cccccc">
|
||||
<MM-Public-Subscription-Button>No<br>
|
||||
<MM-Hide-Subscription-Button>Yes
|
||||
</td></tr>
|
||||
|
||||
<tr><TD BGCOLOR="#cccccc">
|
||||
<strong>What language do you prefer?</strong><p>
|
||||
</td><td bgcolor="#cccccc">
|
||||
<MM-list-langs>
|
||||
</td></tr>
|
||||
|
||||
<tr><td bgcolor="#cccccc">
|
||||
<strong>Which topic categories would you like to subscribe
|
||||
to?</strong><p>
|
||||
By selecting one or more topics, you can filter the
|
||||
traffic on the mailing list, so as to receive only a
|
||||
subset of the messages. If a message matches one of
|
||||
your selected topics, then you will get the message,
|
||||
otherwise you will not.
|
||||
|
||||
<p>If a message does not match any topic, the delivery
|
||||
rule depends on the setting of the option below. If
|
||||
you do not select any topics of interest, you will get
|
||||
all the messages sent to the mailing list.
|
||||
</td><td bgcolor="#cccccc">
|
||||
<mm-topics>
|
||||
</td></tr>
|
||||
|
||||
<tr><td bgcolor="#cccccc">
|
||||
<strong>Do you want to receive messages that do not match any
|
||||
topic filter?</strong><p>
|
||||
|
||||
This option only takes effect if you've subscribed to
|
||||
at least one topic above. It describes what the
|
||||
default delivery rule is for messages that don't match
|
||||
any topic filter. Selecting <em>No</em> says that if
|
||||
the message does not match any topic filters, then you
|
||||
won't get the message, while selecting <em>Yes</em>
|
||||
says to deliver such non-matching messages to you.
|
||||
|
||||
<p>If no topics of interest are selected above, then
|
||||
you will receive every message sent to the mailing
|
||||
list.
|
||||
</td><td bgcolor="#cccccc">
|
||||
<mm-suppress-nonmatching-topics>No<br>
|
||||
<mm-receive-nonmatching-topics>Yes
|
||||
</td></tr>
|
||||
|
||||
<tr><td bgcolor="#cccccc">
|
||||
<strong>Avoid duplicate copies of messages?</strong><p>
|
||||
|
||||
When you are listed explicitly in the <tt>To:</tt> or
|
||||
<tt>Cc:</tt> headers of a list message, you can opt to
|
||||
not receive another copy from the mailing list.
|
||||
Select <em>Yes</em> to avoid receiving copies from the
|
||||
mailing list; select <em>No</em> to receive copies.
|
||||
|
||||
<p>If the list has member personalized messages
|
||||
enabled, and you elect to receive copies, every copy
|
||||
will have a <tt>X-Mailman-Copy: yes</tt> header added
|
||||
to it.
|
||||
|
||||
</td><td bgcolor="#cccccc">
|
||||
<mm-receive-duplicates-button>No<br>
|
||||
<mm-dont-receive-duplicates-button>Yes<p>
|
||||
<mm-global-nodupes-button><i>Set globally</i>
|
||||
</td></tr>
|
||||
|
||||
<tr><TD colspan="2">
|
||||
<center><MM-options-Submit-button></center>
|
||||
</td></tr>
|
||||
|
||||
</table>
|
||||
</center>
|
||||
<p>
|
||||
<MM-Form-End>
|
||||
|
||||
<div class="container">
|
||||
<MM-Mailman-Footer>
|
||||
<hr />
|
||||
<div id="footer">
|
||||
<div class="span-4">
|
||||
<h3>OpenStack</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/projects/">Projects</a></li>
|
||||
<li><a href="https://security.openstack.org/">OpenStack Security</a></li>
|
||||
<li><a href="https://www.openstack.org/projects/openstack-faq/">Common Questions</a></li>
|
||||
<li><a href="https://www.openstack.org/blog/">Blog</a></li>
|
||||
<li><a href="https://www.openstack.org/news/">News</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Community</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/community/">User Groups</a></li>
|
||||
<li><a href="https://www.openstack.org/events/">Events</a></li>
|
||||
<li><a href="https://www.openstack.org/jobs/">Jobs</a></li>
|
||||
<li><a href="https://www.openstack.org/foundation/companies/">Companies</a></li>
|
||||
<li><a href="https://docs.opendev.org/opendev/infra-manual/latest/developers.html">Contribute</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Documentation</h3>
|
||||
<ul>
|
||||
<li><a href="https://docs.openstack.org/">OpenStack Manuals</a></li>
|
||||
<li><a href="https://www.openstack.org/software/start/">Getting Started</a></li>
|
||||
<li><a href="https://developer.openstack.org">API Documentation</a></li>
|
||||
<li><a href="https://wiki.openstack.org/">Wiki</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<h3>Branding & Legal</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/brand/">Logos & Guidelines</a></li>
|
||||
<li><a href="https://www.openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>
|
||||
<li><a href="https://www.openstack.org/privacy/">Privacy Policy</a></li>
|
||||
<li><a href="https://wiki.openstack.org/CLA">OpenStack CLA</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,8 @@
|
||||
Your message entitled
|
||||
|
||||
%(subject)s
|
||||
|
||||
was successfully received by the %(listname)s mailing list.
|
||||
|
||||
List info page: %(listinfo_url)s
|
||||
Your preferences: %(optionsurl)s
|
@ -0,0 +1,13 @@
|
||||
As list administrator, your authorization is requested for the
|
||||
following mailing list posting:
|
||||
|
||||
List: %(listname)s@%(hostname)s
|
||||
From: %(sender)s
|
||||
Subject: %(subject)s
|
||||
Reason: %(reason)s
|
||||
|
||||
At your convenience, visit:
|
||||
|
||||
%(admindb_url)s
|
||||
|
||||
to approve or deny the request.
|
@ -0,0 +1,15 @@
|
||||
Your mail to '%(listname)s' with the subject
|
||||
|
||||
%(subject)s
|
||||
|
||||
Is being held until the list moderator can review it for approval.
|
||||
|
||||
The reason it is being held:
|
||||
|
||||
%(reason)s
|
||||
|
||||
Either the message will get posted to the list, or you will receive
|
||||
notification of the moderator's decision. If you would like to cancel
|
||||
this posting, please visit the following URL:
|
||||
|
||||
%(confirmurl)s
|
@ -0,0 +1,44 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>%(realname)s Private Archives Authentication</title>
|
||||
<script>function sf(){document.f.username.focus();}</script>
|
||||
</head>
|
||||
<body bgcolor="#ffffff" onLoad="sf()">
|
||||
<FORM METHOD=POST ACTION="%(action)s" name="f">
|
||||
%(message)s
|
||||
<TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
|
||||
<TR>
|
||||
<TD COLSPAN="2" WIDTH="100%%" BGCOLOR="#99CCFF" ALIGN="CENTER">
|
||||
<B><FONT COLOR="#000000" SIZE="+1">%(realname)s Private
|
||||
Archives Authentication</FONT></B>
|
||||
</TD>
|
||||
</TR>
|
||||
<tr>
|
||||
<TD><div ALIGN="Right">Email address:</div></TD>
|
||||
<TD><INPUT TYPE="text" NAME="username" SIZE="30"></TD>
|
||||
</tr>
|
||||
<tr>
|
||||
<TD><div ALIGN="Right">Password:</div></TD>
|
||||
<TD><INPUT TYPE="password" NAME="password" SIZE="30"></TD>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2 align="middle"><INPUT type="SUBMIT"
|
||||
name="submit"
|
||||
value="Let me in...">
|
||||
</td>
|
||||
</tr>
|
||||
</TABLE>
|
||||
<p><strong><em>Important:</em></strong> From this point on, you
|
||||
must have cookies enabled in your browser, otherwise
|
||||
you will have to re-authenticate with every operation.
|
||||
|
||||
<p>Session cookies are used in Mailman's
|
||||
private archive interface so that you don't need to
|
||||
re-authenticate with every operation. This
|
||||
cookie will expire automatically when you exit your browser, or
|
||||
you can explicitly expire the cookie by visiting your
|
||||
member options page and clicking the
|
||||
<em>Log out</em> button.
|
||||
</FORM>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,25 @@
|
||||
This is a probe message. You can ignore this message.
|
||||
|
||||
The %(listname)s mailing list has received a number of bounces from you,
|
||||
indicating that there may be a problem delivering messages to %(address)s.
|
||||
A bounce sample is attached below. Please examine this message to make sure
|
||||
there are no problems with your email address. You may want to check with
|
||||
your mail administrator for more help.
|
||||
|
||||
If you are reading this, you don't need to do anything to remain an enabled
|
||||
member of the mailing list. If this message had bounced, you would not be
|
||||
reading it, and your membership would have been disabled. Normally when you
|
||||
are disabled, you receive occasional messages asking you to re-enable your
|
||||
subscription.
|
||||
|
||||
You can also visit your membership page at
|
||||
|
||||
%(optionsurl)s
|
||||
|
||||
On your membership page, you can change various delivery options such
|
||||
as your email address and whether you get digests or not.
|
||||
|
||||
If you have any questions or problems, you can contact the list owner
|
||||
at
|
||||
|
||||
%(owneraddr)s
|
@ -0,0 +1,13 @@
|
||||
Your request to the %(listname)s mailing list
|
||||
|
||||
%(request)s
|
||||
|
||||
has been rejected by the list moderator. The moderator gave the
|
||||
following reason for rejecting your request:
|
||||
|
||||
"%(reason)s"
|
||||
|
||||
Any questions or comments should be directed to the list administrator
|
||||
at:
|
||||
|
||||
%(adminaddr)s
|
@ -0,0 +1,160 @@
|
||||
<!-- $Revision: 3394 $ -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href='https://fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'>
|
||||
|
||||
<!-- Framework CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/screen.css" type="text/css" media="screen, projection">
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/print.css" type="text/css" media="print">
|
||||
|
||||
<!-- IE CSS -->
|
||||
<!--[if lt IE 8]><link rel="stylesheet" href="https://openstack.org/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
|
||||
|
||||
<!-- OpenStack Specific CSS -->
|
||||
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/dropdown.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<!-- Page Specific CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/home.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://openstack.org/themes/openstack/css/main.css?m=1335457934" />
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-17511903-1']);
|
||||
_gaq.push(['_setDomainName', '.openstack.org']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
<TITLE>OpenStack Open Source Cloud Computing Software » <MM-List-Name> Subscribers</TITLE>
|
||||
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<div class="container">
|
||||
<div id="header">
|
||||
<div class="span-5">
|
||||
<h1 id="logo"><a href="/">Open Stack</a></h1>
|
||||
</div>
|
||||
<div class="span-19 last blueLine">
|
||||
|
||||
<div id="navigation" class="span-19">
|
||||
<ul id="Menu1">
|
||||
<li><a href="https://openstack.org/" title="Go to the Home page" class="link" >Home</a></li>
|
||||
<li><a href="https://openstack.org/projects/" title="Go to the OpenStack Projects page" class="link">Projects</a></li>
|
||||
<li><a href="https://openstack.org/user-stories/" title="Go to the User Stories page" class="link">User Stories</a></li>
|
||||
<li><a href="https://openstack.org/community/" title="Go to the Community page" class="current">Community</a></li>
|
||||
<li><a href="https://openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a></li>
|
||||
<li><a href="https://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
|
||||
<li><a href="https://docs.openstack.org/" title="Go to OpenStack Documentation">Documentation</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Page Content -->
|
||||
|
||||
<div class="container">
|
||||
|
||||
<P>
|
||||
<TABLE WIDTH="100%" COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
|
||||
<TR>
|
||||
<TD COLSPAN="2" WIDTH="100%" BGCOLOR="#D8D8D8" ALIGN="CENTER">
|
||||
<B><FONT COLOR="#000000" SIZE="+1"><MM-List-Name>
|
||||
Subscribers</FONT></B>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD COLSPAN="2" WIDTH="100%" ALIGN="CENTER">
|
||||
|
||||
<P align = "right"> <MM-lang-form-start><MM-displang-box>
|
||||
<MM-list-langs><MM-form-end></p>
|
||||
|
||||
<P>Click on your address to visit your subscription
|
||||
options page.<br><I>(Parenthesized entries have list delivery
|
||||
disabled.)</I></P>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR WIDTH="100%" VALIGN="top">
|
||||
<TD BGCOLOR="#B6D8E2" WIDTH="50%">
|
||||
<center>
|
||||
<B><FONT COLOR="#000000"><MM-Num-Reg-Users>
|
||||
Non-digested Members of <MM-List-Name>:</FONT></B>
|
||||
</center>
|
||||
</TD>
|
||||
<TD BGCOLOR="#B6D8E2" WIDTH="50%">
|
||||
<center>
|
||||
<B><FONT COLOR="#000000"><MM-Num-Digesters> Digested
|
||||
Members of <MM-List-Name>:</FONT></B>
|
||||
</center>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN="top">
|
||||
<td>
|
||||
<P><MM-Regular-Users>
|
||||
</td>
|
||||
<td>
|
||||
<P><MM-Digest-Users>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="container">
|
||||
<MM-Mailman-Footer>
|
||||
<hr />
|
||||
<div id="footer">
|
||||
<div class="span-4">
|
||||
<h3>OpenStack</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/projects/">Projects</a></li>
|
||||
<li><a href="https://security.openstack.org/">OpenStack Security</a></li>
|
||||
<li><a href="https://www.openstack.org/projects/openstack-faq/">Common Questions</a></li>
|
||||
<li><a href="https://www.openstack.org/blog/">Blog</a></li>
|
||||
<li><a href="https://www.openstack.org/news/">News</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Community</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/community/">User Groups</a></li>
|
||||
<li><a href="https://www.openstack.org/events/">Events</a></li>
|
||||
<li><a href="https://www.openstack.org/jobs/">Jobs</a></li>
|
||||
<li><a href="https://www.openstack.org/foundation/companies/">Companies</a></li>
|
||||
<li><a href="https://docs.opendev.org/opendev/infra-manual/latest/developers.html">Contribute</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Documentation</h3>
|
||||
<ul>
|
||||
<li><a href="https://docs.openstack.org/">OpenStack Manuals</a></li>
|
||||
<li><a href="https://www.openstack.org/software/start/">Getting Started</a></li>
|
||||
<li><a href="https://developer.openstack.org">API Documentation</a></li>
|
||||
<li><a href="https://wiki.openstack.org/">Wiki</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<h3>Branding & Legal</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/brand/">Logos & Guidelines</a></li>
|
||||
<li><a href="https://www.openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>
|
||||
<li><a href="https://www.openstack.org/privacy/">Privacy Policy</a></li>
|
||||
<li><a href="https://wiki.openstack.org/CLA">OpenStack CLA</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
@ -0,0 +1,11 @@
|
||||
Your authorization is required for a mailing list subscription request
|
||||
approval:
|
||||
|
||||
For: %(username)s
|
||||
List: %(listname)s@%(hostname)s
|
||||
|
||||
At your convenience, visit:
|
||||
|
||||
%(admindb_url)s
|
||||
|
||||
to process the request.
|
@ -0,0 +1,117 @@
|
||||
<!-- $Revision: 3550 $ -->
|
||||
<html>
|
||||
<head><title>OpenStack Open Source Cloud Computing Software » <MM-List-Name> Subscription results</title></head>
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href='https://fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'>
|
||||
|
||||
<!-- Framework CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/screen.css" type="text/css" media="screen, projection">
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/blueprint/print.css" type="text/css" media="print">
|
||||
|
||||
<!-- IE CSS -->
|
||||
<!--[if lt IE 8]><link rel="stylesheet" href="https://openstack.org/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
|
||||
|
||||
<!-- OpenStack Specific CSS -->
|
||||
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/dropdown.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<!-- Page Specific CSS -->
|
||||
<link rel="stylesheet" href="https://openstack.org/themes/openstack/css/home.css" type="text/css" media="screen, projection, print">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://openstack.org/themes/openstack/css/main.css?m=1335457934" />
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-17511903-1']);
|
||||
_gaq.push(['_setDomainName', '.openstack.org']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<div class="container">
|
||||
<div id="header">
|
||||
<div class="span-5">
|
||||
<h1 id="logo"><a href="/">Open Stack</a></h1>
|
||||
</div>
|
||||
<div class="span-19 last blueLine">
|
||||
|
||||
<div id="navigation" class="span-19">
|
||||
<ul id="Menu1">
|
||||
<li><a href="https://openstack.org/" title="Go to the Home page" class="link" >Home</a></li>
|
||||
<li><a href="https://openstack.org/projects/" title="Go to the OpenStack Projects page" class="link">Projects</a></li>
|
||||
<li><a href="https://openstack.org/user-stories/" title="Go to the User Stories page" class="link">User Stories</a></li>
|
||||
<li><a href="https://openstack.org/community/" title="Go to the Community page" class="current">Community</a></li>
|
||||
<li><a href="https://openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a></li>
|
||||
<li><a href="https://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a></li>
|
||||
<li><a href="https://docs.openstack.org/" title="Go to OpenStack Documentation">Documentation</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Page Content -->
|
||||
|
||||
<div class="container">
|
||||
<h1><MM-List-Name> Subscription results</h1>
|
||||
<MM-Results>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<MM-Mailman-Footer>
|
||||
<hr />
|
||||
<div id="footer">
|
||||
<div class="span-4">
|
||||
<h3>OpenStack</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/projects/">Projects</a></li>
|
||||
<li><a href="https://security.openstack.org/">OpenStack Security</a></li>
|
||||
<li><a href="https://www.openstack.org/projects/openstack-faq/">Common Questions</a></li>
|
||||
<li><a href="https://www.openstack.org/blog/">Blog</a></li>
|
||||
<li><a href="https://www.openstack.org/news/">News</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Community</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/community/">User Groups</a></li>
|
||||
<li><a href="https://www.openstack.org/events/">Events</a></li>
|
||||
<li><a href="https://www.openstack.org/jobs/">Jobs</a></li>
|
||||
<li><a href="https://www.openstack.org/foundation/companies/">Companies</a></li>
|
||||
<li><a href="https://docs.opendev.org/opendev/infra-manual/latest/developers.html">Contribute</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<h3>Documentation</h3>
|
||||
<ul>
|
||||
<li><a href="https://docs.openstack.org/">OpenStack Manuals</a></li>
|
||||
<li><a href="https://www.openstack.org/software/start/">Getting Started</a></li>
|
||||
<li><a href="https://developer.openstack.org">API Documentation</a></li>
|
||||
<li><a href="https://wiki.openstack.org/">Wiki</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<h3>Branding & Legal</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.openstack.org/brand/">Logos & Guidelines</a></li>
|
||||
<li><a href="https://www.openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>
|
||||
<li><a href="https://www.openstack.org/privacy/">Privacy Policy</a></li>
|
||||
<li><a href="https://wiki.openstack.org/CLA">OpenStack CLA</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,33 @@
|
||||
Welcome to the %(real_name)s@%(host_name)s mailing list!
|
||||
%(welcome)s
|
||||
To post to this list, send your email to:
|
||||
|
||||
%(emailaddr)s
|
||||
|
||||
General information about the mailing list is at:
|
||||
|
||||
%(listinfo_url)s
|
||||
|
||||
If you ever want to unsubscribe or change your options (eg, switch to or
|
||||
from digest mode, change your password, etc.), visit your subscription
|
||||
page at:
|
||||
|
||||
%(optionsurl)s
|
||||
%(umbrella)s
|
||||
You can also make such adjustments via email by sending a message to:
|
||||
|
||||
%(real_name)s-request@%(host_name)s
|
||||
|
||||
with the word `help' in the subject or body (don't include the
|
||||
quotes), and you will get back a message with instructions.
|
||||
|
||||
You must know your password to change your options (including changing
|
||||
the password, itself) or to unsubscribe. It is:
|
||||
|
||||
%(password)s
|
||||
|
||||
Normally, Mailman will remind you of your %(host_name)s mailing list
|
||||
passwords once every month, although you can disable this if you
|
||||
prefer. This reminder will also include instructions on how to
|
||||
unsubscribe or change your account options. There is also a button on
|
||||
your options page that will email your current password to you.
|
@ -0,0 +1,23 @@
|
||||
Mailing list removal confirmation notice for mailing list %(listname)s
|
||||
|
||||
We have received a request%(remote)s for the removal of your email
|
||||
address, "%(email)s" from the %(listaddr)s mailing list. To confirm
|
||||
that you want to be removed from this mailing list, simply reply to
|
||||
this message, keeping the Subject: header intact. Or visit this web
|
||||
page:
|
||||
|
||||
%(confirmurl)s
|
||||
|
||||
Or include the following line -- and only the following line -- in a
|
||||
message to %(requestaddr)s:
|
||||
|
||||
confirm %(cookie)s
|
||||
|
||||
Note that simply sending a `reply' to this message should work from
|
||||
most mail readers, since that usually leaves the Subject: line in
|
||||
the right form (additional "Re:" text in the Subject: is okay).
|
||||
|
||||
If you do not wish to be removed from this list, please simply
|
||||
disregard this message. If you think you are being maliciously
|
||||
removed from the list, or have any other questions, send them to
|
||||
%(listadmin)s.
|
@ -0,0 +1,11 @@
|
||||
Your authorization is required for a mailing list unsubscription
|
||||
request approval:
|
||||
|
||||
By: %(username)s
|
||||
From: %(listname)s@%(hostname)s
|
||||
|
||||
At your convenience, visit:
|
||||
|
||||
%(admindb_url)s
|
||||
|
||||
to process the request.
|
@ -0,0 +1,24 @@
|
||||
You, or someone posing as you, has requested a password reminder for
|
||||
your membership on the mailing list %(fqdn_lname)s. You will need
|
||||
this password in order to change your membership options (e.g. do you
|
||||
want regular delivery or digest delivery), and having this password
|
||||
makes it easier for you to unsubscribe from the mailing list.
|
||||
|
||||
You are subscribed with the address: %(user)s
|
||||
|
||||
Your %(listname)s password is: %(password)s
|
||||
|
||||
To make changes to your membership options, log in and visit your
|
||||
options web page:
|
||||
|
||||
%(options_url)s
|
||||
|
||||
You can also make such changes via email by sending a message to:
|
||||
|
||||
%(requestaddr)s
|
||||
|
||||
with the text "help" in the subject or body. The automatic reply will
|
||||
contain more detailed instructions.
|
||||
|
||||
Questions or comments? Please send them to the %(listname)s mailing
|
||||
list administrator at %(owneraddr)s.
|
@ -0,0 +1,22 @@
|
||||
Mailing list subscription confirmation notice for mailing list %(listname)s
|
||||
|
||||
We have received a request%(remote)s for subscription of your email
|
||||
address, "%(email)s", to the %(listaddr)s mailing list. To confirm
|
||||
that you want to be added to this mailing list, simply reply to this
|
||||
message, keeping the Subject: header intact. Or visit this web page:
|
||||
|
||||
%(confirmurl)s
|
||||
|
||||
Or include the following line -- and only the following line -- in a
|
||||
message to %(requestaddr)s:
|
||||
|
||||
confirm %(cookie)s
|
||||
|
||||
Note that simply sending a `reply' to this message should work from
|
||||
most mail readers, since that usually leaves the Subject: line in
|
||||
the right form (additional "Re:" text in the Subject: is okay).
|
||||
|
||||
If you do not wish to be subscribed to this list, please simply
|
||||
disregard this message. If you think you are being maliciously
|
||||
subscribed to the list, or have any other questions, send them to
|
||||
%(listadmin)s.
|
4
playbooks/roles/mailman-site/handlers/main.yaml
Normal file
4
playbooks/roles/mailman-site/handlers/main.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
- name: mailman site reload apache2
|
||||
service:
|
||||
name: apache2
|
||||
state: reloaded
|
108
playbooks/roles/mailman-site/tasks/main.yaml
Normal file
108
playbooks/roles/mailman-site/tasks/main.yaml
Normal file
@ -0,0 +1,108 @@
|
||||
- name: Set mailman site root fact
|
||||
set_fact:
|
||||
mm_site_root: "/srv/mailman/{{ mailman_site.name }}"
|
||||
cacheable: no
|
||||
|
||||
- name: Create mm site dirs
|
||||
file:
|
||||
path: "{{ inner_site_dir }}"
|
||||
state: directory
|
||||
owner: list
|
||||
group: list
|
||||
mode: '2775'
|
||||
loop:
|
||||
- "{{ mm_site_root }}/"
|
||||
- "{{ mm_site_root }}/etc"
|
||||
- "{{ mm_site_root }}/lists"
|
||||
- "{{ mm_site_root }}/logs"
|
||||
- "{{ mm_site_root }}/locks"
|
||||
- "{{ mm_site_root }}/data"
|
||||
- "{{ mm_site_root }}/spam"
|
||||
- "{{ mm_site_root }}/mail"
|
||||
- "{{ mm_site_root }}/run"
|
||||
- "{{ mm_site_root }}/archives"
|
||||
- "{{ mm_site_root }}/archives/public"
|
||||
- "{{ mm_site_root }}/archives/private"
|
||||
- "{{ mm_site_root }}/templates"
|
||||
- "{{ mm_site_root }}/qfiles"
|
||||
- "{{ mm_site_root }}/qfiles/in"
|
||||
- "{{ mm_site_root }}/qfiles/out"
|
||||
- "{{ mm_site_root }}/qfiles/commands"
|
||||
- "{{ mm_site_root }}/qfiles/bounces"
|
||||
- "{{ mm_site_root }}/qfiles/news"
|
||||
- "{{ mm_site_root }}/qfiles/archive"
|
||||
- "{{ mm_site_root }}/qfiles/shunt"
|
||||
- "{{ mm_site_root }}/qfiles/virgin"
|
||||
- "{{ mm_site_root }}/qfiles/bad"
|
||||
- "{{ mm_site_root }}/qfiles/retry"
|
||||
- "{{ mm_site_root }}/qfiles/maildir"
|
||||
loop_control:
|
||||
loop_var: inner_site_dir
|
||||
|
||||
- name: Link html templates into site
|
||||
file:
|
||||
state: link
|
||||
src: "/usr/share/mailman/{{ site_language }}"
|
||||
dest: "{{ mm_site_root }}/templates/{{ site_language }}"
|
||||
owner: root
|
||||
group: root
|
||||
loop: "{{ mailman_site.install_languages }}"
|
||||
loop_control:
|
||||
loop_var: site_language
|
||||
|
||||
- name: Create openstack specific en templates dir
|
||||
file:
|
||||
state: directory
|
||||
path: /srv/mailman/openstack/templates/en
|
||||
owner: root
|
||||
group: list
|
||||
mode: '0755'
|
||||
when: mailman_site.name == "openstack"
|
||||
- name: Copy openstack specific en templates into site
|
||||
synchronize:
|
||||
src: openstack/html-templates-en/
|
||||
dest: /srv/mailman/openstack/templates/en
|
||||
when: mailman_site.name == "openstack"
|
||||
|
||||
- name: Create site specific config
|
||||
template:
|
||||
src: mm_site_cfg.py.j2
|
||||
dest: "{{ mm_site_root }}/etc/mm_cfg_local.py"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0444'
|
||||
|
||||
- name: Create normal mailman vhost config
|
||||
template:
|
||||
src: mailman_multihost.vhost.j2
|
||||
dest: "/etc/apache2/sites-enabled/50-{{ mailman_site.listdomain }}.conf"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: mailman site reload apache2
|
||||
|
||||
- name: Create site init script
|
||||
template:
|
||||
src: mailman.init.j2
|
||||
dest: "/etc/init.d/mailman-{{ mailman_site.name }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
|
||||
- name: Enable mailman site service
|
||||
service:
|
||||
name: "mailman-{{ mailman_site.name }}"
|
||||
enabled: yes
|
||||
|
||||
- name: Create mailman site lists
|
||||
include_role:
|
||||
name: mailman-list
|
||||
vars:
|
||||
mm_site_name: "{{ mailman_site.name }}"
|
||||
mm_list_name: "{{ site_list.name }}"
|
||||
mm_list_description: "{{ site_list.description }}"
|
||||
mm_list_admin: "{{ site_list.admin }}"
|
||||
mm_list_password: "{{ site_list.password }}"
|
||||
loop: "{{ mailman_site.lists }}"
|
||||
loop_control:
|
||||
loop_var: site_list
|
116
playbooks/roles/mailman-site/templates/mailman.init.j2
Normal file
116
playbooks/roles/mailman-site/templates/mailman.init.j2
Normal file
@ -0,0 +1,116 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# mailman-{{ mailman_site.name }} starts up the master queue runner for mailman
|
||||
#
|
||||
# Based on skeleton originally by Miquel van Smoorenburg and Ian Murdock,
|
||||
# customisations by Tollef Fog Heen and Thijs Kinkhorst for Debian.
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: mailman-qrunner-{{ mailman_site.name }}
|
||||
# Required-Start: $syslog $local_fs $remote_fs $named $network
|
||||
# Required-Stop: $syslog $local_fs $remote_fs $named $network
|
||||
# Should-Start:
|
||||
# Should-Stop:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop:
|
||||
# Short-Description: Mailman Master Queue Runner
|
||||
# Description: Starts and stops the Mailman queue runners, used to
|
||||
# manage the various message queues within the Mailman
|
||||
# mailing list manager.
|
||||
### END INIT INFO
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
DAEMON=/usr/lib/mailman/bin/mailmanctl
|
||||
export MAILMAN_SITE_DIR=/srv/mailman/{{ mailman_site.name }}
|
||||
PIDFILE=$MAILMAN_SITE_DIR/run/mailman.pid
|
||||
|
||||
|
||||
test -x $DAEMON || exit 0
|
||||
|
||||
set -e
|
||||
|
||||
if ! [ -d /var/run/mailman ]; then
|
||||
install -d -o list -g list /var/run/mailman
|
||||
fi
|
||||
|
||||
if ! [ -d /var/lock/mailman ]; then
|
||||
install -d -o root -g list -m 2775 /var/lock/mailman
|
||||
fi
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
# In rare upgrading cycles python might not be available at some point.
|
||||
# Do not break the upgrade in that case.
|
||||
if ! [ -x /usr/bin/python ]; then
|
||||
log_warning_msg "Python interpreter not available, exiting."
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
# Just a newline.
|
||||
nl='
|
||||
'
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
SITE_LIST=$( sed -rne "s/^[[:space:]]*MAILMAN_SITE_LIST[[:space:]]*=[[:space:]]*(['\"])([^'\"]+)\\1/\\2/p" /etc/mailman/mm_cfg.py )
|
||||
[ -n "$SITE_LIST" ] || SITE_LIST='mailman'
|
||||
case "$nl$(/var/lib/mailman/bin/list_lists -b)$nl" in
|
||||
(*$nl$SITE_LIST$nl*) ;;
|
||||
(*)
|
||||
log_warning_msg "Site list for mailman missing (looking for list named '${SITE_LIST}')."
|
||||
log_warning_msg "Please create it; until then, mailman will refuse to start."
|
||||
exit 0 ;;
|
||||
esac
|
||||
log_daemon_msg "Starting Mailman master qrunner" "mailmanctl"
|
||||
if $DAEMON -s -q start; then
|
||||
log_end_msg 0
|
||||
else
|
||||
log_end_msg 1
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
log_daemon_msg "Stopping Mailman master qrunner" "mailmanctl"
|
||||
if $DAEMON -q stop; then
|
||||
rm -f $PIDFILE
|
||||
log_end_msg 0
|
||||
else
|
||||
log_end_msg 1
|
||||
fi
|
||||
;;
|
||||
reload)
|
||||
log_begin_msg "Reloading Mailman master qrunner configuration"
|
||||
if $DAEMON -q restart; then
|
||||
log_end_msg 0
|
||||
else
|
||||
log_end_msg 1
|
||||
fi
|
||||
;;
|
||||
restart|force-reload)
|
||||
PID=`cat $PIDFILE 2>/dev/null` || true
|
||||
log_daemon_msg "Restarting Mailman master qrunner" "mailmanctl"
|
||||
$DAEMON -q stop
|
||||
if test -n "$PID" && kill -0 $PID 2>/dev/null ; then
|
||||
log_action_begin_msg "Waiting"
|
||||
for cnt in `seq 1 5`; do
|
||||
sleep 1
|
||||
kill -0 $PID 2>/dev/null || break
|
||||
done;
|
||||
if kill -0 $PID 2>/dev/null ; then
|
||||
log_action_end_msg 1
|
||||
else
|
||||
log_action_end_msg 0
|
||||
fi
|
||||
fi
|
||||
if $DAEMON -q start; then
|
||||
log_end_msg 0
|
||||
else
|
||||
log_end_msg 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/mailman {start|stop|restart|reload|force-reload}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
@ -0,0 +1,62 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName {{ mailman_site.listdomain }}
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/{{ mailman_site.listdomain }}-error.log
|
||||
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
LogLevel warn
|
||||
|
||||
CustomLog ${APACHE_LOG_DIR}/{{ mailman_site.listdomain }}-access.log combined
|
||||
|
||||
DocumentRoot /var/www
|
||||
|
||||
RewriteEngine on
|
||||
RewriteRule ^/$ /cgi-bin/mailman/listinfo [R]
|
||||
|
||||
# We can find mailman here:
|
||||
ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/
|
||||
# And the public archives:
|
||||
Alias /pipermail/ /srv/mailman/{{ mailman_site.name }}/archives/public/
|
||||
# Logos:
|
||||
Alias /images/mailman/ /usr/share/images/mailman/
|
||||
|
||||
# Use this if you don't want the "cgi-bin" component in your URL:
|
||||
# In case you want to access mailman through a shorter URL you should enable
|
||||
# this:
|
||||
#ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
|
||||
# In this case you need to set the DEFAULT_URL_PATTERN in
|
||||
# /etc/mailman/mm_cfg.py to http://%s/mailman/ for the cookie
|
||||
# authentication code to work. Note that you need to change the base
|
||||
# URL for all the already-created lists as well.
|
||||
|
||||
<Directory /usr/lib/cgi-bin/mailman/>
|
||||
AllowOverride None
|
||||
Options ExecCGI
|
||||
AddHandler cgi-script .cgi
|
||||
SetEnv MAILMAN_SITE_DIR /srv/mailman/{{ mailman_site.name }}
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
<Directory /srv/mailman/{{ mailman_site.name }}/archives/public/>
|
||||
Options FollowSymlinks
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
<Directory /usr/share/images/mailman/>
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
|
||||
</VirtualHost>
|
153
playbooks/roles/mailman-site/templates/mm_site_cfg.py.j2
Normal file
153
playbooks/roles/mailman-site/templates/mm_site_cfg.py.j2
Normal file
@ -0,0 +1,153 @@
|
||||
# -*- python -*-
|
||||
|
||||
# Copyright (C) 1998,1999,2000 by the Free Software Foundation, Inc.
|
||||
#
|
||||
# This program 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 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301 USA
|
||||
|
||||
|
||||
"""This is the module which takes your site-specific settings.
|
||||
|
||||
From a raw distribution it should be copied to mm_cfg.py. If you
|
||||
already have an mm_cfg.py, be careful to add in only the new settings
|
||||
you want. The complete set of distributed defaults, with annotation,
|
||||
are in ./Defaults. In mm_cfg, override only those you want to
|
||||
change, after the
|
||||
|
||||
from Defaults import *
|
||||
|
||||
line (see below).
|
||||
|
||||
Note that these are just default settings - many can be overridden via the
|
||||
admin and user interfaces on a per-list or per-user basis.
|
||||
|
||||
Note also that some of the settings are resolved against the active list
|
||||
setting by using the value as a format string against the
|
||||
list-instance-object's dictionary - see the distributed value of
|
||||
DEFAULT_MSG_FOOTER for an example."""
|
||||
|
||||
|
||||
#######################################################
|
||||
# Here's where we get the distributed defaults. #
|
||||
|
||||
from Mailman.Defaults import *
|
||||
|
||||
##############################################################
|
||||
# Put YOUR site-specific configuration below, in mm_cfg.py . #
|
||||
# See Defaults.py for explanations of the values. #
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# The name of the list Mailman uses to send password reminders
|
||||
# and similar. Don't change if you want mailman-owner to be
|
||||
# a valid local part.
|
||||
MAILMAN_SITE_LIST = 'mailman'
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# If you change these, you have to configure your http server
|
||||
# accordingly (Alias and ScriptAlias directives in most httpds)
|
||||
DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/'
|
||||
PRIVATE_ARCHIVE_URL = '/cgi-bin/mailman/private'
|
||||
IMAGE_LOGOS = '/images/mailman/'
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Default domain for email addresses of newly created MLs
|
||||
DEFAULT_EMAIL_HOST = '{{ mailman_site.listdomain }}'
|
||||
#-------------------------------------------------------------
|
||||
# Default host for web interface of newly created MLs
|
||||
DEFAULT_URL_HOST = '{{ mailman_site.listdomain }}'
|
||||
#-------------------------------------------------------------
|
||||
# Required when setting any of its arguments.
|
||||
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# The default language for this server.
|
||||
DEFAULT_SERVER_LANGUAGE = 'en'
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Iirc this was used in pre 2.1, leave it for now
|
||||
USE_ENVELOPE_SENDER = 0 # Still used?
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Unset send_reminders on newly created lists
|
||||
DEFAULT_SEND_REMINDERS = 0
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Uncomment this if you configured your MTA such that it
|
||||
# automatically recognizes newly created lists.
|
||||
# (see /usr/share/doc/mailman/README.Exim4.Debian or
|
||||
# /usr/share/mailman/postfix-to-mailman.py)
|
||||
MTA=None # Misnomer, suppresses alias output on newlist
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Uncomment if you use Postfix virtual domains (but not
|
||||
# postfix-to-mailman.py), but be sure to see
|
||||
# /usr/share/doc/mailman/README.Debian first.
|
||||
# MTA='Postfix'
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Uncomment if you want to filter mail with SpamAssassin. For
|
||||
# more information please visit this website:
|
||||
# http://www.jamesh.id.au/articles/mailman-spamassassin/
|
||||
# GLOBAL_PIPELINE.insert(1, 'SpamAssassin')
|
||||
|
||||
# Note - if you're looking for something that is imported from mm_cfg, but you
|
||||
# didn't find it above, it's probably in /usr/lib/mailman/Mailman/Defaults.py.
|
||||
|
||||
# Enable VERP, but let Exim create the VERP addresses since it's
|
||||
# more efficient. --jeblair
|
||||
|
||||
VERP_PASSWORD_REMINDERS = 1
|
||||
VERP_PERSONALIZED_DELIVERIES = 1
|
||||
VERP_CONFIRMATIONS = 1
|
||||
VERP_DELIVERY_INTERVAL = 0
|
||||
|
||||
# Make membership viewable by admin only by default (lp bug 1021493)
|
||||
# Private_roster == 0: anyone can see, 1: members only, 2: admin only.
|
||||
DEFAULT_PRIVATE_ROSTER = 2
|
||||
|
||||
# All `normal' messages which are delivered to the entire list membership go
|
||||
# through this pipeline of handler modules. Lists themselves can override the
|
||||
# global pipeline by defining a `pipeline' attribute.
|
||||
|
||||
# AvoidDuplicates is removed because it modifies the CC header, which
|
||||
# can break DKIM signatures. --jeblair
|
||||
GLOBAL_PIPELINE = [
|
||||
# These are the modules that do tasks common to all delivery paths.
|
||||
'SpamDetect',
|
||||
'Approve',
|
||||
'Replybot',
|
||||
'Moderate',
|
||||
'Hold',
|
||||
'MimeDel',
|
||||
'Scrubber',
|
||||
'Emergency',
|
||||
'Tagger',
|
||||
'CalcRecips',
|
||||
'Cleanse',
|
||||
'CleanseDKIM',
|
||||
'CookHeaders',
|
||||
# And now we send the message to the digest mbox file, and to the arch and
|
||||
# news queues. Runners will provide further processing of the message,
|
||||
# specific to those delivery paths.
|
||||
'ToDigest',
|
||||
'ToArchive',
|
||||
'ToUsenet',
|
||||
# Now we'll do a few extra things specific to the member delivery
|
||||
# (outgoing) path, finally leaving the message in the outgoing queue.
|
||||
'AfterDelivery',
|
||||
'Acknowledge',
|
||||
'WrapMessage',
|
||||
'ToOutgoing',
|
||||
]
|
1
playbooks/roles/mailman/README.rst
Normal file
1
playbooks/roles/mailman/README.rst
Normal file
@ -0,0 +1 @@
|
||||
Role to configure mailman
|
4
playbooks/roles/mailman/files/index.html
Normal file
4
playbooks/roles/mailman/files/index.html
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body><h1>It works!</h1>
|
||||
<p>This is the default web page for this server.</p>
|
||||
<p>The web server software is running but no content has been added, yet.</p>
|
||||
</body></html>
|
9
playbooks/roles/mailman/files/mk-archives-index
Executable file
9
playbooks/roles/mailman/files/mk-archives-index
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
for site in `cut -d: -f1 /etc/mailman/sites | sort`; do
|
||||
echo "$site:"
|
||||
dir=`grep ^${site}: /etc/mailman/sites | cut -d' ' -f2`
|
||||
for ml in `ls ${dir}/archives/public/ | sort`; do
|
||||
echo " - $ml"
|
||||
done
|
||||
done
|
45
playbooks/roles/mailman/files/mm_cfg_multihost.py
Normal file
45
playbooks/roles/mailman/files/mm_cfg_multihost.py
Normal file
@ -0,0 +1,45 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
if 'MAILMAN_SITE_DIR' not in os.environ:
|
||||
print("Please set MAILMAN_SITE_DIR")
|
||||
# Exit 0 to avoid confusing the dpkg scripts
|
||||
sys.exit(0)
|
||||
|
||||
sys.path.insert(0, os.path.join(os.environ['MAILMAN_SITE_DIR'], 'etc'))
|
||||
from mm_cfg_local import *
|
||||
|
||||
VAR_PREFIX = os.environ['MAILMAN_SITE_DIR']
|
||||
|
||||
# Useful directories
|
||||
LIST_DATA_DIR = os.path.join(VAR_PREFIX, 'lists')
|
||||
LOG_DIR = os.path.join(VAR_PREFIX, 'logs')
|
||||
LOCK_DIR = os.path.join(VAR_PREFIX, 'locks')
|
||||
DATA_DIR = os.path.join(VAR_PREFIX, 'data')
|
||||
SPAM_DIR = os.path.join(VAR_PREFIX, 'spam')
|
||||
WRAPPER_DIR = os.path.join(EXEC_PREFIX, 'mail')
|
||||
BIN_DIR = os.path.join(PREFIX, 'bin')
|
||||
SCRIPTS_DIR = os.path.join(PREFIX, 'scripts')
|
||||
TEMPLATE_DIR = os.path.join(VAR_PREFIX, 'templates')
|
||||
MESSAGES_DIR = os.path.join(PREFIX, 'messages')
|
||||
PUBLIC_ARCHIVE_FILE_DIR = os.path.join(VAR_PREFIX, 'archives', 'public')
|
||||
PRIVATE_ARCHIVE_FILE_DIR = os.path.join(VAR_PREFIX, 'archives', 'private')
|
||||
|
||||
# Directories used by the qrunner subsystem
|
||||
QUEUE_DIR = os.path.join(VAR_PREFIX, 'qfiles')
|
||||
INQUEUE_DIR = os.path.join(QUEUE_DIR, 'in')
|
||||
OUTQUEUE_DIR = os.path.join(QUEUE_DIR, 'out')
|
||||
CMDQUEUE_DIR = os.path.join(QUEUE_DIR, 'commands')
|
||||
BOUNCEQUEUE_DIR = os.path.join(QUEUE_DIR, 'bounces')
|
||||
NEWSQUEUE_DIR = os.path.join(QUEUE_DIR, 'news')
|
||||
ARCHQUEUE_DIR = os.path.join(QUEUE_DIR, 'archive')
|
||||
SHUNTQUEUE_DIR = os.path.join(QUEUE_DIR, 'shunt')
|
||||
VIRGINQUEUE_DIR = os.path.join(QUEUE_DIR, 'virgin')
|
||||
BADQUEUE_DIR = os.path.join(QUEUE_DIR, 'bad')
|
||||
RETRYQUEUE_DIR = os.path.join(QUEUE_DIR, 'retry')
|
||||
MAILDIR_DIR = os.path.join(QUEUE_DIR, 'maildir')
|
||||
|
||||
# Other useful files
|
||||
PIDFILE = os.path.join(VAR_PREFIX, 'run', 'mailman.pid')
|
||||
SITE_PW_FILE = os.path.join(DATA_DIR, 'adm.pw')
|
||||
LISTCREATOR_PW_FILE = os.path.join(DATA_DIR, 'creator.pw')
|
2
playbooks/roles/mailman/files/robots.txt
Normal file
2
playbooks/roles/mailman/files/robots.txt
Normal file
@ -0,0 +1,2 @@
|
||||
User-agent: SemrushBot
|
||||
Disallow: /
|
9
playbooks/roles/mailman/handlers/main.yaml
Normal file
9
playbooks/roles/mailman/handlers/main.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
- name: mailman restart apache2
|
||||
service:
|
||||
name: apache2
|
||||
state: restarted
|
||||
|
||||
- name: mailman reload apache2
|
||||
service:
|
||||
name: apache2
|
||||
state: reloaded
|
128
playbooks/roles/mailman/tasks/main.yaml
Normal file
128
playbooks/roles/mailman/tasks/main.yaml
Normal file
@ -0,0 +1,128 @@
|
||||
- name: Install apache2
|
||||
package:
|
||||
name:
|
||||
- apache2
|
||||
- apache2-utils
|
||||
state: present
|
||||
|
||||
- name: Apache modules
|
||||
apache2_module:
|
||||
state: present
|
||||
name: "{{ a2_mod }}"
|
||||
loop:
|
||||
- rewrite
|
||||
- cgid
|
||||
- ssl
|
||||
loop_control:
|
||||
loop_var: a2_mod
|
||||
notify: mailman restart apache2
|
||||
|
||||
- name: Install mailman
|
||||
package:
|
||||
name:
|
||||
- mailman
|
||||
state: present
|
||||
|
||||
# Install index.html, robots.txt
|
||||
- name: Install mailman index.html
|
||||
copy:
|
||||
src: index.html
|
||||
dest: /var/www/index.html
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0444'
|
||||
|
||||
- name: Install mailman robots.txt
|
||||
copy:
|
||||
src: robots.txt
|
||||
dest: /var/www/robots.txt
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0444'
|
||||
|
||||
- name: multihost mailman configs
|
||||
block:
|
||||
- name: Create multihost dir
|
||||
file:
|
||||
path: /srv/mailman
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
- name: Install multihost mailman config
|
||||
copy:
|
||||
src: mm_cfg_multihost.py
|
||||
dest: /etc/mailman/mm_cfg.py
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0444'
|
||||
- name: Install mailman mk-archives-index
|
||||
copy:
|
||||
src: mk-archives-index
|
||||
dest: /usr/local/sbin/mk-archives-index
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0744'
|
||||
- name: Set cron PATH for mk-archives-index
|
||||
cron:
|
||||
name: PATH
|
||||
env: yes
|
||||
job: /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
|
||||
- name: Enable mk-archives-index cron
|
||||
cron:
|
||||
name: "mk-archives-index cron"
|
||||
state: present
|
||||
job: mk-archives-index > /var/www/archives.yaml
|
||||
minute: "0"
|
||||
hour: "0"
|
||||
- name: Create mm sites file
|
||||
template:
|
||||
src: sites.j2
|
||||
dest: /etc/mailman/sites
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0444'
|
||||
- name: Create mailman sites and lists
|
||||
include_role:
|
||||
name: mailman-site
|
||||
vars:
|
||||
mailman_site: "{{ site }}"
|
||||
loop: "{{ mailman_sites }}"
|
||||
loop_control:
|
||||
loop_var: site
|
||||
when: mailman_multihost
|
||||
|
||||
- name: normal mailman configs
|
||||
block:
|
||||
- name: Install normal mailman config
|
||||
template:
|
||||
src: mm_cfg.py.j2
|
||||
dest: /etc/mailman/mm_cfg.py
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0444'
|
||||
- name: Create normal mailman vhost config
|
||||
template:
|
||||
src: mailman.vhost.j2
|
||||
dest: "/etc/apache2/sites-enabled/50-{{ mailman_listdomain }}.conf"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: mailman reload apache2
|
||||
- name: Enable mailman site service
|
||||
service:
|
||||
name: "mailman"
|
||||
enabled: yes
|
||||
- name: Create mailman site lists
|
||||
include_role:
|
||||
name: mailman-list
|
||||
vars:
|
||||
mm_site_name: "_default"
|
||||
mm_list_name: "{{ list.name }}"
|
||||
mm_list_description: "{{ list.description }}"
|
||||
mm_list_admin: "{{ list.admin }}"
|
||||
mm_list_password: "{{ list.password }}"
|
||||
loop: "{{ mailman_lists }}"
|
||||
loop_control:
|
||||
loop_var: list
|
||||
when: not mailman_multihost
|
61
playbooks/roles/mailman/templates/mailman.vhost.j2
Normal file
61
playbooks/roles/mailman/templates/mailman.vhost.j2
Normal file
@ -0,0 +1,61 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName {{ mailman_listdomain }}
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/{{ mailman_listdomain }}-error.log
|
||||
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
LogLevel warn
|
||||
|
||||
CustomLog ${APACHE_LOG_DIR}/{{ mailman_listdomain }}-access.log combined
|
||||
|
||||
DocumentRoot /var/www
|
||||
|
||||
RewriteEngine on
|
||||
RewriteRule ^/$ /cgi-bin/mailman/listinfo [R]
|
||||
|
||||
# We can find mailman here:
|
||||
ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/
|
||||
# And the public archives:
|
||||
Alias /pipermail/ /var/lib/mailman/archives/public/
|
||||
# Logos:
|
||||
Alias /images/mailman/ /usr/share/images/mailman/
|
||||
|
||||
# Use this if you don't want the "cgi-bin" component in your URL:
|
||||
# In case you want to access mailman through a shorter URL you should enable
|
||||
# this:
|
||||
#ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
|
||||
# In this case you need to set the DEFAULT_URL_PATTERN in
|
||||
# /etc/mailman/mm_cfg.py to http://%s/mailman/ for the cookie
|
||||
# authentication code to work. Note that you need to change the base
|
||||
# URL for all the already-created lists as well.
|
||||
|
||||
<Directory /usr/lib/cgi-bin/mailman/>
|
||||
AllowOverride None
|
||||
Options ExecCGI
|
||||
AddHandler cgi-script .cgi
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
<Directory /var/lib/mailman/archives/public/>
|
||||
Options FollowSymlinks
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
<Directory /usr/share/images/mailman/>
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
|
||||
</VirtualHost>
|
119
playbooks/roles/mailman/templates/mm_cfg.py.j2
Normal file
119
playbooks/roles/mailman/templates/mm_cfg.py.j2
Normal file
@ -0,0 +1,119 @@
|
||||
# -*- python -*-
|
||||
|
||||
# Copyright (C) 1998,1999,2000 by the Free Software Foundation, Inc.
|
||||
#
|
||||
# This program 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 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program 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 this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301 USA
|
||||
|
||||
|
||||
"""This is the module which takes your site-specific settings.
|
||||
|
||||
From a raw distribution it should be copied to mm_cfg.py. If you
|
||||
already have an mm_cfg.py, be careful to add in only the new settings
|
||||
you want. The complete set of distributed defaults, with annotation,
|
||||
are in ./Defaults. In mm_cfg, override only those you want to
|
||||
change, after the
|
||||
|
||||
from Defaults import *
|
||||
|
||||
line (see below).
|
||||
|
||||
Note that these are just default settings - many can be overridden via the
|
||||
admin and user interfaces on a per-list or per-user basis.
|
||||
|
||||
Note also that some of the settings are resolved against the active list
|
||||
setting by using the value as a format string against the
|
||||
list-instance-object's dictionary - see the distributed value of
|
||||
DEFAULT_MSG_FOOTER for an example."""
|
||||
|
||||
|
||||
#######################################################
|
||||
# Here's where we get the distributed defaults. #
|
||||
|
||||
from Defaults import *
|
||||
|
||||
##############################################################
|
||||
# Put YOUR site-specific configuration below, in mm_cfg.py . #
|
||||
# See Defaults.py for explanations of the values. #
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# The name of the list Mailman uses to send password reminders
|
||||
# and similar. Don't change if you want mailman-owner to be
|
||||
# a valid local part.
|
||||
MAILMAN_SITE_LIST = 'mailman'
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# If you change these, you have to configure your http server
|
||||
# accordingly (Alias and ScriptAlias directives in most httpds)
|
||||
DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/'
|
||||
PRIVATE_ARCHIVE_URL = '/cgi-bin/mailman/private'
|
||||
IMAGE_LOGOS = '/images/mailman/'
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Default domain for email addresses of newly created MLs
|
||||
DEFAULT_EMAIL_HOST = '{{ mailman_listdomain }}'
|
||||
#-------------------------------------------------------------
|
||||
# Default host for web interface of newly created MLs
|
||||
DEFAULT_URL_HOST = '{{ mailman_listdomain }}'
|
||||
#-------------------------------------------------------------
|
||||
# Required when setting any of its arguments.
|
||||
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# The default language for this server.
|
||||
DEFAULT_SERVER_LANGUAGE = 'en'
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Iirc this was used in pre 2.1, leave it for now
|
||||
USE_ENVELOPE_SENDER = 0 # Still used?
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Unset send_reminders on newly created lists
|
||||
DEFAULT_SEND_REMINDERS = 0
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Uncomment this if you configured your MTA such that it
|
||||
# automatically recognizes newly created lists.
|
||||
# (see /usr/share/doc/mailman/README.Exim4.Debian or
|
||||
# /usr/share/mailman/postfix-to-mailman.py)
|
||||
MTA=None # Misnomer, suppresses alias output on newlist
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Uncomment if you use Postfix virtual domains (but not
|
||||
# postfix-to-mailman.py), but be sure to see
|
||||
# /usr/share/doc/mailman/README.Debian first.
|
||||
# MTA='Postfix'
|
||||
|
||||
#-------------------------------------------------------------
|
||||
# Uncomment if you want to filter mail with SpamAssassin. For
|
||||
# more information please visit this website:
|
||||
# http://www.jamesh.id.au/articles/mailman-spamassassin/
|
||||
# GLOBAL_PIPELINE.insert(1, 'SpamAssassin')
|
||||
|
||||
# Note - if you're looking for something that is imported from mm_cfg, but you
|
||||
# didn't find it above, it's probably in /usr/lib/mailman/Mailman/Defaults.py.
|
||||
|
||||
# Enable VERP, but let Exim create the VERP addresses since it's
|
||||
# more efficient. --jeblair
|
||||
|
||||
VERP_PASSWORD_REMINDERS = 1
|
||||
VERP_PERSONALIZED_DELIVERIES = 1
|
||||
VERP_CONFIRMATIONS = 1
|
||||
VERP_DELIVERY_INTERVAL = 0
|
||||
|
||||
# Make membership viewable by admin only by default (lp bug 1021493)
|
||||
# Private_roster == 0: anyone can see, 1: members only, 2: admin only.
|
||||
DEFAULT_PRIVATE_ROSTER = 2
|
||||
|
3
playbooks/roles/mailman/templates/sites.j2
Normal file
3
playbooks/roles/mailman/templates/sites.j2
Normal file
@ -0,0 +1,3 @@
|
||||
{% for site in mailman_sites %}
|
||||
{{ site.listdomain }}: /srv/mailman/{{ site.name }}
|
||||
{% endfor %}
|
5
playbooks/service-lists.yaml
Normal file
5
playbooks/service-lists.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
- hosts: "mailman:!disabled"
|
||||
name: "Configure mailman servers"
|
||||
roles:
|
||||
- iptables
|
||||
- mailman
|
@ -79,6 +79,7 @@
|
||||
- host_vars/letsencrypt01.opendev.org.yaml
|
||||
- host_vars/letsencrypt02.opendev.org.yaml
|
||||
- host_vars/lists.openstack.org.yaml
|
||||
- host_vars/lists.katacontainers.io.yaml
|
||||
- host_vars/gitea99.opendev.org.yaml
|
||||
- host_vars/grafana01.opendev.org.yaml
|
||||
- host_vars/mirror01.openafs.provider.opendev.org.yaml
|
||||
|
@ -0,0 +1,2 @@
|
||||
mailman_list_password: notarealpassword
|
||||
mailman_test_mode: true
|
@ -1 +1,2 @@
|
||||
listpassword: notarealpassword
|
||||
mailman_list_password: notarealpassword
|
||||
mailman_test_mode: true
|
||||
|
17
testinfra/test_lists_k_i.py
Normal file
17
testinfra/test_lists_k_i.py
Normal file
@ -0,0 +1,17 @@
|
||||
# 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.katacontainers.io']
|
||||
|
||||
def test_mm_list_is_present(host):
|
||||
cmd = host.run('list_lists --bare')
|
||||
assert 'kata-dev' in cmd.stdout
|
29
testinfra/test_lists_o_o.py
Normal file
29
testinfra/test_lists_o_o.py
Normal file
@ -0,0 +1,29 @@
|
||||
# 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('MAILMAN_SITE_DIR=/srv/mailman/airship list_lists --bare')
|
||||
assert 'airship-discuss' in cmd.stdout
|
||||
|
||||
cmd = host.run('MAILMAN_SITE_DIR=/srv/mailman/opendev list_lists --bare')
|
||||
assert 'service-discuss' in cmd.stdout
|
||||
|
||||
cmd = host.run('MAILMAN_SITE_DIR=/srv/mailman/openstack list_lists --bare')
|
||||
assert 'openstack-discuss' in cmd.stdout
|
||||
|
||||
cmd = host.run('MAILMAN_SITE_DIR=/srv/mailman/starlingx list_lists --bare')
|
||||
assert 'starlingx-discuss' in cmd.stdout
|
||||
|
||||
cmd = host.run('MAILMAN_SITE_DIR=/srv/mailman/zuul list_lists --bare')
|
||||
assert 'zuul-discuss' in cmd.stdout
|
@ -204,20 +204,25 @@
|
||||
label: ubuntu-bionic
|
||||
- name: lists.openstack.org
|
||||
label: ubuntu-xenial
|
||||
- name: lists.katacontainers.io
|
||||
label: ubuntu-xenial
|
||||
required-projects:
|
||||
- opendev/ansible-role-puppet
|
||||
- opendev/system-config
|
||||
files:
|
||||
- playbooks/install-ansible.yaml
|
||||
- modules/openstack_project/manifests/lists.pp
|
||||
- inventory/service/host_vars/lists.openstack.org.yaml
|
||||
- inventory/service/group_vars/puppet
|
||||
- playbooks/roles/run-puppet/
|
||||
- playbooks/roles/install-ansible-roles/
|
||||
- inventory/service/host_vars/lists.katacontainers.io.yaml
|
||||
- inventory/service/group_vars/mailman.yaml
|
||||
- playbooks/roles/base/exim
|
||||
- playbooks/roles/mailman
|
||||
- playbooks/service-lists.yaml
|
||||
- playbooks/zuul/templates/host_vars/lists.openstack.org.yaml.j2
|
||||
- playbooks/zuul/templates/host_vars/lists.katacontainers.io.yaml.j2
|
||||
vars:
|
||||
run_playbooks:
|
||||
- playbooks/remote_puppet_else.yaml
|
||||
- playbooks/service-lists.yaml
|
||||
# Run this twice to check idempotency
|
||||
- playbooks/service-lists.yaml
|
||||
|
||||
- job:
|
||||
name: system-config-run-nodepool
|
||||
|
Loading…
x
Reference in New Issue
Block a user