Merge "[OVN] Move OVN module from Neutron to DevStack"
diff --git a/files/debs/cinder b/files/debs/cinder
index c1b79fd..5d390e2 100644
--- a/files/debs/cinder
+++ b/files/debs/cinder
@@ -1,6 +1,4 @@
lvm2
-open-iscsi
-open-iscsi-utils # Deprecated since quantal dist:precise
qemu-utils
tgt # NOPRIME
thin-provisioning-tools
diff --git a/files/debs/os-brick b/files/debs/os-brick
new file mode 100644
index 0000000..4148b0c
--- /dev/null
+++ b/files/debs/os-brick
@@ -0,0 +1,3 @@
+lsscsi
+open-iscsi
+open-iscsi-utils # Deprecated since quantal dist:precise
diff --git a/files/rpms-suse/cinder b/files/rpms-suse/cinder
index 189a232..b39cc79 100644
--- a/files/rpms-suse/cinder
+++ b/files/rpms-suse/cinder
@@ -1,4 +1,3 @@
lvm2
-open-iscsi
qemu-tools
tgt # NOPRIME
diff --git a/files/rpms-suse/os-brick b/files/rpms-suse/os-brick
new file mode 100644
index 0000000..67b33a9
--- /dev/null
+++ b/files/rpms-suse/os-brick
@@ -0,0 +1,2 @@
+lsscsi
+open-iscsi
diff --git a/files/rpms/cinder b/files/rpms/cinder
index c21ea08..375f93e 100644
--- a/files/rpms/cinder
+++ b/files/rpms/cinder
@@ -1,4 +1,3 @@
-iscsi-initiator-utils
lvm2
qemu-img
targetcli
diff --git a/files/rpms/os-brick b/files/rpms/os-brick
new file mode 100644
index 0000000..14ff870
--- /dev/null
+++ b/files/rpms/os-brick
@@ -0,0 +1,2 @@
+iscsi-initiator-utils
+lsscsi
diff --git a/functions-common b/functions-common
index d99ad92..ffbd631 100644
--- a/functions-common
+++ b/functions-common
@@ -451,6 +451,7 @@
[ "$os_VENDOR" = "Fedora" ] || [ "$os_VENDOR" = "Red Hat" ] || \
[ "$os_VENDOR" = "RedHatEnterpriseServer" ] || \
+ [ "$os_VENDOR" = "RedHatEnterprise" ] || \
[ "$os_VENDOR" = "CentOS" ] || [ "$os_VENDOR" = "OracleServer" ] || \
[ "$os_VENDOR" = "Virtuozzo" ]
}
@@ -1219,10 +1220,16 @@
if [[ ! $file_to_parse =~ $package_dir/glance ]]; then
file_to_parse="${file_to_parse} ${package_dir}/glance"
fi
+ if [[ ! $file_to_parse =~ $package_dir/os-brick ]]; then
+ file_to_parse="${file_to_parse} ${package_dir}/os-brick"
+ fi
elif [[ $service == c-* ]]; then
if [[ ! $file_to_parse =~ $package_dir/cinder ]]; then
file_to_parse="${file_to_parse} ${package_dir}/cinder"
fi
+ if [[ ! $file_to_parse =~ $package_dir/os-brick ]]; then
+ file_to_parse="${file_to_parse} ${package_dir}/os-brick"
+ fi
elif [[ $service == s-* ]]; then
if [[ ! $file_to_parse =~ $package_dir/swift ]]; then
file_to_parse="${file_to_parse} ${package_dir}/swift"
@@ -1231,6 +1238,9 @@
if [[ ! $file_to_parse =~ $package_dir/nova ]]; then
file_to_parse="${file_to_parse} ${package_dir}/nova"
fi
+ if [[ ! $file_to_parse =~ $package_dir/os-brick ]]; then
+ file_to_parse="${file_to_parse} ${package_dir}/os-brick"
+ fi
elif [[ $service == g-* ]]; then
if [[ ! $file_to_parse =~ $package_dir/glance ]]; then
file_to_parse="${file_to_parse} ${package_dir}/glance"
diff --git a/playbooks/tox/run-both.yaml b/playbooks/tox/run-both.yaml
index e85c2ee..0528b46 100644
--- a/playbooks/tox/run-both.yaml
+++ b/playbooks/tox/run-both.yaml
@@ -7,4 +7,6 @@
bindep_dir: "{{ zuul_work_dir }}"
- test-setup
- ensure-tox
- - tox
+ - get-devstack-os-environment
+ - role: tox
+ tox_environment: "{{ os_env_vars|default({}) }}"
diff --git a/playbooks/tox/run.yaml b/playbooks/tox/run.yaml
index 22f8209..6e549d3 100644
--- a/playbooks/tox/run.yaml
+++ b/playbooks/tox/run.yaml
@@ -1,3 +1,5 @@
- hosts: all
roles:
- - tox
+ - get-devstack-os-environment
+ - role: tox
+ tox_environment: "{{ os_env_vars|default({}) }}"
diff --git a/roles/get-devstack-os-environment/README.rst b/roles/get-devstack-os-environment/README.rst
new file mode 100644
index 0000000..68ddce8
--- /dev/null
+++ b/roles/get-devstack-os-environment/README.rst
@@ -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.
diff --git a/roles/get-devstack-os-environment/defaults/main.yaml b/roles/get-devstack-os-environment/defaults/main.yaml
new file mode 100644
index 0000000..73ecfe9
--- /dev/null
+++ b/roles/get-devstack-os-environment/defaults/main.yaml
@@ -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
diff --git a/roles/get-devstack-os-environment/tasks/main.yaml b/roles/get-devstack-os-environment/tasks/main.yaml
new file mode 100644
index 0000000..8c8df7f
--- /dev/null
+++ b/roles/get-devstack-os-environment/tasks/main.yaml
@@ -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 }}"
diff --git a/tools/fixup_stuff.sh b/tools/fixup_stuff.sh
index e140929..bf31dcb 100755
--- a/tools/fixup_stuff.sh
+++ b/tools/fixup_stuff.sh
@@ -162,10 +162,7 @@
# manifest of what to remove. However, in most cases, simply
# overwriting works. So this hacks around those packages that
# have been dragged in by some other system dependency
- sudo rm -rf /usr/lib/python2.7/site-packages/enum34*.egg-info
- sudo rm -rf /usr/lib/python2.7/site-packages/ipaddress*.egg-info
- sudo rm -rf /usr/lib/python2.7/site-packages/ply-*.egg-info
- sudo rm -rf /usr/lib/python2.7/site-packages/typing-*.egg-info
+ sudo rm -rf /usr/lib64/python3*/site-packages/PyYAML-*.egg-info
}
function fixup_suse {