From dab08fff36fd3531c3d7b2ee0af0801f1652096d Mon Sep 17 00:00:00 2001 From: Takashi Matsuo Date: Thu, 30 Apr 2020 15:30:44 -0700 Subject: [PATCH] [storage] fix: use a different bucket for requester_pays_test (#3655) * [storage] fix: use a different bucket for requester_pays_test fixes #3654 * rename to README.md, added the envvar to the template * add REQUESTER_PAYS_TEST_BUCKET env var * just use REQUESTER_PAYS_TEST_BUCKET --- scripts/decrypt-secrets.sh | 3 ++- scripts/encrypt-secrets.sh | 5 ++--- storage/cloud-client/README.md | 10 ++++++++++ storage/cloud-client/requester_pays_test.py | 4 +++- testing/secrets.tar.enc | Bin 11296 -> 10272 bytes testing/test-env.tmpl.sh | 1 + 6 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 storage/cloud-client/README.md diff --git a/scripts/decrypt-secrets.sh b/scripts/decrypt-secrets.sh index dda0e163fe9d..6140da66805c 100755 --- a/scripts/decrypt-secrets.sh +++ b/scripts/decrypt-secrets.sh @@ -20,6 +20,7 @@ ROOT=$( dirname "$DIR" ) # Work from the project root. cd $ROOT -openssl aes-256-cbc -k "$1" -in testing/secrets.tar.enc -out secrets.tar -d +openssl aes-256-cbc -k "$1" -md sha256 \ + -in testing/secrets.tar.enc -out secrets.tar -d tar xvf secrets.tar rm secrets.tar diff --git a/scripts/encrypt-secrets.sh b/scripts/encrypt-secrets.sh index b1d6d9451f1d..cbf0ad201f69 100755 --- a/scripts/encrypt-secrets.sh +++ b/scripts/encrypt-secrets.sh @@ -24,7 +24,6 @@ read -s -p "Enter password for encryption: " PASSWORD echo tar cvf secrets.tar testing/{service-account.json,client-secrets.json,test-env.sh} -openssl aes-256-cbc -k "$PASSWORD" -in secrets.tar -out testing/secrets.tar.enc +openssl aes-256-cbc -k "$PASSWORD" -md sha256 \ + -in secrets.tar -out testing/secrets.tar.enc rm secrets.tar - -travis encrypt "SECRETS_PASSWORD=$PASSWORD" --add --override diff --git a/storage/cloud-client/README.md b/storage/cloud-client/README.md new file mode 100644 index 000000000000..3d7e3664f583 --- /dev/null +++ b/storage/cloud-client/README.md @@ -0,0 +1,10 @@ + +For requester_pays_test.py, we need to use a different Storage bucket. + +The test looks for an environment variable `REQUESTER_PAYS_TEST_BUCKET`. + +Also, the service account for the test needs to have `Billing Project +Manager` role in order to make changes on buckets with requester pays +enabled. + +We added that role to the test service account. diff --git a/storage/cloud-client/requester_pays_test.py b/storage/cloud-client/requester_pays_test.py index 70a4b2002954..f034ad028382 100644 --- a/storage/cloud-client/requester_pays_test.py +++ b/storage/cloud-client/requester_pays_test.py @@ -23,7 +23,9 @@ import storage_download_file_requester_pays import storage_get_requester_pays_status -BUCKET = os.environ["CLOUD_STORAGE_BUCKET"] + +# We use a different bucket from other tests. +BUCKET = os.environ["REQUESTER_PAYS_TEST_BUCKET"] PROJECT = os.environ["GCLOUD_PROJECT"] diff --git a/testing/secrets.tar.enc b/testing/secrets.tar.enc index d4ceb5f2aefaca1d6510d3403ffb16c101268dab..1a749dbfcc0d672cd00677bc24468d634c396ac1 100644 GIT binary patch literal 10272 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 m>IEmX(p4mm6ztE|k~U5vC?faN^j(yz#ms|y(b literal 11296 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