105 lines
3.0 KiB
Plaintext
105 lines
3.0 KiB
Plaintext
# Copyright (c) 2014 OpenStack Foundation
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
set -e
|
|
|
|
export OS_AUTH_URL=http://localhost:35357/
|
|
export OS_PROJECT_NAME=admin
|
|
export OS_USERNAME=admin
|
|
export OS_PASSWORD=admin
|
|
export OS_IDENTITY_API_VERSION=3
|
|
|
|
_get_id()
|
|
{
|
|
awk '/ id / { print $4 }'
|
|
}
|
|
|
|
_add_user()
|
|
{
|
|
local name=$1
|
|
local tenant=$2
|
|
local user=$3
|
|
local password=$4
|
|
local role=$5
|
|
|
|
TENANT_ID=$(openstack project list | awk "/ $tenant / { print \$2 }")
|
|
if [ "$TENANT_ID" == "" ]; then
|
|
# create a new tenant
|
|
TENANT_ID=$(openstack project create $tenant | _get_id)
|
|
fi
|
|
|
|
USER_ID=$(openstack user list | awk "/ $user / { print \$2 }")
|
|
if [ "$USER_ID" == "" ]; then
|
|
USER_ID=$(openstack user create $user --password=$password \
|
|
--project $TENANT_ID | _get_id)
|
|
fi
|
|
|
|
if [ "$role" != "" ]; then
|
|
ROLE_ID=$(openstack role list | awk "/ $role / { print \$2 }")
|
|
if [ "$ROLE_ID" == "" ]; then
|
|
# create a new role
|
|
ROLE_ID=$(openstack role create $role | _get_id)
|
|
fi
|
|
|
|
openstack role add --user $USER_ID --project $TENANT_ID $ROLE_ID
|
|
fi
|
|
|
|
eval $(openstack ec2 credentials create --user $user --project $tenant \
|
|
-f shell -c access -c secret)
|
|
export ${name}_ACCESS_KEY=$access
|
|
export ${name}_SECRET_KEY=$secret
|
|
}
|
|
|
|
_create_swift_accounts()
|
|
{
|
|
_add_user SERVICE service swift password admin
|
|
_add_user ADMIN test admin admin ResellerAdmin
|
|
_add_user TESTER test tester testing admin
|
|
_add_user TESTER2 test tester2 testing2 member
|
|
|
|
SERVICE=$(openstack service create --name=swift object-store | _get_id)
|
|
openstack endpoint create $SERVICE \
|
|
public "http://localhost:8080/v1/AUTH_\$(tenant_id)s"
|
|
}
|
|
|
|
_setup_keystone()
|
|
{
|
|
rm -f ${TEST_DIR}/keystone.db 2>&1
|
|
|
|
local log_file="${LOG_DEST:-${TEST_DIR}/log}/keystone.log"
|
|
mkdir -p "$(dirname "${log_file}")"
|
|
|
|
keystone-manage --config-file conf/keystone.conf --debug fernet_setup
|
|
keystone-manage --config-file conf/keystone.conf --debug db_sync
|
|
keystone-manage --config-file conf/keystone.conf --debug bootstrap \
|
|
--bootstrap-password=$OS_PASSWORD \
|
|
--bootstrap-admin-url=$OS_AUTH_URL \
|
|
--bootstrap-public-url=${OS_AUTH_URL/35357/5000}
|
|
|
|
keystone-wsgi-admin -p 35357 -- --config-file conf/keystone.conf --debug \
|
|
> "${log_file}" 2>&1 &
|
|
export keystone_pid=$!
|
|
# make sure it's actually running
|
|
sleep 5
|
|
ps -p $keystone_pid
|
|
curl -I $OS_AUTH_URL
|
|
|
|
_create_swift_accounts
|
|
}
|
|
|
|
_setup_keystone
|
|
|
|
set +e
|