diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2022-05-16 12:32:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-16 12:32:50 +0200 |
commit | cedbbfa543651a13055a1fe093a4d0a2a28ccdfd (patch) | |
tree | b3ba3112906a8234a0b27a2bad331c9cb5e66a6e | |
parent | a87bba317e403c69b38c65958f2121d7e3f8a58e (diff) | |
parent | 4ae7161c4c775879b8ff3fbdaa5e93ef732cd5c5 (diff) | |
download | podman-cedbbfa543651a13055a1fe093a4d0a2a28ccdfd.tar.gz podman-cedbbfa543651a13055a1fe093a4d0a2a28ccdfd.tar.bz2 podman-cedbbfa543651a13055a1fe093a4d0a2a28ccdfd.zip |
Merge pull request #14247 from n1hility/machine-event-win-41
[v4.1] Cherry-pick windows machine events
-rw-r--r-- | cmd/podman/machine/machine.go | 2 | ||||
-rw-r--r-- | cmd/podman/machine/machine_unix.go | 12 | ||||
-rw-r--r-- | cmd/podman/machine/machine_windows.go | 11 | ||||
-rw-r--r-- | pkg/util/utils_windows.go | 10 |
4 files changed, 33 insertions, 2 deletions
diff --git a/cmd/podman/machine/machine.go b/cmd/podman/machine/machine.go index 553f1ef7a..5a8a06b9d 100644 --- a/cmd/podman/machine/machine.go +++ b/cmd/podman/machine/machine.go @@ -115,7 +115,7 @@ func resolveEventSock() ([]string, error) { return err case info.IsDir(): return nil - case info.Type() != os.ModeSocket: + case !isUnixSocket(info): return nil case !re.MatchString(info.Name()): return nil diff --git a/cmd/podman/machine/machine_unix.go b/cmd/podman/machine/machine_unix.go new file mode 100644 index 000000000..b56d081ec --- /dev/null +++ b/cmd/podman/machine/machine_unix.go @@ -0,0 +1,12 @@ +//go:build linux || aix || android || darwin || dragonfly || freebsd || hurd || illumos || ios || netbsd || openbsd || solaris +// +build linux aix android darwin dragonfly freebsd hurd illumos ios netbsd openbsd solaris + +package machine + +import ( + "os" +) + +func isUnixSocket(file os.DirEntry) bool { + return file.Type()&os.ModeSocket != 0 +} diff --git a/cmd/podman/machine/machine_windows.go b/cmd/podman/machine/machine_windows.go new file mode 100644 index 000000000..ffd5d8827 --- /dev/null +++ b/cmd/podman/machine/machine_windows.go @@ -0,0 +1,11 @@ +package machine + +import ( + "os" + "strings" +) + +func isUnixSocket(file os.DirEntry) bool { + // Assume a socket on Windows, since sock mode is not supported yet https://github.com/golang/go/issues/33357 + return !file.Type().IsDir() && strings.HasSuffix(file.Name(), ".sock") +} diff --git a/pkg/util/utils_windows.go b/pkg/util/utils_windows.go index 2732124f2..b91680f7a 100644 --- a/pkg/util/utils_windows.go +++ b/pkg/util/utils_windows.go @@ -4,6 +4,9 @@ package util import ( + "path/filepath" + + "github.com/containers/storage/pkg/homedir" "github.com/pkg/errors" ) @@ -34,7 +37,12 @@ func GetRootlessPauseProcessPidPathGivenDir(unused string) (string, error) { // GetRuntimeDir returns the runtime directory func GetRuntimeDir() (string, error) { - return "", errors.New("this function is not implemented for windows") + data, err := homedir.GetDataHome() + if err != nil { + return "", err + } + runtimeDir := filepath.Join(data, "containers", "podman") + return runtimeDir, nil } // GetRootlessConfigHomeDir returns the config home directory when running as non root |