@@ -58,7 +58,7 @@ func (vm *Vm) ReleaseResponseChan(ch chan *types.VmResponse) {
5858 }
5959}
6060
61- func (vm * Vm ) Launch (b * BootConfig ) (err error ) {
61+ func (vm * Vm ) launch (b * BootConfig ) (err error ) {
6262 var (
6363 vmEvent = make (chan VmEvent , 128 )
6464 Status = make (chan * types.VmResponse , 128 )
@@ -732,29 +732,19 @@ func GetVm(vmId string, b *BootConfig, waitStarted bool) (*Vm, error) {
732732 }
733733
734734 vm := newVm (id , b .CPU , b .Memory )
735- if err := vm .Launch (b ); err != nil {
735+ if err := vm .launch (b ); err != nil {
736736 return nil , err
737737 }
738738
739739 if waitStarted {
740740 vm .Log (TRACE , "waiting for vm to start" )
741- if err := <- vm .WaitResponse (func (response * types.VmResponse ) (error , bool ) {
742- if response .Code == types .E_FAILED {
743- vm .Log (ERROR , "VM start failed" )
744- return fmt .Errorf ("VM start failed" ), true
745- }
746- if response .Code == types .E_VM_RUNNING {
747- vm .Log (TRACE , "VM started successfully" )
748- return nil , true
749- }
750- vm .Log (ERROR , "VM never started" )
751- return nil , false
752- }, - 1 ); err != nil {
753- vm .Kill ()
754- return nil , err
741+ if _ , err := vm .ctx .hyperstart .APIVersion (); err != nil {
742+ vm .Log (ERROR , "VM start failed: %v" , err )
743+ return nil , fmt .Errorf ("VM start failed: %v" , err )
755744 }
745+ vm .Log (TRACE , "VM started successfully" )
756746 }
757747
758- vm .Log (TRACE , "GetVm succeeded (not waiting for startup) " )
748+ vm .Log (TRACE , "GetVm succeeded" )
759749 return vm , nil
760750}
0 commit comments