add a check-compose role and activate it on openqa servers

I just killed the old BOS openqa deployment, which sends out
those 'compose check' emails, so I'm gonna go ahead and have
this new openqa deployment start sending out those emails a
little earlier than planned. This should result in both prod
and staging openqa running a compose check each day, but only
prod should actually send out an email report.
This commit is contained in:
Adam Williamson 2015-12-04 18:46:23 -08:00
parent b0736cd244
commit 09afa5ce5f
4 changed files with 87 additions and 1 deletions

View file

@ -17,7 +17,9 @@ openqa_secret: "{{ prod_openqa_apisecret }}"
wikitcms_user: coconut
wikitcms_password: "{{ prod_wikitcms_password }}"
openqa_workers: 3
check-compose_email-from: rawhide@fedoraproject.org
check-compose_email-to: "test@lists.fedoraproject.org devel@lists.fedoraproject.org"
check-compose_smtp: bastion.phx2.fedoraproject.org
deployment_type: prod

View file

@ -43,6 +43,7 @@
roles:
- { role: openqa/server, tags: ['openqa_server'] }
- { role: openqa/dispatcher, tags: ['openqa_dispatcher'] }
- { role: check-compose, tags: ['check-compose'] }
handlers:
- include: "{{ handlers }}/restart_services.yml"

View file

@ -0,0 +1,70 @@
# Optional vars
# - check-compose_wait
## string - (digits) time in minutes to wait for openQA tests to complete
## before sending the report (defaults to 480)
# - check-compose_email-from
## string - Email address to send report from (if not set, no report sent)
# - check-compose_email-to
## string - Email address to send report to (if not set but email-from
## set, report will go to email-from, for testing usually)
## Split multiple addresses with spaces
# - check-compose_smtp
## string - SMTP server to use for sending the report
# - check-compose_json
## string - File to append JSON-formatted report summary to
# - check-compose_loglevel
## string - log level
#
# NOTE: this is missing /etc/openqa/client.conf configuration, for now;
# we're assuming it'll be deployed on the openqa server boxes and hence
# client.conf will be in place (and localhost default would be correct
# anyhow)
- name: Install required packages
dnf: name={{ item }} state=present
with_items:
- fedfind
- python-six
tags:
- packages
- name: Check out openQA-python-client
git:
repo: https://github.com/os-autoinst/openQA-python-client.git
dest: /root/openQA-python-client
register: gitclient
- name: Check if python-client has ever been installed
command: "python -c 'import openqa_client'"
register: instclient
changed_when: "1 != 1"
failed_when: "1 != 1"
- name: Install openQA-python-client
command: "python setup.py install"
args:
chdir: /root/openQA-python-client
when: "gitclient|changed or instclient.rc > 0"
- name: Check out fedora-qa (where check-compose lives)
git:
repo: https://git.fedorahosted.org/git/fedora-qa.git
dest: /root/fedora-qa
register: gitqa
- name: Install check-compose
command: "make install"
args:
chdir: /root/fedora-qa/check-compose
when: "gitqa|changed"
- name: Install config file
template: src=check-compose.conf.j2 dest=/etc/check-compose.conf mode=0644
tags:
- config
- name: Enable and start timers
service: name=check-compose-{{ item }}.timer enabled=yes state=started
with_items:
- branched
- rawhide

View file

@ -0,0 +1,13 @@
[main]
{% if check-compose_wait is defined %}
wait: {{ check-compose_wait }}
{% if check-compose_email-from is defined %}
email-from: {{ check-compose_email-from }}
{% if check-compose_email-to is defined %}
email-to: {{ check-compose_email-to }}
{% if check-compose_smtp is defined %}
smtp: {{ check-compose_smtp }}
{% if check-compose_json is defined %}
json: {{ check-compose_json }}
{% if check-compose_loglevel is defined %}
loglevel: {{ check-compose_loglevel }}