Make declared variables global

When variables use the 'declare' directive, it is by default a local
variable. While other variables have global scope.

For example:
   declare -A AN_ARRAY   # local in scope
   foo=1                 # global in scope

This causes errors to occur as some of the variables will be local only
and others will be global.

Update the code, as appropriate, so that variables using the 'declare'
directive also include the '-g' flag to have them also be global. Not
every instance of a declared variable has been updated.

Closes-Bug: #1669509
Co-Authored-By: John L. Villalovos <john.l.villalovos@intel.com>
Change-Id: I2180b68fe861ad19c6d4ec0df0f9f8a528347862
(cherry picked from commit afef8bf097)
This commit is contained in:
Sean Dague 2017-03-06 14:07:23 -05:00 committed by John L. Villalovos
parent 79c19b6af4
commit 49f5b9f5ec
6 changed files with 15 additions and 15 deletions

View File

@ -12,7 +12,7 @@
# ensure we don't re-source this in the same environment
[[ -z "$_DEVSTACK_FUNCTIONS" ]] || return 0
declare -r _DEVSTACK_FUNCTIONS=1
declare -r -g _DEVSTACK_FUNCTIONS=1
# Include the common functions
FUNC_DIR=$(cd $(dirname "${BASH_SOURCE:-$0}") && pwd)

View File

@ -37,12 +37,12 @@ set +o xtrace
# ensure we don't re-source this in the same environment
[[ -z "$_DEVSTACK_FUNCTIONS_COMMON" ]] || return 0
declare -r _DEVSTACK_FUNCTIONS_COMMON=1
declare -r -g _DEVSTACK_FUNCTIONS_COMMON=1
# Global Config Variables
declare -A GITREPO
declare -A GITBRANCH
declare -A GITDIR
declare -A -g GITREPO
declare -A -g GITBRANCH
declare -A -g GITDIR
TRACK_DEPENDS=${TRACK_DEPENDS:-False}
@ -306,7 +306,7 @@ function warn {
# ``os_PACKAGE`` - package type: ``deb`` or ``rpm``
# ``os_CODENAME`` - vendor's codename for release: ``trusty``
declare os_VENDOR os_RELEASE os_PACKAGE os_CODENAME
declare -g os_VENDOR os_RELEASE os_PACKAGE os_CODENAME
# Make a *best effort* attempt to install lsb_release packages for the
# user if not available. Note can't use generic install_package*
@ -361,7 +361,7 @@ function GetOSVersion {
# Translate the OS version values into common nomenclature
# Sets global ``DISTRO`` from the ``os_*`` values
declare DISTRO
declare -g DISTRO
function GetDistro {
GetOSVersion
@ -2372,9 +2372,9 @@ function sudo_with_proxies {
# Resolution is only in whole seconds, so should be used for long
# running activities.
declare -A _TIME_TOTAL
declare -A _TIME_START
declare -r _TIME_BEGIN=$(date +%s)
declare -A -g _TIME_TOTAL
declare -A -g _TIME_START
declare -r -g _TIME_BEGIN=$(date +%s)
# time_start $name
#

View File

@ -19,7 +19,7 @@ set +o xtrace
# PROJECT_VENV contains the name of the virtual environment for each
# project. A null value installs to the system Python directories.
declare -A PROJECT_VENV
declare -A -g PROJECT_VENV
# Python Functions

View File

@ -74,7 +74,7 @@ NEUTRON_ROOTWRAP_DAEMON_CMD="sudo $NEUTRON_ROOTWRAP-daemon $NEUTRON_ROOTWRAP_CON
NEUTRON_CONFIG_ARG=${NEUTRON_CONFIG_ARG:-""}
# Additional neutron api config files
declare -a _NEUTRON_SERVER_EXTRA_CONF_FILES_ABS
declare -a -g _NEUTRON_SERVER_EXTRA_CONF_FILES_ABS
# Functions
# ---------

View File

@ -141,10 +141,10 @@ _Q_PLUGIN_EXTRA_CONF_PATH=/etc/neutron
# These config files are relative to ``/etc/neutron``. The above
# example would specify ``--config-file /etc/neutron/file1`` for
# neutron server.
declare -a Q_PLUGIN_EXTRA_CONF_FILES
declare -a -g Q_PLUGIN_EXTRA_CONF_FILES
# same as Q_PLUGIN_EXTRA_CONF_FILES, but with absolute path.
declare -a _Q_PLUGIN_EXTRA_CONF_FILES_ABS
declare -a -g _Q_PLUGIN_EXTRA_CONF_FILES_ABS
Q_RR_CONF_FILE=$NEUTRON_CONF_DIR/rootwrap.conf

View File

@ -5,7 +5,7 @@
# ensure we don't re-source this in the same environment
[[ -z "$_DEVSTACK_STACKRC" ]] || return 0
declare -r _DEVSTACK_STACKRC=1
declare -r -g _DEVSTACK_STACKRC=1
# Find the other rc files
RC_DIR=$(cd $(dirname "${BASH_SOURCE:-$0}") && pwd)