aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJeffrey Zhang <zhang.lei.fly@gmail.com>2017-09-29 08:36:33 +0800
committerJeffrey Zhang <zhang.lei.fly@gmail.com>2017-10-19 10:34:03 +0800
commitb64198cce099934a9389a34522c73e2bb65e399d (patch)
tree042c20f1f34aa1bf4ca484024ff505b1f8b458d8 /tests
parent2ef0bd51a93a3d0d5e963824a7e5fb2ea556239e (diff)
downloadkolla-b64198cce099934a9389a34522c73e2bb65e399d.tar.gz
kolla-b64198cce099934a9389a34522c73e2bb65e399d.zip
Moving jobs to kolla repo
This is zuulv3 migration patch. This patch only implement build jobs. Deploy jobs will be pushed in another one. Partial-Bug: #1720601 Change-Id: Ib9157ed132820d752ef1dbd7a53353ebd68b1934
Diffstat (limited to 'tests')
-rw-r--r--tests/playbooks/post.yml79
-rw-r--r--tests/playbooks/pre.yml13
-rw-r--r--tests/playbooks/run.yml51
3 files changed, 143 insertions, 0 deletions
diff --git a/tests/playbooks/post.yml b/tests/playbooks/post.yml
new file mode 100644
index 000000000..345ccab04
--- /dev/null
+++ b/tests/playbooks/post.yml
@@ -0,0 +1,79 @@
+- hosts: all
+ tasks:
+ - shell:
+ cmd: |
+ set +o errexit
+ mkdir -p logs
+ # copy system log
+
+ sudo cp -r /var/log logs/system_log
+
+ if which journalctl ; then
+ # the journal gives us syslog() and kernel output, so is like
+ # a concatenation of the above.
+ sudo journalctl --no-pager | sudo tee logs/syslog.txt > /dev/null
+ sudo journalctl --no-pager -u docker.service | sudo tee logs/docker.log > /dev/null
+ else
+ # assume rsyslog
+ sudo cp /var/log/syslog logs/syslog.txt
+ sudo cp /var/log/kern.log logs/kern_log.txt
+ sudo cp /var/log/upstart/docker.log logs/docker.log
+ fi
+
+ if sudo test -d /var/lib/docker/volumes/kolla_logs/_data; then
+ sudo cp -r /var/lib/docker/volumes/kolla_logs/_data logs/kolla_logs
+ fi
+
+ # sudo config
+ sudo cp -r /etc/sudoers.d logs/
+ sudo cp /etc/sudoers logs/sudoers.txt
+
+ df -h > logs/df.txt
+ free > logs/free.txt
+ sudo parted -l | sudo tee logs/parted-l.txt > /dev/null
+ mount > logs/mount.txt
+ env > logs/env.txt
+
+ if [ `command -v dpkg` ]; then
+ dpkg -l | sudo tee logs/dpkg-l.txt > /dev/null
+ fi
+ if [ `command -v rpm` ]; then
+ rpm -qa | sudo tee logs/rpm-qa.txt > /dev/null
+ fi
+
+ # final memory usage and process list
+ ps -eo user,pid,ppid,lwp,%cpu,%mem,size,rss,cmd > logs/ps.txt
+
+ # docker related information
+ (docker info && docker images && docker ps -a) > logs/docker-info.txt
+
+ sudo cp -r /etc/kolla logs/kolla_configs
+
+ # fix the permissions for logs folder
+ sudo chmod -R 777 logs
+
+ # rename files to .txt; this is so that when displayed via
+ # logs.openstack.org clicking results in the browser shows the
+ # files, rather than trying to send it to another app or make you
+ # download it, etc.
+
+ # firstly, rename all .log files to .txt files
+ for f in $(find logs -name "*.log"); do
+ sudo mv $f ${f/.log/.txt}
+ done
+
+ # append .txt to all kolla config file
+ find logs/kolla_configs -type f -exec mv '{}' '{}'.txt \;
+
+ # Compress all text logs
+ find logs -iname '*.txt' -execdir gzip -9 {} \+
+ find logs -iname '*.json' -execdir gzip -9 {} \+
+ executable: /bin/bash
+ chdir: "{{ zuul.project.src_dir }}"
+
+ - synchronize:
+ src: '{{ zuul.project.src_dir }}/logs'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
diff --git a/tests/playbooks/pre.yml b/tests/playbooks/pre.yml
new file mode 100644
index 000000000..4be5f1375
--- /dev/null
+++ b/tests/playbooks/pre.yml
@@ -0,0 +1,13 @@
+- hosts: all
+ become: true
+
+ tasks:
+ - name: Install dbus for debian system
+ apt: name=dbus
+ when: ansible_os_family == 'Debian'
+
+ - name: Install ansible
+ pip:
+ name: ansible
+ when:
+ - inventory_hostname == "primary"
diff --git a/tests/playbooks/run.yml b/tests/playbooks/run.yml
new file mode 100644
index 000000000..5d08a21a5
--- /dev/null
+++ b/tests/playbooks/run.yml
@@ -0,0 +1,51 @@
+- hosts: all
+ vars:
+ kolla_inventory_path: "{{ zuul.project.src_dir }}/inventory"
+ tasks:
+ - name: generate kolla inventory file
+ copy:
+ dest: "{{ kolla_inventory_path }}"
+ content: |
+ {% for host in hostvars %}
+ {{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user={{ hostvars[host]['ansible_user'] }}
+ {% endfor %}
+
+ - name: setup logging
+ shell:
+ cmd: |
+ mkdir logs
+ ln -s $(pwd)/logs /tmp/logs
+ mkdir -p /tmp/logs/{ansible,build,kolla,kolla_configs,system_logs}
+ executable: /bin/bash
+ chdir: "{{ zuul.project.src_dir }}"
+
+ - name: copy setup script
+ copy:
+ src: "{{ zuul.executor.work_root }}/{{ zuul.project.src_dir }}/tools/setup_{{ ansible_os_family }}.sh"
+ dest: /tmp/setup.sh
+ mode: 0755
+
+ - name: run node setup script
+ shell: /tmp/setup.sh
+ become: true
+
+ - name: changing permission of Docker socket to 666
+ file:
+ path: /run/docker.sock
+ mode: 666
+ become: true
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+
+ export ACTION={{ action }}
+ export BASE_DISTRO={{ base_distro }}
+ export INSTALL_TYPE={{ install_type }}
+ export IN_PROJECT_JOBS=1
+
+ tools/gate_run.sh
+ executable: /bin/bash
+ chdir: "{{ zuul.project.src_dir }}"
+ environment: '{{ zuul | zuul_legacy_vars }}'