exec: Allow to exec a process on a ready container

If a container is not running, but created/ready instead, this means
a container process exists and that we can actually exec another
process inside this container. The container does not have to be
in running state.

Fixes #120

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
This commit is contained in:
Sebastien Boeuf
2018-03-27 15:08:48 -07:00
parent 9a7813e9ea
commit aa469f4573
4 changed files with 61 additions and 10 deletions

View File

@@ -336,3 +336,29 @@ func TestContainerRemoveResources(t *testing.T) {
err = c.removeResources()
assert.Nil(err)
}
func TestContainerEnterErrorsOnContainerStates(t *testing.T) {
assert := assert.New(t)
c := &Container{
pod: &Pod{
state: State{
State: StateRunning,
},
},
}
cmd := Cmd{}
// Container state undefined
_, err := c.enter(cmd)
assert.Error(err)
// Container paused
c.state.State = StatePaused
_, err = c.enter(cmd)
assert.Error(err)
// Container stopped
c.state.State = StateStopped
_, err = c.enter(cmd)
assert.Error(err)
}