File tree Expand file tree Collapse file tree 2 files changed +17
-9
lines changed
Expand file tree Collapse file tree 2 files changed +17
-9
lines changed Original file line number Diff line number Diff line change @@ -342,6 +342,11 @@ func (d *Driver) Remove() error {
342342 return c .deleteDisk ()
343343}
344344
345+ // Restart restarts a machine which is known to be running.
345346func (d * Driver ) Restart () error {
346- return nil
347+ if err := d .Stop (); err != nil {
348+ return err
349+ }
350+
351+ return d .Start ()
347352}
Original file line number Diff line number Diff line change @@ -500,6 +500,10 @@ func (d *Driver) Start() error {
500500 return ErrMustEnableVTX
501501 }
502502
503+ return d .waitForIP ()
504+ }
505+
506+ func (d * Driver ) waitForIP () error {
503507 // Wait for SSH over NAT to be available before returning to user
504508 if err := drivers .WaitForSSH (d ); err != nil {
505509 return err
@@ -510,6 +514,7 @@ func (d *Driver) Start() error {
510514 return err
511515 }
512516
517+ var err error
513518 d .IPAddress , err = d .GetIP ()
514519
515520 return err
@@ -572,18 +577,16 @@ func (d *Driver) Remove() error {
572577 return d .vbm ("unregistervm" , "--delete" , d .MachineName )
573578}
574579
580+ // Restart restarts a machine which is known to be running.
575581func (d * Driver ) Restart () error {
576- s , err := d . GetState ( )
577- if err != nil {
582+ log . Infof ( "Restarting VM..." )
583+ if err := d . vbm ( "controlvm" , d . MachineName , "reset" ); err != nil {
578584 return err
579585 }
580586
581- if s == state .Running {
582- if err := d .Stop (); err != nil {
583- return err
584- }
585- }
586- return d .Start ()
587+ d .IPAddress = ""
588+
589+ return d .waitForIP ()
587590}
588591
589592func (d * Driver ) Kill () error {
You can’t perform that action at this time.
0 commit comments