summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Cline <jeremy@jcline.org>2017-04-10 19:42:22 +0000
committerJeremy Cline <jeremy@jcline.org>2017-04-10 19:42:22 +0000
commitb1d69ac2bc5ac96f59b679db71ef459574009f2c (patch)
tree8ab0c25718d95671528203da8cae51084f0f7d66
parent4c6c10a1fdf7e70d7d43de9e72e87e90dc00cd95 (diff)
downloadansible-b1d69ac2bc5ac96f59b679db71ef459574009f2c.tar.gz
ansible-b1d69ac2bc5ac96f59b679db71ef459574009f2c.tar.xz
ansible-b1d69ac2bc5ac96f59b679db71ef459574009f2c.zip
Update the FMN role and playbook for 1.2.0
Packages have been combined, some new configuration files are required, and database migrations have been relocated. Signed-off-by: Jeremy Cline <jeremy@jcline.org>
-rw-r--r--playbooks/manual/upgrade/fmn.yml7
-rw-r--r--roles/notifs/backend/tasks/main.yml35
-rw-r--r--roles/notifs/backend/templates/alembic.ini4
-rw-r--r--roles/notifs/backend/templates/fmn.sse.py31
4 files changed, 76 insertions, 1 deletions
diff --git a/playbooks/manual/upgrade/fmn.yml b/playbooks/manual/upgrade/fmn.yml
index af6e845f5..3f65b5294 100644
--- a/playbooks/manual/upgrade/fmn.yml
+++ b/playbooks/manual/upgrade/fmn.yml
@@ -18,7 +18,11 @@
yum: name="python-fmn*" state=latest
when: not testing
- name: yum update FMN packages from testing repo
- yum: name="python-fmn*" state=latest enablerepo=infrastructure-testing
+ yum: pkg={{ item }} state=latest enablerepo=infrastructure-testing
+ with_items:
+ - python-fmn
+ - python-fmn-sse
+ - python-fmn-web
when: testing
- name: verify the frontend and stop it
@@ -77,6 +81,7 @@
- name: Upgrade the database
command: /usr/bin/alembic -c /usr/share/fmn.lib/alembic.ini upgrade head
+ when: env != "staging"
args:
chdir: /usr/share/fmn.lib/
diff --git a/roles/notifs/backend/tasks/main.yml b/roles/notifs/backend/tasks/main.yml
index 1675fb54d..59d5b8ad1 100644
--- a/roles/notifs/backend/tasks/main.yml
+++ b/roles/notifs/backend/tasks/main.yml
@@ -13,6 +13,16 @@
- notifs
- notifs/backend
+- name: install backend and sse packages
+ yum: pkg={{ item }} state=present
+ with_items:
+ - python-fmn
+ - python-fmn-sse
+ when: env == "staging"
+ tags:
+ - notifs
+ - notifs/backend
+
- name: copy database configuration
template: >
src={{ item }} dest=/etc/fedmsg.d/{{ item }}
@@ -25,10 +35,35 @@
- notifs
- notifs/backend
+- name: Install fmn SSE configuration
+ template: >
+ src={{ item }} dest=/etc/fedmsg.d/{{ item }}
+ owner=fedmsg group=fedmsg mode=0600
+ with_items:
+ - fmn.sse.py
+ when: env == "staging"
+ notify:
+ - restart fedmsg-hub
+ tags:
+ - notifs
+ - notifs/backend
+
- name: copy the alembic configuration for DBAs
template: >
src=alembic.ini dest=/usr/share/fmn.lib/alembic.ini
owner=root group=sysadmin-dba mode=0660
+ when: env != "staging"
+ notify:
+ - restart fedmsg-hub
+ tags:
+ - notifs
+ - notifs/backend
+
+- name: copy the alembic configuration for DBAs
+ template: >
+ src=alembic.ini dest=/usr/share/fmn/alembic.ini
+ owner=root group=sysadmin-dba mode=0660
+ when: env == "staging"
notify:
- restart fedmsg-hub
tags:
diff --git a/roles/notifs/backend/templates/alembic.ini b/roles/notifs/backend/templates/alembic.ini
index 49c7b6bd2..df1506d21 100644
--- a/roles/notifs/backend/templates/alembic.ini
+++ b/roles/notifs/backend/templates/alembic.ini
@@ -2,7 +2,11 @@
[alembic]
# path to migration scripts
+{% if env == 'staging' %}
+script_location = /usr/share/fmn/alembic/
+{% else %}
script_location = /usr/share/fmn.lib/alembic/
+{% endif %}
# template used to generate migration files
# file_template = %%(rev)s_%%(slug)s
diff --git a/roles/notifs/backend/templates/fmn.sse.py b/roles/notifs/backend/templates/fmn.sse.py
new file mode 100644
index 000000000..8c078b6c4
--- /dev/null
+++ b/roles/notifs/backend/templates/fmn.sse.py
@@ -0,0 +1,31 @@
+config = {
+
+ # SSE
+ "fmn.sse.pika.host": "localhost",
+ "fmn.sse.pika.port": 5672,
+ "fmn.sse.pika.msg_expiration": 3600000, # 1 hour in ms
+
+ # SSE Web server configuration
+ "fmn.sse.webserver.tcp_port": 8080,
+ # A list of interfaces to listen to ('127.0.0.1', for example); if none
+ # are specified the server listens on all available interfaces.
+ 'fmn.sse.webserver.interfaces': [],
+
+ # A regular expression using the standard Python re syntax that defines a
+ # whitelist of queues exposed by the SSE server.
+ 'fmn.sse.webserver.queue_whitelist': '.+\.id\.fedoraproject\.org$',
+
+ # A regular expression using the standard Python re syntax that defines a
+ # blacklist for queues exposed by the SSE server. Any queue name that is
+ # matched by the regular expression will return a HTTP 403 to the client.
+ #
+ # Note: This is applied _after_ the whitelist so if the queue is matched
+ # by both regular expressions, the queue _will not_ be served.
+ 'fmn.sse.webserver.queue_blacklist': None,
+
+ # The value to use with the 'Access-Control-Allow-Origin' HTTP header
+ 'fmn.sse.webserver.allow_origin': '*',
+
+ # Define how many messages to prefetch from the AMQP server
+ 'fmn.sse.pika.prefetch_count': 5,
+}