Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #set -x
- ######################################################################
- ###
- ### stack_id
- ### --------
- ###
- ### Given name of tenant, user, role, etc, printout keystone id
- ###
- ######################################################################
- source /root/.keystonerc
- function USAGE {
- cat <<-EOF
- USAGE:
- $(basename $0) <option> <data_name>
- OPTIONS:
- -t tenant
- -u user
- -r role
- -s service
- -i image
- -n network
- -b subnet
- -o router
- ARGS:
- data_name name of tenant, user, or role whose id you want
- EXAMPLE:
- $(basename $0) -u admin
- EOF
- }
- query="/usr/bin/keystone"
- ### Get Options
- ### Select data table to query
- while getopts ":htursinbo" opt; do # Leading colon xlates unknown opts to ?
- # Pick the first option seen, ignore rest
- if [[ -n "$table" ]] ; then
- continue
- fi
- case $opt in
- h) USAGE; exit 1;;
- t) table=tenant;;
- u) table=user;;
- r) table=role;;
- s) table=service;;
- i) table=image; query="/usr/bin/glance";;
- n) table=net; query="/usr/bin/quantum";;
- b) table=subnet; query="/usr/bin/quantum";;
- o) table=router; query="/usr/bin/quantum";;
- ?) printf "[ERROR] Invalid option\n\n" >&2
- USAGE
- exit 1;;
- esac
- done
- shift $((OPTIND - 1))
- ### Get data name
- name=$1
- ### Early Exit
- table_regex="^(tenant|user|role|service|image|net|subnet|router)$"
- if [[ -z "$name" || -z "$table" || ! $table =~ $table_regex ]] ; then
- printf "[ERROR] Bad usage\n\n"
- USAGE
- exit 1
- fi
- ### Run query
- out=$( ${query} ${table}-list 2>/dev/null |
- awk -v name=$name '$4 == name {print $2}' )
- ### Did we get an answer?
- if [[ -z "$out" ]] ; then
- echo "No such $table $name" >&2
- exit 1
- else
- echo $out
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement