object-storage

command
v0.12.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 27, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

README

Object Storage Batch Test CLI

A CLI tool for batch-testing the Object Storage (bucket) lifecycle — create → get → delete — across multiple CSPs via the CB-Tumblebug API.

Supported CSPs: aws, azure, gcp, alibaba, tencent, ibm, openstack, ncp, nhn, kt

Azure constraints: Versioning and CORS are NOT supported (HTTP 501 returned) — these operate at the Storage Account level in Azure and cannot be configured per-Container (Bucket). Basic Bucket/Object CRUD and Presigned URL (via SAS Token) are fully supported.


Getting Started

Step 1 — Prerequisites
  • CB-Tumblebug is running and reachable (default: http://localhost:1323)
  • Cloud connections for the target CSPs are registered in CB-Spider
  • Go 1.21+ is installed (required only for building from source)

Step 2 — Navigate to the CLI directory
cd src/testclient/test-clis/object-storage

Step 3 — Configure credentials

Copy the example file and fill in your CB-Tumblebug API credentials:

cp .env.example .env

Edit .env:

TB_API_USERNAME=your-username
TB_API_PASSWORD=your-password

Step 4 — Configure test cases

Copy the template config and edit it for your environment:

cp template-test-config.yaml test-config.yaml

Edit test-config.yaml:

tumblebug:
  endpoint: http://localhost:1323 # CB-Tumblebug API endpoint
  nsId: default # Namespace to use for all test operations

testCases:
  - osId: test-bucket-aws
    connectionName: aws-ap-northeast-2
    execute: true # Set to true to include in the test run

  - osId: test-bucket-azure
    connectionName: azure-koreasouth
    execute: false # Versioning/CORS not supported; CRUD and PresignedURL work

  - osId: test-bucket-gcp
    connectionName: gcp-asia-northeast3
    execute: false # Skipped


  # ... add or adjust entries for other CSPs as needed

Only test cases with execute: true are run.


Step 5 — Run the test

Sequential (default) — test cases run one after another:

go run . test

Parallel — all enabled test cases run concurrently:

go run . test --parallel

Override namespace at runtime:

go run . test --nsId my-namespace
go run . test --nsId my-namespace --parallel

Step 6 — Review the results

After all test cases complete, a summary table is printed:

[test-bucket-aws(aws-ap-northeast-2)]   Create: OK (status=Running)  Get: OK (status=Running)  Delete: OK
[test-bucket-gcp(gcp-asia-northeast3)]  Create: OK (status=Running)  Get: OK (status=Running)  Delete: OK

Each column shows OK on success or FAIL: <reason> on error.


Reconcile orphaned metadata

If a bucket creation partially failed and the metadata is stuck in a Failed state, you can clean it up without touching the CSP by calling the Tumblebug API directly:

curl -X DELETE \
  "http://localhost:1323/tumblebug/ns/default/resources/objectStorage/test-bucket-tencent?reconcile=true" \
  -u "$TB_API_USERNAME:$TB_API_PASSWORD"

The reconcile=true option checks whether the CSP bucket actually exists and removes only the Tumblebug metadata if the bucket is absent, leaving the CSP resource untouched.


CLI reference

go run . test [flags]

Flags:
  -n, --nsId string   Namespace ID (overrides config tumblebug.nsId)
      --parallel      Run test cases in parallel (default: sequential)
  -h, --help          Show help

Documentation

Overview

Package main provides a CLI tool for batch-testing Object Storage (bucket) lifecycle (create → get → delete) across multiple CSPs via CB-Tumblebug API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL