swagger:operation GET /1.0/storage-pools/{poolName}/buckets/{bucketName}/keys/{keyName} storage storage_pool_bucket_key_get Get the storage pool bucket key Gets a specific storage pool bucket key. --- produces: - application/json parameters: - in: path name: poolName descript
(d *Daemon, r *http.Request)
| 1381 | // "500": |
| 1382 | // $ref: "#/responses/InternalServerError" |
| 1383 | func storagePoolBucketKeyGet(d *Daemon, r *http.Request) response.Response { |
| 1384 | s := d.State() |
| 1385 | |
| 1386 | resp := forwardedResponseIfTargetIsRemote(s, r) |
| 1387 | if resp != nil { |
| 1388 | return resp |
| 1389 | } |
| 1390 | |
| 1391 | bucketProjectName, err := project.StorageBucketProject(r.Context(), s.DB.Cluster, request.ProjectParam(r)) |
| 1392 | if err != nil { |
| 1393 | return response.SmartError(err) |
| 1394 | } |
| 1395 | |
| 1396 | poolName, err := pathVar(r, "poolName") |
| 1397 | if err != nil { |
| 1398 | return response.SmartError(err) |
| 1399 | } |
| 1400 | |
| 1401 | pool, err := storagePools.LoadByName(s, poolName) |
| 1402 | if err != nil { |
| 1403 | return response.SmartError(fmt.Errorf("Failed loading storage pool: %w", err)) |
| 1404 | } |
| 1405 | |
| 1406 | if !pool.Driver().Info().Buckets { |
| 1407 | return response.BadRequest(errors.New("Storage pool does not support buckets")) |
| 1408 | } |
| 1409 | |
| 1410 | bucketName, err := pathVar(r, "bucketName") |
| 1411 | if err != nil { |
| 1412 | return response.SmartError(err) |
| 1413 | } |
| 1414 | |
| 1415 | keyName, err := pathVar(r, "keyName") |
| 1416 | if err != nil { |
| 1417 | return response.SmartError(err) |
| 1418 | } |
| 1419 | |
| 1420 | targetMember := request.QueryParam(r, "target") |
| 1421 | memberSpecific := targetMember != "" |
| 1422 | |
| 1423 | var bucketKey *db.StorageBucketKey |
| 1424 | err = s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { |
| 1425 | bucket, err := tx.GetStoragePoolBucket(ctx, pool.ID(), bucketProjectName, memberSpecific, bucketName) |
| 1426 | if err != nil { |
| 1427 | return err |
| 1428 | } |
| 1429 | |
| 1430 | bucketKey, err = tx.GetStoragePoolBucketKey(ctx, bucket.ID, keyName) |
| 1431 | if err != nil { |
| 1432 | return err |
| 1433 | } |
| 1434 | |
| 1435 | return nil |
| 1436 | }) |
| 1437 | if err != nil { |
| 1438 | return response.SmartError(err) |
| 1439 | } |
| 1440 |
nothing calls this directly
no test coverage detected
searching dependent graphs…