mirror of https://github.com/docker/docs.git
Merge pull request #2373 from jeanlaurent/paused
Fixes #2372, add test for #2356 ( stop and remove paused vm )
This commit is contained in:
commit
076bbf8bce
|
|
@ -481,6 +481,18 @@ func (d *Driver) Start() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Stop() error {
|
func (d *Driver) Stop() error {
|
||||||
|
currentState, err := d.GetState()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if currentState == state.Paused {
|
||||||
|
if err := d.vbm("controlvm", d.MachineName, "resume"); err != nil { // , "--type", "headless"
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
log.Infof("Resuming VM ...")
|
||||||
|
}
|
||||||
|
|
||||||
if err := d.vbm("controlvm", d.MachineName, "acpipowerbutton"); err != nil {
|
if err := d.vbm("controlvm", d.MachineName, "acpipowerbutton"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -495,6 +507,7 @@ func (d *Driver) Stop() error {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
log.Infof("Stopping VM...")
|
||||||
|
|
||||||
d.IPAddress = ""
|
d.IPAddress = ""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load ${BASE_TEST_DIR}/helpers.bash
|
||||||
|
|
||||||
|
## THIS IS VIRTUALBOX ONLY
|
||||||
|
|
||||||
|
force_env DRIVER virtualbox
|
||||||
|
|
||||||
|
@test "$DRIVER: create a new virtualbox machine" {
|
||||||
|
run machine create -d $DRIVER $NAME
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: pause the newly created machine" {
|
||||||
|
run vboxmanage controlvm $NAME pause
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: status should show paused after pause" {
|
||||||
|
run machine status $NAME
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[[ ${output} == *"Paused"* ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: should stop a paused machine" {
|
||||||
|
run machine stop $NAME
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: status should show Stopped after stop" {
|
||||||
|
run machine status $NAME
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[[ ${output} == *"Stopped"* ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: restart the machine" {
|
||||||
|
run machine start $NAME
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: status should show Running after restart" {
|
||||||
|
run machine status $NAME
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[[ ${output} == *"Running"* ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: savestate the machine" {
|
||||||
|
run VBoxManage controlvm $NAME savestate
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: status should show Saved after save" {
|
||||||
|
run machine status $NAME
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[[ ${output} == *"Saved"* ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: should start after save" {
|
||||||
|
run machine start $NAME
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: status should show Running after restart" {
|
||||||
|
run machine status $NAME
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[[ ${output} == *"Running"* ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: pause the machine again" {
|
||||||
|
run vboxmanage controlvm $NAME pause
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "$DRIVER: remove the paused machine" {
|
||||||
|
run machine rm $NAME
|
||||||
|
echo ${output}
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
|
@ -1,55 +0,0 @@
|
||||||
#!/usr/bin/env bats
|
|
||||||
|
|
||||||
load ${BASE_TEST_DIR}/helpers.bash
|
|
||||||
|
|
||||||
force_env DRIVER virtualbox
|
|
||||||
|
|
||||||
@test "$DRIVER: create" {
|
|
||||||
run machine create -d $DRIVER $NAME
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "$DRIVER: VBoxManage pause" {
|
|
||||||
run VBoxManage controlvm $NAME pause
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "$DRIVER: machine should show paused after VBoxManage pause" {
|
|
||||||
run machine ls
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
[[ ${lines[1]} == *"Paused"* ]]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "$DRIVER: start after paused" {
|
|
||||||
run machine start $NAME
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "$DRIVER: machine should show running after start" {
|
|
||||||
run machine ls
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
[[ ${lines[1]} == *"Running"* ]]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "$DRIVER: VBoxManage savestate" {
|
|
||||||
run VBoxManage controlvm $NAME savestate
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "$DRIVER: machine should show saved after VBoxManage savestate" {
|
|
||||||
run machine ls
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
[[ ${lines[1]} == *"$NAME"* ]]
|
|
||||||
[[ ${lines[1]} == *"Saved"* ]]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "$DRIVER: start after saved" {
|
|
||||||
run machine start $NAME
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "$DRIVER: machine should show running after start" {
|
|
||||||
run machine ls
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
[[ ${lines[1]} == *"Running"* ]]
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue