New get-devstack-os-environment role
The role reads the OS_* variables set by devstack through openrc for the specified user and project and exports them as the os_env_vars fact. It is meant to be used as a porting aid for the jobs of the non-unified *clients only. This is useful to run functional tests against the generated environment. A slightly less generic version of this role is currently used by python-cinderclient and python-novaclient (get-os-environment). In order to make this more useful, call it from devstack-tox-functional and derived jobs. The role execution is disabled by default and it can be enabled by setting openrc_enable_export: true. Change-Id: I15f5a187dbc54c82e8f4a08b4bb58d56e0d66961
This commit is contained in:
parent
52e52d8937
commit
6fba3fdfa1
@ -7,4 +7,6 @@
|
|||||||
bindep_dir: "{{ zuul_work_dir }}"
|
bindep_dir: "{{ zuul_work_dir }}"
|
||||||
- test-setup
|
- test-setup
|
||||||
- ensure-tox
|
- ensure-tox
|
||||||
- tox
|
- get-devstack-os-environment
|
||||||
|
- role: tox
|
||||||
|
tox_environment: "{{ os_env_vars|default({}) }}"
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
- hosts: all
|
- hosts: all
|
||||||
roles:
|
roles:
|
||||||
- tox
|
- get-devstack-os-environment
|
||||||
|
- role: tox
|
||||||
|
tox_environment: "{{ os_env_vars|default({}) }}"
|
||||||
|
40
roles/get-devstack-os-environment/README.rst
Normal file
40
roles/get-devstack-os-environment/README.rst
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Reads the OS_* variables set by devstack through openrc
|
||||||
|
for the specified user and project and exports them as
|
||||||
|
the os_env_vars fact.
|
||||||
|
|
||||||
|
**WARNING**: this role is meant to be used as porting aid
|
||||||
|
for the non-unified python-<service>client jobs which
|
||||||
|
are already around, as those clients do not use clouds.yaml
|
||||||
|
as openstackclient does.
|
||||||
|
When those clients and their jobs are deprecated and removed,
|
||||||
|
or anyway when the new code is able to read from clouds.yaml
|
||||||
|
directly, this role should be removed as well.
|
||||||
|
|
||||||
|
|
||||||
|
**Role Variables**
|
||||||
|
|
||||||
|
.. zuul:rolevar:: devstack_base_dir
|
||||||
|
:default: /opt/stack
|
||||||
|
|
||||||
|
The devstack base directory.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: openrc_file
|
||||||
|
:default: {{ devstack_base_dir }}/devstack/openrc
|
||||||
|
|
||||||
|
The location of the generated openrc file.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: openrc_user
|
||||||
|
:default: admin
|
||||||
|
|
||||||
|
The user whose credentials should be retrieved.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: openrc_project
|
||||||
|
:default: admin
|
||||||
|
|
||||||
|
The project (which openrc_user is part of) whose
|
||||||
|
access data should be retrieved.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: openrc_enable_export
|
||||||
|
:default: false
|
||||||
|
|
||||||
|
Set it to true to export os_env_vars.
|
5
roles/get-devstack-os-environment/defaults/main.yaml
Normal file
5
roles/get-devstack-os-environment/defaults/main.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
devstack_base_dir: "/opt/stack"
|
||||||
|
openrc_file: "{{ devstack_base_dir }}/devstack/openrc"
|
||||||
|
openrc_user: admin
|
||||||
|
openrc_project: admin
|
||||||
|
openrc_enable_export: false
|
14
roles/get-devstack-os-environment/tasks/main.yaml
Normal file
14
roles/get-devstack-os-environment/tasks/main.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
- when: openrc_enable_export
|
||||||
|
block:
|
||||||
|
- name: Extract the OS_ environment variables
|
||||||
|
shell:
|
||||||
|
cmd: |
|
||||||
|
source {{ openrc_file }} {{ openrc_user }} {{ openrc_project }} &>/dev/null
|
||||||
|
env | awk -F= 'BEGIN {print "---" } /^OS_/ { print " "$1": \""$2"\""} '
|
||||||
|
args:
|
||||||
|
executable: "/bin/bash"
|
||||||
|
register: env_os
|
||||||
|
|
||||||
|
- name: Save the OS_ environment variables as a fact
|
||||||
|
set_fact:
|
||||||
|
os_env_vars: "{{ env_os.stdout|from_yaml }}"
|
Loading…
Reference in New Issue
Block a user