Avoid re-stacking when not necessary

Also adds a swap file of 8GB

Change-Id: I50b7dcb5ca40c9840ae086006c9d868637d3b5d0
This commit is contained in:
Federico Ressi 2020-10-02 11:56:29 +02:00
parent d0d2c1c362
commit 9108be7e83
10 changed files with 99 additions and 13 deletions

5
Vagrantfile vendored
View File

@ -32,6 +32,9 @@ PROJECTS_DIR = File.dirname(ENV.fetch('PROJECTS_DIR', VAGRANTFILE_DIR))
GIT_BASE = ENV.fetch('GIT_BASE', 'https://opendev.org')
TOX_ENVLIST = ENV.fetch('TOX_ENVLIST', '')
TOX_EXTRA_ARGS = ENV.fetch('TOX_EXTRA_ARGS', '--notest')
# Local project directories to be copied
DEVSTACK_PROJECTS = {
# Local directory from where look for devstack project files
@ -120,6 +123,8 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
ansible.playbook = PROVISION_PLAYBOOK
ansible.extra_vars = ansible.extra_vars = {
'devstack_projects' => DEVSTACK_PROJECTS,
'tox_envlist' => TOX_ENVLIST,
'tox_extra_args' => TOX_EXTRA_ARGS,
}
end

View File

@ -4,7 +4,6 @@
vars:
resolv_conf_file: /etc/resolv.conf
dest_dir: /opt/stack
tox_extra_args: --notest
pre_tasks:

View File

@ -0,0 +1,5 @@
---
force_restack: false
stack_succeeded_file: '{{ devstack_dir }}/SUCCEEDED'
swap_file_size: 8192

View File

@ -0,0 +1,27 @@
---
- name: "Add a swap file of {{ swap_file_size }} MBytes"
become: true
become_user: root
shell:
cmd: |
# does the swap file already exist?
if grep -q "swapfile" /etc/fstab; then
echo 'swapfile found. No changes made.'
exit 0
fi
echo 'swapfile not found. Adding swapfile...'
set -ex
fallocate -l '{{ swap_file_size }}M' /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap defaults 0 0' >> /etc/fstab
echo 'swapfile added.'
exit 0
register: add_swap_file
changed_when: >-
'swapfile added' in add_swap_file.stdout

View File

@ -0,0 +1,38 @@
---
- when: not (force_restack | bool)
block:
- name: check file '{{ stack_succeeded_file }}' exists
stat:
path: '{{ stack_succeeded_file }}'
register: check_devstack_succeeded_file_exists
failed_when: no
- debug: var=check_devstack_succeeded_file_exists
- set_fact:
force_restack: >-
{{ not check_devstack_succeeded_file_exists.stat.exists |
default(true) |
bool }}
- debug: var=force_restack
- when: force_restack | bool
block:
- name: check file '{{ devstack_dir }}/local.conf' exists
stat:
path: '{{ devstack_dir }}/local.conf'
register: check_devstack_local_conf_file_exists
failed_when: no
- debug: var=check_devstack_local_conf_file_exists
- set_fact:
force_restack: >-
{{ check_devstack_local_conf_file_exists.stat.exists |
default(false) |
bool }}
- debug: var=force_restack

View File

@ -9,7 +9,6 @@
mode: '0755'
owner: stack
group: stack
recurse: yes
when: >-
( project_src_dir | length) > 0 or
( project_git_repo | length) > 0

View File

@ -1,5 +1,6 @@
---
- include_tasks: add-swap-file.yaml
- include_tasks: install-bindeps.yaml
- include_tasks: ensure-stack-user.yaml
- include_tasks: run-unstack.yaml

View File

@ -1,17 +1,24 @@
---
- include_tasks: check_restack.yaml
- name: run stack.sh
become: true
become_user: stack
shell:
cmd: |
sudo su -l stack -c "cd '{{ devstack_dir }}' && ./stack.sh" 2>&1
sudo su -l stack -c "
cd '{{ devstack_dir }}' &&
./stack.sh &&
touch '{{ stack_succeeded_file }}'
" 2>&1
rc=$?
echo "*** FINISHED ***"
exit $rc
chdir: '{{ devstack_dir }}'
register: run_stack
ignore_errors: true
when: force_restack | bool
- name: show stack.sh output

View File

@ -1,25 +1,23 @@
---
- name: check '{{ devstack_dir }}/local.conf' exists
stat:
path: '{{ devstack_dir }}/local.conf'
register: check_devstack_local_conf_file_exists
failed_when: no
- include_tasks: check_restack.yaml
- name: run unstack.sh
become: yes
become_user: stack
shell:
cmd: |
sudo su -l stack -c "cd '{{ devstack_dir }}' && ./unstack.sh" 2>&1
sudo su -l stack -c "
rm -f '{{ stack_succeeded_file }}';
cd '{{ devstack_dir }}' &&
./unstack.sh
" 2>&1
rc=$?
echo "*** FINISHED ***"
exit $rc
register: run_unstack
ignore_errors: yes
when:
check_devstack_local_conf_file_exists.stat.exists | default(False)
when: force_restack | bool
- debug: var=run_unstack.stdout_lines

View File

@ -1,6 +1,13 @@
---
- name: 'Run test cases: {{ tox_command_line }}'
- set_fact:
tox_command_line: "{{ tox_command_line | replace('\n', '') }}"
- debug: var=tox_command_line
- name: "Run test cases: {{ tox_command_line }}"
become: true
become_user: stack
shell: