From 85d8281484d9980f3f92bd90a8fb69027608a2cb Mon Sep 17 00:00:00 2001 From: Brent Baude Date: Sun, 4 Feb 2024 09:27:43 -0600 Subject: [PATCH] create machine dirs at discovery in various use cases, the required machine dirs are not created. the machine dirs are runtimedir, datadir, and configdir. Example in Linux would be: configDir //.config/containers/podman/machine/ dataDir //.local/share/containers/podman/machine/ runtimeDir /run/user/1000/podman/machine now we blindly create them without checking for their existence (because it is faster). this fixes a bug where runtimedir does not exist on macos after a reboot [NO NEW TESTS NEEDED] Signed-off-by: Brent Baude --- pkg/machine/config.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkg/machine/config.go b/pkg/machine/config.go index df62a407fc..c12d065c96 100644 --- a/pkg/machine/config.go +++ b/pkg/machine/config.go @@ -193,12 +193,25 @@ func GetMachineDirs(vmType define.VMType) (*define.MachineDirs, error) { } rtDirFile, err := define.NewMachineFile(rtDir, nil) + if err != nil { + return nil, err + } dirs := define.MachineDirs{ ConfigDir: configDirFile, DataDir: dataDirFile, RuntimeDir: rtDirFile, } + + // make sure all machine dirs are present + if err := os.MkdirAll(rtDir, 0755); err != nil { + return nil, err + } + if err := os.MkdirAll(configDir, 0755); err != nil { + return nil, err + } + err = os.MkdirAll(dataDir, 0755) + return &dirs, err }