Merge "Add 'tempest-ipv6-only' job on devstack gate"
diff --git a/lib/keystone b/lib/keystone
index 5bd552f..9ceb829 100644
--- a/lib/keystone
+++ b/lib/keystone
@@ -131,6 +131,9 @@
# however may not be suitable for real production.
KEYSTONE_PASSWORD_HASH_ROUNDS=${KEYSTONE_PASSWORD_HASH_ROUNDS:-4}
+# Cache settings
+KEYSTONE_ENABLE_CACHE=${KEYSTONE_ENABLE_CACHE:-True}
+
# Functions
# ---------
@@ -213,9 +216,9 @@
iniset $KEYSTONE_CONF resource driver "$KEYSTONE_RESOURCE_BACKEND"
# Enable caching
- iniset $KEYSTONE_CONF cache enabled "True"
- iniset $KEYSTONE_CONF cache backend "dogpile.cache.memcached"
- iniset $KEYSTONE_CONF cache memcache_servers localhost:11211
+ iniset $KEYSTONE_CONF cache enabled $KEYSTONE_ENABLE_CACHE
+ iniset $KEYSTONE_CONF cache backend $CACHE_BACKEND
+ iniset $KEYSTONE_CONF cache memcache_servers $MEMCACHE_SERVERS
iniset_rpc_backend keystone $KEYSTONE_CONF oslo_messaging_notifications
diff --git a/lib/neutron b/lib/neutron
index a6504e8..0d23d97 100644
--- a/lib/neutron
+++ b/lib/neutron
@@ -54,6 +54,7 @@
NEUTRON_CONF_DIR=/etc/neutron
NEUTRON_CONF=$NEUTRON_CONF_DIR/neutron.conf
NEUTRON_META_CONF=$NEUTRON_CONF_DIR/metadata_agent.ini
+NEUTRON_META_DATA_HOST=${NEUTRON_META_DATA_HOST:-$(ipv6_unquote $SERVICE_HOST)}
NEUTRON_DHCP_CONF=$NEUTRON_CONF_DIR/dhcp_agent.ini
NEUTRON_L3_CONF=$NEUTRON_CONF_DIR/l3_agent.ini
@@ -296,7 +297,7 @@
cp $NEUTRON_DIR/etc/metadata_agent.ini.sample $NEUTRON_META_CONF
iniset $NEUTRON_META_CONF DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL
- iniset $NEUTRON_META_CONF DEFAULT nova_metadata_host $SERVICE_HOST
+ iniset $NEUTRON_META_CONF DEFAULT nova_metadata_host $NEUTRON_META_DATA_HOST
iniset $NEUTRON_META_CONF DEFAULT metadata_workers $API_WORKERS
# TODO(ihrachys) do we really need to set rootwrap for metadata agent?
configure_root_helper_options $NEUTRON_META_CONF
diff --git a/lib/nova b/lib/nova
index e3f8655..7cc408d 100644
--- a/lib/nova
+++ b/lib/nova
@@ -91,6 +91,7 @@
NOVA_SERVICE_LOCAL_HOST=${NOVA_SERVICE_LOCAL_HOST:-$SERVICE_LOCAL_HOST}
NOVA_SERVICE_LISTEN_ADDRESS=${NOVA_SERVICE_LISTEN_ADDRESS:-$(ipv6_unquote $SERVICE_LISTEN_ADDRESS)}
METADATA_SERVICE_PORT=${METADATA_SERVICE_PORT:-8775}
+NOVA_ENABLE_CACHE=${NOVA_ENABLE_CACHE:-True}
# Option to enable/disable config drive
# NOTE: Set ``FORCE_CONFIG_DRIVE="False"`` to turn OFF config drive
@@ -416,8 +417,8 @@
iniset $NOVA_CONF DEFAULT bindir "/usr/bin"
fi
- # only setup database connections if there are services that
- # require them running on the host. The ensures that n-cpu doesn't
+ # only setup database connections and cache backend if there are services
+ # that require them running on the host. The ensures that n-cpu doesn't
# leak a need to use the db in a multinode scenario.
if is_service_enabled n-api n-cond n-sched; then
# If we're in multi-tier cells mode, we want our control services pointing
@@ -434,6 +435,13 @@
iniset $NOVA_CONF database connection `database_connection_url $db`
iniset $NOVA_CONF api_database connection `database_connection_url nova_api`
+
+ # Cache related settings
+ # Those settings aren't really needed in n-cpu thus it is configured
+ # only on nodes which runs controller services
+ iniset $NOVA_CONF cache enabled $NOVA_ENABLE_CACHE
+ iniset $NOVA_CONF cache backend $CACHE_BACKEND
+ iniset $NOVA_CONF cache memcache_servers $MEMCACHE_SERVERS
fi
if is_service_enabled n-api; then
@@ -578,23 +586,34 @@
}
function configure_console_compute {
+ # If we are running multiple cells (and thus multiple console proxies) on a
+ # single host, we offset the ports to avoid collisions. We need to
+ # correspondingly configure the console proxy port for nova-compute and we
+ # can use the NOVA_CPU_CELL variable to know which cell we are for
+ # calculating the offset.
+ # Stagger the offset based on the total number of possible console proxies
+ # (novnc, xvpvnc, spice, serial) so that their ports will not collide if
+ # all are enabled.
+ local offset
+ offset=$(((NOVA_CPU_CELL - 1) * 4))
+
# All nova-compute workers need to know the vnc configuration options
# These settings don't hurt anything if n-xvnc and n-novnc are disabled
if is_service_enabled n-cpu; then
if [ "$NOVNC_FROM_PACKAGE" == "True" ]; then
# Use the old URL when installing novnc packages.
- NOVNCPROXY_URL=${NOVNCPROXY_URL:-"http://$SERVICE_HOST:6080/vnc_auto.html"}
+ NOVNCPROXY_URL=${NOVNCPROXY_URL:-"http://$SERVICE_HOST:$((6080 + offset))/vnc_auto.html"}
elif vercmp ${NOVNC_BRANCH} "<" "1.0.0"; then
- # Use the old URL when installing older novnc source.
- NOVNCPROXY_URL=${NOVNCPROXY_URL:-"http://$SERVICE_HOST:6080/vnc_auto.html"}
+ # Use the old URL when installing older novnc source.
+ NOVNCPROXY_URL=${NOVNCPROXY_URL:-"http://$SERVICE_HOST:$((6080 + offset))/vnc_auto.html"}
else
# Use the new URL when building >=v1.0.0 from source.
- NOVNCPROXY_URL=${NOVNCPROXY_URL:-"http://$SERVICE_HOST:6080/vnc_lite.html"}
+ NOVNCPROXY_URL=${NOVNCPROXY_URL:-"http://$SERVICE_HOST:$((6080 + offset))/vnc_lite.html"}
fi
iniset $NOVA_CPU_CONF vnc novncproxy_base_url "$NOVNCPROXY_URL"
- XVPVNCPROXY_URL=${XVPVNCPROXY_URL:-"http://$SERVICE_HOST:6081/console"}
+ XVPVNCPROXY_URL=${XVPVNCPROXY_URL:-"http://$SERVICE_HOST:$((6081 + offset))/console"}
iniset $NOVA_CPU_CONF vnc xvpvncproxy_base_url "$XVPVNCPROXY_URL"
- SPICEHTML5PROXY_URL=${SPICEHTML5PROXY_URL:-"http://$SERVICE_HOST:6082/spice_auto.html"}
+ SPICEHTML5PROXY_URL=${SPICEHTML5PROXY_URL:-"http://$SERVICE_HOST:$((6082 + offset))/spice_auto.html"}
iniset $NOVA_CPU_CONF spice html5proxy_base_url "$SPICEHTML5PROXY_URL"
fi
@@ -621,6 +640,7 @@
if is_service_enabled n-sproxy; then
iniset $NOVA_CPU_CONF serial_console enabled True
+ iniset $NOVA_CPU_CONF serial_console base_url "ws://$SERVICE_HOST:$((6083 + offset))/"
fi
}
diff --git a/roles/setup-devstack-log-dir/tasks/main.yaml b/roles/setup-devstack-log-dir/tasks/main.yaml
index b9f38df..d8e8cfe 100644
--- a/roles/setup-devstack-log-dir/tasks/main.yaml
+++ b/roles/setup-devstack-log-dir/tasks/main.yaml
@@ -2,4 +2,7 @@
file:
path: '{{ devstack_base_dir }}/logs'
state: directory
+ mode: 0755
+ owner: stack
+ group: stack
become: yes
diff --git a/roles/sync-devstack-data/tasks/main.yaml b/roles/sync-devstack-data/tasks/main.yaml
index e62be87..a1d37c3 100644
--- a/roles/sync-devstack-data/tasks/main.yaml
+++ b/roles/sync-devstack-data/tasks/main.yaml
@@ -46,3 +46,14 @@
dest: "{{ devstack_data_base_dir }}/data/"
mode: push
when: 'inventory_hostname in groups["subnode"]|default([])'
+
+- name: Ensure the data folder and subfolders have the correct permissions
+ become: true
+ file:
+ path: "{{ devstack_data_base_dir }}/data"
+ state: directory
+ owner: stack
+ group: stack
+ mode: 0755
+ recurse: yes
+ when: 'inventory_hostname in groups["subnode"]|default([])'
diff --git a/stack.sh b/stack.sh
index c0216f4..3c31644 100755
--- a/stack.sh
+++ b/stack.sh
@@ -365,9 +365,12 @@
# Create the destination directory and ensure it is writable by the user
# and read/executable by everybody for daemons (e.g. apache run for horizon)
-sudo mkdir -p $DEST
-safe_chown -R $STACK_USER $DEST
-safe_chmod 0755 $DEST
+# If directory exists do not modify the permissions.
+if [[ ! -d $DEST ]]; then
+ sudo mkdir -p $DEST
+ safe_chown -R $STACK_USER $DEST
+ safe_chmod 0755 $DEST
+fi
# Destination path for devstack logs
if [[ -n ${LOGDIR:-} ]]; then
@@ -376,9 +379,11 @@
# Destination path for service data
DATA_DIR=${DATA_DIR:-${DEST}/data}
-sudo mkdir -p $DATA_DIR
-safe_chown -R $STACK_USER $DATA_DIR
-safe_chmod 0755 $DATA_DIR
+if [[ ! -d $DATA_DIR ]]; then
+ sudo mkdir -p $DATA_DIR
+ safe_chown -R $STACK_USER $DATA_DIR
+ safe_chmod 0755 $DATA_DIR
+fi
# Configure proper hostname
# Certain services such as rabbitmq require that the local hostname resolves
diff --git a/stackrc b/stackrc
index 4ac8c03..10117f2 100644
--- a/stackrc
+++ b/stackrc
@@ -770,6 +770,10 @@
# etcd is always required, so place it into list of pre-cached downloads
EXTRA_CACHE_URLS+=",$ETCD_DOWNLOAD_LOCATION"
+# Cache settings
+CACHE_BACKEND=${CACHE_BACKEND:-"dogpile.cache.memcached"}
+MEMCACHE_SERVERS=${MEMCACHE_SERVERS:-"localhost:11211"}
+
# Detect duplicate values in IMAGE_URLS
for image_url in ${IMAGE_URLS//,/ }; do
if [ $(echo "$IMAGE_URLS" | grep -o -F "$image_url" | wc -l) -gt 1 ]; then