delete: force: Do not fail on non exiting container

When a container does not exist, runc does not fail.  Lets mimic this
behavior, sometimes kuberentes will try to force delete containers that
could not be created and gets confused if delete --force fails.

Fixes: #1219

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
This commit is contained in:
Jose Carlos Venegas Munoz 2019-02-07 16:00:12 +00:00
parent d3c63e66e3
commit c78d6b057e
2 changed files with 8 additions and 0 deletions

View File

@ -71,6 +71,10 @@ func delete(ctx context.Context, containerID string, force bool) error {
// Checks the MUST and MUST NOT from OCI runtime specification
status, sandboxID, err := getExistingContainerInfo(ctx, containerID)
if err != nil {
if force {
kataLog.Warnf("Failed to get container, force will not fail: %s", err)
return nil
}
return err
}

View File

@ -65,6 +65,10 @@ func TestDeleteInvalidContainer(t *testing.T) {
err = delete(context.Background(), testContainerID, false)
assert.Error(err)
assert.False(vcmock.IsMockError(err))
// Force to delete missing container
err = delete(context.Background(), "non-existing-test", true)
assert.NoError(err)
}
func TestDeleteMissingContainerTypeAnnotation(t *testing.T) {