mirror of
https://github.com/containers/podman.git
synced 2025-06-23 02:18:13 +08:00
Merge pull request #20561 from ashley-cui/rm
AppleHV: Fix machine rm error message
This commit is contained in:
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
@ -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() {
|
||||||
|
Reference in New Issue
Block a user