Merge pull request #20561 from ashley-cui/rm

AppleHV: Fix machine rm error message
This commit is contained in:
openshift-ci[bot]
2023-11-01 22:48:35 +00:00
committed by GitHub
3 changed files with 24 additions and 13 deletions

View File

@ -53,12 +53,11 @@ func (v AppleHVVirtualization) CheckExclusiveActiveVM() (bool, string, error) {
} }
func (v AppleHVVirtualization) IsValidVMName(name string) (bool, error) { func (v AppleHVVirtualization) IsValidVMName(name string) (bool, error) {
mm := MacMachine{Name: name}
configDir, err := machine.GetConfDir(machine.AppleHvVirt) configDir, err := machine.GetConfDir(machine.AppleHvVirt)
if err != nil { if err != nil {
return false, err return false, err
} }
if err := loadMacMachineFromJSON(configDir, &mm); err != nil { if _, err := loadMacMachineFromJSON(configDir); err != nil {
return false, err return false, err
} }
return true, nil return true, nil
@ -183,14 +182,14 @@ func (v AppleHVVirtualization) loadFromLocalJson() ([]*MacMachine, error) {
} }
for _, jsonFile := range jsonFiles { for _, jsonFile := range jsonFiles {
mm := MacMachine{} mm, err := loadMacMachineFromJSON(jsonFile)
if err := loadMacMachineFromJSON(jsonFile, &mm); err != nil { if err != nil {
return nil, err return nil, err
} }
if err != nil { if err != nil {
return nil, err return nil, err
} }
mms = append(mms, &mm) mms = append(mms, mm)
} }
return mms, nil return mms, nil
} }

View File

@ -761,9 +761,9 @@ func (m *MacMachine) loadFromFile() (*MacMachine, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
mm := MacMachine{}
if err := loadMacMachineFromJSON(jsonPath, &mm); err != nil { mm, err := loadMacMachineFromJSON(jsonPath)
if err != nil {
return nil, err return nil, err
} }
@ -773,18 +773,23 @@ func (m *MacMachine) loadFromFile() (*MacMachine, error) {
} }
mm.lock = lock mm.lock = lock
return &mm, nil return mm, nil
} }
func loadMacMachineFromJSON(fqConfigPath string, macMachine *MacMachine) error { func loadMacMachineFromJSON(fqConfigPath string) (*MacMachine, error) {
b, err := os.ReadFile(fqConfigPath) b, err := os.ReadFile(fqConfigPath)
if err != nil { if err != nil {
if errors.Is(err, fs.ErrNotExist) { if errors.Is(err, fs.ErrNotExist) {
return fmt.Errorf("%q: %w", fqConfigPath, machine.ErrNoSuchVM) name := strings.TrimSuffix(filepath.Base(fqConfigPath), ".json")
return nil, fmt.Errorf("%s: %w", name, machine.ErrNoSuchVM)
} }
return err return nil, err
} }
return json.Unmarshal(b, macMachine) mm := new(MacMachine)
if err := json.Unmarshal(b, mm); err != nil {
return nil, err
}
return mm, nil
} }
func (m *MacMachine) jsonConfigPath() (string, error) { func (m *MacMachine) jsonConfigPath() (string, error) {

View File

@ -32,8 +32,9 @@ var _ = Describe("podman machine rm", func() {
}) })
It("Remove machine", func() { It("Remove machine", func() {
name := randomString()
i := new(initMachine) i := new(initMachine)
session, err := mb.setCmd(i.withImagePath(mb.imagePath)).run() session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run()
Expect(err).ToNot(HaveOccurred()) Expect(err).ToNot(HaveOccurred())
Expect(session).To(Exit(0)) Expect(session).To(Exit(0))
rm := rmMachine{} rm := rmMachine{}
@ -46,6 +47,12 @@ var _ = Describe("podman machine rm", func() {
_, ec, err := mb.toQemuInspectInfo() _, ec, err := mb.toQemuInspectInfo()
Expect(err).ToNot(HaveOccurred()) Expect(err).ToNot(HaveOccurred())
Expect(ec).To(Equal(125)) Expect(ec).To(Equal(125))
// Removing non-existent machine should fail
removeSession2, err := mb.setCmd(rm.withForce()).run()
Expect(err).ToNot(HaveOccurred())
Expect(removeSession2).To(Exit(125))
Expect(removeSession2.errorToString()).To(ContainSubstring(fmt.Sprintf("%s: VM does not exist", name)))
}) })
It("Remove running machine", func() { It("Remove running machine", func() {