From: Casey Bodley Date: Wed, 8 Jan 2025 20:41:10 +0000 (-0500) Subject: examples/rgw: register boto extension for BucketIndex on CreateBucket X-Git-Tag: v20.0.0~43^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b05a9580f8e4f1a7d61d38f0fb8c5081750c9b44;p=ceph.git examples/rgw: register boto extension for BucketIndex on CreateBucket Signed-off-by: Casey Bodley --- diff --git a/examples/rgw/boto3/create_bucket_indexless.py b/examples/rgw/boto3/create_bucket_indexless.py new file mode 100755 index 0000000000000..0ffdd00052337 --- /dev/null +++ b/examples/rgw/boto3/create_bucket_indexless.py @@ -0,0 +1,29 @@ +#!/usr/bin/python + +import boto3 +import sys + +if len(sys.argv) != 2: + print('Usage: ' + sys.argv[0] + ' ') + sys.exit(1) + +# bucket name as first argument +bucketname = sys.argv[1] + +# endpoint and keys from vstart +endpoint = 'http://127.0.0.1:8000' +access_key='0555b35654ad1656d804' +secret_key='h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q==' + +client = boto3.client('s3', + endpoint_url=endpoint, + aws_access_key_id=access_key, + aws_secret_access_key=secret_key) + +client.create_bucket( + Bucket=bucketname, + CreateBucketConfiguration={ + 'BucketIndex': { + 'Type': 'Indexless' + } + }) diff --git a/examples/rgw/boto3/create_bucket_shards.py b/examples/rgw/boto3/create_bucket_shards.py new file mode 100755 index 0000000000000..cea3f2edac855 --- /dev/null +++ b/examples/rgw/boto3/create_bucket_shards.py @@ -0,0 +1,31 @@ +#!/usr/bin/python + +import boto3 +import sys + +if len(sys.argv) != 3: + print('Usage: ' + sys.argv[0] + ' ') + sys.exit(1) + +# bucket name as first argument +bucketname = sys.argv[1] +shards = int(sys.argv[2]) + +# endpoint and keys from vstart +endpoint = 'http://127.0.0.1:8000' +access_key='0555b35654ad1656d804' +secret_key='h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q==' + +client = boto3.client('s3', + endpoint_url=endpoint, + aws_access_key_id=access_key, + aws_secret_access_key=secret_key) + +client.create_bucket( + Bucket=bucketname, + CreateBucketConfiguration={ + 'BucketIndex': { + 'Type': 'Normal', + 'NumShards': shards + } + }) diff --git a/examples/rgw/boto3/service-2.sdk-extras.json b/examples/rgw/boto3/service-2.sdk-extras.json index ffa5ab585f8c6..d44dc14bb01aa 100644 --- a/examples/rgw/boto3/service-2.sdk-extras.json +++ b/examples/rgw/boto3/service-2.sdk-extras.json @@ -411,7 +411,40 @@ }, "ReadStats":{"type":"boolean"}, "ObjectCount":{"type":"integer"}, - "BytesUsed":{"type":"integer"} + "BytesUsed":{"type":"integer"}, + "CreateBucketConfiguration":{ + "type":"structure", + "members":{ + "BucketIndex":{ + "shape":"BucketIndex", + "documentation":"

Configuration to customize the bucket index layout.

This element is a Ceph RGW extension.

" + } + } + }, + "BucketIndex":{ + "type":"structure", + "required":[ + "Type" + ], + "members":{ + "Type":{ + "shape":"BucketIndexType", + "documentation":"

Bucket index type: Normal or Indexless.

" + }, + "NumShards":{ + "shape":"BucketIndexNumShards", + "documentation":"

Number of initial bucket index shards. Only valid for the Normal index type.

" + } + } + }, + "BucketIndexType":{ + "type":"string", + "enum":[ + "Normal", + "Indexless" + ] + }, + "BucketIndexNumShards":{"type":"integer"} }, "documentation":"

" }