| #!/bin/bash |
| BIN_DIR=${BIN_DIR:-.} |
| # Tenants |
| ADMIN_TENANT=`$BIN_DIR/keystone-manage tenant --id-only create \ |
| tenant_name=admin` |
| DEMO_TENANT=`$BIN_DIR/keystone-manage tenant --id-only create \ |
| tenant_name=demo` |
| INVIS_TENANT=`$BIN_DIR/keystone-manage tenant --id-only create \ |
| tenant_name=invisible_to_admin` |
| |
| |
| # Users |
| ADMIN_USER=`$BIN_DIR/keystone-manage user --id-only create \ |
| name=admin \ |
| "password=%ADMIN_PASSWORD%" \ |
| email=admin@example.com` |
| DEMO_USER=`$BIN_DIR/keystone-manage user --id-only create \ |
| name=demo \ |
| "password=%ADMIN_PASSWORD%" \ |
| email=demo@example.com` |
| |
| # Roles |
| ADMIN_ROLE=`$BIN_DIR/keystone-manage role --id-only create \ |
| name=admin` |
| MEMBER_ROLE=`$BIN_DIR/keystone-manage role --id-only create \ |
| name=Member` |
| KEYSTONEADMIN_ROLE=`$BIN_DIR/keystone-manage role --id-only create \ |
| name=KeystoneAdmin` |
| KEYSTONESERVICE_ROLE=`$BIN_DIR/keystone-manage role --id-only create \ |
| name=KeystoneServiceAdmin` |
| SYSADMIN_ROLE=`$BIN_DIR/keystone-manage role --id-only create \ |
| name=sysadmin` |
| NETADMIN_ROLE=`$BIN_DIR/keystone-manage role --id-only create \ |
| name=netadmin` |
| |
| |
| # Add Roles to Users in Tenants |
| |
| $BIN_DIR/keystone-manage role add_user_role \ |
| role=$ADMIN_ROLE \ |
| user=$ADMIN_USER \ |
| tenant=$ADMIN_TENANT |
| $BIN_DIR/keystone-manage role add_user_role \ |
| role=$MEMBER_ROLE \ |
| user=$DEMO_USER \ |
| tenant=$DEMO_TENANT |
| $BIN_DIR/keystone-manage role add_user_role \ |
| role=$SYSADMIN_ROLE \ |
| user=$DEMO_USER \ |
| tenant=$DEMO_TENANT |
| $BIN_DIR/keystone-manage role add_user_role \ |
| role=$NETADMIN_ROLE \ |
| user=$DEMO_USER \ |
| tenant=$DEMO_TENANT |
| $BIN_DIR/keystone-manage role add_user_role \ |
| role=$MEMBER_ROLE \ |
| user=$DEMO_USER \ |
| tenant=$INVIS_TENANT |
| $BIN_DIR/keystone-manage role add_user_role \ |
| role=$ADMIN_ROLE \ |
| user=$ADMIN_USER \ |
| tenant=$DEMO_TENANT |
| |
| # TODO(termie): these two might be dubious |
| $BIN_DIR/keystone-manage role add_user_role \ |
| role=$KEYSTONEADMIN_ROLE \ |
| user=$ADMIN_USER \ |
| tenant=$ADMIN_TENANT |
| $BIN_DIR/keystone-manage role add_user_role \ |
| role=$KEYSTONESERVICE_ROLE \ |
| user=$ADMIN_USER \ |
| tenant=$ADMIN_TENANT |
| |
| # Services |
| $BIN_DIR/keystone-manage service create \ |
| name=nova \ |
| service_type=compute \ |
| "description=Nova Compute Service" |
| |
| $BIN_DIR/keystone-manage service create \ |
| name=ec2 \ |
| service_type=ec2 \ |
| "description=EC2 Compatibility Layer" |
| |
| $BIN_DIR/keystone-manage service create \ |
| name=glance \ |
| service_type=image \ |
| "description=Glance Image Service" |
| |
| $BIN_DIR/keystone-manage service create \ |
| name=keystone \ |
| service_type=identity \ |
| "description=Keystone Identity Service" |
| if [[ "$ENABLED_SERVICES" =~ "swift" ]]; then |
| $BIN_DIR/keystone-manage service create \ |
| name=swift \ |
| service_type=object-store \ |
| "description=Swift Service" |
| fi |
| |
| # create ec2 creds and parse the secret and access key returned |
| RESULT=`$BIN_DIR/keystone-manage ec2 create user_id=$ADMIN_USER tenant_id=$ADMIN_TENANT` |
| ADMIN_ACCESS=`echo $RESULT | python -c "import sys; import json; result = json.loads(sys.stdin.read()); print result['access'];"` |
| ADMIN_SECRET=`echo $RESULT | python -c "import sys; import json; result = json.loads(sys.stdin.read()); print result['secret'];"` |
| |
| |
| RESULT=`$BIN_DIR/keystone-manage ec2 create user_id=$DEMO_USER tenant_id=$DEMO_TENANT` |
| DEMO_ACCESS=`echo $RESULT | python -c "import sys; import json; result = json.loads(sys.stdin.read()); print result['access'];"` |
| DEMO_SECRET=`echo $RESULT | python -c "import sys; import json; result = json.loads(sys.stdin.read()); print result['secret'];"` |
| |
| # write the secret and access to ec2rc |
| cat > $DEVSTACK_DIR/ec2rc <<EOF |
| ADMIN_ACCESS=$ADMIN_ACCESS |
| ADMIN_SECRET=$ADMIN_SECRET |
| DEMO_ACCESS=$DEMO_ACCESS |
| DEMO_SECRET=$DEMO_SECRET |
| EOF |
| |
| |
| #endpointTemplates |
| #$BIN_DIR/keystone-manage $* endpointTemplates add \ |
| # RegionOne nova |
| # http://%SERVICE_HOST%:8774/v1.1/%tenant_id% |
| # http://%SERVICE_HOST%:8774/v1.1/%tenant_id% |
| # http://%SERVICE_HOST%:8774/v1.1/%tenant_id% 1 1 |
| #$BIN_DIR/keystone-manage $* endpointTemplates add |
| # RegionOne ec2 |
| # http://%SERVICE_HOST%:8773/services/Cloud |
| # http://%SERVICE_HOST%:8773/services/Admin |
| # http://%SERVICE_HOST%:8773/services/Cloud 1 1 |
| #$BIN_DIR/keystone-manage $* endpointTemplates add |
| # RegionOne glance |
| # http://%SERVICE_HOST%:9292/v1 |
| # http://%SERVICE_HOST%:9292/v1 |
| # http://%SERVICE_HOST%:9292/v1 1 1 |
| #$BIN_DIR/keystone-manage $* endpointTemplates add |
| # RegionOne keystone |
| # http://%SERVICE_HOST%:5000/v2.0 |
| # http://%SERVICE_HOST%:35357/v2.0 |
| # http://%SERVICE_HOST%:5000/v2.0 1 1 |
| #if [[ "$ENABLED_SERVICES" =~ "swift" ]]; then |
| # $BIN_DIR/keystone-manage $* endpointTemplates add |
| # RegionOne swift |
| # http://%SERVICE_HOST%:8080/v1/AUTH_%tenant_id% |
| # http://%SERVICE_HOST%:8080/ |
| # http://%SERVICE_HOST%:8080/v1/AUTH_%tenant_id% 1 1 |
| #fi |
| |
| # Tokens |
| #$BIN_DIR/keystone-manage token add %SERVICE_TOKEN% admin admin 2015-02-05T00:00 |
| |