diff options
author | 2017-10-26 09:49:20 +0000 | |
---|---|---|
committer | 2017-10-26 09:49:20 +0000 | |
commit | b90e6f66144309a1d9a63d8a29abf65a97ee31ad (patch) | |
tree | 800f20754ee48f9992d8217b976f1c151efb4a50 /xci/playbooks | |
parent | f2727f7ab48423e3950a42af96de60b2e1b7abfb (diff) | |
parent | 481f9031ff8cd0a3b0692c110af6c8e2d04460da (diff) |
Merge changes from topic 'add-role-hooks'
* changes:
xci: playbooks: Add generic playbook for scenarios to plug their roles
xci: Clone all XCI scenarios in advance similar to a-r-r
xci: xci-deploy.sh: Allow scenarios to overrides XCI variables.
Diffstat (limited to 'xci/playbooks')
-rw-r--r-- | xci/playbooks/bootstrap-scenarios.yml | 10 | ||||
-rw-r--r-- | xci/playbooks/configure-opnfvhost.yml | 1 | ||||
-rw-r--r-- | xci/playbooks/get-opnfv-scenario-requirements.yml | 61 | ||||
-rw-r--r-- | xci/playbooks/roles/.gitignore | 8 |
4 files changed, 80 insertions, 0 deletions
diff --git a/xci/playbooks/bootstrap-scenarios.yml b/xci/playbooks/bootstrap-scenarios.yml new file mode 100644 index 00000000..e7bd7dc9 --- /dev/null +++ b/xci/playbooks/bootstrap-scenarios.yml @@ -0,0 +1,10 @@ +--- +# +# This file is aimed to be used by scenarios to plug into the XCI. +# Ideally, all they need to do at this point is to include their +# role using a statement like the following one +# +# - name: Include foobar role +# include_role: +# name: "foobar" +# when: OPNFV_SCENARIO == "foobar" diff --git a/xci/playbooks/configure-opnfvhost.yml b/xci/playbooks/configure-opnfvhost.yml index faae623f..798fe522 100644 --- a/xci/playbooks/configure-opnfvhost.yml +++ b/xci/playbooks/configure-opnfvhost.yml @@ -98,6 +98,7 @@ shell: "/bin/cp -rf {{OPNFV_RELENG_PATH}}/xci/file/openstack_services.yml {{OPENSTACK_OSA_PATH}}/playbooks/defaults/repo_packages/openstack_services.yml" when: - OPENSTACK_OSA_VERSION != "master" + - include: bootstrap-scenarios.yml - name: bootstrap ansible on opnfv host command: "/bin/bash ./scripts/bootstrap-ansible.sh" args: diff --git a/xci/playbooks/get-opnfv-scenario-requirements.yml b/xci/playbooks/get-opnfv-scenario-requirements.yml new file mode 100644 index 00000000..23aa1d41 --- /dev/null +++ b/xci/playbooks/get-opnfv-scenario-requirements.yml @@ -0,0 +1,61 @@ +--- +# Copyright 2016, Rackspace US, Inc. +# Copyright 2017, SUSE LINUX GmbH. +# +# 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. + +- name: Clone the scenario requirements + hosts: localhost + connection: local + gather_facts: true + tasks: + - name: Remove target directory + file: + path: "{{ item.path | default(scenario_path_default) + '/' + item.scenario }}" + state: absent + when: + - item.scm == "git" or item.scm is undefined + with_items: "{{ scenarios }}" + + - name: Clone git repos (with git) + git: + repo: "{{ item.src }}" + dest: "{{ item.path | default(scenario_path_default) }}/{{ item.scenario | default(item.src | basename) }}" + version: "{{ item.version | default('master') }}" + refspec: "{{ item.refspec | default(omit) }}" + update: true + force: true + when: + - item.scm == "git" or item.scm is undefined + with_items: "{{ scenarios }}" + register: git_clone + until: git_clone | success + retries: "{{ git_clone_retries }}" + delay: "{{ git_clone_retry_delay }}" + + - name: Plug in the roles to XCI + file: + state: link + src: "{{ item.path | default(scenario_path_default) }}/{{ item.scenario | default(item.src | basename) }}/{{ item.role }}" + dest: "{{ role_path_default }}/{{ item.scenario }}" + force: yes + with_items: "{{ scenarios }}" + + vars: + ansible_python_interpreter: "/usr/bin/python" + scenarios: "{{ lookup('file', scenario_file) | from_yaml }}" + scenario_file: '../opnfv-scenario-requirements.yml' + scenario_path_default: "{{ lookup('env', 'XCI_PATH') }}/.cache/repos/scenarios" + role_path_default: "{{ playbook_dir }}/roles" + git_clone_retries: 2 + git_clone_retry_delay: 5 diff --git a/xci/playbooks/roles/.gitignore b/xci/playbooks/roles/.gitignore new file mode 100644 index 00000000..e0b47770 --- /dev/null +++ b/xci/playbooks/roles/.gitignore @@ -0,0 +1,8 @@ +* +!.gitignore +!clone-repository/ +!configure-network/ +!configure-nfs/ +!prepare-functest/ +!remote-folders/ +!synchronize-time/ |