mirror of
https://github.com/containers/podman.git
synced 2025-11-28 17:18:58 +08:00
For Podman 6, we still have providers and will continue to have a default provider for each platform. But where a platform has multiple providers, we want users to be able to cross provider boudnaries imposed in Podman 4/5. The key change is to look up virtual machines by name, as before, but to then also iterate all possible providers. As of this PR, init will still only create with the default provider, but a subsequent PR will introdouce an provider override. I also removed the "--all-providers" command line option on `podman machine ls` because it no longer makes sense. And I marked the all provider list test to be skipped. Signed-off-by: Brent Baude <bbaude@redhat.com>
61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
package define
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
var (
|
|
ErrWrongState = errors.New("VM in wrong state to perform action")
|
|
ErrNotImplemented = errors.New("functionality not implemented")
|
|
ErrInitRelaunchAttempt = errors.New("stopping execution: 'init' relaunched with --reexec flag to reinitialize the VM")
|
|
ErrRebootInitiated = errors.New("system reboot initiated")
|
|
)
|
|
|
|
type ErrVMAlreadyExists struct {
|
|
Name string
|
|
}
|
|
|
|
func (err *ErrVMAlreadyExists) Error() string {
|
|
return fmt.Sprintf("machine %q already exists", err.Name)
|
|
}
|
|
|
|
type ErrVMRunningCannotDestroyed struct {
|
|
Name string
|
|
}
|
|
|
|
func (err *ErrVMRunningCannotDestroyed) Error() string {
|
|
return fmt.Sprintf("running vm %q cannot be destroyed", err.Name)
|
|
}
|
|
|
|
type ErrVMDoesNotExist struct {
|
|
Name string
|
|
}
|
|
|
|
func (err *ErrVMDoesNotExist) Error() string {
|
|
// the current error in qemu is not quoted
|
|
return fmt.Sprintf("%s: VM does not exist", err.Name)
|
|
}
|
|
|
|
type ErrIncompatibleMachineConfig struct {
|
|
Name string
|
|
Path string
|
|
}
|
|
|
|
func (err *ErrIncompatibleMachineConfig) Error() string {
|
|
return fmt.Sprintf("incompatible machine config %q (%s) for this version of Podman", err.Path, err.Name)
|
|
}
|
|
|
|
type ErrMultipleActiveVM struct {
|
|
Name string
|
|
Provider string
|
|
}
|
|
|
|
func (err *ErrMultipleActiveVM) Error() string {
|
|
msg := ""
|
|
if err.Provider != "" {
|
|
msg = " on the " + err.Provider + " provider"
|
|
}
|
|
return fmt.Sprintf("%s already starting or running%s: only one VM can be active at a time", err.Name, msg)
|
|
}
|