Fix: do not lose the tox_environment value in func tests
The current code always overrides tox_environment when running
functional tests, but the correct behavior is to add
the discovered environment variables to tox_environments,
while keeping the user-specified value for it.
The current behavior breaks the devstack-tox-functional children
jobs, like openstacksdk-functional-devstack-ironic, which set
tox_environment.
Change-Id: I5dc9054a1495ca0ef7745c08316441ab153956f4
diff --git a/playbooks/tox/run-both.yaml b/playbooks/tox/run-both.yaml
index 0528b46..e4043d8 100644
--- a/playbooks/tox/run-both.yaml
+++ b/playbooks/tox/run-both.yaml
@@ -8,5 +8,4 @@
- test-setup
- ensure-tox
- get-devstack-os-environment
- - role: tox
- tox_environment: "{{ os_env_vars|default({}) }}"
+ - tox
diff --git a/playbooks/tox/run.yaml b/playbooks/tox/run.yaml
index 6e549d3..0d065c6 100644
--- a/playbooks/tox/run.yaml
+++ b/playbooks/tox/run.yaml
@@ -1,5 +1,4 @@
- hosts: all
roles:
- get-devstack-os-environment
- - role: tox
- tox_environment: "{{ os_env_vars|default({}) }}"
+ - tox
diff --git a/roles/get-devstack-os-environment/defaults/main.yaml b/roles/get-devstack-os-environment/defaults/main.yaml
index 73ecfe9..f68ea56 100644
--- a/roles/get-devstack-os-environment/defaults/main.yaml
+++ b/roles/get-devstack-os-environment/defaults/main.yaml
@@ -3,3 +3,4 @@
openrc_user: admin
openrc_project: admin
openrc_enable_export: false
+tox_environment: {}
diff --git a/roles/get-devstack-os-environment/tasks/main.yaml b/roles/get-devstack-os-environment/tasks/main.yaml
index 8c8df7f..b2c5e93 100644
--- a/roles/get-devstack-os-environment/tasks/main.yaml
+++ b/roles/get-devstack-os-environment/tasks/main.yaml
@@ -9,6 +9,6 @@
executable: "/bin/bash"
register: env_os
- - name: Save the OS_ environment variables as a fact
+ - name: Append the the OS_ environment variables to tox_environment
set_fact:
- os_env_vars: "{{ env_os.stdout|from_yaml }}"
+ tox_environment: "{{ env_os.stdout|from_yaml|default({})|combine(tox_environment) }}"