0bd2410d46
* Remove credential creation from files/keystone_data.sh * Remove EC2 cert setup from openrc * Remove sourcing of ec2rc from stackrc * Collect the above in eucarc * Allow rc files to be sourced from other directories; based on Chmouel's 4881 proposal but is simpler and doesn't actually change the directory * Create S3 endpoint * Get EC2 and S3 endpoints from Keystone service catalog * Add EC2 credential checks to exercises/client-env.sh * exercises/bundle.sh and exercises/euca.sh use eucarc Updates: * remove readlink -f to stay bash 3 compatible * use service catalog * create S3 endpoint Fixes bug 949528 Change-Id: I58caea8cecbbd10661779bc2d150d241f4a5822e
41 lines
1.5 KiB
Bash
41 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
#
|
|
# source eucarc [username] [tenantname]
|
|
#
|
|
# Create EC2 credentials for the current user as defined by OS_TENANT_NAME:OS_USERNAME
|
|
# Optionally set the tenant/username via openrc
|
|
|
|
if [[ -n "$1" ]]; then
|
|
USERNAME=$1
|
|
fi
|
|
if [[ -n "$2" ]]; then
|
|
TENANT=$2
|
|
fi
|
|
|
|
# Find the other rc files
|
|
RC_DIR=$(cd $(dirname "$BASH_SOURCE") && pwd)
|
|
|
|
# Get user configuration
|
|
source $RC_DIR/openrc
|
|
|
|
# Set the ec2 url so euca2ools works
|
|
export EC2_URL=$(keystone catalog --service ec2 | awk '/ publicURL / { print $4 }')
|
|
|
|
# Create EC2 credentials for the current user
|
|
CREDS=$(keystone ec2-credentials-create)
|
|
export EC2_ACCESS_KEY=$(echo "$CREDS" | awk '/ access / { print $4 }')
|
|
export EC2_SECRET_KEY=$(echo "$CREDS" | awk '/ secret / { print $4 }')
|
|
|
|
# Euca2ools Certificate stuff for uploading bundles
|
|
# See exercises/bundle.sh to see how to get certs using nova cli
|
|
NOVA_KEY_DIR=${NOVA_KEY_DIR:-$RC_DIR}
|
|
export S3_URL=$(keystone catalog --service s3 | awk '/ publicURL / { print $4 }')
|
|
export EC2_USER_ID=42 # nova does not use user id, but bundling requires it
|
|
export EC2_PRIVATE_KEY=${NOVA_KEY_DIR}/pk.pem
|
|
export EC2_CERT=${NOVA_KEY_DIR}/cert.pem
|
|
export NOVA_CERT=${NOVA_KEY_DIR}/cacert.pem
|
|
export EUCALYPTUS_CERT=${NOVA_CERT} # euca-bundle-image seems to require this set
|
|
alias ec2-bundle-image="ec2-bundle-image --cert ${EC2_CERT} --privatekey ${EC2_PRIVATE_KEY} --user ${EC2_USER_ID} --ec2cert ${NOVA_CERT}"
|
|
alias ec2-upload-bundle="ec2-upload-bundle -a ${EC2_ACCESS_KEY} -s ${EC2_SECRET_KEY} --url ${S3_URL} --ec2cert ${NOVA_CERT}"
|
|
|