use boolreport for containerexists response

in the case of exists, use a boolreport structure so that responses can be consistent pointer and error

Signed-off-by: Brent Baude <bbaude@redhat.com>
This commit is contained in:
Brent Baude
2020-03-20 13:00:37 -05:00
parent 87293028e6
commit baf3a9b3a7
5 changed files with 13 additions and 8 deletions

View File

@ -29,11 +29,11 @@ func init() {
} }
func exists(cmd *cobra.Command, args []string) error { func exists(cmd *cobra.Command, args []string) error {
exists, err := registry.ContainerEngine().ContainerExists(context.Background(), args[0]) response, err := registry.ContainerEngine().ContainerExists(context.Background(), args[0])
if err != nil { if err != nil {
return err return err
} }
if !exists { if !response.Value {
os.Exit(1) os.Exit(1)
} }
return nil return nil

View File

@ -13,3 +13,7 @@ type WaitReport struct {
Error error Error error
ExitCode int32 ExitCode int32
} }
type BoolReport struct {
Value bool
}

View File

@ -7,7 +7,7 @@ import (
type ContainerEngine interface { type ContainerEngine interface {
ContainerDelete(ctx context.Context, opts ContainerDeleteOptions) (*ContainerDeleteReport, error) ContainerDelete(ctx context.Context, opts ContainerDeleteOptions) (*ContainerDeleteReport, error)
ContainerPrune(ctx context.Context) (*ContainerPruneReport, error) ContainerPrune(ctx context.Context) (*ContainerPruneReport, error)
ContainerExists(ctx context.Context, nameOrId string) (bool, error) ContainerExists(ctx context.Context, nameOrId string) (*BoolReport, error)
ContainerWait(ctx context.Context, namesOrIds []string, options WaitOptions) ([]WaitReport, error) ContainerWait(ctx context.Context, namesOrIds []string, options WaitOptions) ([]WaitReport, error)
PodDelete(ctx context.Context, opts PodPruneOptions) (*PodDeleteReport, error) PodDelete(ctx context.Context, opts PodPruneOptions) (*PodDeleteReport, error)
PodPrune(ctx context.Context) (*PodPruneReport, error) PodPrune(ctx context.Context) (*PodPruneReport, error)

View File

@ -12,12 +12,12 @@ import (
) )
// TODO: Should return *entities.ContainerExistsReport, error // TODO: Should return *entities.ContainerExistsReport, error
func (ic *ContainerEngine) ContainerExists(ctx context.Context, nameOrId string) (bool, error) { func (ic *ContainerEngine) ContainerExists(ctx context.Context, nameOrId string) (*entities.BoolReport, error) {
_, err := ic.Libpod.LookupContainer(nameOrId) _, err := ic.Libpod.LookupContainer(nameOrId)
if err != nil && errors.Cause(err) != define.ErrNoSuchCtr { if err != nil && errors.Cause(err) != define.ErrNoSuchCtr {
return false, err return nil, err
} }
return err == nil, nil return &entities.BoolReport{Value: err == nil}, nil
} }
func (ic *ContainerEngine) ContainerWait(ctx context.Context, namesOrIds []string, options entities.WaitOptions) ([]entities.WaitReport, error) { func (ic *ContainerEngine) ContainerWait(ctx context.Context, namesOrIds []string, options entities.WaitOptions) ([]entities.WaitReport, error) {

View File

@ -7,8 +7,9 @@ import (
"github.com/containers/libpod/pkg/domain/entities" "github.com/containers/libpod/pkg/domain/entities"
) )
func (ic *ContainerEngine) ContainerExists(ctx context.Context, nameOrId string) (bool, error) { func (ic *ContainerEngine) ContainerExists(ctx context.Context, nameOrId string) (*entities.BoolReport, error) {
return containers.Exists(ctx, nameOrId) exists, err := containers.Exists(ctx, nameOrId)
return &entities.BoolReport{Value: exists}, err
} }
func (ic *ContainerEngine) ContainerWait(ctx context.Context, namesOrIds []string, options entities.WaitOptions) ([]entities.WaitReport, error) { func (ic *ContainerEngine) ContainerWait(ctx context.Context, namesOrIds []string, options entities.WaitOptions) ([]entities.WaitReport, error) {