client: rename CheckpointDelete to CheckpointRemove, and add output struct

Align with other "delete" options, which are all named "remove".

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn
2025-11-10 11:41:38 +01:00
parent e2bdc51508
commit 7aa036ef2e
8 changed files with 75 additions and 66 deletions

View File

@@ -1,29 +0,0 @@
package client
import (
"context"
"net/url"
)
// CheckpointDeleteOptions holds parameters to delete a checkpoint from a container.
type CheckpointDeleteOptions struct {
CheckpointID string
CheckpointDir string
}
// CheckpointDelete deletes the checkpoint with the given name from the given container.
func (cli *Client) CheckpointDelete(ctx context.Context, containerID string, options CheckpointDeleteOptions) error {
containerID, err := trimID("container", containerID)
if err != nil {
return err
}
query := url.Values{}
if options.CheckpointDir != "" {
query.Set("dir", options.CheckpointDir)
}
resp, err := cli.delete(ctx, "/containers/"+containerID+"/checkpoints/"+options.CheckpointID, query, nil)
defer ensureReaderClosed(resp)
return err
}

View File

@@ -0,0 +1,34 @@
package client
import (
"context"
"net/url"
)
// CheckpointRemoveOptions holds parameters to delete a checkpoint from a container.
type CheckpointRemoveOptions struct {
CheckpointID string
CheckpointDir string
}
// CheckpointRemoveResult represents the result of [Client.CheckpointRemove].
type CheckpointRemoveResult struct {
// No fields currently; placeholder for future use.
}
// CheckpointRemove deletes the checkpoint with the given name from the given container.
func (cli *Client) CheckpointRemove(ctx context.Context, containerID string, options CheckpointRemoveOptions) (CheckpointRemoveResult, error) {
containerID, err := trimID("container", containerID)
if err != nil {
return CheckpointRemoveResult{}, err
}
query := url.Values{}
if options.CheckpointDir != "" {
query.Set("dir", options.CheckpointDir)
}
resp, err := cli.delete(ctx, "/containers/"+containerID+"/checkpoints/"+options.CheckpointID, query, nil)
defer ensureReaderClosed(resp)
return CheckpointRemoveResult{}, err
}

View File

@@ -1,7 +1,6 @@
package client
import (
"context"
"net/http"
"testing"
@@ -16,17 +15,17 @@ func TestCheckpointDeleteError(t *testing.T) {
)
assert.NilError(t, err)
err = client.CheckpointDelete(context.Background(), "container_id", CheckpointDeleteOptions{
_, err = client.CheckpointRemove(t.Context(), "container_id", CheckpointRemoveOptions{
CheckpointID: "checkpoint_id",
})
assert.Check(t, is.ErrorType(err, cerrdefs.IsInternal))
err = client.CheckpointDelete(context.Background(), "", CheckpointDeleteOptions{})
_, err = client.CheckpointRemove(t.Context(), "", CheckpointRemoveOptions{})
assert.Check(t, is.ErrorType(err, cerrdefs.IsInvalidArgument))
assert.Check(t, is.ErrorContains(err, "value is empty"))
err = client.CheckpointDelete(context.Background(), " ", CheckpointDeleteOptions{})
_, err = client.CheckpointRemove(t.Context(), " ", CheckpointRemoveOptions{})
assert.Check(t, is.ErrorType(err, cerrdefs.IsInvalidArgument))
assert.Check(t, is.ErrorContains(err, "value is empty"))
}
@@ -44,7 +43,7 @@ func TestCheckpointDelete(t *testing.T) {
)
assert.NilError(t, err)
err = client.CheckpointDelete(context.Background(), "container_id", CheckpointDeleteOptions{
_, err = client.CheckpointRemove(t.Context(), "container_id", CheckpointRemoveOptions{
CheckpointID: "checkpoint_id",
})
assert.NilError(t, err)

View File

@@ -56,7 +56,7 @@ type HijackDialer interface {
// enabled.
type CheckpointAPIClient interface {
CheckpointCreate(ctx context.Context, container string, options CheckpointCreateOptions) (CheckpointCreateResult, error)
CheckpointDelete(ctx context.Context, container string, options CheckpointDeleteOptions) error
CheckpointRemove(ctx context.Context, container string, options CheckpointRemoveOptions) (CheckpointRemoveResult, error)
CheckpointList(ctx context.Context, container string, options CheckpointListOptions) (CheckpointListResult, error)
}

View File

@@ -132,7 +132,7 @@ func TestCheckpoint(t *testing.T) {
r.AssertSuccess(t)
for _, id := range []string{"test", "test2"} {
err = apiClient.CheckpointDelete(ctx, cID, client.CheckpointDeleteOptions{
_, err = apiClient.CheckpointRemove(ctx, cID, client.CheckpointRemoveOptions{
CheckpointID: id,
})
assert.NilError(t, err)

View File

@@ -1,29 +0,0 @@
package client
import (
"context"
"net/url"
)
// CheckpointDeleteOptions holds parameters to delete a checkpoint from a container.
type CheckpointDeleteOptions struct {
CheckpointID string
CheckpointDir string
}
// CheckpointDelete deletes the checkpoint with the given name from the given container.
func (cli *Client) CheckpointDelete(ctx context.Context, containerID string, options CheckpointDeleteOptions) error {
containerID, err := trimID("container", containerID)
if err != nil {
return err
}
query := url.Values{}
if options.CheckpointDir != "" {
query.Set("dir", options.CheckpointDir)
}
resp, err := cli.delete(ctx, "/containers/"+containerID+"/checkpoints/"+options.CheckpointID, query, nil)
defer ensureReaderClosed(resp)
return err
}

View File

@@ -0,0 +1,34 @@
package client
import (
"context"
"net/url"
)
// CheckpointRemoveOptions holds parameters to delete a checkpoint from a container.
type CheckpointRemoveOptions struct {
CheckpointID string
CheckpointDir string
}
// CheckpointRemoveResult represents the result of [Client.CheckpointRemove].
type CheckpointRemoveResult struct {
// No fields currently; placeholder for future use.
}
// CheckpointRemove deletes the checkpoint with the given name from the given container.
func (cli *Client) CheckpointRemove(ctx context.Context, containerID string, options CheckpointRemoveOptions) (CheckpointRemoveResult, error) {
containerID, err := trimID("container", containerID)
if err != nil {
return CheckpointRemoveResult{}, err
}
query := url.Values{}
if options.CheckpointDir != "" {
query.Set("dir", options.CheckpointDir)
}
resp, err := cli.delete(ctx, "/containers/"+containerID+"/checkpoints/"+options.CheckpointID, query, nil)
defer ensureReaderClosed(resp)
return CheckpointRemoveResult{}, err
}

View File

@@ -56,7 +56,7 @@ type HijackDialer interface {
// enabled.
type CheckpointAPIClient interface {
CheckpointCreate(ctx context.Context, container string, options CheckpointCreateOptions) (CheckpointCreateResult, error)
CheckpointDelete(ctx context.Context, container string, options CheckpointDeleteOptions) error
CheckpointRemove(ctx context.Context, container string, options CheckpointRemoveOptions) (CheckpointRemoveResult, error)
CheckpointList(ctx context.Context, container string, options CheckpointListOptions) (CheckpointListResult, error)
}