]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
examples/rgw: register boto extension for BucketIndex on CreateBucket
authorCasey Bodley <cbodley@redhat.com>
Wed, 8 Jan 2025 20:41:10 +0000 (15:41 -0500)
committerCasey Bodley <cbodley@redhat.com>
Tue, 25 Feb 2025 16:15:57 +0000 (11:15 -0500)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
examples/rgw/boto3/create_bucket_indexless.py [new file with mode: 0755]
examples/rgw/boto3/create_bucket_shards.py [new file with mode: 0755]
examples/rgw/boto3/service-2.sdk-extras.json

diff --git a/examples/rgw/boto3/create_bucket_indexless.py b/examples/rgw/boto3/create_bucket_indexless.py
new file mode 100755 (executable)
index 0000000..0ffdd00
--- /dev/null
@@ -0,0 +1,29 @@
+#!/usr/bin/python
+
+import boto3
+import sys
+
+if len(sys.argv) != 2:
+    print('Usage: ' + sys.argv[0] + ' <bucket>')
+    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 (executable)
index 0000000..cea3f2e
--- /dev/null
@@ -0,0 +1,31 @@
+#!/usr/bin/python
+
+import boto3
+import sys
+
+if len(sys.argv) != 3:
+    print('Usage: ' + sys.argv[0] + ' <bucket> <num-shards>')
+    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
+        }
+    })
index ffa5ab585f8c6c45602bfb9df955ae3ec6468140..d44dc14bb01aa2c8861ea130973dd7ae701adbef 100644 (file)
         },
         "ReadStats":{"type":"boolean"},
         "ObjectCount":{"type":"integer"},
-        "BytesUsed":{"type":"integer"}
+        "BytesUsed":{"type":"integer"},
+        "CreateBucketConfiguration":{
+            "type":"structure",
+            "members":{
+                "BucketIndex":{
+                    "shape":"BucketIndex",
+                    "documentation":"<p>Configuration to customize the bucket index layout.</p> <note> <p>This element is a Ceph RGW extension.</p> </note>"
+                }
+            }
+        },
+        "BucketIndex":{
+            "type":"structure",
+            "required":[
+                "Type"
+            ],
+            "members":{
+                "Type":{
+                    "shape":"BucketIndexType",
+                    "documentation":"<p>Bucket index type: Normal or Indexless.</p>"
+                },
+                "NumShards":{
+                    "shape":"BucketIndexNumShards",
+                    "documentation":"<p>Number of initial bucket index shards. Only valid for the <code>Normal</code> index type.</p>"
+                }
+            }
+        },
+        "BucketIndexType":{
+            "type":"string",
+            "enum":[
+                "Normal",
+                "Indexless"
+            ]
+        },
+        "BucketIndexNumShards":{"type":"integer"}
     },
     "documentation":"<p/>"
 }