diff --git a/lib/heat b/lib/heat index ff3b307e5b..737598d50d 100644 --- a/lib/heat +++ b/lib/heat @@ -40,6 +40,8 @@ HEAT_CONF=$HEAT_CONF_DIR/heat.conf HEAT_ENV_DIR=$HEAT_CONF_DIR/environment.d HEAT_TEMPLATES_DIR=$HEAT_CONF_DIR/templates HEAT_STACK_DOMAIN=`trueorfalse True $HEAT_STACK_DOMAIN` +HEAT_API_HOST=${HEAT_API_HOST:-$HOST_IP} +HEAT_API_PORT=${HEAT_API_PORT:-8004} # other default options HEAT_DEFERRED_AUTH=${HEAT_DEFERRED_AUTH:-trusts} @@ -69,6 +71,9 @@ function cleanup_heat { # configure_heat() - Set config files, create data dirs, etc function configure_heat { setup_develop $HEAT_DIR + if [[ "$HEAT_STANDALONE" = "True" ]]; then + setup_develop $HEAT_DIR/contrib/heat_keystoneclient_v2 + fi if [[ ! -d $HEAT_CONF_DIR ]]; then sudo mkdir -p $HEAT_CONF_DIR @@ -83,8 +88,6 @@ function configure_heat { HEAT_ENGINE_PORT=${HEAT_ENGINE_PORT:-8001} HEAT_API_CW_HOST=${HEAT_API_CW_HOST:-$HOST_IP} HEAT_API_CW_PORT=${HEAT_API_CW_PORT:-8003} - HEAT_API_HOST=${HEAT_API_HOST:-$HOST_IP} - HEAT_API_PORT=${HEAT_API_PORT:-8004} HEAT_API_PASTE_FILE=$HEAT_CONF_DIR/api-paste.ini HEAT_POLICY_FILE=$HEAT_CONF_DIR/policy.json @@ -120,7 +123,11 @@ function configure_heat { iniset $HEAT_CONF ec2authtoken auth_uri $KEYSTONE_SERVICE_URI/v2.0 # paste_deploy - [[ "$HEAT_STANDALONE" = "True" ]] && iniset $HEAT_CONF paste_deploy flavor standalone + if [[ "$HEAT_STANDALONE" = "True" ]]; then + iniset $HEAT_CONF paste_deploy flavor standalone + iniset $HEAT_CONF DEFAULT keystone_backend heat_keystoneclient_v2.client.KeystoneClientV2 + iniset $HEAT_CONF clients_heat url "http://$HEAT_API_HOST:$HEAT_API_PORT/v1/%(tenant_id)s" + fi # OpenStack API iniset $HEAT_CONF heat_api bind_port $HEAT_API_PORT diff --git a/stack.sh b/stack.sh index d23417eec8..ccae453c70 100755 --- a/stack.sh +++ b/stack.sh @@ -997,7 +997,7 @@ if is_service_enabled key; then create_swift_accounts fi - if is_service_enabled heat; then + if is_service_enabled heat && [[ "$HEAT_STANDALONE" != "True" ]]; then create_heat_accounts fi @@ -1298,6 +1298,10 @@ if is_service_enabled nova && is_service_enabled key; then USERRC_PARAMS="$USERRC_PARAMS --os-cacert $SSL_BUNDLE_FILE" fi + if [[ "$HEAT_STANDALONE" = "True" ]]; then + USERRC_PARAMS="$USERRC_PARAMS --heat-url http://$HEAT_API_HOST:$HEAT_API_PORT/v1" + fi + $TOP_DIR/tools/create_userrc.sh $USERRC_PARAMS fi diff --git a/tools/create_userrc.sh b/tools/create_userrc.sh index 5b1111ae54..863fe0359e 100755 --- a/tools/create_userrc.sh +++ b/tools/create_userrc.sh @@ -37,6 +37,7 @@ Optional Arguments -C create user and tenant, the specifid tenant will be the user's tenant -r when combined with -C and the (-u) user exists it will be the user's tenant role in the (-C)tenant (default: Member) -p password for the user +--heat-url --os-username --os-password --os-tenant-name @@ -53,12 +54,13 @@ $0 -P -C mytenant -u myuser -p mypass EOF } -if ! options=$(getopt -o hPAp:u:r:C: -l os-username:,os-password:,os-tenant-name:,os-tenant-id:,os-auth-url:,target-dir:,skip-tenant:,os-cacert:,help,debug -- "$@"); then +if ! options=$(getopt -o hPAp:u:r:C: -l os-username:,os-password:,os-tenant-name:,os-tenant-id:,os-auth-url:,target-dir:,heat-url:,skip-tenant:,os-cacert:,help,debug -- "$@"); then display_help exit 1 fi eval set -- $options ADDPASS="" +HEAT_URL="" # The services users usually in the service tenant. # rc files for service users, is out of scope. @@ -79,6 +81,7 @@ while [ $# -gt 0 ]; do --os-auth-url) export OS_AUTH_URL=$2; shift ;; --os-cacert) export OS_CACERT=$2; shift ;; --target-dir) ACCOUNT_DIR=$2; shift ;; + --heat-url) HEAT_URL=$2; shift ;; --debug) set -o xtrace ;; -u) MODE=${MODE:-one}; USER_NAME=$2; shift ;; -p) USER_PASS=$2; shift ;; @@ -209,6 +212,10 @@ EOF if [ -n "$ADDPASS" ]; then echo "export OS_PASSWORD=\"$user_passwd\"" >>"$rcfile" fi + if [ -n "$HEAT_URL" ]; then + echo "export HEAT_URL=\"$HEAT_URL/$tenant_id\"" >>"$rcfile" + echo "export OS_NO_CLIENT_AUTH=True" >>"$rcfile" + fi } #admin users expected