From 818e65a72d3b6ec44763e09f49ad71431847e200 Mon Sep 17 00:00:00 2001 From: Paul Belanger Date: Thu, 17 Jan 2019 22:18:12 -0500 Subject: [PATCH] Initial commit This the initial framework for testing, plus playbook to stop / start / restart zuul. Change-Id: Ic941dc8517591c7487c1d901ff7cf2ebb7e7e3ff Signed-off-by: Paul Belanger --- .gitignore | 1 + .yamllint | 13 ++++++ .zuul.d/projects.yaml | 8 ++++ playbooks/zuul/stop.yaml | 88 ++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + test-requirements.txt | 3 ++ tox.ini | 24 +++++++++++ 7 files changed, 138 insertions(+) create mode 100644 .gitignore create mode 100644 .yamllint create mode 100644 .zuul.d/projects.yaml create mode 100644 playbooks/zuul/stop.yaml create mode 100644 requirements.txt create mode 100644 test-requirements.txt create mode 100644 tox.ini diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..172bf57 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.tox diff --git a/.yamllint b/.yamllint new file mode 100644 index 0000000..2ceb272 --- /dev/null +++ b/.yamllint @@ -0,0 +1,13 @@ +extends: default + +ignore: | + .tox + +rules: + braces: + max-spaces-inside: 1 + level: error + brackets: + max-spaces-inside: 1 + level: error + line-length: disable diff --git a/.zuul.d/projects.yaml b/.zuul.d/projects.yaml new file mode 100644 index 0000000..7ccbd0a --- /dev/null +++ b/.zuul.d/projects.yaml @@ -0,0 +1,8 @@ +--- +- project: + check: + jobs: + - openstack-tox-linters + gate: + jobs: + - openstack-tox-linters diff --git a/playbooks/zuul/stop.yaml b/playbooks/zuul/stop.yaml new file mode 100644 index 0000000..36466fd --- /dev/null +++ b/playbooks/zuul/stop.yaml @@ -0,0 +1,88 @@ +# Copyright 2018 Red Hat, Inc. +# +# 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. +--- +- hosts: zuul-executor + tasks: + - name: stopping zuul-executor + become: true + systemd: + name: zuul-executor + state: stopped + register: result + + - name: Wait for (3h10m) to stop zuul-executor + wait_for: + path: "/proc/{{ result.status.MainPID }}/status" + state: absent + timeout: 11400 + +- hosts: zuul-merger + tasks: + - name: stopping zuul-merger + become: true + systemd: + name: zuul-merger + state: stopped + register: result + + - name: Wait for (3h10m) to stop zuul-merger + wait_for: + path: "/proc/{{ result.status.MainPID }}/status" + state: absent + timeout: 11400 + +- hosts: zuul-web + tasks: + - name: stopping zuul-web + become: true + systemd: + name: zuul-web + state: stopped + register: result + + - name: Wait for (3h10m) to stop zuul-web + wait_for: + path: "/proc/{{ result.status.MainPID }}/status" + state: absent + timeout: 11400 + +- hosts: zuul-fingergw + tasks: + - name: stopping zuul-fingergw + become: true + systemd: + name: zuul-fingergw + state: stopped + register: result + + - name: Wait for (3h10m) to stop zuul-fingergw + wait_for: + path: "/proc/{{ result.status.MainPID }}/status" + state: absent + timeout: 11400 + +- hosts: zuul-scheduler + tasks: + - name: stopping zuul-scheduler + become: true + systemd: + name: zuul-scheduler + state: stopped + register: result + + - name: Wait for (3h10m) to stop zuul-scheduler + wait_for: + path: "/proc/{{ result.status.MainPID }}/status" + state: absent + timeout: 11400 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..f3a3f52 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +ansible>=2.4.0 diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000..e5f0e56 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,3 @@ +hacking<0.11,>=0.10 +ansible-lint +yamllint diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..9def50d --- /dev/null +++ b/tox.ini @@ -0,0 +1,24 @@ +[tox] +minversion = 1.4.2 +envlist = linters +skipsdist = True + +[testenv] +deps = -r{toxinidir}/requirements.txt + -r{toxinidir}/test-requirements.txt + +[testenv:linters] +basepython = python3 +whitelist_externals = bash +commands = + yamllint -s . + flake8 + bash -c "ansible-lint -x 405 playbooks/*/*.yaml" + +[flake8] +# E123, E125 skipped as they are invalid PEP-8. + +show-source = True +ignore = E123,E125 +builtins = _ +exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build