--- /dev/null
+[DEFAULT]
+log_dir = /home/ali/ssd/ceph/master/build/tempest/rgw/logs
+log_file = tempest.log
+
+[oslo_concurrency]
+lock_path = /home/ali/ssd/ceph/master/build/tempest/rgw/tempest_lock
+
+[auth]
+admin_domain_name: Default
+admin_password: ADMIN
+admin_project_name: admin
+admin_username: admin
+tempest_roles: admin
+
+[identity]
+admin_role: admin
+auth_version: v3
+default_domain_name: Default
+uri: http://loclahost:5000/v2.0/
+uri_v3: http://localhost:5000/v3/
+
+[object-storage]
+reseller_admin_role: admin
+
+[object-storage-feature-enabled]
+container_sync: false
+discoverability: true
# set -ex
KEYSTONE_BRANCH=${1:-master}
-DIR=$(pwd)
TEST_DIR=${2:-$(pwd)}
KEYSTONE_DIR=$TEST_DIR/keystone
TOX_DIR=$TEST_DIR/tox-venv
source $TOX_DIR/bin/activate && pip install bindep
source $TOX_DIR/bin/activate && bindep --brief --file $KEYSTONE_DIR/bindep.txt
# TODO: postgresql-devel is required
+#sudo dnf install postgresql-devel
# possibly install postgres and mariadb aka the output packages from above bindep command, but is this really necessary?
echo "### STEP 4: Setup Venv ###"
cd $KEYSTONE_DIR && sed -e "s^#key_repository =.*^key_repository = $KEYREPO_DIR^" -i etc/keystone.conf
$HOSTNAME=$(hostname -s)
ARCHIVE_DIR=$TEST_DIR/archive
-mkdir $ARCHIVE_DIR
+mkdir -p $ARCHIVE_DIR
LOG_FILE=$ARCHIVE_DIR/keystone.$HOSTNAME.log
cd $KEYSTONE_DIR && sed -e "s^#log_file =.*^log_file = $LOG_FILE^" -i $KEYSTONE_DIR/etc/keystone.conf
cd $KEYSTONE_DIR && cp $KEYSTONE_DIR/etc/keystone.conf $ARCHIVE_DIR/keystone.$HOSTNAME.conf
RGW_ENDPOINT=http://localhost:8000
cd $KEYSTONE_DIR && source .tox/venv/bin/activate && openstack endpoint create --os-username admin --os-password ADMIN --os-user-domain-id default --os-project-name admin --os-project-domain-id default --os-identity-api-version 3 --os-auth-url $ADMIN_URL swift public "$RGW_ENDPOINT/v1/KEY_$(tenant_id)s" --debug
-
# radosgw needs to be started up after this point
+cd $TEST_DIR
+MON=1 OSD=1 RGW=1 MGR=0 MDS=0 ../src/vstart.sh -n -d
+ps ax | grep ceph
+
+echo "### STEP 8: Download Tempest ###"
+
+TEMPEST_BRANCH=${3:-master}
+TEMPEST_DIR=$TEST_DIR/tempest
+git clone -b $TEMPEST_BRANCH https://github.com/openstack/tempest.git $TEMPEST_DIR
+
+echo "### STEP 9: Setup Venv for Tempest ###"
+cd $TEMPEST_DIR && source $TOX_DIR/bin/activate && tox -e venv --notest
+cd $TEMPEST_DIR && source .tox/venv/bin/activate && tempest init --workspace-path $TEMPEST_DIR/workspace.yaml rgw
+echo "### STEP 10: Configure Instance for Tempest ###"
+cp $TEST_DIR/tempest.conf $TEMPEST_ETC_DIR/tempest.conf
+
+echo "### STEP 10: Run Tempest ###"
+cd $TEMPEST_DIR && source .tox/venv/bin/activate && tempest run --workspace-path $TEMPEST_DIR/workspace.yaml --workspace rgw --regex '^tempest.api.object_storage' --black-regex '.*test_account_quotas_negative.AccountQuotasNegativeTest.test_user_modify_quota|.*test_container_acl_negative.ObjectACLsNegativeTest.*|.*test_container_services_negative.ContainerNegativeTest.test_create_container_metadata_.*|.*test_container_staticweb.StaticWebTest.test_web_index|.*test_container_staticweb.StaticWebTest.test_web_listing_css|.*test_container_synchronization.*|.*test_object_services.PublicObjectTest.test_access_public_container_object_without_using_creds|.*test_object_services.ObjectTest.test_create_object_with_transfer_encoding'
echo "### CLEAN UP BEGINNING ###"
+
+cd $TEST_DIR
+#rm -rf $TEMPEST_DIR
+../src/stop.sh
# Stoping Keyston Admin Instance
kill $KEYSTONE_ADMIN_PID
# Stoping Keyston Public Instance
rm -rf $KEYSTONE_DIR
rm -rf $TOX_DIR
echo "### CLEAN UP: Keystone Dir Removed ###"
-
objectstore="bluestore"
fi
ceph_osd=ceph-osd
-rgw_frontend="beast"
+rgw_frontend="beast prefix=/swift"
rgw_compression=""
lockdep=${LOCKDEP:-1}
spdk_enabled=0 # disable SPDK by default
[client.rgw.${current_port}]
rgw frontends = $rgw_frontend port=${current_port}
admin socket = ${CEPH_OUT_DIR}/radosgw.${current_port}.asok
+ rgw keystone accepted admin roles = admin
+ rgw keystone accepted roles = admin,Member
+ rgw keystone admin domain = Default
+ rgw keystone admin password = ADMIN
+ rgw keystone admin project = admin
+ rgw keystone admin user = admin
+ rgw keystone api version = 3
+ rgw keystone implicit tenants = true
+ rgw swift account in url = true
+ rgw swift enforce content length = true
+ rgw swift versioning enabled = true
EOF
current_port=$((current_port + 1))
done
--admin-socket=${CEPH_OUT_DIR}/radosgw.${current_port}.asok \
--pid-file=${CEPH_OUT_DIR}/radosgw.${current_port}.pid \
--rgw_luarocks_location=${CEPH_OUT_DIR}/luarocks \
+ --rgw_keystone_url=http://localhost:5000 \
${RGWDEBUG} \
-n ${rgw_name} \
"--rgw_frontends=${rgw_frontend} port=${current_port}${CEPH_RGW_HTTPS}"