Skip to content

Instantly share code, notes, and snippets.

@pgwillia
Last active July 15, 2024 15:19
Show Gist options
  • Save pgwillia/f1f716639e7a3b8799941ee30843e257 to your computer and use it in GitHub Desktop.
Save pgwillia/f1f716639e7a3b8799941ee30843e257 to your computer and use it in GitHub Desktop.
Found a openstack swift with keystone. Has potential for testing changes to pmpy. More documentation at https://github.com/kklopfenstein/openstack-swift-keystone-docker. Start with `docker compose up -d`
services:
swift:
# useful if you need to re-run the tests/spec
# https://docs.openstack.org/ocata/cli-reference/swift.html
# manual steps to set environment variables and create container
# swift auth -v -U test:tester -K testing -A http://localhost:8080/auth/v1.0
# swift auth
# swift post ERA
image: kklopfenstein/openstack-swift-keystone-docker
environment:
- KS_SWIFT_PUBLIC_URL=http://127.0.0.1:8080
ports:
- '8080:8080'
- '5000:5000'
- '35357:35357'
# Sample configuration file for PushmiPullyu.
# Options here can still be overridden by cmd line args.
# Pass this file at config/pushmi_pullyu.yml and PushmiPullyu will
# pick it up automatically. Or pass this file into pushmi_pullyu on command line
# via `pushmi_pullyu -C path/to/pushmi_pullyu.yml`
# PushmiPullyu will run this file through ERB when reading it so you can
# even put in dynamic logic, like consuming ENV Variables.
aip_version: 'lightaip-2.0'
debug: false
logdir: log
monitor: false
piddir: tmp/pids
workdir: tmp/work
process_name: pushmi_pullyu
queue_name: dev:pmpy_queue
ingestion_prefix: "'prod:pmpy_ingest_attempt:'"
ingestion_attempts: 15
first_failed_wait: 10
minimum_age: 0
redis:
url: redis://localhost:6379
#parameters project_name and project_domain_name are required only for keystone v3 authentication
swift:
username: 'swift'
password: 'fingertips'
project_name: 'service'
user_domain_name: 'Default'
project_domain_name: 'Default'
auth_url: 'http://127.0.0.1:35357/v3'
auth_version: '3'
container: 'era'
auth_method: 'password'
service_type: 'object-store'
# works!
# tenant: tester
# username: test:tester
# password: testing
# auth_url: http://localhost:8080/auth/v1.0
# project_name: demo
# project_domain_name: default
# container: era
rollbar:
token: 'abc123xyz'
proxy_host: 'your_proxy_host_url'
proxy_port: '80'
jupiter:
user: [email protected]
api_key: 3eeb395e-63b7-11ea-bc55-0242ac130003
jupiter_url: http://era.lvh.me:3000/
aip_api_path: aip/v1
@pgwillia
Copy link
Author

Was able to create the ERA/era container using testauth

swift auth -v -U test:tester -K testing           -A http://localhost:8080/auth/v1.0
export ST_AUTH=http://localhost:8080/auth/v1.0
export ST_USER=test:tester
export ST_KEY=testing

swift auth
export OS_STORAGE_URL=http://localhost:8080/v1/TMP_test
export OS_AUTH_TOKEN=TMP_tk22920d457e9d41c4a150333bab6816e6

swift post ERA
swift post era

@pgwillia
Copy link
Author

pgwillia commented Jul 12, 2024

I had to unset all the previous related environment variables then

export OS_USERNAME=demo
export OS_PASSWORD=demo
export OS_PROJECT_NAME=test
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://127.0.0.1:35357/v3
export OS_IDENTITY_API_VERSION=3
swift auth

export OS_STORAGE_URL=http://127.0.0.1:8080/v1/KEY_cd238e84310a46e58af7f1d515887d88
export OS_AUTH_TOKEN=gAAAAABmkVyBxwyh_faohC6qnJASLfghOz04RBjecd4nxbLGoVOhO1UbCaFgO8VrrzVmtIXnE2HHRmmMAUMblRPj2FP9y82GeE1BXq72paAKFPYmtbxXDfMSa1FN1RDgUslmM7dpW1Wxqhek-9vP_GVcYmh0tcnr8SkxJPHTJ3_sPJpjunATjp0

swift post ERA
swift post era

@pgwillia
Copy link
Author

Running PMPY

Error of type: OpenStack::Exception::Authentication
	Error message: No service catalog returned. Maybe your auth request is unscoped. Please check if your selected user has a default project.

@pgwillia
Copy link
Author

Also tried swift service account with same result
export OS_USERNAME=swift
export OS_PASSWORD=fingertips
export OS_PROJECT_NAME=service
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://127.0.0.1:35357/v3
export OS_IDENTITY_API_VERSION=3

@pgwillia
Copy link
Author

Required some edits to lib/pushmi_pullyu/swift_depositor.rb

user_domain_name vs user_domain and to set the project_domain_name

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment