Merge pull request #513 from duglin/RemoveNullState
Remove the nullState
This commit is contained in:
commit
ee0a019448
|
@ -14,8 +14,11 @@ import (
|
|||
type Status int
|
||||
|
||||
const (
|
||||
// The container exists but has not been run yet
|
||||
Created Status = iota
|
||||
|
||||
// The container exists and is running.
|
||||
Running Status = iota + 1
|
||||
Running
|
||||
|
||||
// The container exists, it is in the process of being paused.
|
||||
Pausing
|
||||
|
@ -32,6 +35,8 @@ const (
|
|||
|
||||
func (s Status) String() string {
|
||||
switch s {
|
||||
case Created:
|
||||
return "created"
|
||||
case Running:
|
||||
return "running"
|
||||
case Pausing:
|
||||
|
@ -43,7 +48,7 @@ func (s Status) String() string {
|
|||
case Destroyed:
|
||||
return "destroyed"
|
||||
default:
|
||||
return "undefined"
|
||||
return "unknown"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -166,7 +166,7 @@ func TestGetContainerState(t *testing.T) {
|
|||
},
|
||||
},
|
||||
}
|
||||
container.state = &nullState{c: container}
|
||||
container.state = &createdState{c: container}
|
||||
state, err := container.State()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
|
|
@ -202,7 +202,7 @@ func (l *LinuxFactory) Load(id string) (Container, error) {
|
|||
cgroupManager: l.NewCgroupsManager(state.Config.Cgroups, state.CgroupPaths),
|
||||
root: containerRoot,
|
||||
}
|
||||
c.state = &nullState{c: c}
|
||||
c.state = &createdState{c: c, s: Created}
|
||||
if err := c.refreshState(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@ func (r *runningState) transition(s containerState) error {
|
|||
}
|
||||
r.c.state = s
|
||||
return nil
|
||||
case *pausedState, *nullState:
|
||||
case *pausedState:
|
||||
r.c.state = s
|
||||
return nil
|
||||
case *runningState:
|
||||
|
@ -202,22 +202,22 @@ func (r *restoredState) destroy() error {
|
|||
return destroy(r.c)
|
||||
}
|
||||
|
||||
// nullState is used whenever a container is restored, loaded, or setting additional
|
||||
// createdState is used whenever a container is restored, loaded, or setting additional
|
||||
// processes inside and it should not be destroyed when it is exiting.
|
||||
type nullState struct {
|
||||
type createdState struct {
|
||||
c *linuxContainer
|
||||
s Status
|
||||
}
|
||||
|
||||
func (n *nullState) status() Status {
|
||||
func (n *createdState) status() Status {
|
||||
return n.s
|
||||
}
|
||||
|
||||
func (n *nullState) transition(s containerState) error {
|
||||
func (n *createdState) transition(s containerState) error {
|
||||
n.c.state = s
|
||||
return nil
|
||||
}
|
||||
|
||||
func (n *nullState) destroy() error {
|
||||
func (n *createdState) destroy() error {
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -69,9 +69,9 @@ func TestRestoredStateTransition(t *testing.T) {
|
|||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
err := s.transition(&nullState{})
|
||||
err := s.transition(&createdState{})
|
||||
if err == nil {
|
||||
t.Fatal("transition to null state should fail")
|
||||
t.Fatal("transition to created state should fail")
|
||||
}
|
||||
if !isStateTransitionError(err) {
|
||||
t.Fatal("expected stateTransitionError")
|
||||
|
|
Loading…
Reference in New Issue