Fixed a bug preventing containers from running after being restored
This commit is contained in:
parent
f4e25694c1
commit
6513a1d94e
|
@ -70,10 +70,14 @@ func loadContainer(containerPath string) (*Container, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
container := &Container{}
|
container := &Container{
|
||||||
|
stdout: newWriteBroadcaster(),
|
||||||
|
stderr: newWriteBroadcaster(),
|
||||||
|
}
|
||||||
if err := json.Unmarshal(data, container); err != nil {
|
if err := json.Unmarshal(data, container); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
container.State = newState()
|
||||||
return container, nil
|
return container, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -179,23 +179,32 @@ func TestRestore(t *testing.T) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
docker, err := NewFromDirectory(root)
|
|
||||||
|
// Create a container with one instance of docker
|
||||||
|
docker1, err := NewFromDirectory(root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
container, err := docker.Create(
|
container1, err := docker1.Create(
|
||||||
"test",
|
"restore_test",
|
||||||
"ls",
|
"ls",
|
||||||
[]string{"-al"},
|
[]string{"-al"},
|
||||||
[]string{"/var/lib/docker/images/ubuntu"},
|
[]string{"/var/lib/docker/images/ubuntu"},
|
||||||
&Config{},
|
&Config{},
|
||||||
)
|
)
|
||||||
if len(docker.List()) != 1 {
|
if err != nil {
|
||||||
t.Errorf("Expected 1 container, %v found", len(docker.List()))
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer docker1.Destroy(container1)
|
||||||
|
if len(docker1.List()) != 1 {
|
||||||
|
t.Errorf("Expected 1 container, %v found", len(docker1.List()))
|
||||||
|
}
|
||||||
|
if err := container1.Run(); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
defer docker.Destroy(container)
|
// Here are are simulating a docker restart - that is, reloading all containers
|
||||||
|
// from scratch
|
||||||
docker2, err := NewFromDirectory(root)
|
docker2, err := NewFromDirectory(root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -203,4 +212,11 @@ func TestRestore(t *testing.T) {
|
||||||
if len(docker2.List()) != 1 {
|
if len(docker2.List()) != 1 {
|
||||||
t.Errorf("Expected 1 container, %v found", len(docker2.List()))
|
t.Errorf("Expected 1 container, %v found", len(docker2.List()))
|
||||||
}
|
}
|
||||||
|
container2 := docker2.Get("restore_test")
|
||||||
|
if container2 == nil {
|
||||||
|
t.Fatal("Unable to Get container")
|
||||||
|
}
|
||||||
|
if err := container2.Run(); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue