local call masks errors in subshells
In another "things from the man page"
The return status is 0 unless local is used outside a function, an
invalid name is supplied, or name is a readonly variable.
Thus if anything fails in "cmd" of "local foo=$( cmd )" we don't
notice.
Change-Id: I22b10d5d39f014b6c92d2e101b167cbacf81afca
diff --git a/functions-common b/functions-common
index 322bf82..a2a9a3d 100644
--- a/functions-common
+++ b/functions-common
@@ -684,9 +684,10 @@
# Gets or creates a domain
# Usage: get_or_create_domain <name> <description>
function get_or_create_domain {
+ local domain_id
local os_url="$KEYSTONE_SERVICE_URI_V3"
# Gets domain id
- local domain_id=$(
+ domain_id=$(
# Gets domain id
openstack --os-token=$OS_TOKEN --os-url=$os_url \
--os-identity-api-version=3 domain show $1 \
@@ -705,8 +706,9 @@
function get_or_create_group {
local desc="${3:-}"
local os_url="$KEYSTONE_SERVICE_URI_V3"
+ local group_id
# Gets group id
- local group_id=$(
+ group_id=$(
# Creates new group with --or-show
openstack --os-token=$OS_TOKEN --os-url=$os_url \
--os-identity-api-version=3 group create $1 \
@@ -719,13 +721,14 @@
# Gets or creates user
# Usage: get_or_create_user <username> <password> <domain> [<email>]
function get_or_create_user {
+ local user_id
if [[ ! -z "$4" ]]; then
local email="--email=$4"
else
local email=""
fi
# Gets user id
- local user_id=$(
+ user_id=$(
# Creates new user with --or-show
openstack user create \
$1 \
@@ -743,7 +746,8 @@
# Gets or creates project
# Usage: get_or_create_project <name> <domain>
function get_or_create_project {
- local project_id=$(
+ local project_id
+ project_id=$(
# Creates new project with --or-show
openstack --os-url=$KEYSTONE_SERVICE_URI_V3 \
--os-identity-api-version=3 \
@@ -757,7 +761,8 @@
# Gets or creates role
# Usage: get_or_create_role <name>
function get_or_create_role {
- local role_id=$(
+ local role_id
+ role_id=$(
# Creates role with --or-show
openstack role create $1 \
--os-url=$KEYSTONE_SERVICE_URI_V3 \
@@ -770,8 +775,9 @@
# Gets or adds user role to project
# Usage: get_or_add_user_project_role <role> <user> <project>
function get_or_add_user_project_role {
+ local user_role_id
# Gets user role id
- local user_role_id=$(openstack role list \
+ user_role_id=$(openstack role list \
--user $2 \
--os-url=$KEYSTONE_SERVICE_URI_V3 \
--os-identity-api-version=3 \
@@ -795,8 +801,9 @@
# Gets or adds group role to project
# Usage: get_or_add_group_project_role <role> <group> <project>
function get_or_add_group_project_role {
+ local group_role_id
# Gets group role id
- local group_role_id=$(openstack role list \
+ group_role_id=$(openstack role list \
--os-url=$KEYSTONE_SERVICE_URI_V3 \
--os-identity-api-version=3 \
--group $2 \
@@ -822,8 +829,9 @@
# Gets or creates service
# Usage: get_or_create_service <name> <type> <description>
function get_or_create_service {
+ local service_id
# Gets service id
- local service_id=$(
+ service_id=$(
# Gets service id
openstack service show $2 -f value -c id 2>/dev/null ||
# Creates new service if not exists
@@ -841,7 +849,8 @@
# Create an endpoint with a specific interface
# Usage: _get_or_create_endpoint_with_interface <service> <interface> <url> <region>
function _get_or_create_endpoint_with_interface {
- local endpoint_id=$(openstack endpoint list \
+ local endpoint_id
+ endpoint_id=$(openstack endpoint list \
--os-url $KEYSTONE_SERVICE_URI_V3 \
--os-identity-api-version=3 \
--service $1 \