Merge pull request #20707 from baude/vmtypesarereserved

vmtypes names cannot be used as machine names
This commit is contained in:
openshift-merge-bot[bot] 2023-11-18 20:07:00 +00:00 committed by GitHub
commit f17d8df555
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 1 deletions

View File

@ -140,6 +140,12 @@ func initMachine(cmd *cobra.Command, args []string) error {
}
initOpts.Name = args[0]
}
// The vmtype names need to be reserved and cannot be used for podman machine names
if _, err := machine.ParseVMType(initOpts.Name, machine.UnknownVirt); err == nil {
return fmt.Errorf("cannot use %q for a machine name", initOpts.Name)
}
if _, err := provider.LoadVMByName(initOpts.Name); err == nil {
return fmt.Errorf("%s: %w", initOpts.Name, machine.ErrVMAlreadyExists)
}

View File

@ -346,6 +346,7 @@ const (
WSLVirt
AppleHvVirt
HyperVVirt
UnknownVirt
)
func (v VMType) String() string {
@ -383,7 +384,7 @@ func ParseVMType(input string, emptyFallback VMType) (VMType, error) {
case "":
return emptyFallback, nil
default:
return QemuVirt, fmt.Errorf("unknown VMType `%s`", input)
return UnknownVirt, fmt.Errorf("unknown VMType `%s`", input)
}
}

View File

@ -41,6 +41,12 @@ var _ = Describe("podman machine init", func() {
Expect(err).ToNot(HaveOccurred())
Expect(session).To(Exit(125))
reservedName := initMachine{}
reservedNameSession, err := mb.setName(testProvider.VMType().String()).setCmd(&reservedName).run()
Expect(err).ToNot(HaveOccurred())
Expect(reservedNameSession).To(Exit(125))
Expect(reservedNameSession.errorToString()).To(ContainSubstring(fmt.Sprintf("cannot use %q", testProvider.VMType().String())))
badName := "foobar"
bm := basicMachine{}
sysConn, err := mb.setCmd(bm.withPodmanCommand([]string{"system", "connection", "add", badName, "tcp://localhost:8000"})).run()