summaryrefslogtreecommitdiff
path: root/cmd/podman
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@pm.me>2020-05-20 18:19:06 -0400
committerMatthew Heon <matthew.heon@pm.me>2020-05-20 18:24:56 -0400
commit66cae3209ec362cc6fb663dec742cf0514aa9af8 (patch)
tree4f0bfde574c55d26eef141792faeab8171ff093d /cmd/podman
parente8e5a5f96e0b5d915baeeb0915cc0ca788b70e64 (diff)
downloadpodman-66cae3209ec362cc6fb663dec742cf0514aa9af8.tar.gz
podman-66cae3209ec362cc6fb663dec742cf0514aa9af8.tar.bz2
podman-66cae3209ec362cc6fb663dec742cf0514aa9af8.zip
Fix build on OS X
We disabled the OS X and Windows cross-building tests. This, predictably, led us to regress a bit in our ability to build for both of these. This fixes the build on OS X and fixes one obvious Windows bug. Unfortunately, we're dragging in all of `pkg/spec` somewhere on Windows, and things are blowing up spectacularly because of it (plus a few uses of the `syscall` package in the bindings). I've giving up for the day. This fixes OS X, but does not fully enable the cross-build CI (need Windows fixes for that). Signed-off-by: Matthew Heon <matthew.heon@pm.me>
Diffstat (limited to 'cmd/podman')
-rw-r--r--cmd/podman/containers/top.go20
-rw-r--r--cmd/podman/pods/top.go20
-rw-r--r--cmd/podman/root.go17
-rw-r--r--cmd/podman/syslog_linux.go25
-rw-r--r--cmd/podman/syslog_unsupported.go17
5 files changed, 70 insertions, 29 deletions
diff --git a/cmd/podman/containers/top.go b/cmd/podman/containers/top.go
index 732a08623..d2b11ec77 100644
--- a/cmd/podman/containers/top.go
+++ b/cmd/podman/containers/top.go
@@ -9,20 +9,18 @@ import (
"github.com/containers/libpod/cmd/podman/registry"
"github.com/containers/libpod/pkg/domain/entities"
- "github.com/containers/psgo"
+ "github.com/containers/libpod/pkg/util"
"github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
)
var (
- topDescription = fmt.Sprintf(`Similar to system "top" command.
+ topDescription = `Similar to system "top" command.
Specify format descriptors to alter the output.
- Running "podman top -l pid pcpu seccomp" will print the process ID, the CPU percentage and the seccomp mode of each process of the latest container.
- Format Descriptors:
- %s`, strings.Join(psgo.ListDescriptors(), ","))
+ Running "podman top -l pid pcpu seccomp" will print the process ID, the CPU percentage and the seccomp mode of each process of the latest container.`
topOptions = entities.TopOptions{}
@@ -68,6 +66,12 @@ func init() {
flags := topCommand.Flags()
topFlags(flags)
+ descriptors, err := util.GetContainerPidInformationDescriptors()
+ if err == nil {
+ topDescription = fmt.Sprintf("%s\n\n Format Descriptors:\n %s", topDescription, strings.Join(descriptors, ","))
+ topCommand.Long = topDescription
+ }
+
registry.Commands = append(registry.Commands, registry.CliCommand{
Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
Command: containerTopCommand,
@@ -79,7 +83,11 @@ func init() {
func top(cmd *cobra.Command, args []string) error {
if topOptions.ListDescriptors {
- fmt.Println(strings.Join(psgo.ListDescriptors(), "\n"))
+ descriptors, err := util.GetContainerPidInformationDescriptors()
+ if err != nil {
+ return err
+ }
+ fmt.Println(strings.Join(descriptors, "\n"))
return nil
}
diff --git a/cmd/podman/pods/top.go b/cmd/podman/pods/top.go
index 9cf2bd525..ba1efb638 100644
--- a/cmd/podman/pods/top.go
+++ b/cmd/podman/pods/top.go
@@ -9,17 +9,15 @@ import (
"github.com/containers/libpod/cmd/podman/registry"
"github.com/containers/libpod/pkg/domain/entities"
- "github.com/containers/psgo"
+ "github.com/containers/libpod/pkg/util"
"github.com/pkg/errors"
"github.com/spf13/cobra"
)
var (
- topDescription = fmt.Sprintf(`Specify format descriptors to alter the output.
+ topDescription = `Specify format descriptors to alter the output.
- You may run "podman pod top -l pid pcpu seccomp" to print the process ID, the CPU percentage and the seccomp mode of each process of the latest pod.
- Format Descriptors:
- %s`, strings.Join(psgo.ListDescriptors(), ","))
+ You may run "podman pod top -l pid pcpu seccomp" to print the process ID, the CPU percentage and the seccomp mode of each process of the latest pod.`
topOptions = entities.PodTopOptions{}
@@ -43,6 +41,12 @@ func init() {
Parent: podCmd,
})
+ descriptors, err := util.GetContainerPidInformationDescriptors()
+ if err == nil {
+ topDescription = fmt.Sprintf("%s\n\n Format Descriptors:\n %s", topDescription, strings.Join(descriptors, ","))
+ topCommand.Long = topDescription
+ }
+
flags := topCommand.Flags()
flags.SetInterspersed(false)
flags.BoolVar(&topOptions.ListDescriptors, "list-descriptors", false, "")
@@ -56,7 +60,11 @@ func init() {
func top(cmd *cobra.Command, args []string) error {
if topOptions.ListDescriptors {
- fmt.Println(strings.Join(psgo.ListDescriptors(), "\n"))
+ descriptors, err := util.GetContainerPidInformationDescriptors()
+ if err != nil {
+ return err
+ }
+ fmt.Println(strings.Join(descriptors, "\n"))
return nil
}
diff --git a/cmd/podman/root.go b/cmd/podman/root.go
index 7d6f6f823..dffd9b534 100644
--- a/cmd/podman/root.go
+++ b/cmd/podman/root.go
@@ -2,7 +2,6 @@ package main
import (
"fmt"
- "log/syslog"
"os"
"path"
"runtime/pprof"
@@ -17,7 +16,6 @@ import (
"github.com/opentracing/opentracing-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
- logrusSyslog "github.com/sirupsen/logrus/hooks/syslog"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
)
@@ -191,21 +189,6 @@ func loggingHook() {
}
}
-func syslogHook() {
- if !useSyslog {
- return
- }
-
- hook, err := logrusSyslog.NewSyslogHook("", "", syslog.LOG_INFO, "")
- if err != nil {
- fmt.Fprint(os.Stderr, "Failed to initialize syslog hook: "+err.Error())
- os.Exit(1)
- }
- if err == nil {
- logrus.AddHook(hook)
- }
-}
-
func rootFlags(opts *entities.PodmanConfig, flags *pflag.FlagSet) {
// V2 flags
flags.StringVarP(&opts.Uri, "remote", "r", registry.DefaultAPIAddress(), "URL to access Podman service")
diff --git a/cmd/podman/syslog_linux.go b/cmd/podman/syslog_linux.go
new file mode 100644
index 000000000..ac7bbfe0f
--- /dev/null
+++ b/cmd/podman/syslog_linux.go
@@ -0,0 +1,25 @@
+package main
+
+import (
+ "fmt"
+ "log/syslog"
+ "os"
+
+ "github.com/sirupsen/logrus"
+ logrusSyslog "github.com/sirupsen/logrus/hooks/syslog"
+)
+
+func syslogHook() {
+ if !useSyslog {
+ return
+ }
+
+ hook, err := logrusSyslog.NewSyslogHook("", "", syslog.LOG_INFO, "")
+ if err != nil {
+ fmt.Fprint(os.Stderr, "Failed to initialize syslog hook: "+err.Error())
+ os.Exit(1)
+ }
+ if err == nil {
+ logrus.AddHook(hook)
+ }
+}
diff --git a/cmd/podman/syslog_unsupported.go b/cmd/podman/syslog_unsupported.go
new file mode 100644
index 000000000..3765d96b9
--- /dev/null
+++ b/cmd/podman/syslog_unsupported.go
@@ -0,0 +1,17 @@
+// +build !linux
+
+package main
+
+import (
+ "fmt"
+ "os"
+)
+
+func syslogHook() {
+ if !useSyslog {
+ return
+ }
+
+ fmt.Fprintf(os.Stderr, "Logging to Syslog is not supported on Windows")
+ os.Exit(1)
+}