Advertisement
Guest User

Untitled

a guest
May 16th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. create-rc() {
  2. [[ -f ~/admin-openrc.sh ]] && rm ~/admin-openrc.sh
  3. printf "\e[2GCreating Openstack RC file...\n"
  4. #Clear Openstack variables
  5. for var in $(set -o posix; set|/bin/grep -oE '^OS_[^=]+');do unset ${var};done
  6. #Assuming Keystone API 3
  7. unset OS_TENANT_ID
  8. unset OS_TENANT_NAME
  9. export OS_INTERFACE=public
  10. export OS_IDENTITY_API_VERSION=3
  11. export OS_AUTH_VERSION=3
  12. if [[ $(juju config keystone vip) ]];then
  13. export OS_AUTH_URL="http://$(juju config keystone vip):5000/v3"
  14. else
  15. export OS_AUTH_URL="http://$(juju run --unit keystone/0 'unit-get public-address'):5000/v3"
  16. fi
  17. export OS_USERNAME="$(juju 2>/dev/null config keystone admin-user)"
  18. export OS_DOMAIN_NAME="${OS_USERNAME}_domain"
  19. export OS_USER_DOMAIN_NAME="${OS_USERNAME}_domain"
  20. export OS_PROJECT_NAME="${OS_USERNAME}"
  21. export OS_PASSWORD="$(juju 2>/dev/null config keystone admin-password)"
  22. export OS_REGION_NAME="$(juju 2>/dev/null config keystone region)"
  23. export OS_USER_ID="$(openstack user show ${OS_USERNAME} -f value -cid)"
  24. export OS_USER_DOMAIN_ID="$(openstack user show ${OS_USERNAME} -f value -cdomain_id)"
  25. export OS_DOMAIN_ID=${OS_USER_DOMAIN_ID}
  26. export OS_PROJECT_DOMAIN_ID=${OS_USER_DOMAIN_ID}
  27. export OS_PROJECT_ID="$(openstack project list --domain ${OS_USER_DOMAIN_NAME} --user ${OS_USERNAME} -f value -cID)"
  28. export DEFAULT_SEC_GROUP="$(openstack security group list --project ${OS_PROJECT_ID} -fvalue -cID)"
  29. unset OS_DOMAIN_NAME OS_DOMAIN_ID
  30. printf "\e[2GWriting Openstack RC file...(~/admin-openrc.sh)\n"
  31. cat <<EOF|tee 1>/dev/null ~/admin-openrc.sh
  32. for var in \$(set -o posix; set|/bin/grep -oE '"'"'^OS_[^=]+'"'"');do unset ${var};done
  33. EOF
  34. { set|/bin/grep -oE '^OS_[^$]+'|sed 's/^.*$/export &/g;1s/^/#!\/usr\/bin\/env bash\n/;/HYPERVISORS/d'|tee -a 1>/dev/null ~/admin-openrc.sh; }
  35. [[ $? -eq 0 && -f ~/admin-openrc.sh ]] && { printf "\e[2GSourcing Openstack RC file...\n";source ~/admin-openrc.sh; }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement