Merge "Update comment about nova-cells-v1 job"
diff --git a/.zuul.yaml b/.zuul.yaml
index 4f91b5b..9aafcdb 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -88,6 +88,66 @@
nodes:
- compute1
+- nodeset:
+ name: openstack-two-node-bionic
+ nodes:
+ - name: controller
+ label: ubuntu-bionic
+ - name: compute1
+ label: ubuntu-bionic
+ groups:
+ # Node where tests are executed and test results collected
+ - name: tempest
+ nodes:
+ - controller
+ # Nodes running the compute service
+ - name: compute
+ nodes:
+ - controller
+ - compute1
+ # Nodes that are not the controller
+ - name: subnode
+ nodes:
+ - compute1
+ # Switch node for multinode networking setup
+ - name: switch
+ nodes:
+ - controller
+ # Peer nodes for multinode networking setup
+ - name: peers
+ nodes:
+ - compute1
+
+- nodeset:
+ name: openstack-two-node-xenial
+ nodes:
+ - name: controller
+ label: ubuntu-xenial
+ - name: compute1
+ label: ubuntu-xenial
+ groups:
+ # Node where tests are executed and test results collected
+ - name: tempest
+ nodes:
+ - controller
+ # Nodes running the compute service
+ - name: compute
+ nodes:
+ - controller
+ - compute1
+ # Nodes that are not the controller
+ - name: subnode
+ nodes:
+ - compute1
+ # Switch node for multinode networking setup
+ - name: switch
+ nodes:
+ - controller
+ # Peer nodes for multinode networking setup
+ - name: peers
+ nodes:
+ - compute1
+
- job:
name: devstack-base
parent: multinode
@@ -209,7 +269,7 @@
description: |
Minimal devstack base job, intended for use by jobs that need
less than the normal minimum set of required-projects.
- nodeset: openstack-single-node
+ nodeset: openstack-single-node-bionic
required-projects:
- git.openstack.org/openstack/requirements
vars:
@@ -268,7 +328,6 @@
The run playbook consists of a single role, so it can be easily rewritten
and extended.
- nodeset: openstack-single-node
required-projects:
- git.openstack.org/openstack/cinder
- git.openstack.org/openstack/glance
@@ -400,13 +459,30 @@
USE_PYTHON3: true
- job:
+ name: devstack-xenial
+ parent: devstack
+ nodeset: openstack-single-node-xenial
+ description: |
+ Simple singlenode test to verify functionality on devstack
+ side running on Xenial.
+
+- job:
name: devstack-multinode
parent: devstack
- nodeset: openstack-two-node
+ nodeset: openstack-two-node-bionic
description: |
Simple multinode test to verify multinode functionality on devstack side.
This is not meant to be used as a parent job.
+- job:
+ name: devstack-multinode-xenial
+ parent: devstack
+ nodeset: openstack-two-node-xenial
+ description: |
+ Simple multinode test to verify multinode functionality on devstack
+ side running on Xenial.
+ This is not meant to be used as a parent job.
+
# NOTE(ianw) Platform tests have traditionally been non-voting because
# we often have to rush things through devstack to stabilise the gate,
# and these platforms don't have the round-the-clock support to avoid
@@ -433,6 +509,13 @@
voting: false
- job:
+ name: devstack-platform-xenial
+ parent: tempest-full
+ description: Ubuntu Xenial platform test
+ nodeset: openstack-single-node-xenial
+ voting: false
+
+- job:
name: devstack-tox-base
parent: devstack
description: |
@@ -503,12 +586,15 @@
check:
jobs:
- devstack
+ - devstack-xenial
- devstack-ipv6:
voting: false
- devstack-platform-centos-7
- devstack-platform-opensuse-150
- devstack-platform-fedora-latest
+ - devstack-platform-xenial
- devstack-multinode
+ - devstack-multinode-xenial
- devstack-unit-tests
- openstack-tox-bashate
- ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa:
@@ -538,6 +624,9 @@
gate:
jobs:
- devstack
+ - devstack-xenial
+ - devstack-multinode
+ - devstack-multinode-xenial
- devstack-unit-tests
- openstack-tox-bashate
- neutron-grenade-multinode:
diff --git a/doc/source/plugin-registry.rst b/doc/source/plugin-registry.rst
index 7ed2463..02d6911 100644
--- a/doc/source/plugin-registry.rst
+++ b/doc/source/plugin-registry.rst
@@ -180,6 +180,7 @@
tap-as-a-service-dashboard `git://git.openstack.org/openstack/tap-as-a-service-dashboard <https://git.openstack.org/cgit/openstack/tap-as-a-service-dashboard>`__
tatu `git://git.openstack.org/openstack/tatu <https://git.openstack.org/cgit/openstack/tatu>`__
telemetry-tempest-plugin `git://git.openstack.org/openstack/telemetry-tempest-plugin <https://git.openstack.org/cgit/openstack/telemetry-tempest-plugin>`__
+tobiko `git://git.openstack.org/openstack/tobiko <https://git.openstack.org/cgit/openstack/tobiko>`__
tricircle `git://git.openstack.org/openstack/tricircle <https://git.openstack.org/cgit/openstack/tricircle>`__
trio2o `git://git.openstack.org/openstack/trio2o <https://git.openstack.org/cgit/openstack/trio2o>`__
trove `git://git.openstack.org/openstack/trove <https://git.openstack.org/cgit/openstack/trove>`__
diff --git a/lib/neutron b/lib/neutron
index 4847e87..62f7366 100644
--- a/lib/neutron
+++ b/lib/neutron
@@ -183,9 +183,14 @@
# Neutron API server & Neutron plugin
if is_service_enabled neutron-api; then
local policy_file=$NEUTRON_CONF_DIR/policy.json
- cp $NEUTRON_DIR/etc/policy.json $policy_file
# Allow neutron user to administer neutron to match neutron account
- sed -i 's/"context_is_admin": "role:admin"/"context_is_admin": "role:admin or user_name:neutron"/g' $policy_file
+ # NOTE(amotoki): This is required for nova works correctly with neutron.
+ if [ -f $NEUTRON_DIR/etc/policy.json ]; then
+ cp $NEUTRON_DIR/etc/policy.json $policy_file
+ sed -i 's/"context_is_admin": "role:admin"/"context_is_admin": "role:admin or user_name:neutron"/g' $policy_file
+ else
+ echo '{"context_is_admin": "role:admin or user_name:neutron"}' > $policy_file
+ fi
cp $NEUTRON_DIR/etc/api-paste.ini $NEUTRON_CONF_DIR/api-paste.ini
diff --git a/lib/neutron-legacy b/lib/neutron-legacy
index be5b73f..2fdb6db 100644
--- a/lib/neutron-legacy
+++ b/lib/neutron-legacy
@@ -699,10 +699,15 @@
cp $NEUTRON_DIR/etc/neutron.conf.sample $NEUTRON_CONF
Q_POLICY_FILE=$NEUTRON_CONF_DIR/policy.json
- cp $NEUTRON_DIR/etc/policy.json $Q_POLICY_FILE
# allow neutron user to administer neutron to match neutron account
- sed -i 's/"context_is_admin": "role:admin"/"context_is_admin": "role:admin or user_name:neutron"/g' $Q_POLICY_FILE
+ # NOTE(amotoki): This is required for nova works correctly with neutron.
+ if [ -f $NEUTRON_DIR/etc/policy.json ]; then
+ cp $NEUTRON_DIR/etc/policy.json $Q_POLICY_FILE
+ sed -i 's/"context_is_admin": "role:admin"/"context_is_admin": "role:admin or user_name:neutron"/g' $Q_POLICY_FILE
+ else
+ echo '{"context_is_admin": "role:admin or user_name:neutron"}' > $Q_POLICY_FILE
+ fi
# Set plugin-specific variables ``Q_DB_NAME``, ``Q_PLUGIN_CLASS``.
# For main plugin config file, set ``Q_PLUGIN_CONF_PATH``, ``Q_PLUGIN_CONF_FILENAME``.
diff --git a/lib/tls b/lib/tls
index 217f40e..0032449 100644
--- a/lib/tls
+++ b/lib/tls
@@ -547,6 +547,9 @@
LimitRequestFieldSize $f_header_size
RequestHeader set X-Forwarded-Proto "https"
+ # Avoid races (at the cost of performance) to re-use a pooled connection
+ # where the connection is closed (bug 1807518).
+ SetEnv proxy-initial-not-pooled
<Location />
ProxyPass http://$b_host:$b_port/ retry=0 nocanon
ProxyPassReverse http://$b_host:$b_port/
diff --git a/stack.sh b/stack.sh
index 497c8bc..144c233 100755
--- a/stack.sh
+++ b/stack.sh
@@ -335,6 +335,13 @@
# no-op on other platforms.
sudo yum-config-manager --enable rhel-7-server-optional-rpms
+ # Enable the Software Collections (SCL) repository for CentOS.
+ # This repository includes useful software (e.g. the Go Toolset)
+ # which is not present in the main repository.
+ if [[ "$os_VENDOR" =~ (CentOS) ]]; then
+ yum_install centos-release-scl
+ fi
+
if is_oraclelinux; then
sudo yum-config-manager --enable ol7_optional_latest ol7_addons ol7_MySQL56
fi
diff --git a/stackrc b/stackrc
index 746372d..170d3b6 100644
--- a/stackrc
+++ b/stackrc
@@ -767,7 +767,7 @@
fi
ETCD_PORT=${ETCD_PORT:-2379}
ETCD_PEER_PORT=${ETCD_PEER_PORT:-2380}
-ETCD_DOWNLOAD_URL=${ETCD_DOWNLOAD_URL:-https://github.com/coreos/etcd/releases/download}
+ETCD_DOWNLOAD_URL=${ETCD_DOWNLOAD_URL:-https://github.com/etcd-io/etcd/releases/download}
ETCD_NAME=etcd-$ETCD_VERSION-linux-$ETCD_ARCH
ETCD_DOWNLOAD_FILE=$ETCD_NAME.tar.gz
ETCD_DOWNLOAD_LOCATION=$ETCD_DOWNLOAD_URL/$ETCD_VERSION/$ETCD_DOWNLOAD_FILE