github.com/containers/podman/v4@v4.9.4/pkg/machine/applehv/rest_config.go (about)

     1  //go:build darwin
     2  // +build darwin
     3  
     4  package applehv
     5  
     6  import (
     7  	"errors"
     8  	"fmt"
     9  
    10  	"github.com/containers/podman/v4/pkg/machine"
    11  )
    12  
    13  // VZMachineState is what the restful service in vfkit will return
    14  type VZMachineState string
    15  
    16  const (
    17  	// Values that the machine can be in
    18  	// "VirtualMachineStateStoppedVirtualMachineStateRunningVirtualMachineStatePausedVirtualMachineStateErrorVirtualMachineStateStartingVirtualMachineStatePausingVirtualMachineStateResumingVirtualMachineStateStopping"
    19  	VZMachineStateStopped  VZMachineState = "VirtualMachineStateStopped"
    20  	VZMachineStateRunning  VZMachineState = "VirtualMachineStateRunning"
    21  	VZMachineStatePaused   VZMachineState = "VirtualMachineStatePaused"
    22  	VZMachineStateError    VZMachineState = "VirtualMachineStateError"
    23  	VZMachineStateStarting VZMachineState = "VirtualMachineStateStarting"
    24  	VZMachineStatePausing  VZMachineState = "VirtualMachineStatePausing"
    25  	VZMachineStateResuming VZMachineState = "VirtualMachineStateResuming"
    26  	VZMachineStateStopping VZMachineState = "VirtualMachineStateStopping"
    27  )
    28  
    29  func ToMachineStatus(val string) (machine.Status, error) {
    30  	switch val {
    31  	case string(VZMachineStateRunning), string(VZMachineStatePausing), string(VZMachineStateResuming), string(VZMachineStateStopping), string(VZMachineStatePaused):
    32  		return machine.Running, nil
    33  	case string(VZMachineStateStopped):
    34  		return machine.Stopped, nil
    35  	case string(VZMachineStateStarting):
    36  		return machine.Starting, nil
    37  	case string(VZMachineStateError):
    38  		return "", errors.New("machine is in error state")
    39  	}
    40  	return "", fmt.Errorf("unknown machine state: %s", val)
    41  }