Merge "ensure /usr/local/bin in in path"
diff --git a/.zuul.yaml b/.zuul.yaml
index fc80e6c..0dda262 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -678,7 +678,6 @@
parent: tempest-full-py3
description: CentOS 9 Stream platform test
nodeset: devstack-single-node-centos-9-stream
- voting: false
timeout: 9000
vars:
configure_swap_size: 4096
@@ -850,7 +849,6 @@
- devstack-platform-centos-8-stream
- devstack-platform-centos-9-stream
- devstack-platform-debian-bullseye
- - devstack-platform-openEuler-20.03-SP2
- devstack-multinode
- devstack-unit-tests
- openstack-tox-bashate
@@ -894,6 +892,7 @@
jobs:
- devstack
- devstack-ipv6
+ - devstack-platform-centos-9-stream
- devstack-enforce-scope
- devstack-multinode
- devstack-unit-tests
@@ -948,6 +947,7 @@
experimental:
jobs:
+ - devstack-platform-openEuler-20.03-SP2
- nova-multi-cell
- nova-next
- neutron-fullstack-with-uwsgi
diff --git a/lib/apache b/lib/apache
index f29c7ea..02827d1 100644
--- a/lib/apache
+++ b/lib/apache
@@ -27,6 +27,11 @@
APACHE_USER=${APACHE_USER:-$STACK_USER}
APACHE_GROUP=${APACHE_GROUP:-$(id -gn $APACHE_USER)}
+APACHE_LOCAL_HOST=$SERVICE_LOCAL_HOST
+if [[ "$SERVICE_IP_VERSION" == 6 ]]; then
+ APACHE_LOCAL_HOST=[$APACHE_LOCAL_HOST]
+fi
+
# Set up apache name and configuration directory
# Note that APACHE_CONF_DIR is really more accurately apache's vhost
@@ -323,7 +328,7 @@
rm -rf $file
iniset "$file" uwsgi wsgi-file "$wsgi"
port=$(get_random_port)
- iniset "$file" uwsgi http-socket "127.0.0.1:$port"
+ iniset "$file" uwsgi http-socket "$APACHE_LOCAL_HOST:$port"
iniset "$file" uwsgi processes $API_WORKERS
# This is running standalone
iniset "$file" uwsgi master true
@@ -359,7 +364,7 @@
apache_conf=$(apache_site_config_for $name)
echo "KeepAlive Off" | sudo tee $apache_conf
echo "SetEnv proxy-sendchunked 1" | sudo tee -a $apache_conf
- echo "ProxyPass \"${url}\" \"http://127.0.0.1:$port\" retry=0 " | sudo tee -a $apache_conf
+ echo "ProxyPass \"${url}\" \"http://$APACHE_LOCAL_HOST:$port\" retry=0 " | sudo tee -a $apache_conf
enable_apache_site $name
restart_apache_server
}
diff --git a/lib/databases/mysql b/lib/databases/mysql
index 30e4b7c..0f45273 100644
--- a/lib/databases/mysql
+++ b/lib/databases/mysql
@@ -86,10 +86,16 @@
exit_distro_not_supported "mysql configuration"
fi
- # Start mysql-server
+ # Change bind-address from localhost (127.0.0.1) to any (::)
+ iniset -sudo $my_conf mysqld bind-address "$(ipv6_unquote $SERVICE_LISTEN_ADDRESS)"
+
+ # (Re)Start mysql-server
if is_fedora || is_suse; then
# service is not started by default
start_service $MYSQL_SERVICE_NAME
+ elif is_ubuntu; then
+ # required since bind-address could have changed above
+ restart_service $MYSQL_SERVICE_NAME
fi
# Set the root password - only works the first time. For Ubuntu, we already
@@ -102,7 +108,7 @@
if is_ubuntu && [ "$MYSQL_SERVICE_NAME" == "mariadb" ]; then
local cmd_args="-uroot -p$DATABASE_PASSWORD "
else
- local cmd_args="-uroot -p$DATABASE_PASSWORD -h127.0.0.1 "
+ local cmd_args="-uroot -p$DATABASE_PASSWORD -h$SERVICE_LOCAL_HOST "
fi
# In mariadb e.g. on Ubuntu socket plugin is used for authentication
@@ -119,9 +125,7 @@
# Now update ``my.cnf`` for some local needs and restart the mysql service
- # Change bind-address from localhost (127.0.0.1) to any (::) and
- # set default db type to InnoDB
- iniset -sudo $my_conf mysqld bind-address "$(ipv6_unquote $SERVICE_LISTEN_ADDRESS)"
+ # Set default db type to InnoDB
iniset -sudo $my_conf mysqld sql_mode TRADITIONAL
iniset -sudo $my_conf mysqld default-storage-engine InnoDB
iniset -sudo $my_conf mysqld max_connections 1024
diff --git a/lib/glance b/lib/glance
index 9bba938..b94c06d 100644
--- a/lib/glance
+++ b/lib/glance
@@ -309,13 +309,13 @@
iniset $GLANCE_API_CONF oslo_limit username glance
iniset $GLANCE_API_CONF oslo_limit auth_type password
iniset $GLANCE_API_CONF oslo_limit auth_url $KEYSTONE_SERVICE_URI
- iniset $GLANCE_API_CONF oslo_limit system_scope "'all'"
+ iniset $GLANCE_API_CONF oslo_limit system_scope all
iniset $GLANCE_API_CONF oslo_limit endpoint_id \
$(openstack --os-cloud devstack-system-admin endpoint list --service glance -f value -c ID)
# Allow the glance service user to read quotas
- openstack --os-cloud devstack-system-admin role add --user glance --user-domain Default \
- --system all reader
+ openstack --os-cloud devstack-system-admin role add --user glance \
+ --user-domain $SERVICE_DOMAIN_NAME --system all reader
}
# configure_glance() - Set config files, create data dirs, etc
diff --git a/lib/neutron_plugins/services/l3 b/lib/neutron_plugins/services/l3
index cd98115..c0d74c7 100644
--- a/lib/neutron_plugins/services/l3
+++ b/lib/neutron_plugins/services/l3
@@ -147,10 +147,6 @@
}
function create_neutron_initial_network {
- local project_id
- project_id=$(openstack project list | grep " demo " | get_field 1)
- die_if_not_set $LINENO project_id "Failure retrieving project_id for demo"
-
# Allow drivers that need to create an initial network to do so here
if type -p neutron_plugin_create_initial_network_profile > /dev/null; then
neutron_plugin_create_initial_network_profile $PHYSICAL_NETWORK
@@ -171,14 +167,14 @@
die_if_not_set $LINENO PHYSICAL_NETWORK "You must specify the PHYSICAL_NETWORK"
die_if_not_set $LINENO PROVIDER_NETWORK_TYPE "You must specify the PROVIDER_NETWORK_TYPE"
NET_ID=$(openstack --os-cloud devstack-admin-demo --os-region "$REGION_NAME" network create $PHYSICAL_NETWORK --provider-network-type $PROVIDER_NETWORK_TYPE --provider-physical-network "$PHYSICAL_NETWORK" ${SEGMENTATION_ID:+--provider-segment $SEGMENTATION_ID} --share | grep ' id ' | get_field 2)
- die_if_not_set $LINENO NET_ID "Failure creating NET_ID for $PHYSICAL_NETWORK $project_id"
+ die_if_not_set $LINENO NET_ID "Failure creating NET_ID for $PHYSICAL_NETWORK"
if [[ "$IP_VERSION" =~ 4.* ]]; then
if [ -z $SUBNETPOOL_V4_ID ]; then
fixed_range_v4=$FIXED_RANGE
fi
SUBNET_ID=$(openstack --os-cloud devstack --os-region "$REGION_NAME" subnet create --ip-version 4 ${ALLOCATION_POOL:+--allocation-pool $ALLOCATION_POOL} $PROVIDER_SUBNET_NAME --gateway $NETWORK_GATEWAY ${SUBNETPOOL_V4_ID:+--subnet-pool $SUBNETPOOL_V4_ID} --network $NET_ID ${fixed_range_v4:+--subnet-range $fixed_range_v4} | grep ' id ' | get_field 2)
- die_if_not_set $LINENO SUBNET_ID "Failure creating SUBNET_ID for $PROVIDER_SUBNET_NAME $project_id"
+ die_if_not_set $LINENO SUBNET_ID "Failure creating SUBNET_ID for $PROVIDER_SUBNET_NAME"
fi
if [[ "$IP_VERSION" =~ .*6 ]]; then
@@ -188,7 +184,7 @@
fixed_range_v6=$IPV6_PROVIDER_FIXED_RANGE
fi
IPV6_SUBNET_ID=$(openstack --os-cloud devstack --os-region "$REGION_NAME" subnet create --ip-version 6 --gateway $IPV6_PROVIDER_NETWORK_GATEWAY $IPV6_PROVIDER_SUBNET_NAME ${SUBNETPOOL_V6_ID:+--subnet-pool $SUBNETPOOL_V6_ID} --network $NET_ID ${fixed_range_v6:+--subnet-range $fixed_range_v6} | grep ' id ' | get_field 2)
- die_if_not_set $LINENO IPV6_SUBNET_ID "Failure creating IPV6_SUBNET_ID for $IPV6_PROVIDER_SUBNET_NAME $project_id"
+ die_if_not_set $LINENO IPV6_SUBNET_ID "Failure creating IPV6_SUBNET_ID for $IPV6_PROVIDER_SUBNET_NAME"
fi
if [[ $Q_AGENT == "openvswitch" ]]; then
@@ -198,16 +194,16 @@
fi
else
NET_ID=$(openstack --os-cloud devstack --os-region "$REGION_NAME" network create "$PRIVATE_NETWORK_NAME" | grep ' id ' | get_field 2)
- die_if_not_set $LINENO NET_ID "Failure creating NET_ID for $PRIVATE_NETWORK_NAME $project_id"
+ die_if_not_set $LINENO NET_ID "Failure creating NET_ID for $PRIVATE_NETWORK_NAME"
if [[ "$IP_VERSION" =~ 4.* ]]; then
# Create IPv4 private subnet
- SUBNET_ID=$(_neutron_create_private_subnet_v4 $project_id)
+ SUBNET_ID=$(_neutron_create_private_subnet_v4)
fi
if [[ "$IP_VERSION" =~ .*6 ]]; then
# Create IPv6 private subnet
- IPV6_SUBNET_ID=$(_neutron_create_private_subnet_v6 $project_id)
+ IPV6_SUBNET_ID=$(_neutron_create_private_subnet_v6)
fi
fi
@@ -216,11 +212,11 @@
if [[ "$Q_L3_ROUTER_PER_TENANT" == "True" ]]; then
# create a tenant-owned router.
ROUTER_ID=$(openstack --os-cloud devstack --os-region "$REGION_NAME" router create $Q_ROUTER_NAME | grep ' id ' | get_field 2)
- die_if_not_set $LINENO ROUTER_ID "Failure creating ROUTER_ID for $project_id $Q_ROUTER_NAME"
+ die_if_not_set $LINENO ROUTER_ID "Failure creating router $Q_ROUTER_NAME"
else
# Plugin only supports creating a single router, which should be admin owned.
ROUTER_ID=$(openstack --os-cloud devstack-admin --os-region "$REGION_NAME" router create $Q_ROUTER_NAME | grep ' id ' | get_field 2)
- die_if_not_set $LINENO ROUTER_ID "Failure creating ROUTER_ID for $Q_ROUTER_NAME"
+ die_if_not_set $LINENO ROUTER_ID "Failure creating router $Q_ROUTER_NAME"
fi
EXTERNAL_NETWORK_FLAGS="--external"
@@ -249,7 +245,6 @@
# Create private IPv4 subnet
function _neutron_create_private_subnet_v4 {
- local project_id=$1
if [ -z $SUBNETPOOL_V4_ID ]; then
fixed_range_v4=$FIXED_RANGE
fi
@@ -263,13 +258,12 @@
subnet_params+="--network $NET_ID $PRIVATE_SUBNET_NAME"
local subnet_id
subnet_id=$(openstack --os-cloud devstack-admin-demo --os-region "$REGION_NAME" subnet create $subnet_params | grep ' id ' | get_field 2)
- die_if_not_set $LINENO subnet_id "Failure creating private IPv4 subnet for $project_id"
+ die_if_not_set $LINENO subnet_id "Failure creating private IPv4 subnet"
echo $subnet_id
}
# Create private IPv6 subnet
function _neutron_create_private_subnet_v6 {
- local project_id=$1
die_if_not_set $LINENO IPV6_RA_MODE "IPV6 RA Mode not set"
die_if_not_set $LINENO IPV6_ADDRESS_MODE "IPV6 Address Mode not set"
local ipv6_modes="--ipv6-ra-mode $IPV6_RA_MODE --ipv6-address-mode $IPV6_ADDRESS_MODE"
@@ -285,7 +279,7 @@
subnet_params+="$ipv6_modes --network $NET_ID $IPV6_PRIVATE_SUBNET_NAME "
local ipv6_subnet_id
ipv6_subnet_id=$(openstack --os-cloud devstack-admin-demo --os-region "$REGION_NAME" subnet create $subnet_params | grep ' id ' | get_field 2)
- die_if_not_set $LINENO ipv6_subnet_id "Failure creating private IPv6 subnet for $project_id"
+ die_if_not_set $LINENO ipv6_subnet_id "Failure creating private IPv6 subnet"
echo $ipv6_subnet_id
}
diff --git a/lib/nova b/lib/nova
index 90289b1..4c14374 100644
--- a/lib/nova
+++ b/lib/nova
@@ -746,42 +746,33 @@
}
function configure_nova_unified_limits {
- # Default limits. Mirror the config-based default values.
+ # Registered limit resources in keystone are system-specific resources.
+ # Make sure we use a system-scoped token to interact with this API.
+
+ # Default limits here mirror the legacy config-based default values.
# Note: disk quota is new in nova as of unified limits.
- bash -c "unset OS_USERNAME OS_TENANT_NAME OS_PROJECT_NAME;
- openstack --os-cloud devstack-system-admin registered limit create \
- --service nova --default-limit 10 --region $REGION_NAME \
- servers; \
- openstack --os-cloud devstack-system-admin registered limit create \
- --service nova --default-limit 20 --region $REGION_NAME \
- class:VCPU; \
- openstack --os-cloud devstack-system-admin registered limit create \
- --service nova --default-limit $((50 * 1024)) --region $REGION_NAME \
- class:MEMORY_MB; \
- openstack --os-cloud devstack-system-admin registered limit create \
- --service nova --default-limit 20 --region $REGION_NAME \
- class:DISK_GB; \
- openstack --os-cloud devstack-system-admin registered limit create \
- --service nova --default-limit 128 --region $REGION_NAME \
- server_metadata_items; \
- openstack --os-cloud devstack-system-admin registered limit create \
- --service nova --default-limit 5 --region $REGION_NAME \
- server_injected_files; \
- openstack --os-cloud devstack-system-admin registered limit create \
- --service nova --default-limit 10240 --region $REGION_NAME \
- server_injected_file_content_bytes; \
- openstack --os-cloud devstack-system-admin registered limit create \
- --service nova --default-limit 255 --region $REGION_NAME \
- server_injected_file_path_bytes; \
- openstack --os-cloud devstack-system-admin registered limit create \
- --service nova --default-limit 100 --region $REGION_NAME \
- server_key_pairs; \
- openstack --os-cloud devstack-system-admin registered limit create \
- --service nova --default-limit 10 --region $REGION_NAME \
- server_groups; \
- openstack --os-cloud devstack-system-admin registered limit create \
- --service nova --default-limit 10 --region $REGION_NAME \
- server_group_members"
+ openstack --os-cloud devstack-system-admin registered limit create \
+ --service nova --default-limit 10 --region $REGION_NAME servers
+ openstack --os-cloud devstack-system-admin registered limit create \
+ --service nova --default-limit 20 --region $REGION_NAME class:VCPU
+ openstack --os-cloud devstack-system-admin registered limit create \
+ --service nova --default-limit $((50 * 1024)) --region $REGION_NAME class:MEMORY_MB
+ openstack --os-cloud devstack-system-admin registered limit create \
+ --service nova --default-limit 20 --region $REGION_NAME class:DISK_GB
+ openstack --os-cloud devstack-system-admin registered limit create \
+ --service nova --default-limit 128 --region $REGION_NAME server_metadata_items
+ openstack --os-cloud devstack-system-admin registered limit create \
+ --service nova --default-limit 5 --region $REGION_NAME server_injected_files
+ openstack --os-cloud devstack-system-admin registered limit create \
+ --service nova --default-limit 10240 --region $REGION_NAME server_injected_file_content_bytes
+ openstack --os-cloud devstack-system-admin registered limit create \
+ --service nova --default-limit 255 --region $REGION_NAME server_injected_file_path_bytes
+ openstack --os-cloud devstack-system-admin registered limit create \
+ --service nova --default-limit 100 --region $REGION_NAME server_key_pairs
+ openstack --os-cloud devstack-system-admin registered limit create \
+ --service nova --default-limit 10 --region $REGION_NAME server_groups
+ openstack --os-cloud devstack-system-admin registered limit create \
+ --service nova --default-limit 10 --region $REGION_NAME server_group_members
# Tell nova to use these limits
iniset $NOVA_CONF quota driver "nova.quota.UnifiedLimitsDriver"
@@ -792,13 +783,13 @@
iniset $NOVA_CONF oslo_limit username nova
iniset $NOVA_CONF oslo_limit auth_type password
iniset $NOVA_CONF oslo_limit auth_url $KEYSTONE_SERVICE_URI
- iniset $NOVA_CONF oslo_limit system_scope "'all'"
+ iniset $NOVA_CONF oslo_limit system_scope all
iniset $NOVA_CONF oslo_limit endpoint_id \
$(openstack endpoint list --service nova -f value -c ID)
# Allow the nova service user to read quotas
- openstack role add --user nova --user-domain Default --system all \
- reader
+ openstack --os-cloud devstack-system-admin role add --user nova \
+ --user-domain $SERVICE_DOMAIN_NAME --system all reader
}
function init_nova_service_user_conf {
@@ -1054,7 +1045,6 @@
local old_path=$PATH
export PATH=$NOVA_BIN_DIR:$PATH
- local api_cell_conf=$NOVA_CONF
local compute_cell_conf=$NOVA_CONF
run_process n-sch "$NOVA_BIN_DIR/nova-scheduler --config-file $compute_cell_conf"
diff --git a/lib/tls b/lib/tls
index b3cc0b4..5a7f5ae 100644
--- a/lib/tls
+++ b/lib/tls
@@ -169,7 +169,7 @@
[ req ]
default_bits = 1024
-default_md = sha1
+default_md = sha256
prompt = no
distinguished_name = req_distinguished_name
@@ -261,7 +261,7 @@
if [ ! -r "$ca_dir/$cert_name.crt" ]; then
# Generate a signing request
$OPENSSL req \
- -sha1 \
+ -sha256 \
-newkey rsa \
-nodes \
-keyout $ca_dir/private/$cert_name.key \
@@ -301,7 +301,7 @@
if [ ! -r "$ca_dir/cacert.pem" ]; then
# Create a signing certificate request
$OPENSSL req -config $ca_dir/ca.conf \
- -sha1 \
+ -sha256 \
-newkey rsa \
-nodes \
-keyout $ca_dir/private/cacert.key \
diff --git a/setup.cfg b/setup.cfg
deleted file mode 100644
index a4e621f..0000000
--- a/setup.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-[metadata]
-name = DevStack
-summary = OpenStack DevStack
-description_file =
- README.rst
-author = OpenStack
-author_email = openstack-discuss@lists.openstack.org
-home_page = https://docs.openstack.org/devstack/latest
-classifier =
- Intended Audience :: Developers
- License :: OSI Approved :: Apache Software License
- Operating System :: POSIX :: Linux
diff --git a/setup.py b/setup.py
deleted file mode 100755
index 70c2b3f..0000000
--- a/setup.py
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# 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.
-
-# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
-import setuptools
-
-setuptools.setup(
- setup_requires=['pbr'],
- pbr=True)
diff --git a/stackrc b/stackrc
index e48fd81..d22fa88 100644
--- a/stackrc
+++ b/stackrc
@@ -235,7 +235,7 @@
# Setting the variable to 'ALL' will activate the download for all
# libraries.
-DEVSTACK_SERIES="yoga"
+DEVSTACK_SERIES="zed"
##############
#