Object Gateway
- POST /storage/object-gateway/disable
Disable Object Gateway service
- Request JSON Object:
service_name (string)
- Status Codes:
200 OK – OK
500 Internal Server Error – Internal Server Error
- POST /storage/object-gateway/enable
Schedule the enable wizard FSM
- Request JSON Object:
crush_rule (string) – CrushRule is the rule name picked from the wizard’s Configure-step dropdown (populated from Preflight.CrushRules). Empty means “use the cluster default” which lets every pool inherit the cluster’s osd_pool_default_crush_rule — exactly the pre-patch behaviour.
hosts[] (string)
placement (string) – “single” | “ha” | “all”
pool_prefix (string)
pool_size (integer)
port (integer)
service_name (string) – defaults to “karios”
- Status Codes:
202 Accepted – {"job_id":"…"}
400 Bad Request – Bad Request
500 Internal Server Error – Internal Server Error
- GET /storage/object-gateway/enable/jobs/{id}
Poll the enable wizard FSM job state
- Parameters:
id (string) – Job ID returned by /enable
- Status Codes:
200 OK – OK
404 Not Found – Not Found
- Response JSON Object:
endpoints[] (string)
error (string)
id (string)
keys (any) – Keys are populated only when state==COMPLETED, on the first read. The UI reads once and confirms-copy; subsequent reads still return them until the job ages out (default 10 minutes).
request.crush_rule (string) – CrushRule is the rule name picked from the wizard’s Configure-step dropdown (populated from Preflight.CrushRules). Empty means “use the cluster default” which lets every pool inherit the cluster’s osd_pool_default_crush_rule — exactly the pre-patch behaviour.
request.hosts[] (string)
request.placement (string) – “single” | “ha” | “all”
request.pool_prefix (string)
request.pool_size (integer)
request.port (integer)
request.service_name (string) – defaults to “karios”
started_at (string)
state (string)
steps[].dashboard_sync_warning (string) – DashboardSyncWarning carries a non-fatal warning when the post-user Ceph dashboard RGW credential sync fails. The step status stays “ok” because the wizard’s primary job (making RGW reachable) succeeded; the operator can re-run the 4 dashboard commands by hand.
steps[].error (string)
steps[].label (string)
steps[].log[] (string)
steps[].retryable (boolean)
steps[].state (string)
steps[].status (string) – “pending” | “running” | “ok” | “error”
updated_at (string)
- POST /storage/object-gateway/preflight
Run wizard Step 1 preflight probes
- Status Codes:
200 OK – OK
500 Internal Server Error – Internal Server Error
- Response JSON Object:
blockers[].code (string)
blockers[].message (string)
cluster.detail (string)
cluster.status (string)
crush_rules[].failure_domain (string)
crush_rules[].name (string)
crush_rules[].type (string)
free_port (integer)
hosts[].addr (string)
hosts[].eligible (boolean)
hosts[].hostname (string)
hosts[].labels[] (string)
hosts[].reason (string)
osd_count (integer)
port_scan[].occupied (boolean)
port_scan[].on_hosts[] (string)
port_scan[].port (integer)
realm.all[] (string)
realm.default (string)
realm.exists (boolean)
suggested_pool_size (integer)
warnings[] (string)
- POST /storage/object-gateway/preflight/port-check
Single-port re-check for the Step 2 form
- Query Parameters:
port (integer) – Port to check (fallback when body is empty)
- Request JSON Object:
port (integer)
- Status Codes:
200 OK – OK
400 Bad Request – Bad Request
- Response JSON Object:
free (boolean)
on_hosts[] (string)
port (integer)
- GET /storage/object-gateway/status
Object Gateway service status
Returns whether RGW is enabled, running/failed daemon counts, ports, hosts, version.
- Status Codes:
200 OK – OK
500 Internal Server Error – Internal Server Error
- Response JSON Object:
counts (any) – Counts (deliverable E) — buckets/users counts via radosgw-admin list (bare JSON arrays on Reef/Squid; len = count). Null when the list call failed or the gateway is not enabled.
enabled (boolean)
endpoints (any) – Endpoints (deliverable E) — populated when Enabled=true. All three URLs are best-effort: if a probe can’t fill a field, it stays empty so the UI can decide to render a placeholder. SECRETS NEVER LEAK: only URLs and access keys (if extended later) ever land here.
failed_daemons (integer)
hosts[] (string)
last_error (string)
partial (boolean) – Partial is true if any individual probe failed but at least one returned data. The UI uses this to render a yellow ribbon (“partial telemetry”) instead of red.
placement (string)
ports[] (integer)
running_daemons (integer)
total_daemons (integer)
version (string)