client: Add GetStorageVolumeBitmap

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
This commit is contained in:
Stéphane Graber 2026-07-30 01:31:15 -04:00
parent 99d66fa419
commit 5465a49133
No known key found for this signature in database
GPG Key ID: C638974D64792D67
2 changed files with 21 additions and 0 deletions

View File

@ -1566,6 +1566,26 @@ func (r *ProtocolIncus) GetStorageVolumeBitmaps(pool string, volumeType string,
return bitmaps, nil
}
// GetStorageVolumeBitmap returns information about a volume bitmap.
func (r *ProtocolIncus) GetStorageVolumeBitmap(pool string, volumeType string, volumeName string, bitmapName string) (*api.StorageVolumeBitmap, error) {
if !r.HasExtension("storage_volume_nbd") {
return nil, errors.New("The server is missing the required \"storage_volume_nbd\" API extension")
}
bitmap := api.StorageVolumeBitmap{}
path := fmt.Sprintf(
"/storage-pools/%s/volumes/%s/%s/bitmaps/%s",
url.PathEscape(pool), url.PathEscape(volumeType), url.PathEscape(volumeName), url.PathEscape(bitmapName),
)
_, err := r.queryStruct("GET", path, nil, "", &bitmap)
if err != nil {
return nil, err
}
return &bitmap, nil
}
// CreateStorageVolumeBitmap creates a new volume bitmap.
func (r *ProtocolIncus) CreateStorageVolumeBitmap(pool string, volumeType string, volumeName string, bitmap api.StorageVolumeBitmapsPost) error {
if !r.HasExtension("storage_volume_nbd") {

View File

@ -420,6 +420,7 @@ type InstanceServer interface {
// Storage volume bitmaps manipulations functions ("storage_volume_nbd" API extension)
GetStorageVolumeBitmapNames(pool string, volumeType string, volumeName string) ([]string, error)
GetStorageVolumeBitmaps(pool string, volumeType string, volumeName string) ([]api.StorageVolumeBitmap, error)
GetStorageVolumeBitmap(pool string, volumeType string, volumeName string, bitmapName string) (bitmap *api.StorageVolumeBitmap, err error)
CreateStorageVolumeBitmap(pool string, volumeType string, volumeName string, bitmap api.StorageVolumeBitmapsPost) error
DeleteStorageVolumeBitmap(pool string, volumeType string, volumeName string, bitmapName string) error