Merge pull request #2654 from dgageot/2140_driver_restart
Change host restart to use the driver implementation
This commit is contained in:
@@ -342,6 +342,11 @@ func (d *Driver) Remove() error {
|
||||
return c.deleteDisk()
|
||||
}
|
||||
|
||||
// Restart restarts a machine which is known to be running.
|
||||
func (d *Driver) Restart() error {
|
||||
return nil
|
||||
if err := d.Stop(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return d.Start()
|
||||
}
|
||||
|
||||
@@ -500,6 +500,10 @@ func (d *Driver) Start() error {
|
||||
return ErrMustEnableVTX
|
||||
}
|
||||
|
||||
return d.waitForIP()
|
||||
}
|
||||
|
||||
func (d *Driver) waitForIP() error {
|
||||
// Wait for SSH over NAT to be available before returning to user
|
||||
if err := drivers.WaitForSSH(d); err != nil {
|
||||
return err
|
||||
@@ -510,6 +514,7 @@ func (d *Driver) Start() error {
|
||||
return err
|
||||
}
|
||||
|
||||
var err error
|
||||
d.IPAddress, err = d.GetIP()
|
||||
|
||||
return err
|
||||
@@ -572,18 +577,16 @@ func (d *Driver) Remove() error {
|
||||
return d.vbm("unregistervm", "--delete", d.MachineName)
|
||||
}
|
||||
|
||||
// Restart restarts a machine which is known to be running.
|
||||
func (d *Driver) Restart() error {
|
||||
s, err := d.GetState()
|
||||
if err != nil {
|
||||
log.Infof("Restarting VM...")
|
||||
if err := d.vbm("controlvm", d.MachineName, "reset"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if s == state.Running {
|
||||
if err := d.Stop(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return d.Start()
|
||||
d.IPAddress = ""
|
||||
|
||||
return d.waitForIP()
|
||||
}
|
||||
|
||||
func (d *Driver) Kill() error {
|
||||
|
||||
+5
-14
@@ -122,24 +122,15 @@ func (h *Host) Kill() error {
|
||||
}
|
||||
|
||||
func (h *Host) Restart() error {
|
||||
if drivers.MachineInState(h.Driver, state.Stopped)() {
|
||||
return h.Start()
|
||||
}
|
||||
if drivers.MachineInState(h.Driver, state.Running)() {
|
||||
if err := h.Stop(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := mcnutils.WaitFor(drivers.MachineInState(h.Driver, state.Stopped)); err != nil {
|
||||
if err := h.Driver.Restart(); err != nil {
|
||||
return err
|
||||
}
|
||||
return mcnutils.WaitFor(drivers.MachineInState(h.Driver, state.Running))
|
||||
}
|
||||
|
||||
if err := h.Start(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := mcnutils.WaitFor(drivers.MachineInState(h.Driver, state.Running)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user