From 4df5bd0917e3db3f1c481b7a734c5e631fd5a493 Mon Sep 17 00:00:00 2001 From: David Ashpole Date: Tue, 5 Jun 2018 17:05:35 -0700 Subject: [PATCH 1/2] update cadvisor godeps to v0.30.0 --- Godeps/Godeps.json | 228 +++---- Godeps/LICENSES | 477 +++++++-------- vendor/BUILD | 1 + .../api/services/containers/v1/BUILD | 2 - .../services/containers/v1/containers.pb.go | 406 ++++++------- .../services/containers/v1/containers.proto | 2 +- .../containerd/api/services/tasks/v1/BUILD | 2 - .../api/services/tasks/v1/tasks.pb.go | 194 +++--- .../api/services/tasks/v1/tasks.proto | 2 +- .../containerd/api/services/version/v1/BUILD | 3 +- .../api/services/version/v1/version.pb.go | 34 +- .../api/services/version/v1/version.proto | 2 +- .../containerd/containerd/api/types/BUILD | 1 - .../containerd/api/types/descriptor.pb.go | 30 +- .../containerd/api/types/descriptor.proto | 2 +- .../containerd/api/types/metrics.pb.go | 31 +- .../containerd/api/types/metrics.proto | 2 +- .../containerd/api/types/mount.pb.go | 30 +- .../containerd/api/types/mount.proto | 2 +- .../containerd/api/types/platform.pb.go | 30 +- .../containerd/api/types/platform.proto | 2 +- .../containerd/api/types/task/BUILD | 1 - .../containerd/api/types/task/task.pb.go | 95 ++- .../containerd/api/types/task/task.proto | 2 +- .../containerd/containerd/dialer/dialer.go | 2 +- .../containerd/containerd/errdefs/BUILD | 1 - .../containerd/containerd/errdefs/grpc.go | 19 +- .../docker/docker/pkg/parsers/BUILD | 5 +- .../docker/pkg/parsers/operatingsystem/BUILD | 49 ++ .../operatingsystem/operatingsystem_linux.go | 77 +++ .../operatingsystem_solaris.go | 37 ++ .../operatingsystem/operatingsystem_unix.go | 25 + .../operatingsystem_windows.go | 50 ++ .../github.com/golang/protobuf/ptypes/BUILD | 1 - .../golang/protobuf/ptypes/empty/BUILD | 29 - .../golang/protobuf/ptypes/empty/empty.pb.go | 79 --- .../golang/protobuf/ptypes/empty/empty.proto | 52 -- .../google/cadvisor/cache/memory/memory.go | 10 +- .../google/cadvisor/container/common/BUILD | 4 +- ...inotify_watcher.go => fsnotify_watcher.go} | 42 +- .../cadvisor/container/common/helpers.go | 2 +- .../cadvisor/container/containerd/BUILD | 3 +- .../cadvisor/container/containerd/client.go | 25 +- .../cadvisor/container/containerd/handler.go | 69 +-- .../google/cadvisor/container/crio/BUILD | 1 - .../google/cadvisor/container/crio/handler.go | 75 +-- .../google/cadvisor/container/docker/BUILD | 1 - .../cadvisor/container/docker/handler.go | 106 ++-- .../google/cadvisor/container/factory.go | 21 +- .../cadvisor/container/libcontainer/BUILD | 5 +- .../container/libcontainer/handler.go | 566 ++++++++++++++++++ .../container/libcontainer/helpers.go | 467 --------------- .../google/cadvisor/container/raw/BUILD | 1 - .../google/cadvisor/container/raw/factory.go | 6 +- .../google/cadvisor/container/raw/handler.go | 36 +- .../google/cadvisor/container/rkt/BUILD | 1 - .../google/cadvisor/container/rkt/handler.go | 79 +-- vendor/github.com/google/cadvisor/fs/fs.go | 4 +- .../google/cadvisor/info/v1/container.go | 19 +- .../github.com/google/cadvisor/machine/BUILD | 1 + .../google/cadvisor/machine/info.go | 18 +- .../google/cadvisor/manager/container.go | 7 +- .../google/cadvisor/manager/manager.go | 2 +- .../google/cadvisor/manager/watcher/raw/BUILD | 2 +- .../cadvisor/manager/watcher/raw/raw.go | 41 +- .../google/cadvisor/metrics/prometheus.go | 21 + .../google/cadvisor/storage/storage.go | 2 +- .../google/cadvisor/validate/validate.go | 19 + .../mattn/go-shellwords/.travis.yml | 8 + vendor/github.com/mattn/go-shellwords/BUILD | 60 ++ vendor/github.com/mattn/go-shellwords/LICENSE | 21 + .../github.com/mattn/go-shellwords/README.md | 47 ++ .../mattn/go-shellwords/shellwords.go | 178 ++++++ .../mattn/go-shellwords/util_go15.go | 24 + .../mattn/go-shellwords/util_posix.go | 22 + .../mattn/go-shellwords/util_windows.go | 22 + vendor/google.golang.org/grpc/BUILD | 2 +- .../grpc/grpclb/grpc_lb_v1/BUILD | 25 - .../grpc/grpclb/grpc_lb_v1/doc.go | 21 - 79 files changed, 2217 insertions(+), 1876 deletions(-) create mode 100644 vendor/github.com/docker/docker/pkg/parsers/operatingsystem/BUILD create mode 100644 vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_linux.go create mode 100644 vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_solaris.go create mode 100644 vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_unix.go create mode 100644 vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_windows.go delete mode 100644 vendor/github.com/golang/protobuf/ptypes/empty/BUILD delete mode 100644 vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go delete mode 100644 vendor/github.com/golang/protobuf/ptypes/empty/empty.proto rename vendor/github.com/google/cadvisor/container/common/{inotify_watcher.go => fsnotify_watcher.go} (73%) create mode 100644 vendor/github.com/google/cadvisor/container/libcontainer/handler.go create mode 100644 vendor/github.com/mattn/go-shellwords/.travis.yml create mode 100644 vendor/github.com/mattn/go-shellwords/BUILD create mode 100644 vendor/github.com/mattn/go-shellwords/LICENSE create mode 100644 vendor/github.com/mattn/go-shellwords/README.md create mode 100644 vendor/github.com/mattn/go-shellwords/shellwords.go create mode 100644 vendor/github.com/mattn/go-shellwords/util_go15.go create mode 100644 vendor/github.com/mattn/go-shellwords/util_posix.go create mode 100644 vendor/github.com/mattn/go-shellwords/util_windows.go delete mode 100644 vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/BUILD delete mode 100644 vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/doc.go diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index eedfb0af8e..3156231e7c 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -499,48 +499,48 @@ }, { "ImportPath": "github.com/containerd/containerd/api/services/containers/v1", - "Comment": "v1.0.0-beta.2-159-g27d450a0", - "Rev": "27d450a01bb533d7ebc5701eb52792565396b084" + "Comment": "v1.0.2", + "Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c" }, { "ImportPath": "github.com/containerd/containerd/api/services/tasks/v1", - "Comment": "v1.0.0-beta.2-159-g27d450a0", - "Rev": "27d450a01bb533d7ebc5701eb52792565396b084" + "Comment": "v1.0.2", + "Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c" }, { "ImportPath": "github.com/containerd/containerd/api/services/version/v1", - "Comment": "v1.0.0-beta.2-159-g27d450a0", - "Rev": "27d450a01bb533d7ebc5701eb52792565396b084" + "Comment": "v1.0.2", + "Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c" }, { "ImportPath": "github.com/containerd/containerd/api/types", - "Comment": "v1.0.0-beta.2-159-g27d450a0", - "Rev": "27d450a01bb533d7ebc5701eb52792565396b084" + "Comment": "v1.0.2", + "Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c" }, { "ImportPath": "github.com/containerd/containerd/api/types/task", - "Comment": "v1.0.0-beta.2-159-g27d450a0", - "Rev": "27d450a01bb533d7ebc5701eb52792565396b084" + "Comment": "v1.0.2", + "Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c" }, { "ImportPath": "github.com/containerd/containerd/containers", - "Comment": "v1.0.0-beta.2-159-g27d450a0", - "Rev": "27d450a01bb533d7ebc5701eb52792565396b084" + "Comment": "v1.0.2", + "Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c" }, { "ImportPath": "github.com/containerd/containerd/dialer", - "Comment": "v1.0.0-beta.2-159-g27d450a0", - "Rev": "27d450a01bb533d7ebc5701eb52792565396b084" + "Comment": "v1.0.2", + "Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c" }, { "ImportPath": "github.com/containerd/containerd/errdefs", - "Comment": "v1.0.0-beta.2-159-g27d450a0", - "Rev": "27d450a01bb533d7ebc5701eb52792565396b084" + "Comment": "v1.0.2", + "Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c" }, { "ImportPath": "github.com/containerd/containerd/namespaces", - "Comment": "v1.0.0-beta.2-159-g27d450a0", - "Rev": "27d450a01bb533d7ebc5701eb52792565396b084" + "Comment": "v1.0.2", + "Rev": "cfd04396dc68220d1cecbe686a6cc3aa5ce3667c" }, { "ImportPath": "github.com/containernetworking/cni/libcni", @@ -1142,6 +1142,11 @@ "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" }, + { + "ImportPath": "github.com/docker/docker/pkg/parsers/operatingsystem", + "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", + "Rev": "4f3616fb1c112e206b88cb7a9922bf49067a7756" + }, { "ImportPath": "github.com/docker/docker/pkg/stdcopy", "Comment": "docs-v1.12.0-rc4-2016-07-15-7401-g4f3616fb1", @@ -1482,11 +1487,6 @@ "Comment": "v1.1.0", "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" }, - { - "ImportPath": "github.com/golang/protobuf/ptypes/empty", - "Comment": "v1.1.0", - "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" - }, { "ImportPath": "github.com/golang/protobuf/ptypes/struct", "Comment": "v1.1.0", @@ -1508,218 +1508,218 @@ }, { "ImportPath": "github.com/google/cadvisor/accelerators", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/api", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/cache/memory", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/client/v2", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/collector", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/container", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/container/common", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/container/containerd", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/container/crio", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/container/docker", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/container/libcontainer", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/container/raw", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/container/rkt", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/container/systemd", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/devicemapper", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/events", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/fs", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/healthz", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/http", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/http/mux", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/info/v1", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/info/v2", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/machine", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/manager", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/manager/watcher", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/manager/watcher/raw", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/manager/watcher/rkt", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/metrics", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/pages", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/pages/static", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/storage", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/summary", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/utils", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/utils/cloudinfo", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/utils/cpuload", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/utils/cpuload/netlink", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/utils/docker", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/utils/oomparser", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/utils/sysfs", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/utils/sysinfo", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/validate", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/version", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/cadvisor/zfs", - "Comment": "v0.29.1", - "Rev": "2e02d28350c5fbbad9cfb7e5a1733468b75ab3f9" + "Comment": "v0.30.0", + "Rev": "f6359ffcbdec3c228bf312e6939ea6edf556ce52" }, { "ImportPath": "github.com/google/certificate-transparency-go", @@ -2118,6 +2118,11 @@ "Comment": "v1.1.0-2-g8bdf7d1", "Rev": "8bdf7d1a087ccc975cf37dd6507da50698fd19ca" }, + { + "ImportPath": "github.com/mattn/go-shellwords", + "Comment": "v1.0.3-20-gf8471b0", + "Rev": "f8471b0a71ded0ab910825ee2cf230f25de000f1" + }, { "ImportPath": "github.com/matttproud/golang_protobuf_extensions/pbutil", "Rev": "fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a" @@ -3181,11 +3186,6 @@ "Comment": "v1.7.5", "Rev": "5b3c4e850e90a4cf6a20ebd46c8b32a0a3afcb9e" }, - { - "ImportPath": "google.golang.org/grpc/grpclb/grpc_lb_v1", - "Comment": "v1.7.5", - "Rev": "5b3c4e850e90a4cf6a20ebd46c8b32a0a3afcb9e" - }, { "ImportPath": "google.golang.org/grpc/grpclb/grpc_lb_v1/messages", "Comment": "v1.7.5", diff --git a/Godeps/LICENSES b/Godeps/LICENSES index c11f634c1e..915106939f 100644 --- a/Godeps/LICENSES +++ b/Godeps/LICENSES @@ -40289,6 +40289,205 @@ Apache License ================================================================================ +================================================================================ += vendor/github.com/docker/docker/pkg/parsers/operatingsystem licensed under: = + + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2013-2017 Docker, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + += vendor/github.com/docker/docker/LICENSE 9740d093a080530b5c5c6573df9af45a +================================================================================ + + ================================================================================ = vendor/github.com/docker/docker/pkg/stdcopy licensed under: = @@ -47950,45 +48149,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================================ -================================================================================ -= vendor/github.com/golang/protobuf/ptypes/empty licensed under: = - -Go support for Protocol Buffers - Google's data interchange format - -Copyright 2010 The Go Authors. All rights reserved. -https://github.com/golang/protobuf - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -= vendor/github.com/golang/protobuf/LICENSE 14db3a56c3796a940ba32948a15f97d0 -================================================================================ - - ================================================================================ = vendor/github.com/golang/protobuf/ptypes/struct licensed under: = @@ -72296,6 +72456,35 @@ SOFTWARE. ================================================================================ +================================================================================ += vendor/github.com/mattn/go-shellwords licensed under: = + +The MIT License (MIT) + +Copyright (c) 2017 Yasuhiro Matsumoto + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + += vendor/github.com/mattn/go-shellwords/LICENSE e5116fc268f5118168ff06a271b50ef9 +================================================================================ + + ================================================================================ = vendor/github.com/matttproud/golang_protobuf_extensions/pbutil licensed under: = @@ -94888,216 +95077,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================================ -================================================================================ -= vendor/google.golang.org/grpc/grpclb/grpc_lb_v1 licensed under: = - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -= vendor/google.golang.org/grpc/LICENSE 3b83ef96387f14655fc854ddc3c6bd57 -================================================================================ - - ================================================================================ = vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages licensed under: = diff --git a/vendor/BUILD b/vendor/BUILD index 4a24181225..b59f702e29 100644 --- a/vendor/BUILD +++ b/vendor/BUILD @@ -287,6 +287,7 @@ filegroup( "//vendor/github.com/mailru/easyjson/jlexer:all-srcs", "//vendor/github.com/mailru/easyjson/jwriter:all-srcs", "//vendor/github.com/marstr/guid:all-srcs", + "//vendor/github.com/mattn/go-shellwords:all-srcs", "//vendor/github.com/matttproud/golang_protobuf_extensions/pbutil:all-srcs", "//vendor/github.com/mholt/caddy/caddyfile:all-srcs", "//vendor/github.com/miekg/dns:all-srcs", diff --git a/vendor/github.com/containerd/containerd/api/services/containers/v1/BUILD b/vendor/github.com/containerd/containerd/api/services/containers/v1/BUILD index 4e6ff097d7..c6ce0a6387 100644 --- a/vendor/github.com/containerd/containerd/api/services/containers/v1/BUILD +++ b/vendor/github.com/containerd/containerd/api/services/containers/v1/BUILD @@ -12,11 +12,9 @@ go_library( importpath = "github.com/containerd/containerd/api/services/containers/v1", visibility = ["//visibility:public"], deps = [ - "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", "//vendor/github.com/gogo/protobuf/types:go_default_library", - "//vendor/github.com/golang/protobuf/ptypes/empty:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", "//vendor/google.golang.org/grpc:go_default_library", ], diff --git a/vendor/github.com/containerd/containerd/api/services/containers/v1/containers.pb.go b/vendor/github.com/containerd/containerd/api/services/containers/v1/containers.pb.go index 90d3099031..17cd36d36e 100644 --- a/vendor/github.com/containerd/containerd/api/services/containers/v1/containers.pb.go +++ b/vendor/github.com/containerd/containerd/api/services/containers/v1/containers.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: github.com/containerd/containerd/api/services/containers/v1/containers.proto -// DO NOT EDIT! /* Package containers is a generated protocol buffer package. @@ -25,9 +24,10 @@ package containers import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" -import _ "github.com/gogo/protobuf/gogoproto" + +// skipping weak import gogoproto "github.com/gogo/protobuf/gogoproto" import google_protobuf1 "github.com/gogo/protobuf/types" -import google_protobuf2 "github.com/golang/protobuf/ptypes/empty" +import google_protobuf2 "github.com/gogo/protobuf/types" import google_protobuf3 "github.com/gogo/protobuf/types" import _ "github.com/gogo/protobuf/types" @@ -844,24 +844,6 @@ func (m *DeleteContainerRequest) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Containers(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Containers(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintContainers(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1270,51 +1252,14 @@ func (m *Container) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowContainers - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowContainers - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthContainers - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Labels == nil { m.Labels = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowContainers @@ -1324,41 +1269,80 @@ func (m *Container) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowContainers + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowContainers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthContainers + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowContainers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthContainers + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipContainers(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthContainers + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthContainers - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Labels[mapkey] = mapvalue - } else { - var mapvalue string - m.Labels[mapkey] = mapvalue } + m.Labels[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -1599,51 +1583,14 @@ func (m *Container) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowContainers - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowContainers - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthContainers - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Extensions == nil { m.Extensions = make(map[string]google_protobuf1.Any) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := &google_protobuf1.Any{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowContainers @@ -1653,46 +1600,85 @@ func (m *Container) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowContainers + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowContainers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthContainers + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowContainers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthContainers + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthContainers + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &google_protobuf1.Any{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipContainers(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthContainers + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthContainers - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthContainers - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &google_protobuf1.Any{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Extensions[mapkey] = *mapvalue - } else { - var mapvalue google_protobuf1.Any - m.Extensions[mapkey] = mapvalue } + m.Extensions[mapkey] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -2689,53 +2675,53 @@ func init() { var fileDescriptorContainers = []byte{ // 776 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xcd, 0x72, 0x12, 0x5b, - 0x10, 0xce, 0x00, 0x81, 0xd0, 0xdc, 0xaa, 0x7b, 0xeb, 0x5c, 0x2e, 0x77, 0x1c, 0xab, 0x80, 0xb0, - 0xa2, 0x2c, 0x1d, 0x0c, 0x5a, 0x9a, 0x1f, 0x37, 0x21, 0x7f, 0x65, 0x99, 0x58, 0xa9, 0x51, 0x37, - 0xba, 0x88, 0x03, 0x74, 0xc8, 0xc8, 0xfc, 0x39, 0xe7, 0x40, 0x49, 0xb9, 0xd0, 0x47, 0x70, 0xe7, - 0x23, 0xf8, 0x2a, 0x59, 0xba, 0x74, 0x15, 0x13, 0x9e, 0xc4, 0x9a, 0x33, 0x33, 0xcc, 0x04, 0x06, - 0x85, 0x68, 0x76, 0xa7, 0x39, 0xfd, 0x7d, 0xfd, 0xf1, 0x75, 0xf7, 0x01, 0xd8, 0xef, 0x68, 0xec, - 0xa4, 0xd7, 0x94, 0x5b, 0x96, 0x51, 0x6b, 0x59, 0x26, 0x53, 0x35, 0x13, 0x9d, 0x76, 0xf4, 0xa8, - 0xda, 0x5a, 0x8d, 0xa2, 0xd3, 0xd7, 0x5a, 0x48, 0xc3, 0xcf, 0x69, 0xad, 0xbf, 0x12, 0x89, 0x64, - 0xdb, 0xb1, 0x98, 0x45, 0x96, 0x43, 0x9c, 0x1c, 0x60, 0xe4, 0x48, 0x56, 0x7f, 0x45, 0xca, 0x77, - 0xac, 0x8e, 0xc5, 0xb3, 0x6b, 0xee, 0xc9, 0x03, 0x4a, 0x37, 0x3a, 0x96, 0xd5, 0xd1, 0xb1, 0xc6, - 0xa3, 0x66, 0xef, 0xb8, 0xa6, 0x9a, 0x03, 0xff, 0xea, 0xe6, 0xf8, 0x15, 0x1a, 0x36, 0x0b, 0x2e, - 0xcb, 0xe3, 0x97, 0xc7, 0x1a, 0xea, 0xed, 0x23, 0x43, 0xa5, 0x5d, 0x3f, 0xa3, 0x34, 0x9e, 0xc1, - 0x34, 0x03, 0x29, 0x53, 0x0d, 0xdb, 0x4b, 0xa8, 0x7c, 0x4e, 0x43, 0x76, 0x2b, 0x90, 0x48, 0x0a, - 0x90, 0xd0, 0xda, 0xa2, 0x50, 0x16, 0xaa, 0xd9, 0x46, 0x7a, 0x78, 0x56, 0x4a, 0x3c, 0xde, 0x56, - 0x12, 0x5a, 0x9b, 0x1c, 0x42, 0x5a, 0x57, 0x9b, 0xa8, 0x53, 0x31, 0x51, 0x4e, 0x56, 0x73, 0xf5, - 0x55, 0xf9, 0x97, 0x5f, 0x55, 0x1e, 0xb1, 0xca, 0xfb, 0x1c, 0xba, 0x63, 0x32, 0x67, 0xa0, 0xf8, - 0x3c, 0x24, 0x0f, 0x8b, 0x9a, 0xa1, 0x76, 0x50, 0x4c, 0xba, 0xc5, 0x14, 0x2f, 0x20, 0x4f, 0x21, - 0xe3, 0xf4, 0x4c, 0x57, 0xa3, 0x98, 0x2a, 0x0b, 0xd5, 0x5c, 0xfd, 0xfe, 0x5c, 0x85, 0x14, 0x0f, - 0xab, 0x04, 0x24, 0xa4, 0x0a, 0x29, 0x6a, 0x63, 0x4b, 0x5c, 0xe4, 0x64, 0x79, 0xd9, 0x73, 0x43, - 0x0e, 0xdc, 0x90, 0x37, 0xcd, 0x81, 0xc2, 0x33, 0x48, 0x19, 0x72, 0xd4, 0x54, 0x6d, 0x7a, 0x62, - 0x31, 0x86, 0x8e, 0x98, 0xe6, 0xaa, 0xa2, 0x1f, 0x91, 0x65, 0xf8, 0x2b, 0x08, 0x8f, 0xba, 0x38, - 0x10, 0x33, 0x97, 0x53, 0x9e, 0xe0, 0x80, 0x6c, 0x01, 0xb4, 0x1c, 0x54, 0x19, 0xb6, 0x8f, 0x54, - 0x26, 0x2e, 0xf1, 0xa2, 0xd2, 0x44, 0xd1, 0xe7, 0x41, 0x0b, 0x1a, 0x4b, 0xa7, 0x67, 0xa5, 0x85, - 0x4f, 0xdf, 0x4b, 0x82, 0x92, 0xf5, 0x71, 0x9b, 0xcc, 0x25, 0xe9, 0xd9, 0xed, 0x80, 0x24, 0x3b, - 0x0f, 0x89, 0x8f, 0xdb, 0x64, 0xa4, 0x09, 0x80, 0xef, 0x18, 0x9a, 0x54, 0xb3, 0x4c, 0x2a, 0x02, - 0x6f, 0xda, 0xa3, 0xb9, 0xbc, 0xdc, 0x19, 0xc1, 0x79, 0xe3, 0x1a, 0x29, 0xb7, 0x8c, 0x12, 0x61, - 0x95, 0xd6, 0x20, 0x17, 0xe9, 0x2c, 0xf9, 0x07, 0x92, 0xae, 0x2d, 0x7c, 0x78, 0x14, 0xf7, 0xe8, - 0xf6, 0xb8, 0xaf, 0xea, 0x3d, 0x14, 0x13, 0x5e, 0x8f, 0x79, 0xb0, 0x9e, 0x58, 0x15, 0xa4, 0x03, - 0xc8, 0xf8, 0xbd, 0x22, 0x04, 0x52, 0xa6, 0x6a, 0xa0, 0x8f, 0xe3, 0x67, 0x22, 0x43, 0xc6, 0xb2, - 0x19, 0x97, 0x9e, 0xf8, 0x49, 0xe7, 0x82, 0x24, 0xe9, 0x19, 0xfc, 0x3d, 0x26, 0x37, 0x46, 0xcd, - 0xad, 0xa8, 0x9a, 0x69, 0x94, 0xa1, 0xc6, 0xca, 0x1d, 0xf8, 0x77, 0x0f, 0xd9, 0xc8, 0x10, 0x05, - 0xdf, 0xf6, 0x90, 0xb2, 0x69, 0x2b, 0x52, 0x39, 0x81, 0xfc, 0xe5, 0x74, 0x6a, 0x5b, 0x26, 0x45, - 0x72, 0x08, 0xd9, 0x91, 0xc5, 0x1c, 0x96, 0xab, 0xdf, 0x9e, 0xa7, 0x11, 0xbe, 0xf1, 0x21, 0x49, - 0x65, 0x05, 0xfe, 0xdb, 0xd7, 0x68, 0x58, 0x8a, 0x06, 0xd2, 0x44, 0xc8, 0x1c, 0x6b, 0x3a, 0x43, - 0x87, 0x8a, 0x42, 0x39, 0x59, 0xcd, 0x2a, 0x41, 0x58, 0xd1, 0xa1, 0x30, 0x0e, 0xf1, 0xe5, 0x29, - 0x00, 0x61, 0x61, 0x0e, 0xbb, 0x9a, 0xbe, 0x08, 0x4b, 0xe5, 0x0d, 0x14, 0xb6, 0xf8, 0x38, 0x4f, - 0x98, 0xf7, 0xe7, 0xcd, 0xe8, 0xc2, 0xff, 0x13, 0xb5, 0xae, 0xcd, 0xf9, 0x2f, 0x02, 0x14, 0x5e, - 0xf0, 0x1d, 0xbb, 0xfe, 0x6f, 0x46, 0x36, 0x20, 0xe7, 0xed, 0x33, 0x7f, 0xcf, 0xfd, 0xa9, 0x9d, - 0x7c, 0x08, 0x76, 0xdd, 0x27, 0xff, 0x40, 0xa5, 0x5d, 0xc5, 0x7f, 0x36, 0xdc, 0xb3, 0x6b, 0xcb, - 0x84, 0xd0, 0x6b, 0xb3, 0xe5, 0x2e, 0x14, 0xb6, 0x51, 0xc7, 0x18, 0x57, 0xa6, 0x2c, 0x4b, 0xfd, - 0x3c, 0x05, 0x10, 0x0e, 0x23, 0xe9, 0x43, 0x72, 0x0f, 0x19, 0x79, 0x30, 0x83, 0x8c, 0x98, 0x95, - 0x94, 0x1e, 0xce, 0x8d, 0xf3, 0xad, 0x78, 0x0f, 0x29, 0x77, 0x2d, 0xc8, 0x2c, 0x3f, 0x67, 0xb1, - 0x2b, 0x27, 0xad, 0x5d, 0x01, 0xe9, 0x17, 0xff, 0x00, 0x69, 0x6f, 0x72, 0xc9, 0x2c, 0x24, 0xf1, - 0x0b, 0x25, 0xad, 0x5f, 0x05, 0x1a, 0x0a, 0xf0, 0x66, 0x64, 0x26, 0x01, 0xf1, 0x73, 0x3f, 0x93, - 0x80, 0x69, 0x93, 0xf8, 0x0a, 0xd2, 0xde, 0xdc, 0xcc, 0x24, 0x20, 0x7e, 0xc4, 0xa4, 0xc2, 0xc4, - 0x46, 0xec, 0xb8, 0xff, 0x90, 0x1a, 0xaf, 0x4f, 0x2f, 0x8a, 0x0b, 0xdf, 0x2e, 0x8a, 0x0b, 0x1f, - 0x87, 0x45, 0xe1, 0x74, 0x58, 0x14, 0xbe, 0x0e, 0x8b, 0xc2, 0xf9, 0xb0, 0x28, 0xbc, 0xdc, 0xfd, - 0x8d, 0x3f, 0x7d, 0x1b, 0x61, 0xd4, 0x4c, 0xf3, 0x8a, 0xf7, 0x7e, 0x04, 0x00, 0x00, 0xff, 0xff, - 0x17, 0x73, 0xba, 0x43, 0x45, 0x0a, 0x00, 0x00, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xcd, 0x72, 0xd2, 0x50, + 0x14, 0x26, 0x81, 0x86, 0x72, 0x70, 0x46, 0xe7, 0x8a, 0x18, 0xe3, 0x0c, 0x50, 0x56, 0x8c, 0xa3, + 0xc1, 0xa2, 0xa3, 0xfd, 0x71, 0x53, 0xfa, 0x37, 0x8e, 0xad, 0xd3, 0x89, 0x3a, 0xe3, 0xe8, 0xa2, + 0x06, 0xb8, 0xa5, 0x91, 0xfc, 0x99, 0x7b, 0x61, 0x64, 0x5c, 0xe8, 0x23, 0xb8, 0xf3, 0x11, 0x7c, + 0x95, 0x2e, 0x5d, 0xba, 0xaa, 0x2d, 0x4f, 0xe2, 0xe4, 0x26, 0x21, 0x29, 0x04, 0x85, 0x2a, 0xbb, + 0x7b, 0xb8, 0xe7, 0xfb, 0xce, 0xc7, 0x77, 0xce, 0xb9, 0x00, 0x7b, 0x6d, 0x8d, 0x1e, 0x77, 0x1b, + 0x72, 0xd3, 0x32, 0xaa, 0x4d, 0xcb, 0xa4, 0xaa, 0x66, 0x62, 0xa7, 0x15, 0x3d, 0xaa, 0xb6, 0x56, + 0x25, 0xd8, 0xe9, 0x69, 0x4d, 0x4c, 0xc2, 0xcf, 0x49, 0xb5, 0xb7, 0x1c, 0x89, 0x64, 0xdb, 0xb1, + 0xa8, 0x85, 0x96, 0x42, 0x9c, 0x1c, 0x60, 0xe4, 0x48, 0x56, 0x6f, 0x59, 0xca, 0xb5, 0xad, 0xb6, + 0xc5, 0xb2, 0xab, 0xee, 0xc9, 0x03, 0x4a, 0xb7, 0xda, 0x96, 0xd5, 0xd6, 0x71, 0x95, 0x45, 0x8d, + 0xee, 0x51, 0x55, 0x35, 0xfb, 0xfe, 0xd5, 0xed, 0xd1, 0x2b, 0x6c, 0xd8, 0x34, 0xb8, 0x2c, 0x8d, + 0x5e, 0x1e, 0x69, 0x58, 0x6f, 0x1d, 0x1a, 0x2a, 0xe9, 0xf8, 0x19, 0xc5, 0xd1, 0x0c, 0xaa, 0x19, + 0x98, 0x50, 0xd5, 0xb0, 0xbd, 0x84, 0xf2, 0x37, 0x01, 0x32, 0x9b, 0x81, 0x44, 0x94, 0x07, 0x5e, + 0x6b, 0x89, 0x5c, 0x89, 0xab, 0x64, 0xea, 0xc2, 0xe0, 0xb4, 0xc8, 0x3f, 0xdd, 0x52, 0x78, 0xad, + 0x85, 0x0e, 0x40, 0xd0, 0xd5, 0x06, 0xd6, 0x89, 0xc8, 0x97, 0x92, 0x95, 0x6c, 0x6d, 0x45, 0xfe, + 0xeb, 0x57, 0x95, 0x87, 0xac, 0xf2, 0x1e, 0x83, 0x6e, 0x9b, 0xd4, 0xe9, 0x2b, 0x3e, 0x0f, 0xca, + 0xc1, 0x82, 0x66, 0xa8, 0x6d, 0x2c, 0x26, 0xdd, 0x62, 0x8a, 0x17, 0xa0, 0xe7, 0x90, 0x76, 0xba, + 0xa6, 0xab, 0x51, 0x4c, 0x95, 0xb8, 0x4a, 0xb6, 0xf6, 0x70, 0xa6, 0x42, 0x8a, 0x87, 0x55, 0x02, + 0x12, 0x54, 0x81, 0x14, 0xb1, 0x71, 0x53, 0x5c, 0x60, 0x64, 0x39, 0xd9, 0x73, 0x43, 0x0e, 0xdc, + 0x90, 0x37, 0xcc, 0xbe, 0xc2, 0x32, 0x50, 0x09, 0xb2, 0xc4, 0x54, 0x6d, 0x72, 0x6c, 0x51, 0x8a, + 0x1d, 0x51, 0x60, 0xaa, 0xa2, 0x1f, 0xa1, 0x25, 0xb8, 0x12, 0x84, 0x87, 0x1d, 0xdc, 0x17, 0xd3, + 0x17, 0x53, 0x9e, 0xe1, 0x3e, 0xda, 0x04, 0x68, 0x3a, 0x58, 0xa5, 0xb8, 0x75, 0xa8, 0x52, 0x71, + 0x91, 0x15, 0x95, 0xc6, 0x8a, 0xbe, 0x0c, 0x5a, 0x50, 0x5f, 0x3c, 0x39, 0x2d, 0x26, 0xbe, 0xfe, + 0x2a, 0x72, 0x4a, 0xc6, 0xc7, 0x6d, 0x50, 0x97, 0xa4, 0x6b, 0xb7, 0x02, 0x92, 0xcc, 0x2c, 0x24, + 0x3e, 0x6e, 0x83, 0xa2, 0x06, 0x00, 0xfe, 0x48, 0xb1, 0x49, 0x34, 0xcb, 0x24, 0x22, 0xb0, 0xa6, + 0x3d, 0x99, 0xc9, 0xcb, 0xed, 0x21, 0x9c, 0x35, 0xae, 0x9e, 0x72, 0xcb, 0x28, 0x11, 0x56, 0x69, + 0x15, 0xb2, 0x91, 0xce, 0xa2, 0x6b, 0x90, 0x74, 0x6d, 0x61, 0xc3, 0xa3, 0xb8, 0x47, 0xb7, 0xc7, + 0x3d, 0x55, 0xef, 0x62, 0x91, 0xf7, 0x7a, 0xcc, 0x82, 0x35, 0x7e, 0x85, 0x93, 0xf6, 0x21, 0xed, + 0xf7, 0x0a, 0x21, 0x48, 0x99, 0xaa, 0x81, 0x7d, 0x1c, 0x3b, 0x23, 0x19, 0xd2, 0x96, 0x4d, 0x99, + 0x74, 0xfe, 0x0f, 0x9d, 0x0b, 0x92, 0xa4, 0x17, 0x70, 0x75, 0x44, 0x6e, 0x8c, 0x9a, 0x3b, 0x51, + 0x35, 0x93, 0x28, 0x43, 0x8d, 0xe5, 0x7b, 0x70, 0x7d, 0x17, 0xd3, 0xa1, 0x21, 0x0a, 0xfe, 0xd0, + 0xc5, 0x84, 0x4e, 0x5a, 0x91, 0xf2, 0x31, 0xe4, 0x2e, 0xa6, 0x13, 0xdb, 0x32, 0x09, 0x46, 0x07, + 0x90, 0x19, 0x5a, 0xcc, 0x60, 0xd9, 0xda, 0xdd, 0x59, 0x1a, 0xe1, 0x1b, 0x1f, 0x92, 0x94, 0x97, + 0xe1, 0xc6, 0x9e, 0x46, 0xc2, 0x52, 0x24, 0x90, 0x26, 0x42, 0xfa, 0x48, 0xd3, 0x29, 0x76, 0x88, + 0xc8, 0x95, 0x92, 0x95, 0x8c, 0x12, 0x84, 0x65, 0x1d, 0xf2, 0xa3, 0x10, 0x5f, 0x9e, 0x02, 0x10, + 0x16, 0x66, 0xb0, 0xcb, 0xe9, 0x8b, 0xb0, 0x94, 0xdf, 0x43, 0x7e, 0x93, 0x8d, 0xf3, 0x98, 0x79, + 0xff, 0xdf, 0x8c, 0x0e, 0xdc, 0x1c, 0xab, 0x35, 0x37, 0xe7, 0xbf, 0x73, 0x90, 0x7f, 0xc5, 0x76, + 0x6c, 0xfe, 0xdf, 0x0c, 0xad, 0x43, 0xd6, 0xdb, 0x67, 0xf6, 0x9e, 0xfb, 0x53, 0x3b, 0xfe, 0x10, + 0xec, 0xb8, 0x4f, 0xfe, 0xbe, 0x4a, 0x3a, 0x8a, 0xff, 0x6c, 0xb8, 0x67, 0xd7, 0x96, 0x31, 0xa1, + 0x73, 0xb3, 0xe5, 0x3e, 0xe4, 0xb7, 0xb0, 0x8e, 0x63, 0x5c, 0x99, 0xb0, 0x2c, 0xb5, 0xb3, 0x14, + 0x40, 0x38, 0x8c, 0xa8, 0x07, 0xc9, 0x5d, 0x4c, 0xd1, 0xa3, 0x29, 0x64, 0xc4, 0xac, 0xa4, 0xf4, + 0x78, 0x66, 0x9c, 0x6f, 0xc5, 0x27, 0x48, 0xb9, 0x6b, 0x81, 0xa6, 0xf9, 0x39, 0x8b, 0x5d, 0x39, + 0x69, 0xf5, 0x12, 0x48, 0xbf, 0xf8, 0x67, 0x10, 0xbc, 0xc9, 0x45, 0xd3, 0x90, 0xc4, 0x2f, 0x94, + 0xb4, 0x76, 0x19, 0x68, 0x28, 0xc0, 0x9b, 0x91, 0xa9, 0x04, 0xc4, 0xcf, 0xfd, 0x54, 0x02, 0x26, + 0x4d, 0xe2, 0x5b, 0x10, 0xbc, 0xb9, 0x99, 0x4a, 0x40, 0xfc, 0x88, 0x49, 0xf9, 0xb1, 0x8d, 0xd8, + 0x76, 0xff, 0x21, 0xd5, 0xdf, 0x9d, 0x9c, 0x17, 0x12, 0x3f, 0xcf, 0x0b, 0x89, 0x2f, 0x83, 0x02, + 0x77, 0x32, 0x28, 0x70, 0x3f, 0x06, 0x05, 0xee, 0x6c, 0x50, 0xe0, 0xde, 0xec, 0xfc, 0xc3, 0x9f, + 0xbe, 0xf5, 0x30, 0x7a, 0x9d, 0x68, 0x08, 0xac, 0xe6, 0x83, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, + 0x95, 0x94, 0x84, 0xf2, 0x47, 0x0a, 0x00, 0x00, } diff --git a/vendor/github.com/containerd/containerd/api/services/containers/v1/containers.proto b/vendor/github.com/containerd/containerd/api/services/containers/v1/containers.proto index 0a2311c4c4..b7b32d949a 100644 --- a/vendor/github.com/containerd/containerd/api/services/containers/v1/containers.proto +++ b/vendor/github.com/containerd/containerd/api/services/containers/v1/containers.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package containerd.services.containers.v1; -import "gogoproto/gogo.proto"; +import weak "gogoproto/gogo.proto"; import "google/protobuf/any.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; diff --git a/vendor/github.com/containerd/containerd/api/services/tasks/v1/BUILD b/vendor/github.com/containerd/containerd/api/services/tasks/v1/BUILD index 916c3ed196..6be5c321be 100644 --- a/vendor/github.com/containerd/containerd/api/services/tasks/v1/BUILD +++ b/vendor/github.com/containerd/containerd/api/services/tasks/v1/BUILD @@ -14,10 +14,8 @@ go_library( deps = [ "//vendor/github.com/containerd/containerd/api/types:go_default_library", "//vendor/github.com/containerd/containerd/api/types/task:go_default_library", - "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/types:go_default_library", - "//vendor/github.com/golang/protobuf/ptypes/empty:go_default_library", "//vendor/github.com/opencontainers/go-digest:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", "//vendor/google.golang.org/grpc:go_default_library", diff --git a/vendor/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go b/vendor/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go index 0f587685b9..83c18f68aa 100644 --- a/vendor/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go +++ b/vendor/github.com/containerd/containerd/api/services/tasks/v1/tasks.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: github.com/containerd/containerd/api/services/tasks/v1/tasks.proto -// DO NOT EDIT! /* Package tasks is a generated protocol buffer package. @@ -42,9 +41,10 @@ package tasks import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" -import google_protobuf "github.com/golang/protobuf/ptypes/empty" +import google_protobuf "github.com/gogo/protobuf/types" import google_protobuf1 "github.com/gogo/protobuf/types" -import _ "github.com/gogo/protobuf/gogoproto" + +// skipping weak import gogoproto "github.com/gogo/protobuf/gogoproto" import containerd_types "github.com/containerd/containerd/api/types" import containerd_types1 "github.com/containerd/containerd/api/types" import containerd_types2 "github.com/containerd/containerd/api/types" @@ -1890,24 +1890,6 @@ func (m *WaitResponse) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Tasks(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Tasks(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintTasks(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -5725,88 +5707,88 @@ func init() { } var fileDescriptorTasks = []byte{ - // 1317 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x5b, 0x6f, 0x1b, 0x45, - 0x1b, 0xee, 0xfa, 0xec, 0xd7, 0x49, 0x9b, 0xec, 0x97, 0xe6, 0x33, 0x4b, 0x15, 0x87, 0xe5, 0xc6, - 0x04, 0xba, 0x4b, 0x5d, 0x54, 0x21, 0x5a, 0x21, 0x35, 0x07, 0x22, 0x0b, 0xaa, 0xa6, 0xdb, 0x72, - 0x50, 0x25, 0x14, 0xb6, 0xbb, 0x13, 0x67, 0x14, 0x7b, 0x67, 0xbb, 0x33, 0x4e, 0x1b, 0xb8, 0x80, - 0x9f, 0xd0, 0x5b, 0x6e, 0xf8, 0x3d, 0xb9, 0xe4, 0x12, 0xa1, 0x2a, 0x50, 0xff, 0x0b, 0xee, 0xd0, - 0x1c, 0x76, 0xb3, 0xb1, 0x63, 0xaf, 0x93, 0x34, 0xdc, 0xb4, 0x33, 0xb3, 0xef, 0x69, 0x9e, 0x79, - 0x0f, 0x8f, 0x03, 0xab, 0x1d, 0xcc, 0x76, 0xfb, 0xcf, 0x2c, 0x8f, 0xf4, 0x6c, 0x8f, 0x04, 0xcc, - 0xc5, 0x01, 0x8a, 0xfc, 0xf4, 0xd2, 0x0d, 0xb1, 0x4d, 0x51, 0xb4, 0x8f, 0x3d, 0x44, 0x6d, 0xe6, - 0xd2, 0x3d, 0x6a, 0xef, 0xdf, 0x92, 0x0b, 0x2b, 0x8c, 0x08, 0x23, 0xfa, 0x8d, 0x63, 0x69, 0x2b, - 0x96, 0xb4, 0xa4, 0xc0, 0xfe, 0x2d, 0xe3, 0xdd, 0x0e, 0x21, 0x9d, 0x2e, 0xb2, 0x85, 0xec, 0xb3, - 0xfe, 0x8e, 0x8d, 0x7a, 0x21, 0x3b, 0x90, 0xaa, 0xc6, 0x3b, 0xc3, 0x1f, 0xdd, 0x20, 0xfe, 0xb4, - 0xd0, 0x21, 0x1d, 0x22, 0x96, 0x36, 0x5f, 0xa9, 0xd3, 0x3b, 0x53, 0xc5, 0xcb, 0x0e, 0x42, 0x44, - 0xed, 0x1e, 0xe9, 0x07, 0x4c, 0xe9, 0x7d, 0x7a, 0x16, 0x3d, 0xc4, 0x22, 0xec, 0xa9, 0xdb, 0x19, - 0x77, 0xcf, 0xa0, 0xe9, 0x23, 0xea, 0x45, 0x38, 0x64, 0x24, 0x52, 0xca, 0x9f, 0x9d, 0x41, 0x99, - 0x23, 0x26, 0xfe, 0x51, 0xba, 0x8d, 0x61, 0x6c, 0x18, 0xee, 0x21, 0xca, 0xdc, 0x5e, 0x28, 0x05, - 0xcc, 0xc3, 0x1c, 0xcc, 0xaf, 0x45, 0xc8, 0x65, 0xe8, 0x89, 0x4b, 0xf7, 0x1c, 0xf4, 0xbc, 0x8f, - 0x28, 0xd3, 0x5b, 0x30, 0x93, 0x98, 0xdf, 0xc6, 0x7e, 0x5d, 0x5b, 0xd6, 0x9a, 0xd5, 0xd5, 0x6b, - 0x83, 0xa3, 0x46, 0x6d, 0x2d, 0x3e, 0x6f, 0xaf, 0x3b, 0xb5, 0x44, 0xa8, 0xed, 0xeb, 0x36, 0x94, - 0x22, 0x42, 0xd8, 0x0e, 0xad, 0xe7, 0x97, 0xf3, 0xcd, 0x5a, 0xeb, 0xff, 0x56, 0xea, 0x49, 0x45, - 0x74, 0xd6, 0x03, 0x0e, 0xa6, 0xa3, 0xc4, 0xf4, 0x05, 0x28, 0x52, 0xe6, 0xe3, 0xa0, 0x5e, 0xe0, - 0xd6, 0x1d, 0xb9, 0xd1, 0x17, 0xa1, 0x44, 0x99, 0x4f, 0xfa, 0xac, 0x5e, 0x14, 0xc7, 0x6a, 0xa7, - 0xce, 0x51, 0x14, 0xd5, 0x4b, 0xc9, 0x39, 0x8a, 0x22, 0xdd, 0x80, 0x0a, 0x43, 0x51, 0x0f, 0x07, - 0x6e, 0xb7, 0x5e, 0x5e, 0xd6, 0x9a, 0x15, 0x27, 0xd9, 0xeb, 0xf7, 0x00, 0xbc, 0x5d, 0xe4, 0xed, - 0x85, 0x04, 0x07, 0xac, 0x5e, 0x59, 0xd6, 0x9a, 0xb5, 0xd6, 0x8d, 0xd1, 0xb0, 0xd6, 0x13, 0xc4, - 0x9d, 0x94, 0xbc, 0x6e, 0x41, 0x99, 0x84, 0x0c, 0x93, 0x80, 0xd6, 0xab, 0x42, 0x75, 0xc1, 0x92, - 0x68, 0x5a, 0x31, 0x9a, 0xd6, 0xfd, 0xe0, 0xc0, 0x89, 0x85, 0xcc, 0xa7, 0xa0, 0xa7, 0x91, 0xa4, - 0x21, 0x09, 0x28, 0x3a, 0x17, 0x94, 0x73, 0x90, 0x0f, 0xb1, 0x5f, 0xcf, 0x2d, 0x6b, 0xcd, 0x59, - 0x87, 0x2f, 0xcd, 0x0e, 0xcc, 0x3c, 0x66, 0x6e, 0xc4, 0x2e, 0xf2, 0x40, 0xef, 0x43, 0x19, 0xbd, - 0x44, 0xde, 0xb6, 0xb2, 0x5c, 0x5d, 0x85, 0xc1, 0x51, 0xa3, 0xb4, 0xf1, 0x12, 0x79, 0xed, 0x75, - 0xa7, 0xc4, 0x3f, 0xb5, 0x7d, 0xf3, 0x3d, 0x98, 0x55, 0x8e, 0x54, 0xfc, 0x2a, 0x16, 0xed, 0x38, - 0x96, 0x4d, 0x98, 0x5f, 0x47, 0x5d, 0x74, 0xe1, 0x8c, 0x31, 0x7f, 0xd3, 0xe0, 0xaa, 0xb4, 0x94, - 0x78, 0x5b, 0x84, 0x5c, 0xa2, 0x5c, 0x1a, 0x1c, 0x35, 0x72, 0xed, 0x75, 0x27, 0x87, 0x4f, 0x41, - 0x44, 0x6f, 0x40, 0x0d, 0xbd, 0xc4, 0x6c, 0x9b, 0x32, 0x97, 0xf5, 0x79, 0xce, 0xf1, 0x2f, 0xc0, - 0x8f, 0x1e, 0x8b, 0x13, 0xfd, 0x3e, 0x54, 0xf9, 0x0e, 0xf9, 0xdb, 0x2e, 0x13, 0x29, 0x56, 0x6b, - 0x19, 0x23, 0x0f, 0xf8, 0x24, 0x2e, 0x87, 0xd5, 0xca, 0xe1, 0x51, 0xe3, 0xca, 0xab, 0xbf, 0x1a, - 0x9a, 0x53, 0x91, 0x6a, 0xf7, 0x99, 0x49, 0x60, 0x41, 0xc6, 0xb7, 0x15, 0x11, 0x0f, 0x51, 0x7a, - 0xe9, 0xe8, 0x23, 0x80, 0x4d, 0x74, 0xf9, 0x8f, 0xbc, 0x01, 0x35, 0xe1, 0x46, 0x81, 0x7e, 0x07, - 0xca, 0xa1, 0xbc, 0xa0, 0x70, 0x31, 0x54, 0x23, 0xfb, 0xb7, 0x54, 0x99, 0xc4, 0x20, 0xc4, 0xc2, - 0xe6, 0x0a, 0xcc, 0x7d, 0x85, 0x29, 0xe3, 0x69, 0x90, 0x40, 0xb3, 0x08, 0xa5, 0x1d, 0xdc, 0x65, - 0x28, 0x92, 0xd1, 0x3a, 0x6a, 0xc7, 0x93, 0x26, 0x25, 0x9b, 0xd4, 0x46, 0x51, 0xb4, 0xf8, 0xba, - 0x26, 0x3a, 0xc6, 0x64, 0xb7, 0x52, 0xd4, 0x7c, 0xa5, 0x41, 0xed, 0x4b, 0xdc, 0xed, 0x5e, 0x36, - 0x48, 0xa2, 0xe1, 0xe0, 0x0e, 0x6f, 0x2b, 0x32, 0xb7, 0xd4, 0x8e, 0xa7, 0xa2, 0xdb, 0xed, 0x8a, - 0x8c, 0xaa, 0x38, 0x7c, 0x69, 0xfe, 0xa3, 0x81, 0xce, 0x95, 0xdf, 0x42, 0x96, 0x24, 0x3d, 0x31, - 0x77, 0x7a, 0x4f, 0xcc, 0x8f, 0xe9, 0x89, 0x85, 0xb1, 0x3d, 0xb1, 0x38, 0xd4, 0x13, 0x9b, 0x50, - 0xa0, 0x21, 0xf2, 0x44, 0x17, 0x1d, 0xd7, 0xd2, 0x84, 0x44, 0x1a, 0xa5, 0xf2, 0xd8, 0x54, 0xba, - 0x0e, 0xff, 0x3b, 0x71, 0x75, 0xf9, 0xb2, 0xe6, 0xaf, 0x1a, 0xcc, 0x39, 0x88, 0xe2, 0x1f, 0xd1, - 0x16, 0x3b, 0xb8, 0xf4, 0xa7, 0x5a, 0x80, 0xe2, 0x0b, 0xec, 0xb3, 0x5d, 0xf5, 0x52, 0x72, 0xc3, - 0xd1, 0xd9, 0x45, 0xb8, 0xb3, 0x2b, 0xab, 0x7f, 0xd6, 0x51, 0x3b, 0xf3, 0x67, 0xb8, 0xba, 0xd6, - 0x25, 0x14, 0xb5, 0x1f, 0xfe, 0x17, 0x81, 0xc9, 0xe7, 0xcc, 0x8b, 0x57, 0x90, 0x1b, 0xf3, 0x0b, - 0x98, 0xdb, 0x72, 0xfb, 0xf4, 0xc2, 0xfd, 0x73, 0x13, 0xe6, 0x1d, 0x44, 0xfb, 0xbd, 0x0b, 0x1b, - 0xda, 0x80, 0x6b, 0xbc, 0x38, 0xb7, 0xb0, 0x7f, 0x91, 0xe4, 0x35, 0x1d, 0xd9, 0x0f, 0xa4, 0x19, - 0x55, 0xe2, 0x9f, 0x43, 0x55, 0xb5, 0x0b, 0x14, 0x97, 0xf9, 0xf2, 0xa4, 0x32, 0x6f, 0x07, 0x3b, - 0xc4, 0x39, 0x56, 0x31, 0x5f, 0x6b, 0x70, 0x7d, 0x2d, 0x99, 0xc9, 0x17, 0xe5, 0x28, 0xdb, 0x30, - 0x1f, 0xba, 0x11, 0x0a, 0xd8, 0x76, 0x8a, 0x17, 0xc8, 0xe7, 0x6b, 0xf1, 0xfe, 0xff, 0xe7, 0x51, - 0x63, 0x25, 0xc5, 0xb6, 0x48, 0x88, 0x82, 0x44, 0x9d, 0xda, 0x1d, 0x72, 0xd3, 0xc7, 0x1d, 0x44, - 0x99, 0xb5, 0x2e, 0xfe, 0x73, 0xe6, 0xa4, 0xb1, 0xb5, 0x53, 0x39, 0x43, 0x7e, 0x1a, 0xce, 0xf0, - 0x1d, 0x2c, 0x0e, 0xdf, 0x2e, 0x01, 0xae, 0x76, 0xcc, 0x04, 0x4f, 0xed, 0x90, 0x23, 0xe4, 0x25, - 0xad, 0x60, 0xfe, 0x04, 0xf3, 0x5f, 0x87, 0xfe, 0x5b, 0xe0, 0x75, 0x2d, 0xa8, 0x46, 0x88, 0x92, - 0x7e, 0xe4, 0x21, 0x2a, 0xb0, 0x1a, 0x77, 0xa9, 0x63, 0x31, 0x73, 0x05, 0xae, 0x3e, 0x90, 0x04, - 0x38, 0xf6, 0x5c, 0x87, 0xb2, 0x9c, 0x04, 0xf2, 0x2a, 0x55, 0x27, 0xde, 0xf2, 0xe4, 0x4b, 0x64, - 0x93, 0xb9, 0x50, 0x56, 0xfc, 0x59, 0xdd, 0xbb, 0x7e, 0x0a, 0x97, 0x14, 0x02, 0x4e, 0x2c, 0x68, - 0xee, 0x40, 0xed, 0x5b, 0x17, 0x5f, 0xfe, 0xec, 0x8c, 0x60, 0x46, 0xfa, 0x51, 0xb1, 0x0e, 0xf1, - 0x10, 0x6d, 0x32, 0x0f, 0xc9, 0x9d, 0x87, 0x87, 0xb4, 0x5e, 0xcf, 0x40, 0x51, 0x4c, 0x4e, 0x7d, - 0x0f, 0x4a, 0x92, 0x63, 0xea, 0xb6, 0x35, 0xe9, 0x17, 0x93, 0x35, 0xc2, 0xe9, 0x8d, 0x8f, 0xa7, - 0x57, 0x50, 0x57, 0xfb, 0x01, 0x8a, 0x82, 0x0b, 0xea, 0x2b, 0x93, 0x55, 0xd3, 0xcc, 0xd4, 0xf8, - 0x70, 0x2a, 0x59, 0xe5, 0xa1, 0x03, 0x25, 0x49, 0xb0, 0xb2, 0xae, 0x33, 0x42, 0x38, 0x8d, 0x8f, - 0xa6, 0x51, 0x48, 0x1c, 0x3d, 0x87, 0xd9, 0x13, 0x4c, 0x4e, 0x6f, 0x4d, 0xa3, 0x7e, 0x72, 0xa0, - 0x9f, 0xd1, 0xe5, 0x53, 0xc8, 0x6f, 0x22, 0xa6, 0x37, 0x27, 0x2b, 0x1d, 0xd3, 0x3d, 0xe3, 0x83, - 0x29, 0x24, 0x13, 0xdc, 0x0a, 0xbc, 0xd3, 0xea, 0xd6, 0x64, 0x95, 0x61, 0x76, 0x66, 0xd8, 0x53, - 0xcb, 0x2b, 0x47, 0x6d, 0x28, 0x70, 0xb2, 0xa5, 0x67, 0xc4, 0x96, 0x22, 0x64, 0xc6, 0xe2, 0x48, - 0x72, 0x6f, 0xf0, 0x1f, 0xeb, 0xfa, 0x16, 0x14, 0x78, 0x29, 0xe9, 0x19, 0x79, 0x38, 0x4a, 0xa4, - 0xc6, 0x5a, 0x7c, 0x0c, 0xd5, 0x84, 0x63, 0x64, 0x41, 0x31, 0x4c, 0x46, 0xc6, 0x1a, 0x7d, 0x08, - 0x65, 0xc5, 0x0e, 0xf4, 0x8c, 0xf7, 0x3e, 0x49, 0x22, 0x26, 0x18, 0x2c, 0x8a, 0x69, 0x9f, 0x15, - 0xe1, 0x30, 0x25, 0x18, 0x6b, 0xf0, 0x11, 0x94, 0xe4, 0xd8, 0xcf, 0x2a, 0x9a, 0x11, 0x72, 0x30, - 0xd6, 0x24, 0x86, 0x4a, 0x3c, 0xb9, 0xf5, 0x9b, 0xd9, 0x39, 0x92, 0x22, 0x0a, 0x86, 0x35, 0xad, - 0xb8, 0xca, 0xa8, 0x17, 0x00, 0xa9, 0x79, 0x79, 0x3b, 0x03, 0xe2, 0xd3, 0x26, 0xbf, 0xf1, 0xc9, - 0xd9, 0x94, 0x94, 0xe3, 0x47, 0x50, 0x92, 0x03, 0x31, 0x0b, 0xb6, 0x91, 0xb1, 0x39, 0x16, 0xb6, - 0x1d, 0x28, 0xab, 0xd1, 0x95, 0x95, 0x2b, 0x27, 0xa7, 0xa1, 0x71, 0x73, 0x4a, 0x69, 0x15, 0xfa, - 0xf7, 0x50, 0xe0, 0x33, 0x27, 0xab, 0x0a, 0x53, 0xf3, 0xcf, 0x58, 0x99, 0x46, 0x54, 0x9a, 0x5f, - 0xfd, 0xe6, 0xf0, 0xcd, 0xd2, 0x95, 0x3f, 0xde, 0x2c, 0x5d, 0xf9, 0x65, 0xb0, 0xa4, 0x1d, 0x0e, - 0x96, 0xb4, 0xdf, 0x07, 0x4b, 0xda, 0xdf, 0x83, 0x25, 0xed, 0xe9, 0xbd, 0xf3, 0xfd, 0x65, 0xef, - 0xae, 0x58, 0x3c, 0x2b, 0x09, 0xb8, 0x6e, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x67, 0xc5, 0x63, - 0x32, 0x20, 0x14, 0x00, 0x00, + // 1318 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4b, 0x6f, 0x1b, 0x45, + 0x1c, 0xef, 0xfa, 0xed, 0xbf, 0x93, 0x36, 0x59, 0xd2, 0x60, 0x96, 0x2a, 0x0e, 0xcb, 0xc5, 0x04, + 0xba, 0x4b, 0x5d, 0x54, 0x21, 0x5a, 0x21, 0x35, 0x0f, 0x22, 0x0b, 0xaa, 0xa6, 0xdb, 0x02, 0x55, + 0x25, 0x14, 0xb6, 0xbb, 0x13, 0x67, 0x14, 0x7b, 0x67, 0xbb, 0x33, 0x4e, 0x1b, 0x38, 0xc0, 0x47, + 0xe8, 0x95, 0x0b, 0x9f, 0x27, 0x47, 0x8e, 0x08, 0x55, 0x81, 0xfa, 0x5b, 0x70, 0x43, 0xf3, 0xd8, + 0xcd, 0xc6, 0x8e, 0xbd, 0x4e, 0xd3, 0x70, 0x69, 0x67, 0x66, 0xff, 0xaf, 0xf9, 0xcd, 0xff, 0xf1, + 0x73, 0x60, 0xb5, 0x83, 0xd9, 0x6e, 0xff, 0xa9, 0xe5, 0x91, 0x9e, 0xed, 0x91, 0x80, 0xb9, 0x38, + 0x40, 0x91, 0x9f, 0x5e, 0xba, 0x21, 0xb6, 0x29, 0x8a, 0xf6, 0xb1, 0x87, 0xa8, 0xcd, 0x5c, 0xba, + 0x47, 0xed, 0xfd, 0x1b, 0x72, 0x61, 0x85, 0x11, 0x61, 0x44, 0xbf, 0x76, 0x2c, 0x6d, 0xc5, 0x92, + 0x96, 0x14, 0xd8, 0xbf, 0x61, 0xbc, 0xdf, 0x21, 0xa4, 0xd3, 0x45, 0xb6, 0x90, 0x7d, 0xda, 0xdf, + 0xb1, 0x51, 0x2f, 0x64, 0x07, 0x52, 0xd5, 0x78, 0x6f, 0xf8, 0xa3, 0x1b, 0xc4, 0x9f, 0x16, 0x3a, + 0xa4, 0x43, 0xc4, 0xd2, 0xe6, 0x2b, 0x75, 0x7a, 0x6b, 0xaa, 0x78, 0xd9, 0x41, 0x88, 0xa8, 0xdd, + 0x23, 0xfd, 0x80, 0x29, 0xbd, 0xcf, 0xcf, 0xa2, 0x87, 0x58, 0x84, 0x3d, 0x75, 0x3b, 0xe3, 0xf6, + 0x19, 0x34, 0x7d, 0x44, 0xbd, 0x08, 0x87, 0x8c, 0x44, 0x4a, 0xf9, 0x8b, 0x33, 0x28, 0x73, 0xc4, + 0xc4, 0x3f, 0x4a, 0xb7, 0x31, 0x8c, 0x0d, 0xc3, 0x3d, 0x44, 0x99, 0xdb, 0x0b, 0xa5, 0x80, 0x79, + 0x98, 0x83, 0xf9, 0xb5, 0x08, 0xb9, 0x0c, 0x3d, 0x72, 0xe9, 0x9e, 0x83, 0x9e, 0xf5, 0x11, 0x65, + 0x7a, 0x0b, 0x66, 0x12, 0xf3, 0xdb, 0xd8, 0xaf, 0x6b, 0xcb, 0x5a, 0xb3, 0xba, 0x7a, 0x65, 0x70, + 0xd4, 0xa8, 0xad, 0xc5, 0xe7, 0xed, 0x75, 0xa7, 0x96, 0x08, 0xb5, 0x7d, 0xdd, 0x86, 0x52, 0x44, + 0x08, 0xdb, 0xa1, 0xf5, 0xfc, 0x72, 0xbe, 0x59, 0x6b, 0xbd, 0x6b, 0xa5, 0x9e, 0x54, 0x44, 0x67, + 0xdd, 0xe3, 0x60, 0x3a, 0x4a, 0x4c, 0x5f, 0x80, 0x22, 0x65, 0x3e, 0x0e, 0xea, 0x05, 0x6e, 0xdd, + 0x91, 0x1b, 0x7d, 0x11, 0x4a, 0x94, 0xf9, 0xa4, 0xcf, 0xea, 0x45, 0x71, 0xac, 0x76, 0xea, 0x1c, + 0x45, 0x51, 0xbd, 0x94, 0x9c, 0xa3, 0x28, 0xd2, 0x0d, 0xa8, 0x30, 0x14, 0xf5, 0x70, 0xe0, 0x76, + 0xeb, 0xe5, 0x65, 0xad, 0x59, 0x71, 0x92, 0xbd, 0x7e, 0x07, 0xc0, 0xdb, 0x45, 0xde, 0x5e, 0x48, + 0x70, 0xc0, 0xea, 0x95, 0x65, 0xad, 0x59, 0x6b, 0x5d, 0x1b, 0x0d, 0x6b, 0x3d, 0x41, 0xdc, 0x49, + 0xc9, 0xeb, 0x16, 0x94, 0x49, 0xc8, 0x30, 0x09, 0x68, 0xbd, 0x2a, 0x54, 0x17, 0x2c, 0x89, 0xa6, + 0x15, 0xa3, 0x69, 0xdd, 0x0d, 0x0e, 0x9c, 0x58, 0xc8, 0x7c, 0x02, 0x7a, 0x1a, 0x49, 0x1a, 0x92, + 0x80, 0xa2, 0x37, 0x82, 0x72, 0x0e, 0xf2, 0x21, 0xf6, 0xeb, 0xb9, 0x65, 0xad, 0x39, 0xeb, 0xf0, + 0xa5, 0xd9, 0x81, 0x99, 0x87, 0xcc, 0x8d, 0xd8, 0x79, 0x1e, 0xe8, 0x43, 0x28, 0xa3, 0x17, 0xc8, + 0xdb, 0x56, 0x96, 0xab, 0xab, 0x30, 0x38, 0x6a, 0x94, 0x36, 0x5e, 0x20, 0xaf, 0xbd, 0xee, 0x94, + 0xf8, 0xa7, 0xb6, 0x6f, 0x7e, 0x00, 0xb3, 0xca, 0x91, 0x8a, 0x5f, 0xc5, 0xa2, 0x1d, 0xc7, 0xb2, + 0x09, 0xf3, 0xeb, 0xa8, 0x8b, 0xce, 0x9d, 0x31, 0xe6, 0xef, 0x1a, 0x5c, 0x96, 0x96, 0x12, 0x6f, + 0x8b, 0x90, 0x4b, 0x94, 0x4b, 0x83, 0xa3, 0x46, 0xae, 0xbd, 0xee, 0xe4, 0xf0, 0x29, 0x88, 0xe8, + 0x0d, 0xa8, 0xa1, 0x17, 0x98, 0x6d, 0x53, 0xe6, 0xb2, 0x3e, 0xcf, 0x39, 0xfe, 0x05, 0xf8, 0xd1, + 0x43, 0x71, 0xa2, 0xdf, 0x85, 0x2a, 0xdf, 0x21, 0x7f, 0xdb, 0x65, 0x22, 0xc5, 0x6a, 0x2d, 0x63, + 0xe4, 0x01, 0x1f, 0xc5, 0xe5, 0xb0, 0x5a, 0x39, 0x3c, 0x6a, 0x5c, 0x7a, 0xf9, 0x77, 0x43, 0x73, + 0x2a, 0x52, 0xed, 0x2e, 0x33, 0x09, 0x2c, 0xc8, 0xf8, 0xb6, 0x22, 0xe2, 0x21, 0x4a, 0x2f, 0x1c, + 0x7d, 0x04, 0xb0, 0x89, 0x2e, 0xfe, 0x91, 0x37, 0xa0, 0x26, 0xdc, 0x28, 0xd0, 0x6f, 0x41, 0x39, + 0x94, 0x17, 0x14, 0x2e, 0x86, 0x6a, 0x64, 0xff, 0x86, 0x2a, 0x93, 0x18, 0x84, 0x58, 0xd8, 0x5c, + 0x81, 0xb9, 0x6f, 0x30, 0x65, 0x3c, 0x0d, 0x12, 0x68, 0x16, 0xa1, 0xb4, 0x83, 0xbb, 0x0c, 0x45, + 0x32, 0x5a, 0x47, 0xed, 0x78, 0xd2, 0xa4, 0x64, 0x93, 0xda, 0x28, 0x8a, 0x16, 0x5f, 0xd7, 0x44, + 0xc7, 0x98, 0xec, 0x56, 0x8a, 0x9a, 0x2f, 0x35, 0xa8, 0x7d, 0x8d, 0xbb, 0xdd, 0x8b, 0x06, 0x49, + 0x34, 0x1c, 0xdc, 0xe1, 0x6d, 0x45, 0xe6, 0x96, 0xda, 0xf1, 0x54, 0x74, 0xbb, 0x5d, 0x91, 0x51, + 0x15, 0x87, 0x2f, 0xcd, 0x7f, 0x35, 0xd0, 0xb9, 0xf2, 0x5b, 0xc8, 0x92, 0xa4, 0x27, 0xe6, 0x4e, + 0xef, 0x89, 0xf9, 0x31, 0x3d, 0xb1, 0x30, 0xb6, 0x27, 0x16, 0x87, 0x7a, 0x62, 0x13, 0x0a, 0x34, + 0x44, 0x9e, 0xe8, 0xa2, 0xe3, 0x5a, 0x9a, 0x90, 0x48, 0xa3, 0x54, 0x1e, 0x9b, 0x4a, 0x57, 0xe1, + 0x9d, 0x13, 0x57, 0x97, 0x2f, 0x6b, 0xfe, 0xa6, 0xc1, 0x9c, 0x83, 0x28, 0xfe, 0x09, 0x6d, 0xb1, + 0x83, 0x0b, 0x7f, 0xaa, 0x05, 0x28, 0x3e, 0xc7, 0x3e, 0xdb, 0x55, 0x2f, 0x25, 0x37, 0x1c, 0x9d, + 0x5d, 0x84, 0x3b, 0xbb, 0xb2, 0xfa, 0x67, 0x1d, 0xb5, 0x33, 0x7f, 0x81, 0xcb, 0x6b, 0x5d, 0x42, + 0x51, 0xfb, 0xfe, 0xff, 0x11, 0x98, 0x7c, 0xce, 0xbc, 0x78, 0x05, 0xb9, 0x31, 0xbf, 0x82, 0xb9, + 0x2d, 0xb7, 0x4f, 0xcf, 0xdd, 0x3f, 0x37, 0x61, 0xde, 0x41, 0xb4, 0xdf, 0x3b, 0xb7, 0xa1, 0x0d, + 0xb8, 0xc2, 0x8b, 0x73, 0x0b, 0xfb, 0xe7, 0x49, 0x5e, 0xd3, 0x91, 0xfd, 0x40, 0x9a, 0x51, 0x25, + 0xfe, 0x25, 0x54, 0x55, 0xbb, 0x40, 0x71, 0x99, 0x2f, 0x4f, 0x2a, 0xf3, 0x76, 0xb0, 0x43, 0x9c, + 0x63, 0x15, 0xf3, 0x95, 0x06, 0x57, 0xd7, 0x92, 0x99, 0x7c, 0x5e, 0x8e, 0xb2, 0x0d, 0xf3, 0xa1, + 0x1b, 0xa1, 0x80, 0x6d, 0xa7, 0x78, 0x81, 0x7c, 0xbe, 0x16, 0xef, 0xff, 0x7f, 0x1d, 0x35, 0x56, + 0x52, 0x6c, 0x8b, 0x84, 0x28, 0x48, 0xd4, 0xa9, 0xdd, 0x21, 0xd7, 0x7d, 0xdc, 0x41, 0x94, 0x59, + 0xeb, 0xe2, 0x3f, 0x67, 0x4e, 0x1a, 0x5b, 0x3b, 0x95, 0x33, 0xe4, 0xa7, 0xe1, 0x0c, 0x8f, 0x61, + 0x71, 0xf8, 0x76, 0x09, 0x70, 0xb5, 0x63, 0x26, 0x78, 0x6a, 0x87, 0x1c, 0x21, 0x2f, 0x69, 0x05, + 0xf3, 0x67, 0x98, 0xff, 0x36, 0xf4, 0xdf, 0x02, 0xaf, 0x6b, 0x41, 0x35, 0x42, 0x94, 0xf4, 0x23, + 0x0f, 0x51, 0x81, 0xd5, 0xb8, 0x4b, 0x1d, 0x8b, 0x99, 0x2b, 0x70, 0xf9, 0x9e, 0x24, 0xc0, 0xb1, + 0xe7, 0x3a, 0x94, 0xe5, 0x24, 0x90, 0x57, 0xa9, 0x3a, 0xf1, 0x96, 0x27, 0x5f, 0x22, 0x9b, 0xcc, + 0x85, 0xb2, 0xe2, 0xcf, 0xea, 0xde, 0xf5, 0x53, 0xb8, 0xa4, 0x10, 0x70, 0x62, 0x41, 0x73, 0x07, + 0x6a, 0xdf, 0xbb, 0xf8, 0xe2, 0x67, 0x67, 0x04, 0x33, 0xd2, 0x8f, 0x8a, 0x75, 0x88, 0x87, 0x68, + 0x93, 0x79, 0x48, 0xee, 0x4d, 0x78, 0x48, 0xeb, 0xd5, 0x0c, 0x14, 0xc5, 0xe4, 0xd4, 0xf7, 0xa0, + 0x24, 0x39, 0xa6, 0x6e, 0x5b, 0x93, 0x7e, 0x31, 0x59, 0x23, 0x9c, 0xde, 0xf8, 0x74, 0x7a, 0x05, + 0x75, 0xb5, 0x1f, 0xa1, 0x28, 0xb8, 0xa0, 0xbe, 0x32, 0x59, 0x35, 0xcd, 0x4c, 0x8d, 0x8f, 0xa7, + 0x92, 0x55, 0x1e, 0x3a, 0x50, 0x92, 0x04, 0x2b, 0xeb, 0x3a, 0x23, 0x84, 0xd3, 0xf8, 0x64, 0x1a, + 0x85, 0xc4, 0xd1, 0x33, 0x98, 0x3d, 0xc1, 0xe4, 0xf4, 0xd6, 0x34, 0xea, 0x27, 0x07, 0xfa, 0x19, + 0x5d, 0x3e, 0x81, 0xfc, 0x26, 0x62, 0x7a, 0x73, 0xb2, 0xd2, 0x31, 0xdd, 0x33, 0x3e, 0x9a, 0x42, + 0x32, 0xc1, 0xad, 0xc0, 0x3b, 0xad, 0x6e, 0x4d, 0x56, 0x19, 0x66, 0x67, 0x86, 0x3d, 0xb5, 0xbc, + 0x72, 0xd4, 0x86, 0x02, 0x27, 0x5b, 0x7a, 0x46, 0x6c, 0x29, 0x42, 0x66, 0x2c, 0x8e, 0x24, 0xf7, + 0x06, 0xff, 0xb1, 0xae, 0x6f, 0x41, 0x81, 0x97, 0x92, 0x9e, 0x91, 0x87, 0xa3, 0x44, 0x6a, 0xac, + 0xc5, 0x87, 0x50, 0x4d, 0x38, 0x46, 0x16, 0x14, 0xc3, 0x64, 0x64, 0xac, 0xd1, 0xfb, 0x50, 0x56, + 0xec, 0x40, 0xcf, 0x78, 0xef, 0x93, 0x24, 0x62, 0x82, 0xc1, 0xa2, 0x98, 0xf6, 0x59, 0x11, 0x0e, + 0x53, 0x82, 0xb1, 0x06, 0x1f, 0x40, 0x49, 0x8e, 0xfd, 0xac, 0xa2, 0x19, 0x21, 0x07, 0x63, 0x4d, + 0x62, 0xa8, 0xc4, 0x93, 0x5b, 0xbf, 0x9e, 0x9d, 0x23, 0x29, 0xa2, 0x60, 0x58, 0xd3, 0x8a, 0xab, + 0x8c, 0x7a, 0x0e, 0x90, 0x9a, 0x97, 0x37, 0x33, 0x20, 0x3e, 0x6d, 0xf2, 0x1b, 0x9f, 0x9d, 0x4d, + 0x49, 0x39, 0x7e, 0x00, 0x25, 0x39, 0x10, 0xb3, 0x60, 0x1b, 0x19, 0x9b, 0x63, 0x61, 0xdb, 0x81, + 0xb2, 0x1a, 0x5d, 0x59, 0xb9, 0x72, 0x72, 0x1a, 0x1a, 0xd7, 0xa7, 0x94, 0x56, 0xa1, 0xff, 0x00, + 0x05, 0x3e, 0x73, 0xb2, 0xaa, 0x30, 0x35, 0xff, 0x8c, 0x95, 0x69, 0x44, 0xa5, 0xf9, 0xd5, 0xef, + 0x0e, 0x5f, 0x2f, 0x5d, 0xfa, 0xf3, 0xf5, 0xd2, 0xa5, 0x5f, 0x07, 0x4b, 0xda, 0xe1, 0x60, 0x49, + 0xfb, 0x63, 0xb0, 0xa4, 0xfd, 0x33, 0x58, 0xd2, 0x9e, 0xdc, 0x79, 0xb3, 0xbf, 0xec, 0xdd, 0x16, + 0x8b, 0xc7, 0xb9, 0xa7, 0x25, 0x01, 0xd8, 0xcd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x85, 0xa2, + 0x4f, 0xd1, 0x22, 0x14, 0x00, 0x00, } diff --git a/vendor/github.com/containerd/containerd/api/services/tasks/v1/tasks.proto b/vendor/github.com/containerd/containerd/api/services/tasks/v1/tasks.proto index eb373185eb..90793cbaba 100644 --- a/vendor/github.com/containerd/containerd/api/services/tasks/v1/tasks.proto +++ b/vendor/github.com/containerd/containerd/api/services/tasks/v1/tasks.proto @@ -4,7 +4,7 @@ package containerd.services.tasks.v1; import "google/protobuf/empty.proto"; import "google/protobuf/any.proto"; -import "gogoproto/gogo.proto"; +import weak "gogoproto/gogo.proto"; import "github.com/containerd/containerd/api/types/mount.proto"; import "github.com/containerd/containerd/api/types/metrics.proto"; import "github.com/containerd/containerd/api/types/descriptor.proto"; diff --git a/vendor/github.com/containerd/containerd/api/services/version/v1/BUILD b/vendor/github.com/containerd/containerd/api/services/version/v1/BUILD index b1f4435931..1bfa4d3fa6 100644 --- a/vendor/github.com/containerd/containerd/api/services/version/v1/BUILD +++ b/vendor/github.com/containerd/containerd/api/services/version/v1/BUILD @@ -12,9 +12,8 @@ go_library( importpath = "github.com/containerd/containerd/api/services/version/v1", visibility = ["//visibility:public"], deps = [ - "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/golang/protobuf/ptypes/empty:go_default_library", + "//vendor/github.com/gogo/protobuf/types:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", "//vendor/google.golang.org/grpc:go_default_library", ], diff --git a/vendor/github.com/containerd/containerd/api/services/version/v1/version.pb.go b/vendor/github.com/containerd/containerd/api/services/version/v1/version.pb.go index c403c8431b..3f6528a0bb 100644 --- a/vendor/github.com/containerd/containerd/api/services/version/v1/version.pb.go +++ b/vendor/github.com/containerd/containerd/api/services/version/v1/version.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: github.com/containerd/containerd/api/services/version/v1/version.proto -// DO NOT EDIT! /* Package version is a generated protocol buffer package. @@ -16,8 +15,9 @@ package version import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" -import google_protobuf "github.com/golang/protobuf/ptypes/empty" -import _ "github.com/gogo/protobuf/gogoproto" +import google_protobuf "github.com/gogo/protobuf/types" + +// skipping weak import gogoproto "github.com/gogo/protobuf/gogoproto" import ( context "golang.org/x/net/context" @@ -155,24 +155,6 @@ func (m *VersionResponse) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Version(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Version(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintVersion(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -446,7 +428,7 @@ func init() { } var fileDescriptorVersion = []byte{ - // 241 bytes of a gzipped FileDescriptorProto + // 243 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4b, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d, 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x17, 0xa7, 0x16, 0x95, 0x65, 0x26, 0xa7, 0x16, 0xeb, @@ -460,7 +442,7 @@ var fileDescriptorVersion = []byte{ 0x76, 0xa8, 0x41, 0x42, 0x41, 0x08, 0xa6, 0x98, 0x1e, 0xc4, 0x49, 0x7a, 0x30, 0x27, 0xe9, 0xb9, 0x82, 0x9c, 0x24, 0xa5, 0xaf, 0x87, 0xdf, 0x2b, 0x7a, 0x68, 0x8e, 0x72, 0x8a, 0x3a, 0xf1, 0x50, 0x8e, 0xe1, 0xc6, 0x43, 0x39, 0x86, 0x86, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, - 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0x63, 0x94, 0x03, 0xb9, 0x81, 0x6b, 0x0d, 0x65, 0x26, 0xb1, - 0x81, 0x1d, 0x67, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xb6, 0x37, 0xd8, 0xc6, 0xa7, 0x01, 0x00, - 0x00, + 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0x63, 0x94, 0x03, 0xb9, 0x81, 0x6b, 0x0d, 0x65, 0x46, 0x30, + 0x26, 0xb1, 0x81, 0x9d, 0x67, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x95, 0x0d, 0x52, 0x23, 0xa9, + 0x01, 0x00, 0x00, } diff --git a/vendor/github.com/containerd/containerd/api/services/version/v1/version.proto b/vendor/github.com/containerd/containerd/api/services/version/v1/version.proto index 2398fdcbed..0e4c3d1e08 100644 --- a/vendor/github.com/containerd/containerd/api/services/version/v1/version.proto +++ b/vendor/github.com/containerd/containerd/api/services/version/v1/version.proto @@ -3,7 +3,7 @@ syntax = "proto3"; package containerd.services.version.v1; import "google/protobuf/empty.proto"; -import "gogoproto/gogo.proto"; +import weak "gogoproto/gogo.proto"; // TODO(stevvooe): Should version service actually be versioned? option go_package = "github.com/containerd/containerd/api/services/version/v1;version"; diff --git a/vendor/github.com/containerd/containerd/api/types/BUILD b/vendor/github.com/containerd/containerd/api/types/BUILD index 8d0bbf57d3..9fdec8b01e 100644 --- a/vendor/github.com/containerd/containerd/api/types/BUILD +++ b/vendor/github.com/containerd/containerd/api/types/BUILD @@ -23,7 +23,6 @@ go_library( importpath = "github.com/containerd/containerd/api/types", visibility = ["//visibility:public"], deps = [ - "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/types:go_default_library", "//vendor/github.com/opencontainers/go-digest:go_default_library", diff --git a/vendor/github.com/containerd/containerd/api/types/descriptor.pb.go b/vendor/github.com/containerd/containerd/api/types/descriptor.pb.go index 785d050707..93e88c0dc2 100644 --- a/vendor/github.com/containerd/containerd/api/types/descriptor.pb.go +++ b/vendor/github.com/containerd/containerd/api/types/descriptor.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: github.com/containerd/containerd/api/types/descriptor.proto -// DO NOT EDIT! /* Package types is a generated protocol buffer package. @@ -22,7 +21,8 @@ package types import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" -import _ "github.com/gogo/protobuf/gogoproto" + +// skipping weak import gogoproto "github.com/gogo/protobuf/gogoproto" import github_com_opencontainers_go_digest "github.com/opencontainers/go-digest" @@ -95,24 +95,6 @@ func (m *Descriptor) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Descriptor(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Descriptor(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintDescriptor(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -409,7 +391,7 @@ func init() { } var fileDescriptorDescriptor = []byte{ - // 232 bytes of a gzipped FileDescriptorProto + // 234 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4e, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d, 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x97, 0x54, 0x16, 0xa4, 0x16, 0xeb, 0xa7, 0xa4, 0x16, @@ -423,6 +405,6 @@ var fileDescriptorDescriptor = []byte{ 0x4d, 0x10, 0x12, 0xe2, 0x62, 0x29, 0xce, 0xac, 0x4a, 0x95, 0x60, 0x56, 0x60, 0xd4, 0x60, 0x0e, 0x02, 0xb3, 0x9d, 0xbc, 0x4e, 0x3c, 0x94, 0x63, 0xb8, 0xf1, 0x50, 0x8e, 0xa1, 0xe1, 0x91, 0x1c, 0xe3, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x18, 0x65, 0x40, - 0x7c, 0x60, 0x58, 0x83, 0xc9, 0x24, 0x36, 0xb0, 0x07, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, - 0x23, 0x14, 0xc9, 0x7c, 0x47, 0x01, 0x00, 0x00, + 0x7c, 0x60, 0x58, 0x83, 0xc9, 0x08, 0x86, 0x24, 0x36, 0xb0, 0x17, 0x8d, 0x01, 0x01, 0x00, 0x00, + 0xff, 0xff, 0xea, 0xac, 0x78, 0x9a, 0x49, 0x01, 0x00, 0x00, } diff --git a/vendor/github.com/containerd/containerd/api/types/descriptor.proto b/vendor/github.com/containerd/containerd/api/types/descriptor.proto index 7975ab06d9..5c00dca4f1 100644 --- a/vendor/github.com/containerd/containerd/api/types/descriptor.proto +++ b/vendor/github.com/containerd/containerd/api/types/descriptor.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package containerd.types; -import "gogoproto/gogo.proto"; +import weak "gogoproto/gogo.proto"; option go_package = "github.com/containerd/containerd/api/types;types"; diff --git a/vendor/github.com/containerd/containerd/api/types/metrics.pb.go b/vendor/github.com/containerd/containerd/api/types/metrics.pb.go index f9aacf941a..da0467884c 100644 --- a/vendor/github.com/containerd/containerd/api/types/metrics.pb.go +++ b/vendor/github.com/containerd/containerd/api/types/metrics.pb.go @@ -1,13 +1,13 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: github.com/containerd/containerd/api/types/metrics.proto -// DO NOT EDIT! package types import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" -import _ "github.com/gogo/protobuf/gogoproto" + +// skipping weak import gogoproto "github.com/gogo/protobuf/gogoproto" import google_protobuf1 "github.com/gogo/protobuf/types" import _ "github.com/gogo/protobuf/types" @@ -81,24 +81,6 @@ func (m *Metric) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Metrics(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Metrics(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintMetrics(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -409,7 +391,7 @@ func init() { } var fileDescriptorMetrics = []byte{ - // 256 bytes of a gzipped FileDescriptorProto + // 258 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x48, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d, 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x97, 0x54, 0x16, 0xa4, 0x16, 0xeb, 0xe7, 0xa6, 0x96, @@ -424,6 +406,7 @@ var fileDescriptorMetrics = []byte{ 0x5d, 0x82, 0x98, 0x32, 0x53, 0x84, 0x34, 0xb8, 0x58, 0x52, 0x12, 0x4b, 0x12, 0x25, 0x98, 0xc1, 0xc6, 0x8a, 0x60, 0x18, 0xeb, 0x98, 0x57, 0x19, 0x04, 0x56, 0xe1, 0xe4, 0x75, 0xe2, 0xa1, 0x1c, 0xc3, 0x8d, 0x87, 0x72, 0x0c, 0x0d, 0x8f, 0xe4, 0x18, 0x4f, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, - 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x28, 0x03, 0xe2, 0x03, 0xd2, 0x1a, 0x4c, 0x26, 0xb1, 0x81, - 0xcd, 0x37, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x51, 0x36, 0x74, 0x83, 0x01, 0x00, 0x00, + 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x28, 0x03, 0xe2, 0x03, 0xd2, 0x1a, 0x4c, 0x46, 0x30, 0x24, + 0xb1, 0x81, 0x6d, 0x30, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xde, 0x0d, 0x02, 0xfe, 0x85, 0x01, + 0x00, 0x00, } diff --git a/vendor/github.com/containerd/containerd/api/types/metrics.proto b/vendor/github.com/containerd/containerd/api/types/metrics.proto index d1629c7eec..0e631d2ac3 100644 --- a/vendor/github.com/containerd/containerd/api/types/metrics.proto +++ b/vendor/github.com/containerd/containerd/api/types/metrics.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package containerd.types; -import "gogoproto/gogo.proto"; +import weak "gogoproto/gogo.proto"; import "google/protobuf/any.proto"; import "google/protobuf/timestamp.proto"; diff --git a/vendor/github.com/containerd/containerd/api/types/mount.pb.go b/vendor/github.com/containerd/containerd/api/types/mount.pb.go index cc835140e3..f7a9c3c1fe 100644 --- a/vendor/github.com/containerd/containerd/api/types/mount.pb.go +++ b/vendor/github.com/containerd/containerd/api/types/mount.pb.go @@ -1,13 +1,13 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: github.com/containerd/containerd/api/types/mount.proto -// DO NOT EDIT! package types import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" -import _ "github.com/gogo/protobuf/gogoproto" + +// skipping weak import gogoproto "github.com/gogo/protobuf/gogoproto" import strings "strings" import reflect "reflect" @@ -96,24 +96,6 @@ func (m *Mount) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Mount(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Mount(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintMount(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -457,7 +439,7 @@ func init() { } var fileDescriptorMount = []byte{ - // 200 bytes of a gzipped FileDescriptorProto + // 202 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4b, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d, 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x97, 0x54, 0x16, 0xa4, 0x16, 0xeb, 0xe7, 0xe6, 0x97, @@ -469,6 +451,6 @@ var fileDescriptorMount = []byte{ 0x82, 0x8b, 0x3d, 0xbf, 0xa0, 0x24, 0x33, 0x3f, 0xaf, 0x58, 0x82, 0x45, 0x81, 0x59, 0x83, 0x33, 0x08, 0xc6, 0x75, 0xf2, 0x3a, 0xf1, 0x50, 0x8e, 0xe1, 0xc6, 0x43, 0x39, 0x86, 0x86, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0x63, 0x94, 0x01, - 0xf1, 0x1e, 0xb4, 0x06, 0x93, 0x49, 0x6c, 0x60, 0x97, 0x1b, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, - 0xe5, 0xc7, 0x07, 0x3f, 0x1b, 0x01, 0x00, 0x00, + 0xf1, 0x1e, 0xb4, 0x06, 0x93, 0x11, 0x0c, 0x49, 0x6c, 0x60, 0xb7, 0x1b, 0x03, 0x02, 0x00, 0x00, + 0xff, 0xff, 0x82, 0x1c, 0x02, 0x18, 0x1d, 0x01, 0x00, 0x00, } diff --git a/vendor/github.com/containerd/containerd/api/types/mount.proto b/vendor/github.com/containerd/containerd/api/types/mount.proto index 031e654424..cd80e44a2c 100644 --- a/vendor/github.com/containerd/containerd/api/types/mount.proto +++ b/vendor/github.com/containerd/containerd/api/types/mount.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package containerd.types; -import "gogoproto/gogo.proto"; +import weak "gogoproto/gogo.proto"; option go_package = "github.com/containerd/containerd/api/types;types"; diff --git a/vendor/github.com/containerd/containerd/api/types/platform.pb.go b/vendor/github.com/containerd/containerd/api/types/platform.pb.go index 0ca2afc259..ba9a3bf881 100644 --- a/vendor/github.com/containerd/containerd/api/types/platform.pb.go +++ b/vendor/github.com/containerd/containerd/api/types/platform.pb.go @@ -1,13 +1,13 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: github.com/containerd/containerd/api/types/platform.proto -// DO NOT EDIT! package types import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" -import _ "github.com/gogo/protobuf/gogoproto" + +// skipping weak import gogoproto "github.com/gogo/protobuf/gogoproto" import strings "strings" import reflect "reflect" @@ -70,24 +70,6 @@ func (m *Platform) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Platform(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Platform(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintPlatform(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -395,7 +377,7 @@ func init() { } var fileDescriptorPlatform = []byte{ - // 203 bytes of a gzipped FileDescriptorProto + // 205 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4c, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d, 0x4a, 0x41, 0x66, 0x26, 0x16, 0x64, 0xea, 0x97, 0x54, 0x16, 0xa4, 0x16, 0xeb, 0x17, 0xe4, 0x24, @@ -407,6 +389,6 @@ var fileDescriptorPlatform = []byte{ 0x40, 0x2a, 0x82, 0x50, 0xc4, 0x84, 0x24, 0xb8, 0xd8, 0xcb, 0x12, 0x8b, 0x32, 0x13, 0xf3, 0x4a, 0x24, 0x98, 0xc1, 0xd2, 0x30, 0xae, 0x93, 0xd7, 0x89, 0x87, 0x72, 0x0c, 0x37, 0x1e, 0xca, 0x31, 0x34, 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, - 0x18, 0xa3, 0x0c, 0x88, 0xf7, 0x9e, 0x35, 0x98, 0x4c, 0x62, 0x03, 0x3b, 0xda, 0x18, 0x10, 0x00, - 0x00, 0xff, 0xff, 0x97, 0xa1, 0x99, 0x56, 0x19, 0x01, 0x00, 0x00, + 0x18, 0xa3, 0x0c, 0x88, 0xf7, 0x9e, 0x35, 0x98, 0x8c, 0x60, 0x48, 0x62, 0x03, 0x3b, 0xdb, 0x18, + 0x10, 0x00, 0x00, 0xff, 0xff, 0x05, 0xaa, 0xda, 0xa1, 0x1b, 0x01, 0x00, 0x00, } diff --git a/vendor/github.com/containerd/containerd/api/types/platform.proto b/vendor/github.com/containerd/containerd/api/types/platform.proto index b1dce06233..4cf9834bdc 100644 --- a/vendor/github.com/containerd/containerd/api/types/platform.proto +++ b/vendor/github.com/containerd/containerd/api/types/platform.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package containerd.types; -import "gogoproto/gogo.proto"; +import weak "gogoproto/gogo.proto"; option go_package = "github.com/containerd/containerd/api/types;types"; diff --git a/vendor/github.com/containerd/containerd/api/types/task/BUILD b/vendor/github.com/containerd/containerd/api/types/task/BUILD index 01c18dfd68..7cd385c445 100644 --- a/vendor/github.com/containerd/containerd/api/types/task/BUILD +++ b/vendor/github.com/containerd/containerd/api/types/task/BUILD @@ -6,7 +6,6 @@ go_library( importpath = "github.com/containerd/containerd/api/types/task", visibility = ["//visibility:public"], deps = [ - "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/types:go_default_library", ], diff --git a/vendor/github.com/containerd/containerd/api/types/task/task.pb.go b/vendor/github.com/containerd/containerd/api/types/task/task.pb.go index ccc230ae73..ba34270a37 100644 --- a/vendor/github.com/containerd/containerd/api/types/task/task.pb.go +++ b/vendor/github.com/containerd/containerd/api/types/task/task.pb.go @@ -1,6 +1,5 @@ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: github.com/containerd/containerd/api/types/task/task.proto -// DO NOT EDIT! /* Package task is a generated protocol buffer package. @@ -17,7 +16,8 @@ package task import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" -import _ "github.com/gogo/protobuf/gogoproto" + +// skipping weak import gogoproto "github.com/gogo/protobuf/gogoproto" import _ "github.com/gogo/protobuf/types" import google_protobuf2 "github.com/gogo/protobuf/types" @@ -224,24 +224,6 @@ func (m *ProcessInfo) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Task(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Task(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintTask(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -869,39 +851,40 @@ func init() { } var fileDescriptorTask = []byte{ - // 543 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x90, 0xcf, 0x6e, 0xd3, 0x4c, - 0x14, 0xc5, 0x33, 0x6e, 0xe3, 0x24, 0xe3, 0xb6, 0x9f, 0x3f, 0x13, 0x55, 0xc6, 0x20, 0xdb, 0xea, - 0xca, 0x62, 0x61, 0x8b, 0x74, 0xc7, 0x2e, 0xff, 0x84, 0x2c, 0x24, 0x37, 0x72, 0x12, 0xb1, 0x8c, - 0x9c, 0x78, 0x62, 0x46, 0x6d, 0x66, 0x2c, 0x7b, 0x0c, 0x64, 0xc7, 0x12, 0x75, 0xc5, 0x0b, 0x74, - 0x05, 0x4f, 0xc1, 0x13, 0x64, 0xc9, 0x0a, 0xb1, 0x0a, 0xd4, 0x4f, 0x82, 0xc6, 0x76, 0xd2, 0x08, - 0xd8, 0x8c, 0xee, 0x3d, 0xbf, 0x33, 0x77, 0xee, 0x1c, 0xf8, 0x22, 0xc2, 0xec, 0x4d, 0x36, 0xb7, - 0x17, 0x74, 0xe5, 0x2c, 0x28, 0x61, 0x01, 0x26, 0x28, 0x09, 0x0f, 0xcb, 0x20, 0xc6, 0x0e, 0x5b, - 0xc7, 0x28, 0x75, 0x58, 0x90, 0x5e, 0x17, 0x87, 0x1d, 0x27, 0x94, 0x51, 0xe5, 0xd1, 0x83, 0xcb, - 0x7e, 0xfb, 0xdc, 0x2e, 0x4c, 0x5a, 0x3b, 0xa2, 0x11, 0x2d, 0xb8, 0xc3, 0xab, 0xd2, 0xaa, 0x19, - 0x11, 0xa5, 0xd1, 0x0d, 0x72, 0x8a, 0x6e, 0x9e, 0x2d, 0x1d, 0x86, 0x57, 0x28, 0x65, 0xc1, 0x2a, - 0xae, 0x0c, 0x8f, 0xff, 0x34, 0x04, 0x64, 0x5d, 0xa2, 0x8b, 0x5c, 0x80, 0x8d, 0x51, 0x42, 0x17, - 0x28, 0x4d, 0x95, 0x0e, 0x3c, 0xd9, 0x3f, 0x3a, 0xc3, 0xa1, 0x0a, 0x4c, 0x60, 0xb5, 0x7a, 0xff, - 0xe5, 0x5b, 0x43, 0xea, 0xef, 0x74, 0x77, 0xe0, 0x4b, 0x7b, 0x93, 0x1b, 0x2a, 0xe7, 0x50, 0xc0, - 0xa1, 0x2a, 0x14, 0x4e, 0x31, 0xdf, 0x1a, 0x82, 0x3b, 0xf0, 0x05, 0x1c, 0x2a, 0x32, 0x3c, 0x8a, - 0x71, 0xa8, 0x1e, 0x99, 0xc0, 0x3a, 0xf5, 0x79, 0xa9, 0x5c, 0x42, 0x31, 0x65, 0x01, 0xcb, 0x52, - 0xf5, 0xd8, 0x04, 0xd6, 0x59, 0xe7, 0x89, 0xfd, 0x8f, 0x1f, 0xda, 0xe3, 0xc2, 0xe2, 0x57, 0x56, - 0xa5, 0x0d, 0xeb, 0x29, 0x0b, 0x31, 0x51, 0xeb, 0xfc, 0x05, 0xbf, 0x6c, 0x94, 0x73, 0x3e, 0x2a, - 0xa4, 0x19, 0x53, 0xc5, 0x42, 0xae, 0xba, 0x4a, 0x47, 0x49, 0xa2, 0x36, 0xf6, 0x3a, 0x4a, 0x12, - 0x45, 0x83, 0x4d, 0x86, 0x92, 0x15, 0x26, 0xc1, 0x8d, 0xda, 0x34, 0x81, 0xd5, 0xf4, 0xf7, 0xbd, - 0x62, 0x40, 0x09, 0xbd, 0xc7, 0x6c, 0x56, 0xed, 0xd6, 0x2a, 0x16, 0x86, 0x5c, 0x2a, 0x57, 0x51, - 0xba, 0xb0, 0xc5, 0x3b, 0x14, 0xce, 0x02, 0xa6, 0x42, 0x13, 0x58, 0x52, 0x47, 0xb3, 0xcb, 0x40, - 0xed, 0x5d, 0xa0, 0xf6, 0x64, 0x97, 0x78, 0xaf, 0xb9, 0xd9, 0x1a, 0xb5, 0x4f, 0x3f, 0x0d, 0xe0, - 0x37, 0xcb, 0x6b, 0x5d, 0x76, 0xe1, 0x42, 0xa9, 0xca, 0xd8, 0x25, 0x4b, 0xba, 0xcb, 0x06, 0x3c, - 0x64, 0x63, 0xc1, 0x63, 0x4c, 0x96, 0xb4, 0xc8, 0x51, 0xea, 0xb4, 0xff, 0x1a, 0xdf, 0x25, 0x6b, - 0xbf, 0x70, 0x3c, 0xfb, 0x0e, 0xa0, 0x58, 0x2d, 0xa6, 0xc3, 0xc6, 0xd4, 0x7b, 0xe5, 0x5d, 0xbd, - 0xf6, 0xe4, 0x9a, 0xf6, 0xff, 0xed, 0x9d, 0x79, 0x5a, 0x82, 0x29, 0xb9, 0x26, 0xf4, 0x1d, 0xe1, - 0xbc, 0xef, 0x0f, 0xbb, 0x93, 0xe1, 0x40, 0x06, 0x87, 0xbc, 0x9f, 0xa0, 0x80, 0xa1, 0x90, 0x73, - 0x7f, 0xea, 0x79, 0xae, 0xf7, 0x52, 0x16, 0x0e, 0xb9, 0x9f, 0x11, 0x82, 0x49, 0xc4, 0xf9, 0x78, - 0x72, 0x35, 0x1a, 0x0d, 0x07, 0xf2, 0xd1, 0x21, 0x1f, 0x33, 0x1a, 0xc7, 0x28, 0x54, 0x9e, 0x42, - 0x71, 0xd4, 0x9d, 0x8e, 0x87, 0x03, 0xf9, 0x58, 0x93, 0x6f, 0xef, 0xcc, 0x93, 0x12, 0x8f, 0x82, - 0x2c, 0x2d, 0xa7, 0x73, 0xca, 0xa7, 0xd7, 0x0f, 0x6f, 0x73, 0x8c, 0x49, 0xa4, 0x9d, 0x7d, 0xfc, - 0xac, 0xd7, 0xbe, 0x7e, 0xd1, 0xab, 0xdf, 0xf4, 0xd4, 0xcd, 0xbd, 0x5e, 0xfb, 0x71, 0xaf, 0xd7, - 0x3e, 0xe4, 0x3a, 0xd8, 0xe4, 0x3a, 0xf8, 0x96, 0xeb, 0xe0, 0x57, 0xae, 0x83, 0xb9, 0x58, 0xc4, - 0x70, 0xf9, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x19, 0xf7, 0x5b, 0x8f, 0x4e, 0x03, 0x00, 0x00, + // 545 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x90, 0x3f, 0x6f, 0xd3, 0x40, + 0x18, 0xc6, 0x7d, 0x6e, 0xeb, 0xa6, 0xe7, 0xb6, 0x18, 0x13, 0x55, 0xc6, 0x20, 0xdb, 0xea, 0x64, + 0x31, 0xd8, 0x22, 0xdd, 0xd8, 0xf2, 0x4f, 0xc8, 0x42, 0x72, 0x23, 0x27, 0x11, 0x6c, 0x91, 0x13, + 0x5f, 0xcc, 0xa9, 0xcd, 0x9d, 0x65, 0x9f, 0x81, 0x6c, 0x8c, 0xa8, 0x13, 0x5f, 0xa0, 0x13, 0x7c, + 0x0a, 0x3e, 0x41, 0x46, 0x26, 0xc4, 0x14, 0xa8, 0x3f, 0x09, 0x3a, 0xdb, 0x49, 0x23, 0x60, 0x39, + 0xbd, 0xef, 0xf3, 0x7b, 0xee, 0xbd, 0xf7, 0x1e, 0xf8, 0x22, 0xc6, 0xec, 0x6d, 0x3e, 0x75, 0x66, + 0x74, 0xe1, 0xce, 0x28, 0x61, 0x21, 0x26, 0x28, 0x8d, 0x76, 0xcb, 0x30, 0xc1, 0x2e, 0x5b, 0x26, + 0x28, 0x73, 0x59, 0x98, 0x5d, 0x95, 0x87, 0x93, 0xa4, 0x94, 0x51, 0xf5, 0xd1, 0xbd, 0xcb, 0x79, + 0xf7, 0xdc, 0x29, 0x4d, 0x7a, 0x33, 0xa6, 0x31, 0x2d, 0xb9, 0xcb, 0xab, 0xca, 0xaa, 0x9b, 0x31, + 0xa5, 0xf1, 0x35, 0x72, 0xcb, 0x6e, 0x9a, 0xcf, 0x5d, 0x86, 0x17, 0x28, 0x63, 0xe1, 0x22, 0xa9, + 0x0d, 0x8f, 0xff, 0x36, 0x84, 0x64, 0x59, 0xa1, 0xf3, 0x42, 0x84, 0x87, 0x83, 0x94, 0xce, 0x50, + 0x96, 0xa9, 0x2d, 0x78, 0xbc, 0x7d, 0x74, 0x82, 0x23, 0x0d, 0x58, 0xc0, 0x3e, 0xea, 0x3c, 0x28, + 0xd6, 0xa6, 0xdc, 0xdd, 0xe8, 0x5e, 0x2f, 0x90, 0xb7, 0x26, 0x2f, 0x52, 0xcf, 0xa0, 0x88, 0x23, + 0x4d, 0x2c, 0x9d, 0x52, 0xb1, 0x36, 0x45, 0xaf, 0x17, 0x88, 0x38, 0x52, 0x15, 0xb8, 0x97, 0xe0, + 0x48, 0xdb, 0xb3, 0x80, 0x7d, 0x12, 0xf0, 0x52, 0xbd, 0x80, 0x52, 0xc6, 0x42, 0x96, 0x67, 0xda, + 0xbe, 0x05, 0xec, 0xd3, 0xd6, 0x13, 0xe7, 0x3f, 0x3f, 0x74, 0x86, 0xa5, 0x25, 0xa8, 0xad, 0x6a, + 0x13, 0x1e, 0x64, 0x2c, 0xc2, 0x44, 0x3b, 0xe0, 0x2f, 0x04, 0x55, 0xa3, 0x9e, 0xf1, 0x51, 0x11, + 0xcd, 0x99, 0x26, 0x95, 0x72, 0xdd, 0xd5, 0x3a, 0x4a, 0x53, 0xed, 0x70, 0xab, 0xa3, 0x34, 0x55, + 0x75, 0xd8, 0x60, 0x28, 0x5d, 0x60, 0x12, 0x5e, 0x6b, 0x0d, 0x0b, 0xd8, 0x8d, 0x60, 0xdb, 0xab, + 0x26, 0x94, 0xd1, 0x07, 0xcc, 0x26, 0xf5, 0x6e, 0x47, 0xe5, 0xc2, 0x90, 0x4b, 0xd5, 0x2a, 0x6a, + 0x1b, 0x1e, 0xf1, 0x0e, 0x45, 0x93, 0x90, 0x69, 0xd0, 0x02, 0xb6, 0xdc, 0xd2, 0x9d, 0x2a, 0x50, + 0x67, 0x13, 0xa8, 0x33, 0xda, 0x24, 0xde, 0x69, 0xac, 0xd6, 0xa6, 0xf0, 0xf9, 0x97, 0x09, 0x82, + 0x46, 0x75, 0xad, 0xcd, 0xce, 0x3d, 0x28, 0xd7, 0x19, 0x7b, 0x64, 0x4e, 0x37, 0xd9, 0x80, 0xfb, + 0x6c, 0x6c, 0xb8, 0x8f, 0xc9, 0x9c, 0x96, 0x39, 0xca, 0xad, 0xe6, 0x3f, 0xe3, 0xdb, 0x64, 0x19, + 0x94, 0x8e, 0x67, 0x3f, 0x00, 0x94, 0xea, 0xc5, 0x0c, 0x78, 0x38, 0xf6, 0x5f, 0xf9, 0x97, 0xaf, + 0x7d, 0x45, 0xd0, 0x1f, 0xde, 0xdc, 0x5a, 0x27, 0x15, 0x18, 0x93, 0x2b, 0x42, 0xdf, 0x13, 0xce, + 0xbb, 0x41, 0xbf, 0x3d, 0xea, 0xf7, 0x14, 0xb0, 0xcb, 0xbb, 0x29, 0x0a, 0x19, 0x8a, 0x38, 0x0f, + 0xc6, 0xbe, 0xef, 0xf9, 0x2f, 0x15, 0x71, 0x97, 0x07, 0x39, 0x21, 0x98, 0xc4, 0x9c, 0x0f, 0x47, + 0x97, 0x83, 0x41, 0xbf, 0xa7, 0xec, 0xed, 0xf2, 0x21, 0xa3, 0x49, 0x82, 0x22, 0xf5, 0x29, 0x94, + 0x06, 0xed, 0xf1, 0xb0, 0xdf, 0x53, 0xf6, 0x75, 0xe5, 0xe6, 0xd6, 0x3a, 0xae, 0xf0, 0x20, 0xcc, + 0xb3, 0x6a, 0x3a, 0xa7, 0x7c, 0xfa, 0xc1, 0xee, 0x6d, 0x8e, 0x31, 0x89, 0xf5, 0xd3, 0x4f, 0x5f, + 0x0c, 0xe1, 0xdb, 0x57, 0xa3, 0xfe, 0x4d, 0x47, 0x5b, 0xdd, 0x19, 0xc2, 0xcf, 0x3b, 0x43, 0xf8, + 0x58, 0x18, 0x60, 0x55, 0x18, 0xe0, 0x7b, 0x61, 0x80, 0xdf, 0x85, 0x01, 0xde, 0x08, 0x53, 0xa9, + 0x0c, 0xe2, 0xe2, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc3, 0x32, 0xd2, 0x86, 0x50, 0x03, 0x00, + 0x00, } diff --git a/vendor/github.com/containerd/containerd/api/types/task/task.proto b/vendor/github.com/containerd/containerd/api/types/task/task.proto index 5845edf292..da91cb033e 100644 --- a/vendor/github.com/containerd/containerd/api/types/task/task.proto +++ b/vendor/github.com/containerd/containerd/api/types/task/task.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package containerd.v1.types; -import "gogoproto/gogo.proto"; +import weak "gogoproto/gogo.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/any.proto"; diff --git a/vendor/github.com/containerd/containerd/dialer/dialer.go b/vendor/github.com/containerd/containerd/dialer/dialer.go index 65af69f9bc..1ad4ab7183 100644 --- a/vendor/github.com/containerd/containerd/dialer/dialer.go +++ b/vendor/github.com/containerd/containerd/dialer/dialer.go @@ -42,7 +42,7 @@ func Dialer(address string, timeout time.Duration) (net.Conn, error) { close(stopC) go func() { dr := <-synC - if dr != nil { + if dr != nil && dr.c != nil { dr.c.Close() } }() diff --git a/vendor/github.com/containerd/containerd/errdefs/BUILD b/vendor/github.com/containerd/containerd/errdefs/BUILD index e3c03e37b9..2dfcdc5d88 100644 --- a/vendor/github.com/containerd/containerd/errdefs/BUILD +++ b/vendor/github.com/containerd/containerd/errdefs/BUILD @@ -10,7 +10,6 @@ go_library( visibility = ["//visibility:public"], deps = [ "//vendor/github.com/pkg/errors:go_default_library", - "//vendor/google.golang.org/grpc:go_default_library", "//vendor/google.golang.org/grpc/codes:go_default_library", "//vendor/google.golang.org/grpc/status:go_default_library", ], diff --git a/vendor/github.com/containerd/containerd/errdefs/grpc.go b/vendor/github.com/containerd/containerd/errdefs/grpc.go index 2aa2e11b4b..6a3bbcaa14 100644 --- a/vendor/github.com/containerd/containerd/errdefs/grpc.go +++ b/vendor/github.com/containerd/containerd/errdefs/grpc.go @@ -4,7 +4,6 @@ import ( "strings" "github.com/pkg/errors" - "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) @@ -61,7 +60,7 @@ func FromGRPC(err error) error { var cls error // divide these into error classes, becomes the cause - switch grpc.Code(err) { + switch code(err) { case codes.InvalidArgument: cls = ErrInvalidArgument case codes.AlreadyExists: @@ -94,7 +93,7 @@ func FromGRPC(err error) error { // Effectively, we just remove the string of cls from the end of err if it // appears there. func rebaseMessage(cls error, err error) string { - desc := grpc.ErrorDesc(err) + desc := errDesc(err) clss := cls.Error() if desc == clss { return "" @@ -107,3 +106,17 @@ func isGRPCError(err error) bool { _, ok := status.FromError(err) return ok } + +func code(err error) codes.Code { + if s, ok := status.FromError(err); ok { + return s.Code() + } + return codes.Unknown +} + +func errDesc(err error) string { + if s, ok := status.FromError(err); ok { + return s.Message() + } + return err.Error() +} diff --git a/vendor/github.com/docker/docker/pkg/parsers/BUILD b/vendor/github.com/docker/docker/pkg/parsers/BUILD index 2ff1ce1c22..3c869d18e1 100644 --- a/vendor/github.com/docker/docker/pkg/parsers/BUILD +++ b/vendor/github.com/docker/docker/pkg/parsers/BUILD @@ -16,7 +16,10 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//vendor/github.com/docker/docker/pkg/parsers/operatingsystem:all-srcs", + ], tags = ["automanaged"], visibility = ["//visibility:public"], ) diff --git a/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/BUILD b/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/BUILD new file mode 100644 index 0000000000..6d23f90122 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/BUILD @@ -0,0 +1,49 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = select({ + "@io_bazel_rules_go//go/platform:darwin": [ + "operatingsystem_unix.go", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "operatingsystem_unix.go", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "operatingsystem_linux.go", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "operatingsystem_solaris.go", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "operatingsystem_windows.go", + ], + "//conditions:default": [], + }), + cgo = True, + importpath = "github.com/docker/docker/pkg/parsers/operatingsystem", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/mattn/go-shellwords:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_linux.go b/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_linux.go new file mode 100644 index 0000000000..e04a3499af --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_linux.go @@ -0,0 +1,77 @@ +// Package operatingsystem provides helper function to get the operating system +// name for different platforms. +package operatingsystem + +import ( + "bufio" + "bytes" + "fmt" + "io/ioutil" + "os" + "strings" + + "github.com/mattn/go-shellwords" +) + +var ( + // file to use to detect if the daemon is running in a container + proc1Cgroup = "/proc/1/cgroup" + + // file to check to determine Operating System + etcOsRelease = "/etc/os-release" + + // used by stateless systems like Clear Linux + altOsRelease = "/usr/lib/os-release" +) + +// GetOperatingSystem gets the name of the current operating system. +func GetOperatingSystem() (string, error) { + osReleaseFile, err := os.Open(etcOsRelease) + if err != nil { + if !os.IsNotExist(err) { + return "", fmt.Errorf("Error opening %s: %v", etcOsRelease, err) + } + osReleaseFile, err = os.Open(altOsRelease) + if err != nil { + return "", fmt.Errorf("Error opening %s: %v", altOsRelease, err) + } + } + defer osReleaseFile.Close() + + var prettyName string + scanner := bufio.NewScanner(osReleaseFile) + for scanner.Scan() { + line := scanner.Text() + if strings.HasPrefix(line, "PRETTY_NAME=") { + data := strings.SplitN(line, "=", 2) + prettyNames, err := shellwords.Parse(data[1]) + if err != nil { + return "", fmt.Errorf("PRETTY_NAME is invalid: %s", err.Error()) + } + if len(prettyNames) != 1 { + return "", fmt.Errorf("PRETTY_NAME needs to be enclosed by quotes if they have spaces: %s", data[1]) + } + prettyName = prettyNames[0] + } + } + if prettyName != "" { + return prettyName, nil + } + // If not set, defaults to PRETTY_NAME="Linux" + // c.f. http://www.freedesktop.org/software/systemd/man/os-release.html + return "Linux", nil +} + +// IsContainerized returns true if we are running inside a container. +func IsContainerized() (bool, error) { + b, err := ioutil.ReadFile(proc1Cgroup) + if err != nil { + return false, err + } + for _, line := range bytes.Split(b, []byte{'\n'}) { + if len(line) > 0 && !bytes.HasSuffix(line, []byte{'/'}) && !bytes.HasSuffix(line, []byte("init.scope")) { + return true, nil + } + } + return false, nil +} diff --git a/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_solaris.go b/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_solaris.go new file mode 100644 index 0000000000..d08ad14860 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_solaris.go @@ -0,0 +1,37 @@ +// +build solaris,cgo + +package operatingsystem + +/* +#include +*/ +import "C" + +import ( + "bytes" + "errors" + "io/ioutil" +) + +var etcOsRelease = "/etc/release" + +// GetOperatingSystem gets the name of the current operating system. +func GetOperatingSystem() (string, error) { + b, err := ioutil.ReadFile(etcOsRelease) + if err != nil { + return "", err + } + if i := bytes.Index(b, []byte("\n")); i >= 0 { + b = bytes.Trim(b[:i], " ") + return string(b), nil + } + return "", errors.New("release not found") +} + +// IsContainerized returns true if we are running inside a container. +func IsContainerized() (bool, error) { + if C.getzoneid() != 0 { + return true, nil + } + return false, nil +} diff --git a/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_unix.go b/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_unix.go new file mode 100644 index 0000000000..bc91c3c533 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_unix.go @@ -0,0 +1,25 @@ +// +build freebsd darwin + +package operatingsystem + +import ( + "errors" + "os/exec" +) + +// GetOperatingSystem gets the name of the current operating system. +func GetOperatingSystem() (string, error) { + cmd := exec.Command("uname", "-s") + osName, err := cmd.Output() + if err != nil { + return "", err + } + return string(osName), nil +} + +// IsContainerized returns true if we are running inside a container. +// No-op on FreeBSD and Darwin, always returns false. +func IsContainerized() (bool, error) { + // TODO: Implement jail detection for freeBSD + return false, errors.New("Cannot detect if we are in container") +} diff --git a/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_windows.go b/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_windows.go new file mode 100644 index 0000000000..5d8b42cc36 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/parsers/operatingsystem/operatingsystem_windows.go @@ -0,0 +1,50 @@ +package operatingsystem + +import ( + "unsafe" + + "golang.org/x/sys/windows" +) + +// See https://code.google.com/p/go/source/browse/src/pkg/mime/type_windows.go?r=d14520ac25bf6940785aabb71f5be453a286f58c +// for a similar sample + +// GetOperatingSystem gets the name of the current operating system. +func GetOperatingSystem() (string, error) { + + var h windows.Handle + + // Default return value + ret := "Unknown Operating System" + + if err := windows.RegOpenKeyEx(windows.HKEY_LOCAL_MACHINE, + windows.StringToUTF16Ptr(`SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\`), + 0, + windows.KEY_READ, + &h); err != nil { + return ret, err + } + defer windows.RegCloseKey(h) + + var buf [1 << 10]uint16 + var typ uint32 + n := uint32(len(buf) * 2) // api expects array of bytes, not uint16 + + if err := windows.RegQueryValueEx(h, + windows.StringToUTF16Ptr("ProductName"), + nil, + &typ, + (*byte)(unsafe.Pointer(&buf[0])), + &n); err != nil { + return ret, err + } + ret = windows.UTF16ToString(buf[:]) + + return ret, nil +} + +// IsContainerized returns true if we are running inside a container. +// No-op on Windows, always returns false. +func IsContainerized() (bool, error) { + return false, nil +} diff --git a/vendor/github.com/golang/protobuf/ptypes/BUILD b/vendor/github.com/golang/protobuf/ptypes/BUILD index 2ff8c6f938..af97601b60 100644 --- a/vendor/github.com/golang/protobuf/ptypes/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/BUILD @@ -31,7 +31,6 @@ filegroup( ":package-srcs", "//vendor/github.com/golang/protobuf/ptypes/any:all-srcs", "//vendor/github.com/golang/protobuf/ptypes/duration:all-srcs", - "//vendor/github.com/golang/protobuf/ptypes/empty:all-srcs", "//vendor/github.com/golang/protobuf/ptypes/struct:all-srcs", "//vendor/github.com/golang/protobuf/ptypes/timestamp:all-srcs", "//vendor/github.com/golang/protobuf/ptypes/wrappers:all-srcs", diff --git a/vendor/github.com/golang/protobuf/ptypes/empty/BUILD b/vendor/github.com/golang/protobuf/ptypes/empty/BUILD deleted file mode 100644 index 20ff3201e8..0000000000 --- a/vendor/github.com/golang/protobuf/ptypes/empty/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -filegroup( - name = "go_default_library_protos", - srcs = ["empty.proto"], - visibility = ["//visibility:public"], -) - -go_library( - name = "go_default_library", - srcs = ["empty.pb.go"], - importpath = "github.com/golang/protobuf/ptypes/empty", - visibility = ["//visibility:public"], - deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go b/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go deleted file mode 100644 index 4831640031..0000000000 --- a/vendor/github.com/golang/protobuf/ptypes/empty/empty.pb.go +++ /dev/null @@ -1,79 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: google/protobuf/empty.proto - -package empty - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package - -// A generic empty message that you can re-use to avoid defining duplicated -// empty messages in your APIs. A typical example is to use it as the request -// or the response type of an API method. For instance: -// -// service Foo { -// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); -// } -// -// The JSON representation for `Empty` is empty JSON object `{}`. -type Empty struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Empty) Reset() { *m = Empty{} } -func (m *Empty) String() string { return proto.CompactTextString(m) } -func (*Empty) ProtoMessage() {} -func (*Empty) Descriptor() ([]byte, []int) { - return fileDescriptor_empty_39e6d6db0632e5b2, []int{0} -} -func (*Empty) XXX_WellKnownType() string { return "Empty" } -func (m *Empty) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Empty.Unmarshal(m, b) -} -func (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Empty.Marshal(b, m, deterministic) -} -func (dst *Empty) XXX_Merge(src proto.Message) { - xxx_messageInfo_Empty.Merge(dst, src) -} -func (m *Empty) XXX_Size() int { - return xxx_messageInfo_Empty.Size(m) -} -func (m *Empty) XXX_DiscardUnknown() { - xxx_messageInfo_Empty.DiscardUnknown(m) -} - -var xxx_messageInfo_Empty proto.InternalMessageInfo - -func init() { - proto.RegisterType((*Empty)(nil), "google.protobuf.Empty") -} - -func init() { proto.RegisterFile("google/protobuf/empty.proto", fileDescriptor_empty_39e6d6db0632e5b2) } - -var fileDescriptor_empty_39e6d6db0632e5b2 = []byte{ - // 148 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4e, 0xcf, 0xcf, 0x4f, - 0xcf, 0x49, 0xd5, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x4f, 0xcd, 0x2d, 0x28, - 0xa9, 0xd4, 0x03, 0x73, 0x85, 0xf8, 0x21, 0x92, 0x7a, 0x30, 0x49, 0x25, 0x76, 0x2e, 0x56, 0x57, - 0x90, 0xbc, 0x53, 0x19, 0x97, 0x70, 0x72, 0x7e, 0xae, 0x1e, 0x9a, 0xbc, 0x13, 0x17, 0x58, 0x36, - 0x00, 0xc4, 0x0d, 0x60, 0x8c, 0x52, 0x4f, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, - 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0x47, 0x58, 0x53, 0x50, 0x52, 0x59, 0x90, 0x5a, 0x0c, - 0xb1, 0xed, 0x07, 0x23, 0xe3, 0x22, 0x26, 0x66, 0xf7, 0x00, 0xa7, 0x55, 0x4c, 0x72, 0xee, 0x10, - 0x13, 0x03, 0xa0, 0xea, 0xf4, 0xc2, 0x53, 0x73, 0x72, 0xbc, 0xf3, 0xf2, 0xcb, 0xf3, 0x42, 0x40, - 0xea, 0x93, 0xd8, 0xc0, 0x06, 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x64, 0xd4, 0xb3, 0xa6, - 0xb7, 0x00, 0x00, 0x00, -} diff --git a/vendor/github.com/golang/protobuf/ptypes/empty/empty.proto b/vendor/github.com/golang/protobuf/ptypes/empty/empty.proto deleted file mode 100644 index 03cacd2330..0000000000 --- a/vendor/github.com/golang/protobuf/ptypes/empty/empty.proto +++ /dev/null @@ -1,52 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package google.protobuf; - -option csharp_namespace = "Google.Protobuf.WellKnownTypes"; -option go_package = "github.com/golang/protobuf/ptypes/empty"; -option java_package = "com.google.protobuf"; -option java_outer_classname = "EmptyProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; -option cc_enable_arenas = true; - -// A generic empty message that you can re-use to avoid defining duplicated -// empty messages in your APIs. A typical example is to use it as the request -// or the response type of an API method. For instance: -// -// service Foo { -// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); -// } -// -// The JSON representation for `Empty` is empty JSON object `{}`. -message Empty {} diff --git a/vendor/github.com/google/cadvisor/cache/memory/memory.go b/vendor/github.com/google/cadvisor/cache/memory/memory.go index ae8eb899d8..038f9b17aa 100644 --- a/vendor/github.com/google/cadvisor/cache/memory/memory.go +++ b/vendor/github.com/google/cadvisor/cache/memory/memory.go @@ -70,16 +70,16 @@ type InMemoryCache struct { backend storage.StorageDriver } -func (self *InMemoryCache) AddStats(ref info.ContainerReference, stats *info.ContainerStats) error { +func (self *InMemoryCache) AddStats(cInfo *info.ContainerInfo, stats *info.ContainerStats) error { var cstore *containerCache var ok bool func() { self.lock.Lock() defer self.lock.Unlock() - if cstore, ok = self.containerCacheMap[ref.Name]; !ok { - cstore = newContainerStore(ref, self.maxAge) - self.containerCacheMap[ref.Name] = cstore + if cstore, ok = self.containerCacheMap[cInfo.ContainerReference.Name]; !ok { + cstore = newContainerStore(cInfo.ContainerReference, self.maxAge) + self.containerCacheMap[cInfo.ContainerReference.Name] = cstore } }() @@ -87,7 +87,7 @@ func (self *InMemoryCache) AddStats(ref info.ContainerReference, stats *info.Con // TODO(monnand): To deal with long delay write operations, we // may want to start a pool of goroutines to do write // operations. - if err := self.backend.AddStats(ref, stats); err != nil { + if err := self.backend.AddStats(cInfo, stats); err != nil { glog.Error(err) } } diff --git a/vendor/github.com/google/cadvisor/container/common/BUILD b/vendor/github.com/google/cadvisor/container/common/BUILD index 33b01fec59..f910f5aeff 100644 --- a/vendor/github.com/google/cadvisor/container/common/BUILD +++ b/vendor/github.com/google/cadvisor/container/common/BUILD @@ -5,18 +5,18 @@ go_library( srcs = [ "container_hints.go", "fsHandler.go", + "fsnotify_watcher.go", "helpers.go", - "inotify_watcher.go", ], importpath = "github.com/google/cadvisor/container/common", visibility = ["//visibility:public"], deps = [ + "//vendor/github.com/fsnotify/fsnotify:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/container:go_default_library", "//vendor/github.com/google/cadvisor/fs:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/utils:go_default_library", - "//vendor/golang.org/x/exp/inotify:go_default_library", ], ) diff --git a/vendor/github.com/google/cadvisor/container/common/inotify_watcher.go b/vendor/github.com/google/cadvisor/container/common/fsnotify_watcher.go similarity index 73% rename from vendor/github.com/google/cadvisor/container/common/inotify_watcher.go rename to vendor/github.com/google/cadvisor/container/common/fsnotify_watcher.go index 16e2f2c9b0..9bef6aba83 100644 --- a/vendor/github.com/google/cadvisor/container/common/inotify_watcher.go +++ b/vendor/github.com/google/cadvisor/container/common/fsnotify_watcher.go @@ -17,15 +17,15 @@ package common import ( "sync" - "golang.org/x/exp/inotify" + "github.com/fsnotify/fsnotify" ) -// Watcher for container-related inotify events in the cgroup hierarchy. +// Watcher for container-related fsnotify events in the cgroup hierarchy. // // Implementation is thread-safe. -type InotifyWatcher struct { - // Underlying inotify watcher. - watcher *inotify.Watcher +type FsnotifyWatcher struct { + // Underlying fsnotify watcher. + watcher *fsnotify.Watcher // Map of containers being watched to cgroup paths watched for that container. containersWatched map[string]map[string]bool @@ -34,28 +34,28 @@ type InotifyWatcher struct { lock sync.Mutex } -func NewInotifyWatcher() (*InotifyWatcher, error) { - w, err := inotify.NewWatcher() +func NewFsnotifyWatcher() (*FsnotifyWatcher, error) { + w, err := fsnotify.NewWatcher() if err != nil { return nil, err } - return &InotifyWatcher{ + return &FsnotifyWatcher{ watcher: w, containersWatched: make(map[string]map[string]bool), }, nil } // Add a watch to the specified directory. Returns if the container was already being watched. -func (iw *InotifyWatcher) AddWatch(containerName, dir string) (bool, error) { +func (iw *FsnotifyWatcher) AddWatch(containerName, dir string) (bool, error) { iw.lock.Lock() defer iw.lock.Unlock() cgroupsWatched, alreadyWatched := iw.containersWatched[containerName] - // Register an inotify notification. + // Register an fsnotify notification. if !cgroupsWatched[dir] { - err := iw.watcher.AddWatch(dir, inotify.IN_CREATE|inotify.IN_DELETE|inotify.IN_MOVE) + err := iw.watcher.Add(dir) if err != nil { return alreadyWatched, err } @@ -74,7 +74,7 @@ func (iw *InotifyWatcher) AddWatch(containerName, dir string) (bool, error) { } // Remove watch from the specified directory. Returns if this was the last watch on the specified container. -func (iw *InotifyWatcher) RemoveWatch(containerName, dir string) (bool, error) { +func (iw *FsnotifyWatcher) RemoveWatch(containerName, dir string) (bool, error) { iw.lock.Lock() defer iw.lock.Unlock() @@ -84,9 +84,9 @@ func (iw *InotifyWatcher) RemoveWatch(containerName, dir string) (bool, error) { return false, nil } - // Remove the inotify watch if it exists. + // Remove the fsnotify watch if it exists. if cgroupsWatched[dir] { - err := iw.watcher.RemoveWatch(dir) + err := iw.watcher.Remove(dir) if err != nil { return false, nil } @@ -103,22 +103,22 @@ func (iw *InotifyWatcher) RemoveWatch(containerName, dir string) (bool, error) { } // Errors are returned on this channel. -func (iw *InotifyWatcher) Error() chan error { - return iw.watcher.Error +func (iw *FsnotifyWatcher) Error() chan error { + return iw.watcher.Errors } // Events are returned on this channel. -func (iw *InotifyWatcher) Event() chan *inotify.Event { - return iw.watcher.Event +func (iw *FsnotifyWatcher) Event() chan fsnotify.Event { + return iw.watcher.Events } -// Closes the inotify watcher. -func (iw *InotifyWatcher) Close() error { +// Closes the fsnotify watcher. +func (iw *FsnotifyWatcher) Close() error { return iw.watcher.Close() } // Returns a map of containers to the cgroup paths being watched. -func (iw *InotifyWatcher) GetWatches() map[string][]string { +func (iw *FsnotifyWatcher) GetWatches() map[string][]string { out := make(map[string][]string, len(iw.containersWatched)) for k, v := range iw.containersWatched { out[k] = mapToSlice(v) diff --git a/vendor/github.com/google/cadvisor/container/common/helpers.go b/vendor/github.com/google/cadvisor/container/common/helpers.go index f5539b5d1a..1ac556af51 100644 --- a/vendor/github.com/google/cadvisor/container/common/helpers.go +++ b/vendor/github.com/google/cadvisor/container/common/helpers.go @@ -40,7 +40,7 @@ func DebugInfo(watches map[string][]string) map[string][]string { lines = append(lines, fmt.Sprintf("\t%s", cg)) } } - out["Inotify watches"] = lines + out["Fsnotify watches"] = lines return out } diff --git a/vendor/github.com/google/cadvisor/container/containerd/BUILD b/vendor/github.com/google/cadvisor/container/containerd/BUILD index 8dfb3469b7..bc635f38a3 100644 --- a/vendor/github.com/google/cadvisor/container/containerd/BUILD +++ b/vendor/github.com/google/cadvisor/container/containerd/BUILD @@ -18,15 +18,14 @@ go_library( "//vendor/github.com/containerd/containerd/dialer:go_default_library", "//vendor/github.com/containerd/containerd/errdefs:go_default_library", "//vendor/github.com/containerd/containerd/namespaces:go_default_library", + "//vendor/github.com/gogo/protobuf/types:go_default_library", "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/golang/protobuf/ptypes/empty:go_default_library", "//vendor/github.com/google/cadvisor/container:go_default_library", "//vendor/github.com/google/cadvisor/container/common:go_default_library", "//vendor/github.com/google/cadvisor/container/libcontainer:go_default_library", "//vendor/github.com/google/cadvisor/fs:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/manager/watcher:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", "//vendor/github.com/opencontainers/runtime-spec/specs-go:go_default_library", diff --git a/vendor/github.com/google/cadvisor/container/containerd/client.go b/vendor/github.com/google/cadvisor/container/containerd/client.go index 365f54a71a..4eccf4f6b6 100644 --- a/vendor/github.com/google/cadvisor/container/containerd/client.go +++ b/vendor/github.com/google/cadvisor/container/containerd/client.go @@ -16,6 +16,8 @@ package containerd import ( "context" + "fmt" + "net" "sync" "time" @@ -25,7 +27,7 @@ import ( "github.com/containerd/containerd/containers" "github.com/containerd/containerd/dialer" "github.com/containerd/containerd/errdefs" - pempty "github.com/golang/protobuf/ptypes/empty" + ptypes "github.com/gogo/protobuf/types" "google.golang.org/grpc" ) @@ -49,16 +51,29 @@ type containerdClient interface { var once sync.Once var ctrdClient containerdClient = nil +const ( + address = "/run/containerd/containerd.sock" + maxBackoffDelay = 3 * time.Second + connectionTimeout = 2 * time.Second +) + // Client creates a containerd client func Client() (containerdClient, error) { var retErr error once.Do(func() { + tryConn, err := net.DialTimeout("unix", address, connectionTimeout) + if err != nil { + retErr = fmt.Errorf("containerd: cannot unix dial containerd api service: %v", err) + return + } + tryConn.Close() + gopts := []grpc.DialOption{ grpc.WithInsecure(), grpc.WithDialer(dialer.Dialer), grpc.WithBlock(), - grpc.WithTimeout(2 * time.Second), - grpc.WithBackoffMaxDelay(3 * time.Second), + grpc.WithBackoffMaxDelay(maxBackoffDelay), + grpc.WithTimeout(connectionTimeout), } unary, stream := newNSInterceptors(k8sNamespace) gopts = append(gopts, @@ -66,7 +81,7 @@ func Client() (containerdClient, error) { grpc.WithStreamInterceptor(stream), ) - conn, err := grpc.Dial(dialer.DialAddress("/var/run/containerd/containerd.sock"), gopts...) + conn, err := grpc.Dial(dialer.DialAddress(address), gopts...) if err != nil { retErr = err return @@ -101,7 +116,7 @@ func (c *client) TaskPid(ctx context.Context, id string) (uint32, error) { } func (c *client) Version(ctx context.Context) (string, error) { - response, err := c.versionService.Version(ctx, &pempty.Empty{}) + response, err := c.versionService.Version(ctx, &ptypes.Empty{}) if err != nil { return "", errdefs.FromGRPC(err) } diff --git a/vendor/github.com/google/cadvisor/container/containerd/handler.go b/vendor/github.com/google/cadvisor/container/containerd/handler.go index 52ab24018d..a8095f4270 100644 --- a/vendor/github.com/google/cadvisor/container/containerd/handler.go +++ b/vendor/github.com/google/cadvisor/container/containerd/handler.go @@ -23,7 +23,6 @@ import ( "time" "github.com/containerd/containerd/errdefs" - "github.com/opencontainers/runc/libcontainer/cgroups" cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs" libcontainerconfigs "github.com/opencontainers/runc/libcontainer/configs" "golang.org/x/net/context" @@ -37,31 +36,21 @@ import ( ) type containerdContainerHandler struct { - client containerdClient - name string - id string - aliases []string machineInfoFactory info.MachineInfoFactory // Absolute path to the cgroup hierarchies of this container. // (e.g.: "cpu" -> "/sys/fs/cgroup/cpu/test") cgroupPaths map[string]string - // Manager of this container's cgroups. - cgroupManager cgroups.Manager - fsInfo fs.FsInfo - poolName string - // Time at which this container was created. - creationTime time.Time + fsInfo fs.FsInfo // Metadata associated with the container. - labels map[string]string - envs map[string]string - // The container PID used to switch namespaces as required - pid int + reference info.ContainerReference + envs map[string]string + labels map[string]string // Image name used for this container. image string - // The host root FS to read - rootFs string // Filesystem handler. ignoreMetrics container.MetricSet + + libcontainerHandler *containerlibcontainer.Handler } var _ container.ContainerHandler = &containerdContainerHandler{} @@ -131,25 +120,27 @@ func newContainerdContainerHandler( rootfs = "/rootfs" } + containerReference := info.ContainerReference{ + Id: id, + Name: name, + Namespace: k8sContainerdNamespace, + Aliases: []string{id, name}, + } + + libcontainerHandler := containerlibcontainer.NewHandler(cgroupManager, rootfs, int(taskPid), ignoreMetrics) + handler := &containerdContainerHandler{ - id: id, - client: client, - name: name, - machineInfoFactory: machineInfoFactory, - cgroupPaths: cgroupPaths, - cgroupManager: cgroupManager, - rootFs: rootfs, - fsInfo: fsInfo, - envs: make(map[string]string), - labels: make(map[string]string), - ignoreMetrics: ignoreMetrics, - pid: int(taskPid), - creationTime: cntr.CreatedAt, + machineInfoFactory: machineInfoFactory, + cgroupPaths: cgroupPaths, + fsInfo: fsInfo, + envs: make(map[string]string), + labels: cntr.Labels, + ignoreMetrics: ignoreMetrics, + reference: containerReference, + libcontainerHandler: libcontainerHandler, } // Add the name and bare ID as aliases of the container. - handler.labels = cntr.Labels handler.image = cntr.Image - handler.aliases = []string{id, name} for _, envVar := range spec.Process.Env { if envVar != "" { splits := strings.SplitN(envVar, "=", 2) @@ -163,13 +154,7 @@ func newContainerdContainerHandler( } func (self *containerdContainerHandler) ContainerReference() (info.ContainerReference, error) { - return info.ContainerReference{ - Id: self.id, - Name: self.name, - Namespace: k8sContainerdNamespace, - Labels: self.labels, - Aliases: self.aliases, - }, nil + return self.reference, nil } func (self *containerdContainerHandler) needNet() bool { @@ -208,7 +193,7 @@ func (self *containerdContainerHandler) getFsStats(stats *info.ContainerStats) e } func (self *containerdContainerHandler) GetStats() (*info.ContainerStats, error) { - stats, err := containerlibcontainer.GetStats(self.cgroupManager, self.rootFs, self.pid, self.ignoreMetrics) + stats, err := self.libcontainerHandler.GetStats() if err != nil { return stats, err } @@ -232,7 +217,7 @@ func (self *containerdContainerHandler) ListContainers(listType container.ListTy func (self *containerdContainerHandler) GetCgroupPath(resource string) (string, error) { path, ok := self.cgroupPaths[resource] if !ok { - return "", fmt.Errorf("could not find path for resource %q for container %q\n", resource, self.name) + return "", fmt.Errorf("could not find path for resource %q for container %q\n", resource, self.reference.Name) } return path, nil } @@ -242,7 +227,7 @@ func (self *containerdContainerHandler) GetContainerLabels() map[string]string { } func (self *containerdContainerHandler) ListProcesses(listType container.ListType) ([]int, error) { - return containerlibcontainer.GetProcesses(self.cgroupManager) + return self.libcontainerHandler.GetProcesses() } func (self *containerdContainerHandler) Exists() bool { diff --git a/vendor/github.com/google/cadvisor/container/crio/BUILD b/vendor/github.com/google/cadvisor/container/crio/BUILD index be1b74e7db..975a35e24c 100644 --- a/vendor/github.com/google/cadvisor/container/crio/BUILD +++ b/vendor/github.com/google/cadvisor/container/crio/BUILD @@ -17,7 +17,6 @@ go_library( "//vendor/github.com/google/cadvisor/fs:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/manager/watcher:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", ], diff --git a/vendor/github.com/google/cadvisor/container/crio/handler.go b/vendor/github.com/google/cadvisor/container/crio/handler.go index 024341da8a..13311c57fe 100644 --- a/vendor/github.com/google/cadvisor/container/crio/handler.go +++ b/vendor/github.com/google/cadvisor/container/crio/handler.go @@ -21,7 +21,6 @@ import ( "path/filepath" "strconv" "strings" - "time" "github.com/google/cadvisor/container" "github.com/google/cadvisor/container/common" @@ -29,48 +28,32 @@ import ( "github.com/google/cadvisor/fs" info "github.com/google/cadvisor/info/v1" - "github.com/opencontainers/runc/libcontainer/cgroups" cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs" libcontainerconfigs "github.com/opencontainers/runc/libcontainer/configs" ) type crioContainerHandler struct { - name string - id string - aliases []string machineInfoFactory info.MachineInfoFactory // Absolute path to the cgroup hierarchies of this container. // (e.g.: "cpu" -> "/sys/fs/cgroup/cpu/test") cgroupPaths map[string]string - // Manager of this container's cgroups. - cgroupManager cgroups.Manager - // the CRI-O storage driver storageDriver storageDriver fsInfo fs.FsInfo rootfsStorageDir string - // Time at which this container was created. - creationTime time.Time - // Metadata associated with the container. - labels map[string]string envs map[string]string + labels map[string]string // TODO // crio version handling... - // The container PID used to switch namespaces as required - pid int - // Image name used for this container. image string - // The host root FS to read - rootFs string - // The network mode of the container // TODO @@ -84,6 +67,10 @@ type crioContainerHandler struct { // container restart count restartCount int + + reference info.ContainerReference + + libcontainerHandler *containerlibcontainer.Handler } var _ container.ContainerHandler = &crioContainerHandler{} @@ -150,25 +137,29 @@ func newCrioContainerHandler( rootfsStorageDir = filepath.Join(rootfsStorageDir, "diff") } - // TODO: extract object mother method - handler := &crioContainerHandler{ - id: id, - name: name, - machineInfoFactory: machineInfoFactory, - cgroupPaths: cgroupPaths, - cgroupManager: cgroupManager, - storageDriver: storageDriver, - fsInfo: fsInfo, - rootFs: rootFs, - rootfsStorageDir: rootfsStorageDir, - envs: make(map[string]string), - ignoreMetrics: ignoreMetrics, + containerReference := info.ContainerReference{ + Id: id, + Name: name, + Aliases: []string{cInfo.Name, id}, + Namespace: CrioNamespace, + } + + libcontainerHandler := containerlibcontainer.NewHandler(cgroupManager, rootFs, cInfo.Pid, ignoreMetrics) + + // TODO: extract object mother method + handler := &crioContainerHandler{ + machineInfoFactory: machineInfoFactory, + cgroupPaths: cgroupPaths, + storageDriver: storageDriver, + fsInfo: fsInfo, + rootfsStorageDir: rootfsStorageDir, + envs: make(map[string]string), + labels: cInfo.Labels, + ignoreMetrics: ignoreMetrics, + reference: containerReference, + libcontainerHandler: libcontainerHandler, } - handler.creationTime = time.Unix(0, cInfo.CreatedTime) - handler.pid = cInfo.Pid - handler.aliases = append(handler.aliases, cInfo.Name, id) - handler.labels = cInfo.Labels handler.image = cInfo.Image // TODO: we wantd to know graph driver DeviceId (dont think this is needed now) @@ -204,13 +195,7 @@ func (self *crioContainerHandler) Cleanup() { } func (self *crioContainerHandler) ContainerReference() (info.ContainerReference, error) { - return info.ContainerReference{ - Id: self.id, - Name: self.name, - Aliases: self.aliases, - Namespace: CrioNamespace, - Labels: self.labels, - }, nil + return self.reference, nil } func (self *crioContainerHandler) needNet() bool { @@ -286,7 +271,7 @@ func (self *crioContainerHandler) getFsStats(stats *info.ContainerStats) error { } func (self *crioContainerHandler) GetStats() (*info.ContainerStats, error) { - stats, err := containerlibcontainer.GetStats(self.cgroupManager, self.rootFs, self.pid, self.ignoreMetrics) + stats, err := self.libcontainerHandler.GetStats() if err != nil { return stats, err } @@ -315,7 +300,7 @@ func (self *crioContainerHandler) ListContainers(listType container.ListType) ([ func (self *crioContainerHandler) GetCgroupPath(resource string) (string, error) { path, ok := self.cgroupPaths[resource] if !ok { - return "", fmt.Errorf("could not find path for resource %q for container %q\n", resource, self.name) + return "", fmt.Errorf("could not find path for resource %q for container %q\n", resource, self.reference.Name) } return path, nil } @@ -329,7 +314,7 @@ func (self *crioContainerHandler) GetContainerIPAddress() string { } func (self *crioContainerHandler) ListProcesses(listType container.ListType) ([]int, error) { - return containerlibcontainer.GetProcesses(self.cgroupManager) + return self.libcontainerHandler.GetProcesses() } func (self *crioContainerHandler) Exists() bool { diff --git a/vendor/github.com/google/cadvisor/container/docker/BUILD b/vendor/github.com/google/cadvisor/container/docker/BUILD index 905d8714f4..74d2590e76 100644 --- a/vendor/github.com/google/cadvisor/container/docker/BUILD +++ b/vendor/github.com/google/cadvisor/container/docker/BUILD @@ -27,7 +27,6 @@ go_library( "//vendor/github.com/google/cadvisor/manager/watcher:go_default_library", "//vendor/github.com/google/cadvisor/utils/docker:go_default_library", "//vendor/github.com/google/cadvisor/zfs:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/vendor/github.com/google/cadvisor/container/docker/handler.go b/vendor/github.com/google/cadvisor/container/docker/handler.go index 8f63d02eb0..22b9455f3f 100644 --- a/vendor/github.com/google/cadvisor/container/docker/handler.go +++ b/vendor/github.com/google/cadvisor/container/docker/handler.go @@ -35,7 +35,6 @@ import ( dockercontainer "github.com/docker/docker/api/types/container" docker "github.com/docker/docker/client" "github.com/golang/glog" - "github.com/opencontainers/runc/libcontainer/cgroups" cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs" libcontainerconfigs "github.com/opencontainers/runc/libcontainer/configs" "golang.org/x/net/context" @@ -52,53 +51,29 @@ const ( ) type dockerContainerHandler struct { - client *docker.Client - name string - id string - aliases []string + + // machineInfoFactory provides info.MachineInfo machineInfoFactory info.MachineInfoFactory // Absolute path to the cgroup hierarchies of this container. // (e.g.: "cpu" -> "/sys/fs/cgroup/cpu/test") cgroupPaths map[string]string - // Manager of this container's cgroups. - cgroupManager cgroups.Manager - // the docker storage driver storageDriver storageDriver fsInfo fs.FsInfo rootfsStorageDir string - // devicemapper state - - // the devicemapper poolname - poolName string - // the devicemapper device id for the container - deviceID string - - // zfs Filesystem - zfsFilesystem string - - // zfsParent is the parent for docker zfs - zfsParent string - // Time at which this container was created. creationTime time.Time // Metadata associated with the container. - labels map[string]string envs map[string]string - - // The container PID used to switch namespaces as required - pid int + labels map[string]string // Image name used for this container. image string - // The host root FS to read - rootFs string - // The network mode of the container networkMode dockercontainer.NetworkMode @@ -110,14 +85,19 @@ type dockerContainerHandler struct { ignoreMetrics container.MetricSet - // thin pool watcher - thinPoolWatcher *devicemapper.ThinPoolWatcher + // the devicemapper poolname + poolName string - // zfs watcher - zfsWatcher *zfs.ZfsWatcher + // zfsParent is the parent for docker zfs + zfsParent string // container restart count restartCount int + + // Reference to the container + reference info.ContainerReference + + libcontainerHandler *containerlibcontainer.Handler } var _ container.ContainerHandler = &dockerContainerHandler{} @@ -210,46 +190,42 @@ func newDockerContainerHandler( zfsFilesystem = path.Join(zfsParent, rwLayerID) } - // TODO: extract object mother method - handler := &dockerContainerHandler{ - id: id, - client: client, - name: name, - machineInfoFactory: machineInfoFactory, - cgroupPaths: cgroupPaths, - cgroupManager: cgroupManager, - storageDriver: storageDriver, - fsInfo: fsInfo, - rootFs: rootFs, - poolName: thinPoolName, - zfsFilesystem: zfsFilesystem, - rootfsStorageDir: rootfsStorageDir, - envs: make(map[string]string), - ignoreMetrics: ignoreMetrics, - thinPoolWatcher: thinPoolWatcher, - zfsWatcher: zfsWatcher, - zfsParent: zfsParent, - } - // We assume that if Inspect fails then the container is not known to docker. ctnr, err := client.ContainerInspect(context.Background(), id) if err != nil { return nil, fmt.Errorf("failed to inspect container %q: %v", id, err) } + + // TODO: extract object mother method + handler := &dockerContainerHandler{ + machineInfoFactory: machineInfoFactory, + cgroupPaths: cgroupPaths, + fsInfo: fsInfo, + storageDriver: storageDriver, + poolName: thinPoolName, + rootfsStorageDir: rootfsStorageDir, + envs: make(map[string]string), + labels: ctnr.Config.Labels, + ignoreMetrics: ignoreMetrics, + zfsParent: zfsParent, + } // Timestamp returned by Docker is in time.RFC3339Nano format. handler.creationTime, err = time.Parse(time.RFC3339Nano, ctnr.Created) if err != nil { // This should not happen, report the error just in case return nil, fmt.Errorf("failed to parse the create timestamp %q for container %q: %v", ctnr.Created, id, err) } - handler.pid = ctnr.State.Pid + handler.libcontainerHandler = containerlibcontainer.NewHandler(cgroupManager, rootFs, ctnr.State.Pid, ignoreMetrics) // Add the name and bare ID as aliases of the container. - handler.aliases = append(handler.aliases, strings.TrimPrefix(ctnr.Name, "/"), id) - handler.labels = ctnr.Config.Labels + handler.reference = info.ContainerReference{ + Id: id, + Name: name, + Aliases: []string{strings.TrimPrefix(ctnr.Name, "/"), id}, + Namespace: DockerNamespace, + } handler.image = ctnr.Config.Image handler.networkMode = ctnr.HostConfig.NetworkMode - handler.deviceID = ctnr.GraphDriver.Data["DeviceId"] handler.restartCount = ctnr.RestartCount // Obtain the IP address for the contianer. @@ -273,7 +249,7 @@ func newDockerContainerHandler( fsHandler: common.NewFsHandler(common.DefaultPeriod, rootfsStorageDir, otherStorageDir, fsInfo), thinPoolWatcher: thinPoolWatcher, zfsWatcher: zfsWatcher, - deviceID: handler.deviceID, + deviceID: ctnr.GraphDriver.Data["DeviceId"], zfsFilesystem: zfsFilesystem, } } @@ -365,13 +341,7 @@ func (self *dockerContainerHandler) Cleanup() { } func (self *dockerContainerHandler) ContainerReference() (info.ContainerReference, error) { - return info.ContainerReference{ - Id: self.id, - Name: self.name, - Aliases: self.aliases, - Namespace: DockerNamespace, - Labels: self.labels, - }, nil + return self.reference, nil } func (self *dockerContainerHandler) needNet() bool { @@ -455,7 +425,7 @@ func (self *dockerContainerHandler) getFsStats(stats *info.ContainerStats) error // TODO(vmarmol): Get from libcontainer API instead of cgroup manager when we don't have to support older Dockers. func (self *dockerContainerHandler) GetStats() (*info.ContainerStats, error) { - stats, err := containerlibcontainer.GetStats(self.cgroupManager, self.rootFs, self.pid, self.ignoreMetrics) + stats, err := self.libcontainerHandler.GetStats() if err != nil { return stats, err } @@ -484,7 +454,7 @@ func (self *dockerContainerHandler) ListContainers(listType container.ListType) func (self *dockerContainerHandler) GetCgroupPath(resource string) (string, error) { path, ok := self.cgroupPaths[resource] if !ok { - return "", fmt.Errorf("could not find path for resource %q for container %q\n", resource, self.name) + return "", fmt.Errorf("could not find path for resource %q for container %q\n", resource, self.reference.Name) } return path, nil } @@ -498,7 +468,7 @@ func (self *dockerContainerHandler) GetContainerIPAddress() string { } func (self *dockerContainerHandler) ListProcesses(listType container.ListType) ([]int, error) { - return containerlibcontainer.GetProcesses(self.cgroupManager) + return self.libcontainerHandler.GetProcesses() } func (self *dockerContainerHandler) Exists() bool { diff --git a/vendor/github.com/google/cadvisor/container/factory.go b/vendor/github.com/google/cadvisor/container/factory.go index 07445f9dd7..cf5b463e0e 100644 --- a/vendor/github.com/google/cadvisor/container/factory.go +++ b/vendor/github.com/google/cadvisor/container/factory.go @@ -41,16 +41,17 @@ type ContainerHandlerFactory interface { type MetricKind string const ( - CpuUsageMetrics MetricKind = "cpu" - PerCpuUsageMetrics MetricKind = "percpu" - MemoryUsageMetrics MetricKind = "memory" - CpuLoadMetrics MetricKind = "cpuLoad" - DiskIOMetrics MetricKind = "diskIO" - DiskUsageMetrics MetricKind = "disk" - NetworkUsageMetrics MetricKind = "network" - NetworkTcpUsageMetrics MetricKind = "tcp" - NetworkUdpUsageMetrics MetricKind = "udp" - AppMetrics MetricKind = "app" + CpuUsageMetrics MetricKind = "cpu" + ProcessSchedulerMetrics MetricKind = "sched" + PerCpuUsageMetrics MetricKind = "percpu" + MemoryUsageMetrics MetricKind = "memory" + CpuLoadMetrics MetricKind = "cpuLoad" + DiskIOMetrics MetricKind = "diskIO" + DiskUsageMetrics MetricKind = "disk" + NetworkUsageMetrics MetricKind = "network" + NetworkTcpUsageMetrics MetricKind = "tcp" + NetworkUdpUsageMetrics MetricKind = "udp" + AppMetrics MetricKind = "app" ) func (mk MetricKind) String() string { diff --git a/vendor/github.com/google/cadvisor/container/libcontainer/BUILD b/vendor/github.com/google/cadvisor/container/libcontainer/BUILD index 65cfd748b8..b414dc055b 100644 --- a/vendor/github.com/google/cadvisor/container/libcontainer/BUILD +++ b/vendor/github.com/google/cadvisor/container/libcontainer/BUILD @@ -2,7 +2,10 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", - srcs = ["helpers.go"], + srcs = [ + "handler.go", + "helpers.go", + ], cgo = True, importpath = "github.com/google/cadvisor/container/libcontainer", visibility = ["//visibility:public"], diff --git a/vendor/github.com/google/cadvisor/container/libcontainer/handler.go b/vendor/github.com/google/cadvisor/container/libcontainer/handler.go new file mode 100644 index 0000000000..9bc5f653ba --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/libcontainer/handler.go @@ -0,0 +1,566 @@ +// Copyright 2018 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package libcontainer + +import ( + "bufio" + "fmt" + "io" + "io/ioutil" + "os" + "path" + "strconv" + "strings" + "time" + + "github.com/google/cadvisor/container" + info "github.com/google/cadvisor/info/v1" + + "bytes" + "github.com/golang/glog" + "github.com/opencontainers/runc/libcontainer" + "github.com/opencontainers/runc/libcontainer/cgroups" +) + +/* +#include +*/ +import "C" + +type Handler struct { + cgroupManager cgroups.Manager + rootFs string + pid int + ignoreMetrics container.MetricSet + pidMetricsCache map[int]*info.CpuSchedstat +} + +func NewHandler(cgroupManager cgroups.Manager, rootFs string, pid int, ignoreMetrics container.MetricSet) *Handler { + return &Handler{ + cgroupManager: cgroupManager, + rootFs: rootFs, + pid: pid, + ignoreMetrics: ignoreMetrics, + pidMetricsCache: make(map[int]*info.CpuSchedstat), + } +} + +// Get cgroup and networking stats of the specified container +func (h *Handler) GetStats() (*info.ContainerStats, error) { + cgroupStats, err := h.cgroupManager.GetStats() + if err != nil { + return nil, err + } + libcontainerStats := &libcontainer.Stats{ + CgroupStats: cgroupStats, + } + withPerCPU := !h.ignoreMetrics.Has(container.PerCpuUsageMetrics) + stats := newContainerStats(libcontainerStats, withPerCPU) + + if !h.ignoreMetrics.Has(container.ProcessSchedulerMetrics) { + pids, err := h.cgroupManager.GetAllPids() + if err != nil { + glog.V(4).Infof("Could not get PIDs for container %d: %v", h.pid, err) + } else { + stats.Cpu.Schedstat, err = schedulerStatsFromProcs(h.rootFs, pids, h.pidMetricsCache) + if err != nil { + glog.V(4).Infof("Unable to get Process Scheduler Stats: %v", err) + } + } + } + + // If we know the pid then get network stats from /proc//net/dev + if h.pid == 0 { + return stats, nil + } + if !h.ignoreMetrics.Has(container.NetworkUsageMetrics) { + netStats, err := networkStatsFromProc(h.rootFs, h.pid) + if err != nil { + glog.V(4).Infof("Unable to get network stats from pid %d: %v", h.pid, err) + } else { + stats.Network.Interfaces = append(stats.Network.Interfaces, netStats...) + } + } + if !h.ignoreMetrics.Has(container.NetworkTcpUsageMetrics) { + t, err := tcpStatsFromProc(h.rootFs, h.pid, "net/tcp") + if err != nil { + glog.V(4).Infof("Unable to get tcp stats from pid %d: %v", h.pid, err) + } else { + stats.Network.Tcp = t + } + + t6, err := tcpStatsFromProc(h.rootFs, h.pid, "net/tcp6") + if err != nil { + glog.V(4).Infof("Unable to get tcp6 stats from pid %d: %v", h.pid, err) + } else { + stats.Network.Tcp6 = t6 + } + } + if !h.ignoreMetrics.Has(container.NetworkUdpUsageMetrics) { + u, err := udpStatsFromProc(h.rootFs, h.pid, "net/udp") + if err != nil { + glog.V(4).Infof("Unable to get udp stats from pid %d: %v", h.pid, err) + } else { + stats.Network.Udp = u + } + + u6, err := udpStatsFromProc(h.rootFs, h.pid, "net/udp6") + if err != nil { + glog.V(4).Infof("Unable to get udp6 stats from pid %d: %v", h.pid, err) + } else { + stats.Network.Udp6 = u6 + } + } + + // For backwards compatibility. + if len(stats.Network.Interfaces) > 0 { + stats.Network.InterfaceStats = stats.Network.Interfaces[0] + } + + return stats, nil +} + +func schedulerStatsFromProcs(rootFs string, pids []int, pidMetricsCache map[int]*info.CpuSchedstat) (info.CpuSchedstat, error) { + for _, pid := range pids { + f, err := os.Open(path.Join(rootFs, "proc", strconv.Itoa(pid), "schedstat")) + if err != nil { + return info.CpuSchedstat{}, fmt.Errorf("couldn't open scheduler statistics for process %d: %v", pid, err) + } + defer f.Close() + contents, err := ioutil.ReadAll(f) + if err != nil { + return info.CpuSchedstat{}, fmt.Errorf("couldn't read scheduler statistics for process %d: %v", pid, err) + } + rawMetrics := bytes.Split(bytes.TrimRight(contents, "\n"), []byte(" ")) + if len(rawMetrics) != 3 { + return info.CpuSchedstat{}, fmt.Errorf("unexpected number of metrics in schedstat file for process %d", pid) + } + cacheEntry, ok := pidMetricsCache[pid] + if !ok { + cacheEntry = &info.CpuSchedstat{} + pidMetricsCache[pid] = cacheEntry + } + for i, rawMetric := range rawMetrics { + metric, err := strconv.ParseUint(string(rawMetric), 10, 64) + if err != nil { + return info.CpuSchedstat{}, fmt.Errorf("parsing error while reading scheduler statistics for process: %d: %v", pid, err) + } + switch i { + case 0: + cacheEntry.RunTime = metric + case 1: + cacheEntry.RunqueueTime = metric + case 2: + cacheEntry.RunPeriods = metric + } + } + } + schedstats := info.CpuSchedstat{} + for _, v := range pidMetricsCache { + schedstats.RunPeriods += v.RunPeriods + schedstats.RunqueueTime += v.RunqueueTime + schedstats.RunTime += v.RunTime + } + return schedstats, nil +} + +func networkStatsFromProc(rootFs string, pid int) ([]info.InterfaceStats, error) { + netStatsFile := path.Join(rootFs, "proc", strconv.Itoa(pid), "/net/dev") + + ifaceStats, err := scanInterfaceStats(netStatsFile) + if err != nil { + return []info.InterfaceStats{}, fmt.Errorf("couldn't read network stats: %v", err) + } + + return ifaceStats, nil +} + +var ( + ignoredDevicePrefixes = []string{"lo", "veth", "docker"} +) + +func isIgnoredDevice(ifName string) bool { + for _, prefix := range ignoredDevicePrefixes { + if strings.HasPrefix(strings.ToLower(ifName), prefix) { + return true + } + } + return false +} + +func scanInterfaceStats(netStatsFile string) ([]info.InterfaceStats, error) { + file, err := os.Open(netStatsFile) + if err != nil { + return nil, fmt.Errorf("failure opening %s: %v", netStatsFile, err) + } + defer file.Close() + + scanner := bufio.NewScanner(file) + + // Discard header lines + for i := 0; i < 2; i++ { + if b := scanner.Scan(); !b { + return nil, scanner.Err() + } + } + + stats := []info.InterfaceStats{} + for scanner.Scan() { + line := scanner.Text() + line = strings.Replace(line, ":", "", -1) + + fields := strings.Fields(line) + // If the format of the line is invalid then don't trust any of the stats + // in this file. + if len(fields) != 17 { + return nil, fmt.Errorf("invalid interface stats line: %v", line) + } + + devName := fields[0] + if isIgnoredDevice(devName) { + continue + } + + i := info.InterfaceStats{ + Name: devName, + } + + statFields := append(fields[1:5], fields[9:13]...) + statPointers := []*uint64{ + &i.RxBytes, &i.RxPackets, &i.RxErrors, &i.RxDropped, + &i.TxBytes, &i.TxPackets, &i.TxErrors, &i.TxDropped, + } + + err := setInterfaceStatValues(statFields, statPointers) + if err != nil { + return nil, fmt.Errorf("cannot parse interface stats (%v): %v", err, line) + } + + stats = append(stats, i) + } + + return stats, nil +} + +func setInterfaceStatValues(fields []string, pointers []*uint64) error { + for i, v := range fields { + val, err := strconv.ParseUint(v, 10, 64) + if err != nil { + return err + } + *pointers[i] = val + } + return nil +} + +func tcpStatsFromProc(rootFs string, pid int, file string) (info.TcpStat, error) { + tcpStatsFile := path.Join(rootFs, "proc", strconv.Itoa(pid), file) + + tcpStats, err := scanTcpStats(tcpStatsFile) + if err != nil { + return tcpStats, fmt.Errorf("couldn't read tcp stats: %v", err) + } + + return tcpStats, nil +} + +func scanTcpStats(tcpStatsFile string) (info.TcpStat, error) { + + var stats info.TcpStat + + data, err := ioutil.ReadFile(tcpStatsFile) + if err != nil { + return stats, fmt.Errorf("failure opening %s: %v", tcpStatsFile, err) + } + + tcpStateMap := map[string]uint64{ + "01": 0, //ESTABLISHED + "02": 0, //SYN_SENT + "03": 0, //SYN_RECV + "04": 0, //FIN_WAIT1 + "05": 0, //FIN_WAIT2 + "06": 0, //TIME_WAIT + "07": 0, //CLOSE + "08": 0, //CLOSE_WAIT + "09": 0, //LAST_ACK + "0A": 0, //LISTEN + "0B": 0, //CLOSING + } + + reader := strings.NewReader(string(data)) + scanner := bufio.NewScanner(reader) + + scanner.Split(bufio.ScanLines) + + // Discard header line + if b := scanner.Scan(); !b { + return stats, scanner.Err() + } + + for scanner.Scan() { + line := scanner.Text() + + state := strings.Fields(line) + // TCP state is the 4th field. + // Format: sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode + tcpState := state[3] + _, ok := tcpStateMap[tcpState] + if !ok { + return stats, fmt.Errorf("invalid TCP stats line: %v", line) + } + tcpStateMap[tcpState]++ + } + + stats = info.TcpStat{ + Established: tcpStateMap["01"], + SynSent: tcpStateMap["02"], + SynRecv: tcpStateMap["03"], + FinWait1: tcpStateMap["04"], + FinWait2: tcpStateMap["05"], + TimeWait: tcpStateMap["06"], + Close: tcpStateMap["07"], + CloseWait: tcpStateMap["08"], + LastAck: tcpStateMap["09"], + Listen: tcpStateMap["0A"], + Closing: tcpStateMap["0B"], + } + + return stats, nil +} + +func udpStatsFromProc(rootFs string, pid int, file string) (info.UdpStat, error) { + var err error + var udpStats info.UdpStat + + udpStatsFile := path.Join(rootFs, "proc", strconv.Itoa(pid), file) + + r, err := os.Open(udpStatsFile) + if err != nil { + return udpStats, fmt.Errorf("failure opening %s: %v", udpStatsFile, err) + } + + udpStats, err = scanUdpStats(r) + if err != nil { + return udpStats, fmt.Errorf("couldn't read udp stats: %v", err) + } + + return udpStats, nil +} + +func scanUdpStats(r io.Reader) (info.UdpStat, error) { + var stats info.UdpStat + + scanner := bufio.NewScanner(r) + scanner.Split(bufio.ScanLines) + + // Discard header line + if b := scanner.Scan(); !b { + return stats, scanner.Err() + } + + listening := uint64(0) + dropped := uint64(0) + rxQueued := uint64(0) + txQueued := uint64(0) + + for scanner.Scan() { + line := scanner.Text() + // Format: sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops + + listening++ + + fs := strings.Fields(line) + if len(fs) != 13 { + continue + } + + rx, tx := uint64(0), uint64(0) + fmt.Sscanf(fs[4], "%X:%X", &rx, &tx) + rxQueued += rx + txQueued += tx + + d, err := strconv.Atoi(string(fs[12])) + if err != nil { + continue + } + dropped += uint64(d) + } + + stats = info.UdpStat{ + Listen: listening, + Dropped: dropped, + RxQueued: rxQueued, + TxQueued: txQueued, + } + + return stats, nil +} + +func (h *Handler) GetProcesses() ([]int, error) { + pids, err := h.cgroupManager.GetPids() + if err != nil { + return nil, err + } + return pids, nil +} + +func minUint32(x, y uint32) uint32 { + if x < y { + return x + } + return y +} + +// var to allow unit tests to stub it out +var numCpusFunc = getNumberOnlineCPUs + +// Convert libcontainer stats to info.ContainerStats. +func setCpuStats(s *cgroups.Stats, ret *info.ContainerStats, withPerCPU bool) { + ret.Cpu.Usage.User = s.CpuStats.CpuUsage.UsageInUsermode + ret.Cpu.Usage.System = s.CpuStats.CpuUsage.UsageInKernelmode + ret.Cpu.Usage.Total = s.CpuStats.CpuUsage.TotalUsage + ret.Cpu.CFS.Periods = s.CpuStats.ThrottlingData.Periods + ret.Cpu.CFS.ThrottledPeriods = s.CpuStats.ThrottlingData.ThrottledPeriods + ret.Cpu.CFS.ThrottledTime = s.CpuStats.ThrottlingData.ThrottledTime + + if !withPerCPU { + return + } + if len(s.CpuStats.CpuUsage.PercpuUsage) == 0 { + // libcontainer's 'GetStats' can leave 'PercpuUsage' nil if it skipped the + // cpuacct subsystem. + return + } + + numPossible := uint32(len(s.CpuStats.CpuUsage.PercpuUsage)) + // Note that as of https://patchwork.kernel.org/patch/8607101/ (kernel v4.7), + // the percpu usage information includes extra zero values for all additional + // possible CPUs. This is to allow statistic collection after CPU-hotplug. + // We intentionally ignore these extra zeroes. + numActual, err := numCpusFunc() + if err != nil { + glog.Errorf("unable to determine number of actual cpus; defaulting to maximum possible number: errno %v", err) + numActual = numPossible + } + if numActual > numPossible { + // The real number of cores should never be greater than the number of + // datapoints reported in cpu usage. + glog.Errorf("PercpuUsage had %v cpus, but the actual number is %v; ignoring extra CPUs", numPossible, numActual) + } + numActual = minUint32(numPossible, numActual) + ret.Cpu.Usage.PerCpu = make([]uint64, numActual) + + for i := uint32(0); i < numActual; i++ { + ret.Cpu.Usage.PerCpu[i] = s.CpuStats.CpuUsage.PercpuUsage[i] + } + +} + +// Copied from +// https://github.com/moby/moby/blob/8b1adf55c2af329a4334f21d9444d6a169000c81/daemon/stats/collector_unix.go#L73 +// Apache 2.0, Copyright Docker, Inc. +func getNumberOnlineCPUs() (uint32, error) { + i, err := C.sysconf(C._SC_NPROCESSORS_ONLN) + // According to POSIX - errno is undefined after successful + // sysconf, and can be non-zero in several cases, so look for + // error in returned value not in errno. + // (https://sourceware.org/bugzilla/show_bug.cgi?id=21536) + if i == -1 { + return 0, err + } + return uint32(i), nil +} + +func setDiskIoStats(s *cgroups.Stats, ret *info.ContainerStats) { + ret.DiskIo.IoServiceBytes = DiskStatsCopy(s.BlkioStats.IoServiceBytesRecursive) + ret.DiskIo.IoServiced = DiskStatsCopy(s.BlkioStats.IoServicedRecursive) + ret.DiskIo.IoQueued = DiskStatsCopy(s.BlkioStats.IoQueuedRecursive) + ret.DiskIo.Sectors = DiskStatsCopy(s.BlkioStats.SectorsRecursive) + ret.DiskIo.IoServiceTime = DiskStatsCopy(s.BlkioStats.IoServiceTimeRecursive) + ret.DiskIo.IoWaitTime = DiskStatsCopy(s.BlkioStats.IoWaitTimeRecursive) + ret.DiskIo.IoMerged = DiskStatsCopy(s.BlkioStats.IoMergedRecursive) + ret.DiskIo.IoTime = DiskStatsCopy(s.BlkioStats.IoTimeRecursive) +} + +func setMemoryStats(s *cgroups.Stats, ret *info.ContainerStats) { + ret.Memory.Usage = s.MemoryStats.Usage.Usage + ret.Memory.MaxUsage = s.MemoryStats.Usage.MaxUsage + ret.Memory.Failcnt = s.MemoryStats.Usage.Failcnt + ret.Memory.Cache = s.MemoryStats.Stats["cache"] + + if s.MemoryStats.UseHierarchy { + ret.Memory.RSS = s.MemoryStats.Stats["total_rss"] + ret.Memory.Swap = s.MemoryStats.Stats["total_swap"] + } else { + ret.Memory.RSS = s.MemoryStats.Stats["rss"] + ret.Memory.Swap = s.MemoryStats.Stats["swap"] + } + if v, ok := s.MemoryStats.Stats["pgfault"]; ok { + ret.Memory.ContainerData.Pgfault = v + ret.Memory.HierarchicalData.Pgfault = v + } + if v, ok := s.MemoryStats.Stats["pgmajfault"]; ok { + ret.Memory.ContainerData.Pgmajfault = v + ret.Memory.HierarchicalData.Pgmajfault = v + } + + workingSet := ret.Memory.Usage + if v, ok := s.MemoryStats.Stats["total_inactive_file"]; ok { + if workingSet < v { + workingSet = 0 + } else { + workingSet -= v + } + } + ret.Memory.WorkingSet = workingSet +} + +func setNetworkStats(libcontainerStats *libcontainer.Stats, ret *info.ContainerStats) { + ret.Network.Interfaces = make([]info.InterfaceStats, len(libcontainerStats.Interfaces)) + for i := range libcontainerStats.Interfaces { + ret.Network.Interfaces[i] = info.InterfaceStats{ + Name: libcontainerStats.Interfaces[i].Name, + RxBytes: libcontainerStats.Interfaces[i].RxBytes, + RxPackets: libcontainerStats.Interfaces[i].RxPackets, + RxErrors: libcontainerStats.Interfaces[i].RxErrors, + RxDropped: libcontainerStats.Interfaces[i].RxDropped, + TxBytes: libcontainerStats.Interfaces[i].TxBytes, + TxPackets: libcontainerStats.Interfaces[i].TxPackets, + TxErrors: libcontainerStats.Interfaces[i].TxErrors, + TxDropped: libcontainerStats.Interfaces[i].TxDropped, + } + } + + // Add to base struct for backwards compatibility. + if len(ret.Network.Interfaces) > 0 { + ret.Network.InterfaceStats = ret.Network.Interfaces[0] + } +} + +func newContainerStats(libcontainerStats *libcontainer.Stats, withPerCPU bool) *info.ContainerStats { + ret := &info.ContainerStats{ + Timestamp: time.Now(), + } + + if s := libcontainerStats.CgroupStats; s != nil { + setCpuStats(s, ret, withPerCPU) + setDiskIoStats(s, ret) + setMemoryStats(s, ret) + } + if len(libcontainerStats.Interfaces) > 0 { + setNetworkStats(libcontainerStats, ret) + } + return ret +} diff --git a/vendor/github.com/google/cadvisor/container/libcontainer/helpers.go b/vendor/github.com/google/cadvisor/container/libcontainer/helpers.go index 2f9270758b..d033f7bfc5 100644 --- a/vendor/github.com/google/cadvisor/container/libcontainer/helpers.go +++ b/vendor/github.com/google/cadvisor/container/libcontainer/helpers.go @@ -15,29 +15,14 @@ package libcontainer import ( - "bufio" "fmt" - "io" - "io/ioutil" - "os" - "path" - "strconv" - "strings" - "time" - "github.com/google/cadvisor/container" info "github.com/google/cadvisor/info/v1" "github.com/golang/glog" - "github.com/opencontainers/runc/libcontainer" "github.com/opencontainers/runc/libcontainer/cgroups" ) -/* -#include -*/ -import "C" - type CgroupSubsystems struct { // Cgroup subsystem mounts. // e.g.: "/sys/fs/cgroup/cpu" -> ["cpu", "cpuacct"] @@ -104,309 +89,6 @@ var supportedSubsystems map[string]struct{} = map[string]struct{}{ "devices": {}, } -// Get cgroup and networking stats of the specified container -func GetStats(cgroupManager cgroups.Manager, rootFs string, pid int, ignoreMetrics container.MetricSet) (*info.ContainerStats, error) { - cgroupStats, err := cgroupManager.GetStats() - if err != nil { - return nil, err - } - libcontainerStats := &libcontainer.Stats{ - CgroupStats: cgroupStats, - } - withPerCPU := !ignoreMetrics.Has(container.PerCpuUsageMetrics) - stats := newContainerStats(libcontainerStats, withPerCPU) - - // If we know the pid then get network stats from /proc//net/dev - if pid == 0 { - return stats, nil - } - if !ignoreMetrics.Has(container.NetworkUsageMetrics) { - netStats, err := networkStatsFromProc(rootFs, pid) - if err != nil { - glog.V(4).Infof("Unable to get network stats from pid %d: %v", pid, err) - } else { - stats.Network.Interfaces = append(stats.Network.Interfaces, netStats...) - } - } - if !ignoreMetrics.Has(container.NetworkTcpUsageMetrics) { - t, err := tcpStatsFromProc(rootFs, pid, "net/tcp") - if err != nil { - glog.V(4).Infof("Unable to get tcp stats from pid %d: %v", pid, err) - } else { - stats.Network.Tcp = t - } - - t6, err := tcpStatsFromProc(rootFs, pid, "net/tcp6") - if err != nil { - glog.V(4).Infof("Unable to get tcp6 stats from pid %d: %v", pid, err) - } else { - stats.Network.Tcp6 = t6 - } - } - if !ignoreMetrics.Has(container.NetworkUdpUsageMetrics) { - u, err := udpStatsFromProc(rootFs, pid, "net/udp") - if err != nil { - glog.V(4).Infof("Unable to get udp stats from pid %d: %v", pid, err) - } else { - stats.Network.Udp = u - } - - u6, err := udpStatsFromProc(rootFs, pid, "net/udp6") - if err != nil { - glog.V(4).Infof("Unable to get udp6 stats from pid %d: %v", pid, err) - } else { - stats.Network.Udp6 = u6 - } - } - - // For backwards compatibility. - if len(stats.Network.Interfaces) > 0 { - stats.Network.InterfaceStats = stats.Network.Interfaces[0] - } - - return stats, nil -} - -func networkStatsFromProc(rootFs string, pid int) ([]info.InterfaceStats, error) { - netStatsFile := path.Join(rootFs, "proc", strconv.Itoa(pid), "/net/dev") - - ifaceStats, err := scanInterfaceStats(netStatsFile) - if err != nil { - return []info.InterfaceStats{}, fmt.Errorf("couldn't read network stats: %v", err) - } - - return ifaceStats, nil -} - -var ( - ignoredDevicePrefixes = []string{"lo", "veth", "docker"} -) - -func isIgnoredDevice(ifName string) bool { - for _, prefix := range ignoredDevicePrefixes { - if strings.HasPrefix(strings.ToLower(ifName), prefix) { - return true - } - } - return false -} - -func scanInterfaceStats(netStatsFile string) ([]info.InterfaceStats, error) { - file, err := os.Open(netStatsFile) - if err != nil { - return nil, fmt.Errorf("failure opening %s: %v", netStatsFile, err) - } - defer file.Close() - - scanner := bufio.NewScanner(file) - - // Discard header lines - for i := 0; i < 2; i++ { - if b := scanner.Scan(); !b { - return nil, scanner.Err() - } - } - - stats := []info.InterfaceStats{} - for scanner.Scan() { - line := scanner.Text() - line = strings.Replace(line, ":", "", -1) - - fields := strings.Fields(line) - // If the format of the line is invalid then don't trust any of the stats - // in this file. - if len(fields) != 17 { - return nil, fmt.Errorf("invalid interface stats line: %v", line) - } - - devName := fields[0] - if isIgnoredDevice(devName) { - continue - } - - i := info.InterfaceStats{ - Name: devName, - } - - statFields := append(fields[1:5], fields[9:13]...) - statPointers := []*uint64{ - &i.RxBytes, &i.RxPackets, &i.RxErrors, &i.RxDropped, - &i.TxBytes, &i.TxPackets, &i.TxErrors, &i.TxDropped, - } - - err := setInterfaceStatValues(statFields, statPointers) - if err != nil { - return nil, fmt.Errorf("cannot parse interface stats (%v): %v", err, line) - } - - stats = append(stats, i) - } - - return stats, nil -} - -func setInterfaceStatValues(fields []string, pointers []*uint64) error { - for i, v := range fields { - val, err := strconv.ParseUint(v, 10, 64) - if err != nil { - return err - } - *pointers[i] = val - } - return nil -} - -func tcpStatsFromProc(rootFs string, pid int, file string) (info.TcpStat, error) { - tcpStatsFile := path.Join(rootFs, "proc", strconv.Itoa(pid), file) - - tcpStats, err := scanTcpStats(tcpStatsFile) - if err != nil { - return tcpStats, fmt.Errorf("couldn't read tcp stats: %v", err) - } - - return tcpStats, nil -} - -func scanTcpStats(tcpStatsFile string) (info.TcpStat, error) { - - var stats info.TcpStat - - data, err := ioutil.ReadFile(tcpStatsFile) - if err != nil { - return stats, fmt.Errorf("failure opening %s: %v", tcpStatsFile, err) - } - - tcpStateMap := map[string]uint64{ - "01": 0, //ESTABLISHED - "02": 0, //SYN_SENT - "03": 0, //SYN_RECV - "04": 0, //FIN_WAIT1 - "05": 0, //FIN_WAIT2 - "06": 0, //TIME_WAIT - "07": 0, //CLOSE - "08": 0, //CLOSE_WAIT - "09": 0, //LAST_ACK - "0A": 0, //LISTEN - "0B": 0, //CLOSING - } - - reader := strings.NewReader(string(data)) - scanner := bufio.NewScanner(reader) - - scanner.Split(bufio.ScanLines) - - // Discard header line - if b := scanner.Scan(); !b { - return stats, scanner.Err() - } - - for scanner.Scan() { - line := scanner.Text() - - state := strings.Fields(line) - // TCP state is the 4th field. - // Format: sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode - tcpState := state[3] - _, ok := tcpStateMap[tcpState] - if !ok { - return stats, fmt.Errorf("invalid TCP stats line: %v", line) - } - tcpStateMap[tcpState]++ - } - - stats = info.TcpStat{ - Established: tcpStateMap["01"], - SynSent: tcpStateMap["02"], - SynRecv: tcpStateMap["03"], - FinWait1: tcpStateMap["04"], - FinWait2: tcpStateMap["05"], - TimeWait: tcpStateMap["06"], - Close: tcpStateMap["07"], - CloseWait: tcpStateMap["08"], - LastAck: tcpStateMap["09"], - Listen: tcpStateMap["0A"], - Closing: tcpStateMap["0B"], - } - - return stats, nil -} - -func udpStatsFromProc(rootFs string, pid int, file string) (info.UdpStat, error) { - var err error - var udpStats info.UdpStat - - udpStatsFile := path.Join(rootFs, "proc", strconv.Itoa(pid), file) - - r, err := os.Open(udpStatsFile) - if err != nil { - return udpStats, fmt.Errorf("failure opening %s: %v", udpStatsFile, err) - } - - udpStats, err = scanUdpStats(r) - if err != nil { - return udpStats, fmt.Errorf("couldn't read udp stats: %v", err) - } - - return udpStats, nil -} - -func scanUdpStats(r io.Reader) (info.UdpStat, error) { - var stats info.UdpStat - - scanner := bufio.NewScanner(r) - scanner.Split(bufio.ScanLines) - - // Discard header line - if b := scanner.Scan(); !b { - return stats, scanner.Err() - } - - listening := uint64(0) - dropped := uint64(0) - rxQueued := uint64(0) - txQueued := uint64(0) - - for scanner.Scan() { - line := scanner.Text() - // Format: sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops - - listening++ - - fs := strings.Fields(line) - if len(fs) != 13 { - continue - } - - rx, tx := uint64(0), uint64(0) - fmt.Sscanf(fs[4], "%X:%X", &rx, &tx) - rxQueued += rx - txQueued += tx - - d, err := strconv.Atoi(string(fs[12])) - if err != nil { - continue - } - dropped += uint64(d) - } - - stats = info.UdpStat{ - Listen: listening, - Dropped: dropped, - RxQueued: rxQueued, - TxQueued: txQueued, - } - - return stats, nil -} - -func GetProcesses(cgroupManager cgroups.Manager) ([]int, error) { - pids, err := cgroupManager.GetPids() - if err != nil { - return nil, err - } - return pids, nil -} - func DiskStatsCopy0(major, minor uint64) *info.PerDiskStats { disk := info.PerDiskStats{ Major: major, @@ -456,152 +138,3 @@ func DiskStatsCopy(blkio_stats []cgroups.BlkioStatEntry) (stat []info.PerDiskSta } return DiskStatsCopy1(disk_stat) } - -func minUint32(x, y uint32) uint32 { - if x < y { - return x - } - return y -} - -// var to allow unit tests to stub it out -var numCpusFunc = getNumberOnlineCPUs - -// Convert libcontainer stats to info.ContainerStats. -func setCpuStats(s *cgroups.Stats, ret *info.ContainerStats, withPerCPU bool) { - ret.Cpu.Usage.User = s.CpuStats.CpuUsage.UsageInUsermode - ret.Cpu.Usage.System = s.CpuStats.CpuUsage.UsageInKernelmode - ret.Cpu.Usage.Total = s.CpuStats.CpuUsage.TotalUsage - ret.Cpu.CFS.Periods = s.CpuStats.ThrottlingData.Periods - ret.Cpu.CFS.ThrottledPeriods = s.CpuStats.ThrottlingData.ThrottledPeriods - ret.Cpu.CFS.ThrottledTime = s.CpuStats.ThrottlingData.ThrottledTime - - if !withPerCPU { - return - } - if len(s.CpuStats.CpuUsage.PercpuUsage) == 0 { - // libcontainer's 'GetStats' can leave 'PercpuUsage' nil if it skipped the - // cpuacct subsystem. - return - } - - numPossible := uint32(len(s.CpuStats.CpuUsage.PercpuUsage)) - // Note that as of https://patchwork.kernel.org/patch/8607101/ (kernel v4.7), - // the percpu usage information includes extra zero values for all additional - // possible CPUs. This is to allow statistic collection after CPU-hotplug. - // We intentionally ignore these extra zeroes. - numActual, err := numCpusFunc() - if err != nil { - glog.Errorf("unable to determine number of actual cpus; defaulting to maximum possible number: errno %v", err) - numActual = numPossible - } - if numActual > numPossible { - // The real number of cores should never be greater than the number of - // datapoints reported in cpu usage. - glog.Errorf("PercpuUsage had %v cpus, but the actual number is %v; ignoring extra CPUs", numPossible, numActual) - } - numActual = minUint32(numPossible, numActual) - ret.Cpu.Usage.PerCpu = make([]uint64, numActual) - - for i := uint32(0); i < numActual; i++ { - ret.Cpu.Usage.PerCpu[i] = s.CpuStats.CpuUsage.PercpuUsage[i] - } - -} - -// Copied from -// https://github.com/moby/moby/blob/8b1adf55c2af329a4334f21d9444d6a169000c81/daemon/stats/collector_unix.go#L73 -// Apache 2.0, Copyright Docker, Inc. -func getNumberOnlineCPUs() (uint32, error) { - i, err := C.sysconf(C._SC_NPROCESSORS_ONLN) - // According to POSIX - errno is undefined after successful - // sysconf, and can be non-zero in several cases, so look for - // error in returned value not in errno. - // (https://sourceware.org/bugzilla/show_bug.cgi?id=21536) - if i == -1 { - return 0, err - } - return uint32(i), nil -} - -func setDiskIoStats(s *cgroups.Stats, ret *info.ContainerStats) { - ret.DiskIo.IoServiceBytes = DiskStatsCopy(s.BlkioStats.IoServiceBytesRecursive) - ret.DiskIo.IoServiced = DiskStatsCopy(s.BlkioStats.IoServicedRecursive) - ret.DiskIo.IoQueued = DiskStatsCopy(s.BlkioStats.IoQueuedRecursive) - ret.DiskIo.Sectors = DiskStatsCopy(s.BlkioStats.SectorsRecursive) - ret.DiskIo.IoServiceTime = DiskStatsCopy(s.BlkioStats.IoServiceTimeRecursive) - ret.DiskIo.IoWaitTime = DiskStatsCopy(s.BlkioStats.IoWaitTimeRecursive) - ret.DiskIo.IoMerged = DiskStatsCopy(s.BlkioStats.IoMergedRecursive) - ret.DiskIo.IoTime = DiskStatsCopy(s.BlkioStats.IoTimeRecursive) -} - -func setMemoryStats(s *cgroups.Stats, ret *info.ContainerStats) { - ret.Memory.Usage = s.MemoryStats.Usage.Usage - ret.Memory.MaxUsage = s.MemoryStats.Usage.MaxUsage - ret.Memory.Failcnt = s.MemoryStats.Usage.Failcnt - ret.Memory.Cache = s.MemoryStats.Stats["cache"] - - if s.MemoryStats.UseHierarchy { - ret.Memory.RSS = s.MemoryStats.Stats["total_rss"] - ret.Memory.Swap = s.MemoryStats.Stats["total_swap"] - } else { - ret.Memory.RSS = s.MemoryStats.Stats["rss"] - ret.Memory.Swap = s.MemoryStats.Stats["swap"] - } - if v, ok := s.MemoryStats.Stats["pgfault"]; ok { - ret.Memory.ContainerData.Pgfault = v - ret.Memory.HierarchicalData.Pgfault = v - } - if v, ok := s.MemoryStats.Stats["pgmajfault"]; ok { - ret.Memory.ContainerData.Pgmajfault = v - ret.Memory.HierarchicalData.Pgmajfault = v - } - - workingSet := ret.Memory.Usage - if v, ok := s.MemoryStats.Stats["total_inactive_file"]; ok { - if workingSet < v { - workingSet = 0 - } else { - workingSet -= v - } - } - ret.Memory.WorkingSet = workingSet -} - -func setNetworkStats(libcontainerStats *libcontainer.Stats, ret *info.ContainerStats) { - ret.Network.Interfaces = make([]info.InterfaceStats, len(libcontainerStats.Interfaces)) - for i := range libcontainerStats.Interfaces { - ret.Network.Interfaces[i] = info.InterfaceStats{ - Name: libcontainerStats.Interfaces[i].Name, - RxBytes: libcontainerStats.Interfaces[i].RxBytes, - RxPackets: libcontainerStats.Interfaces[i].RxPackets, - RxErrors: libcontainerStats.Interfaces[i].RxErrors, - RxDropped: libcontainerStats.Interfaces[i].RxDropped, - TxBytes: libcontainerStats.Interfaces[i].TxBytes, - TxPackets: libcontainerStats.Interfaces[i].TxPackets, - TxErrors: libcontainerStats.Interfaces[i].TxErrors, - TxDropped: libcontainerStats.Interfaces[i].TxDropped, - } - } - - // Add to base struct for backwards compatibility. - if len(ret.Network.Interfaces) > 0 { - ret.Network.InterfaceStats = ret.Network.Interfaces[0] - } -} - -func newContainerStats(libcontainerStats *libcontainer.Stats, withPerCPU bool) *info.ContainerStats { - ret := &info.ContainerStats{ - Timestamp: time.Now(), - } - - if s := libcontainerStats.CgroupStats; s != nil { - setCpuStats(s, ret, withPerCPU) - setDiskIoStats(s, ret) - setMemoryStats(s, ret) - } - if len(libcontainerStats.Interfaces) > 0 { - setNetworkStats(libcontainerStats, ret) - } - return ret -} diff --git a/vendor/github.com/google/cadvisor/container/raw/BUILD b/vendor/github.com/google/cadvisor/container/raw/BUILD index fcf14378ca..f745a7023e 100644 --- a/vendor/github.com/google/cadvisor/container/raw/BUILD +++ b/vendor/github.com/google/cadvisor/container/raw/BUILD @@ -17,7 +17,6 @@ go_library( "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/machine:go_default_library", "//vendor/github.com/google/cadvisor/manager/watcher:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", ], diff --git a/vendor/github.com/google/cadvisor/container/raw/factory.go b/vendor/github.com/google/cadvisor/container/raw/factory.go index 1b8a43a407..bfea96985b 100644 --- a/vendor/github.com/google/cadvisor/container/raw/factory.go +++ b/vendor/github.com/google/cadvisor/container/raw/factory.go @@ -40,8 +40,8 @@ type rawFactory struct { // Information about mounted filesystems. fsInfo fs.FsInfo - // Watcher for inotify events. - watcher *common.InotifyWatcher + // Watcher for fsnotify events. + watcher *common.FsnotifyWatcher // List of metrics to be ignored. ignoreMetrics map[container.MetricKind]struct{} @@ -78,7 +78,7 @@ func Register(machineInfoFactory info.MachineInfoFactory, fsInfo fs.FsInfo, igno return fmt.Errorf("failed to find supported cgroup mounts for the raw factory") } - watcher, err := common.NewInotifyWatcher() + watcher, err := common.NewFsnotifyWatcher() if err != nil { return err } diff --git a/vendor/github.com/google/cadvisor/container/raw/handler.go b/vendor/github.com/google/cadvisor/container/raw/handler.go index 35614afd95..354b64c6b6 100644 --- a/vendor/github.com/google/cadvisor/container/raw/handler.go +++ b/vendor/github.com/google/cadvisor/container/raw/handler.go @@ -26,7 +26,6 @@ import ( "github.com/google/cadvisor/machine" "github.com/golang/glog" - "github.com/opencontainers/runc/libcontainer/cgroups" cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs" "github.com/opencontainers/runc/libcontainer/configs" ) @@ -34,32 +33,23 @@ import ( type rawContainerHandler struct { // Name of the container for this handler. name string - cgroupSubsystems *libcontainer.CgroupSubsystems machineInfoFactory info.MachineInfoFactory // Absolute path to the cgroup hierarchies of this container. // (e.g.: "cpu" -> "/sys/fs/cgroup/cpu/test") cgroupPaths map[string]string - // Manager of this container's cgroups. - cgroupManager cgroups.Manager - fsInfo fs.FsInfo externalMounts []common.Mount - rootFs string - - // Metrics to be ignored. - ignoreMetrics container.MetricSet - - pid int + libcontainerHandler *libcontainer.Handler } func isRootCgroup(name string) bool { return name == "/" } -func newRawContainerHandler(name string, cgroupSubsystems *libcontainer.CgroupSubsystems, machineInfoFactory info.MachineInfoFactory, fsInfo fs.FsInfo, watcher *common.InotifyWatcher, rootFs string, ignoreMetrics container.MetricSet) (container.ContainerHandler, error) { +func newRawContainerHandler(name string, cgroupSubsystems *libcontainer.CgroupSubsystems, machineInfoFactory info.MachineInfoFactory, fsInfo fs.FsInfo, watcher *common.FsnotifyWatcher, rootFs string, ignoreMetrics container.MetricSet) (container.ContainerHandler, error) { cgroupPaths := common.MakeCgroupPaths(cgroupSubsystems.MountPoints, name) cHints, err := common.GetContainerHintsFromFile(*common.ArgContainerHints) @@ -88,17 +78,15 @@ func newRawContainerHandler(name string, cgroupSubsystems *libcontainer.CgroupSu pid = 1 } + handler := libcontainer.NewHandler(cgroupManager, rootFs, pid, ignoreMetrics) + return &rawContainerHandler{ - name: name, - cgroupSubsystems: cgroupSubsystems, - machineInfoFactory: machineInfoFactory, - cgroupPaths: cgroupPaths, - cgroupManager: cgroupManager, - fsInfo: fsInfo, - externalMounts: externalMounts, - rootFs: rootFs, - ignoreMetrics: ignoreMetrics, - pid: pid, + name: name, + machineInfoFactory: machineInfoFactory, + cgroupPaths: cgroupPaths, + fsInfo: fsInfo, + externalMounts: externalMounts, + libcontainerHandler: handler, }, nil } @@ -231,7 +219,7 @@ func (self *rawContainerHandler) getFsStats(stats *info.ContainerStats) error { } func (self *rawContainerHandler) GetStats() (*info.ContainerStats, error) { - stats, err := libcontainer.GetStats(self.cgroupManager, self.rootFs, self.pid, self.ignoreMetrics) + stats, err := self.libcontainerHandler.GetStats() if err != nil { return stats, err } @@ -267,7 +255,7 @@ func (self *rawContainerHandler) ListContainers(listType container.ListType) ([] } func (self *rawContainerHandler) ListProcesses(listType container.ListType) ([]int, error) { - return libcontainer.GetProcesses(self.cgroupManager) + return self.libcontainerHandler.GetProcesses() } func (self *rawContainerHandler) Exists() bool { diff --git a/vendor/github.com/google/cadvisor/container/rkt/BUILD b/vendor/github.com/google/cadvisor/container/rkt/BUILD index 90d7151cb1..b625204675 100644 --- a/vendor/github.com/google/cadvisor/container/rkt/BUILD +++ b/vendor/github.com/google/cadvisor/container/rkt/BUILD @@ -20,7 +20,6 @@ go_library( "//vendor/github.com/google/cadvisor/fs:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/manager/watcher:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/vendor/github.com/google/cadvisor/container/rkt/handler.go b/vendor/github.com/google/cadvisor/container/rkt/handler.go index 9caa0ce4d8..86564a1ea9 100644 --- a/vendor/github.com/google/cadvisor/container/rkt/handler.go +++ b/vendor/github.com/google/cadvisor/container/rkt/handler.go @@ -28,48 +28,35 @@ import ( "golang.org/x/net/context" "github.com/golang/glog" - "github.com/opencontainers/runc/libcontainer/cgroups" cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs" "github.com/opencontainers/runc/libcontainer/configs" ) type rktContainerHandler struct { - rktClient rktapi.PublicAPIClient - // Name of the container for this handler. - name string - cgroupSubsystems *libcontainer.CgroupSubsystems machineInfoFactory info.MachineInfoFactory // Absolute path to the cgroup hierarchies of this container. // (e.g.: "cpu" -> "/sys/fs/cgroup/cpu/test") cgroupPaths map[string]string - // Manager of this container's cgroups. - cgroupManager cgroups.Manager - - // Whether this container has network isolation enabled. - hasNetwork bool - fsInfo fs.FsInfo - rootFs string - isPod bool - aliases []string - - pid int - rootfsStorageDir string - labels map[string]string - // Filesystem handler. fsHandler common.FsHandler ignoreMetrics container.MetricSet apiPod *rktapi.Pod + + labels map[string]string + + reference info.ContainerReference + + libcontainerHandler *libcontainer.Handler } func newRktContainerHandler(name string, rktClient rktapi.PublicAPIClient, rktPath string, cgroupSubsystems *libcontainer.CgroupSubsystems, machineInfoFactory info.MachineInfoFactory, fsInfo fs.FsInfo, rootFs string, ignoreMetrics container.MetricSet) (container.ContainerHandler, error) { @@ -122,30 +109,27 @@ func newRktContainerHandler(name string, rktClient rktapi.PublicAPIClient, rktPa Paths: cgroupPaths, } - hasNetwork := false - if isPod { - hasNetwork = true - } + libcontainerHandler := libcontainer.NewHandler(cgroupManager, rootFs, pid, ignoreMetrics) rootfsStorageDir := getRootFs(rktPath, parsed) + containerReference := info.ContainerReference{ + Name: name, + Aliases: aliases, + Namespace: RktNamespace, + } + handler := &rktContainerHandler{ - name: name, - rktClient: rktClient, - cgroupSubsystems: cgroupSubsystems, - machineInfoFactory: machineInfoFactory, - cgroupPaths: cgroupPaths, - cgroupManager: cgroupManager, - fsInfo: fsInfo, - hasNetwork: hasNetwork, - rootFs: rootFs, - isPod: isPod, - aliases: aliases, - pid: pid, - labels: labels, - rootfsStorageDir: rootfsStorageDir, - ignoreMetrics: ignoreMetrics, - apiPod: apiPod, + machineInfoFactory: machineInfoFactory, + cgroupPaths: cgroupPaths, + fsInfo: fsInfo, + isPod: isPod, + rootfsStorageDir: rootfsStorageDir, + ignoreMetrics: ignoreMetrics, + apiPod: apiPod, + labels: labels, + reference: containerReference, + libcontainerHandler: libcontainerHandler, } if !ignoreMetrics.Has(container.DiskUsageMetrics) { @@ -174,12 +158,7 @@ func createLabels(annotations []*rktapi.KeyValue) map[string]string { } func (handler *rktContainerHandler) ContainerReference() (info.ContainerReference, error) { - return info.ContainerReference{ - Name: handler.name, - Aliases: handler.aliases, - Namespace: RktNamespace, - Labels: handler.labels, - }, nil + return handler.reference, nil } func (handler *rktContainerHandler) Start() { @@ -191,7 +170,7 @@ func (handler *rktContainerHandler) Cleanup() { } func (handler *rktContainerHandler) GetSpec() (info.ContainerSpec, error) { - hasNetwork := handler.hasNetwork && !handler.ignoreMetrics.Has(container.NetworkUsageMetrics) + hasNetwork := handler.isPod && !handler.ignoreMetrics.Has(container.NetworkUsageMetrics) hasFilesystem := !handler.ignoreMetrics.Has(container.DiskUsageMetrics) spec, err := common.GetSpec(handler.cgroupPaths, handler.machineInfoFactory, hasNetwork, hasFilesystem) @@ -243,7 +222,7 @@ func (handler *rktContainerHandler) getFsStats(stats *info.ContainerStats) error } func (handler *rktContainerHandler) GetStats() (*info.ContainerStats, error) { - stats, err := libcontainer.GetStats(handler.cgroupManager, handler.rootFs, handler.pid, handler.ignoreMetrics) + stats, err := handler.libcontainerHandler.GetStats() if err != nil { return stats, err } @@ -275,7 +254,7 @@ func (self *rktContainerHandler) GetContainerIPAddress() string { func (handler *rktContainerHandler) GetCgroupPath(resource string) (string, error) { path, ok := handler.cgroupPaths[resource] if !ok { - return "", fmt.Errorf("could not find path for resource %q for container %q\n", resource, handler.name) + return "", fmt.Errorf("could not find path for resource %q for container %q\n", resource, handler.reference.Name) } return path, nil } @@ -285,11 +264,11 @@ func (handler *rktContainerHandler) GetContainerLabels() map[string]string { } func (handler *rktContainerHandler) ListContainers(listType container.ListType) ([]info.ContainerReference, error) { - return common.ListContainers(handler.name, handler.cgroupPaths, listType) + return common.ListContainers(handler.reference.Name, handler.cgroupPaths, listType) } func (handler *rktContainerHandler) ListProcesses(listType container.ListType) ([]int, error) { - return libcontainer.GetProcesses(handler.cgroupManager) + return handler.libcontainerHandler.GetProcesses() } func (handler *rktContainerHandler) Exists() bool { diff --git a/vendor/github.com/google/cadvisor/fs/fs.go b/vendor/github.com/google/cadvisor/fs/fs.go index b86ec36efe..996f8577b4 100644 --- a/vendor/github.com/google/cadvisor/fs/fs.go +++ b/vendor/github.com/google/cadvisor/fs/fs.go @@ -554,7 +554,7 @@ func GetDirDiskUsage(dir string, timeout time.Duration) (uint64, error) { if dir == "" { return 0, fmt.Errorf("invalid directory") } - cmd := exec.Command("nice", "-n", "19", "du", "-s", dir) + cmd := exec.Command("ionice", "-c3", "nice", "-n", "19", "du", "-s", dir) stdoutp, err := cmd.StdoutPipe() if err != nil { return 0, fmt.Errorf("failed to setup stdout for cmd %v - %v", cmd.Args, err) @@ -601,7 +601,7 @@ func GetDirInodeUsage(dir string, timeout time.Duration) (uint64, error) { } var counter byteCounter var stderr bytes.Buffer - findCmd := exec.Command("find", dir, "-xdev", "-printf", ".") + findCmd := exec.Command("ionice", "-c3", "nice", "-n", "19", "find", dir, "-xdev", "-printf", ".") findCmd.Stdout, findCmd.Stderr = &counter, &stderr if err := findCmd.Start(); err != nil { return 0, fmt.Errorf("failed to exec cmd %v - %v; stderr: %v", findCmd.Args, err, stderr.String()) diff --git a/vendor/github.com/google/cadvisor/info/v1/container.go b/vendor/github.com/google/cadvisor/info/v1/container.go index 8d0c28e0bb..0d7b895bc0 100644 --- a/vendor/github.com/google/cadvisor/info/v1/container.go +++ b/vendor/github.com/google/cadvisor/info/v1/container.go @@ -85,8 +85,6 @@ type ContainerReference struct { // Namespace under which the aliases of a container are unique. // An example of a namespace is "docker" for Docker containers. Namespace string `json:"namespace,omitempty"` - - Labels map[string]string `json:"labels,omitempty"` } // Sorts by container name. @@ -295,10 +293,23 @@ type CpuCFS struct { ThrottledTime uint64 `json:"throttled_time"` } +// Cpu Aggregated scheduler statistics +type CpuSchedstat struct { + // https://www.kernel.org/doc/Documentation/scheduler/sched-stats.txt + + // time spent on the cpu + RunTime uint64 `json:"run_time"` + // time spent waiting on a runqueue + RunqueueTime uint64 `json:"runqueue_time"` + // # of timeslices run on this cpu + RunPeriods uint64 `json:"run_periods"` +} + // All CPU usage metrics are cumulative from the creation of the container type CpuStats struct { - Usage CpuUsage `json:"usage"` - CFS CpuCFS `json:"cfs"` + Usage CpuUsage `json:"usage"` + CFS CpuCFS `json:"cfs"` + Schedstat CpuSchedstat `json:"schedstat"` // Smoothed average of number of runnable threads x 1000. // We multiply by thousand to avoid using floats, but preserving precision. // Load is smoothed over the last 10 seconds. Instantaneous value can be read diff --git a/vendor/github.com/google/cadvisor/machine/BUILD b/vendor/github.com/google/cadvisor/machine/BUILD index 3a248ed5e5..620377540b 100644 --- a/vendor/github.com/google/cadvisor/machine/BUILD +++ b/vendor/github.com/google/cadvisor/machine/BUILD @@ -9,6 +9,7 @@ go_library( importpath = "github.com/google/cadvisor/machine", visibility = ["//visibility:public"], deps = [ + "//vendor/github.com/docker/docker/pkg/parsers/operatingsystem:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/fs:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", diff --git a/vendor/github.com/google/cadvisor/machine/info.go b/vendor/github.com/google/cadvisor/machine/info.go index be90f17e96..bf4f595ab2 100644 --- a/vendor/github.com/google/cadvisor/machine/info.go +++ b/vendor/github.com/google/cadvisor/machine/info.go @@ -23,6 +23,7 @@ import ( "strconv" "strings" + "github.com/docker/docker/pkg/parsers/operatingsystem" "github.com/google/cadvisor/fs" info "github.com/google/cadvisor/info/v1" "github.com/google/cadvisor/utils/cloudinfo" @@ -173,20 +174,11 @@ func Info(sysFs sysfs.SysFs, fsInfo fs.FsInfo, inHostNamespace bool) (*info.Mach } func ContainerOsVersion() string { - container_os := "Unknown" - os_release, err := ioutil.ReadFile("/etc/os-release") - if err == nil { - // We might be running in a busybox or some hand-crafted image. - // It's useful to know why cadvisor didn't come up. - for _, line := range strings.Split(string(os_release), "\n") { - parsed := strings.Split(line, "\"") - if len(parsed) == 3 && parsed[0] == "PRETTY_NAME=" { - container_os = parsed[1] - break - } - } + os, err := operatingsystem.GetOperatingSystem() + if err != nil { + os = "Unknown" } - return container_os + return os } func KernelVersion() string { diff --git a/vendor/github.com/google/cadvisor/manager/container.go b/vendor/github.com/google/cadvisor/manager/container.go index 88dd7c1536..295479f092 100644 --- a/vendor/github.com/google/cadvisor/manager/container.go +++ b/vendor/github.com/google/cadvisor/manager/container.go @@ -615,7 +615,12 @@ func (c *containerData) updateStats() error { } return err } - err = c.memoryCache.AddStats(ref, stats) + + cInfo := info.ContainerInfo{ + ContainerReference: ref, + } + + err = c.memoryCache.AddStats(&cInfo, stats) if err != nil { return err } diff --git a/vendor/github.com/google/cadvisor/manager/manager.go b/vendor/github.com/google/cadvisor/manager/manager.go index 10a725f7eb..95054ae8b8 100644 --- a/vendor/github.com/google/cadvisor/manager/manager.go +++ b/vendor/github.com/google/cadvisor/manager/manager.go @@ -242,7 +242,7 @@ func retryDockerStatus() info.DockerStatus { for { ctx, _ := context.WithTimeout(context.Background(), startupTimeout) dockerStatus, err := docker.StatusWithContext(ctx) - if err != nil { + if err == nil { return dockerStatus } diff --git a/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD b/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD index 0604f91a7a..663c1d044c 100644 --- a/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD +++ b/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD @@ -6,11 +6,11 @@ go_library( importpath = "github.com/google/cadvisor/manager/watcher/raw", visibility = ["//visibility:public"], deps = [ + "//vendor/github.com/fsnotify/fsnotify:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/container/common:go_default_library", "//vendor/github.com/google/cadvisor/container/libcontainer:go_default_library", "//vendor/github.com/google/cadvisor/manager/watcher:go_default_library", - "//vendor/golang.org/x/exp/inotify:go_default_library", ], ) diff --git a/vendor/github.com/google/cadvisor/manager/watcher/raw/raw.go b/vendor/github.com/google/cadvisor/manager/watcher/raw/raw.go index 103fa887af..a6ef4a3bfe 100644 --- a/vendor/github.com/google/cadvisor/manager/watcher/raw/raw.go +++ b/vendor/github.com/google/cadvisor/manager/watcher/raw/raw.go @@ -27,8 +27,8 @@ import ( "github.com/google/cadvisor/container/libcontainer" "github.com/google/cadvisor/manager/watcher" + "github.com/fsnotify/fsnotify" "github.com/golang/glog" - "golang.org/x/exp/inotify" ) type rawContainerWatcher struct { @@ -37,8 +37,8 @@ type rawContainerWatcher struct { cgroupSubsystems *libcontainer.CgroupSubsystems - // Inotify event watcher. - watcher *common.InotifyWatcher + // Fsnotify event watcher. + watcher *common.FsnotifyWatcher // Signal for watcher thread to stop. stopWatcher chan error @@ -53,7 +53,7 @@ func NewRawContainerWatcher() (watcher.ContainerWatcher, error) { return nil, fmt.Errorf("failed to find supported cgroup mounts for the raw factory") } - watcher, err := common.NewInotifyWatcher() + watcher, err := common.NewFsnotifyWatcher() if err != nil { return nil, err } @@ -71,7 +71,7 @@ func NewRawContainerWatcher() (watcher.ContainerWatcher, error) { func (self *rawContainerWatcher) Start(events chan watcher.ContainerEvent) error { // Watch this container (all its cgroups) and all subdirectories. for _, cgroupPath := range self.cgroupPaths { - _, err := self.watchDirectory(cgroupPath, "/") + _, err := self.watchDirectory(events, cgroupPath, "/") if err != nil { return err } @@ -109,7 +109,7 @@ func (self *rawContainerWatcher) Stop() error { // Watches the specified directory and all subdirectories. Returns whether the path was // already being watched and an error (if any). -func (self *rawContainerWatcher) watchDirectory(dir string, containerName string) (bool, error) { +func (self *rawContainerWatcher) watchDirectory(events chan watcher.ContainerEvent, dir string, containerName string) (bool, error) { alreadyWatching, err := self.watcher.AddWatch(containerName, dir) if err != nil { return alreadyWatching, err @@ -121,7 +121,7 @@ func (self *rawContainerWatcher) watchDirectory(dir string, containerName string if cleanup { _, err := self.watcher.RemoveWatch(containerName, dir) if err != nil { - glog.Warningf("Failed to remove inotify watch for %q: %v", dir, err) + glog.Warningf("Failed to remove fsnotify watch for %q: %v", dir, err) } } }() @@ -135,7 +135,8 @@ func (self *rawContainerWatcher) watchDirectory(dir string, containerName string for _, entry := range entries { if entry.IsDir() { entryPath := path.Join(dir, entry.Name()) - _, err = self.watchDirectory(entryPath, path.Join(containerName, entry.Name())) + subcontainerName := path.Join(containerName, entry.Name()) + alreadyWatchingSubDir, err := self.watchDirectory(events, entryPath, subcontainerName) if err != nil { glog.Errorf("Failed to watch directory %q: %v", entryPath, err) if os.IsNotExist(err) { @@ -145,6 +146,16 @@ func (self *rawContainerWatcher) watchDirectory(dir string, containerName string } return alreadyWatching, err } + // since we already missed the creation event for this directory, publish an event here. + if !alreadyWatchingSubDir { + go func() { + events <- watcher.ContainerEvent{ + EventType: watcher.ContainerAdd, + Name: subcontainerName, + WatchSource: watcher.Raw, + } + }() + } } } @@ -152,18 +163,16 @@ func (self *rawContainerWatcher) watchDirectory(dir string, containerName string return alreadyWatching, nil } -func (self *rawContainerWatcher) processEvent(event *inotify.Event, events chan watcher.ContainerEvent) error { - // Convert the inotify event type to a container create or delete. +func (self *rawContainerWatcher) processEvent(event fsnotify.Event, events chan watcher.ContainerEvent) error { + // Convert the fsnotify event type to a container create or delete. var eventType watcher.ContainerEventType switch { - case (event.Mask & inotify.IN_CREATE) > 0: + case event.Op == fsnotify.Create: eventType = watcher.ContainerAdd - case (event.Mask & inotify.IN_DELETE) > 0: + case event.Op == fsnotify.Remove: eventType = watcher.ContainerDelete - case (event.Mask & inotify.IN_MOVED_FROM) > 0: + case event.Op == fsnotify.Rename: eventType = watcher.ContainerDelete - case (event.Mask & inotify.IN_MOVED_TO) > 0: - eventType = watcher.ContainerAdd default: // Ignore other events. return nil @@ -186,7 +195,7 @@ func (self *rawContainerWatcher) processEvent(event *inotify.Event, events chan switch eventType { case watcher.ContainerAdd: // New container was created, watch it. - alreadyWatched, err := self.watchDirectory(event.Name, containerName) + alreadyWatched, err := self.watchDirectory(events, event.Name, containerName) if err != nil { return err } diff --git a/vendor/github.com/google/cadvisor/metrics/prometheus.go b/vendor/github.com/google/cadvisor/metrics/prometheus.go index 4354071b81..f0aaa0ede5 100644 --- a/vendor/github.com/google/cadvisor/metrics/prometheus.go +++ b/vendor/github.com/google/cadvisor/metrics/prometheus.go @@ -197,6 +197,27 @@ func NewPrometheusCollector(i infoProvider, f ContainerLabelsFunc) *PrometheusCo getValues: func(s *info.ContainerStats) metricValues { return metricValues{{value: float64(s.Cpu.CFS.ThrottledTime) / float64(time.Second)}} }, + }, { + name: "container_cpu_schedstat_run_seconds_total", + help: "Time duration the processes of the container have run on the CPU.", + valueType: prometheus.CounterValue, + getValues: func(s *info.ContainerStats) metricValues { + return metricValues{{value: float64(s.Cpu.Schedstat.RunTime) / float64(time.Second)}} + }, + }, { + name: "container_cpu_schedstat_runqueue_seconds_total", + help: "Time duration processes of the container have been waiting on a runqueue.", + valueType: prometheus.CounterValue, + getValues: func(s *info.ContainerStats) metricValues { + return metricValues{{value: float64(s.Cpu.Schedstat.RunqueueTime) / float64(time.Second)}} + }, + }, { + name: "container_cpu_schedstat_run_periods_total", + help: "Number of times processes of the cgroup have run on the cpu", + valueType: prometheus.CounterValue, + getValues: func(s *info.ContainerStats) metricValues { + return metricValues{{value: float64(s.Cpu.Schedstat.RunPeriods)}} + }, }, { name: "container_cpu_load_average_10s", help: "Value of container cpu load average over the last 10 seconds.", diff --git a/vendor/github.com/google/cadvisor/storage/storage.go b/vendor/github.com/google/cadvisor/storage/storage.go index b420d4b135..dd950862b3 100644 --- a/vendor/github.com/google/cadvisor/storage/storage.go +++ b/vendor/github.com/google/cadvisor/storage/storage.go @@ -22,7 +22,7 @@ import ( ) type StorageDriver interface { - AddStats(ref info.ContainerReference, stats *info.ContainerStats) error + AddStats(cInfo *info.ContainerInfo, stats *info.ContainerStats) error // Close will clear the state of the storage driver. The elements // stored in the underlying storage may or may not be deleted depending diff --git a/vendor/github.com/google/cadvisor/validate/validate.go b/vendor/github.com/google/cadvisor/validate/validate.go index c73311cf64..b2db558097 100644 --- a/vendor/github.com/google/cadvisor/validate/validate.go +++ b/vendor/github.com/google/cadvisor/validate/validate.go @@ -22,6 +22,7 @@ import ( "io/ioutil" "log" "net/http" + "os" "path" "strings" @@ -133,6 +134,23 @@ func areCgroupsPresent(available map[string]int, desired []string) (bool, string return true, "" } +func validateCpuCfsBandwidth(available_cgroups map[string]int) string { + ok, _ := areCgroupsPresent(available_cgroups, []string{"cpu"}) + if !ok { + return "\tCpu cfs bandwidth status unknown: cpu cgroup not enabled.\n" + } + mnt, err := cgroups.FindCgroupMountpoint("cpu") + if err != nil { + return "\tCpu cfs bandwidth status unknown: cpu cgroup not mounted.\n" + } + _, err = os.Stat(path.Join(mnt, "cpu.cfs_period_us")) + if os.IsNotExist(err) { + return "\tCpu cfs bandwidth is disabled. Recompile kernel with \"CONFIG_CFS_BANDWIDTH\" enabled.\n" + } + + return "\tCpu cfs bandwidth is enabled.\n" +} + func validateMemoryAccounting(available_cgroups map[string]int) string { ok, _ := areCgroupsPresent(available_cgroups, []string{"memory"}) if !ok { @@ -181,6 +199,7 @@ func validateCgroups() (string, string) { out = fmt.Sprintf("Available cgroups: %v\n", available_cgroups) out += desc out += validateMemoryAccounting(available_cgroups) + out += validateCpuCfsBandwidth(available_cgroups) return Recommended, out } diff --git a/vendor/github.com/mattn/go-shellwords/.travis.yml b/vendor/github.com/mattn/go-shellwords/.travis.yml new file mode 100644 index 0000000000..16d1430aa2 --- /dev/null +++ b/vendor/github.com/mattn/go-shellwords/.travis.yml @@ -0,0 +1,8 @@ +language: go +go: + - tip +before_install: + - go get github.com/mattn/goveralls + - go get golang.org/x/tools/cmd/cover +script: + - $HOME/gopath/bin/goveralls -repotoken 2FMhp57u8LcstKL9B190fLTcEnBtAAiEL diff --git a/vendor/github.com/mattn/go-shellwords/BUILD b/vendor/github.com/mattn/go-shellwords/BUILD new file mode 100644 index 0000000000..9f11c41a46 --- /dev/null +++ b/vendor/github.com/mattn/go-shellwords/BUILD @@ -0,0 +1,60 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "shellwords.go", + "util_go15.go", + ] + select({ + "@io_bazel_rules_go//go/platform:android": [ + "util_posix.go", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "util_posix.go", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "util_posix.go", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "util_posix.go", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "util_posix.go", + ], + "@io_bazel_rules_go//go/platform:nacl": [ + "util_posix.go", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "util_posix.go", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "util_posix.go", + ], + "@io_bazel_rules_go//go/platform:plan9": [ + "util_posix.go", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "util_posix.go", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "util_windows.go", + ], + "//conditions:default": [], + }), + importpath = "github.com/mattn/go-shellwords", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mattn/go-shellwords/LICENSE b/vendor/github.com/mattn/go-shellwords/LICENSE new file mode 100644 index 0000000000..740fa93132 --- /dev/null +++ b/vendor/github.com/mattn/go-shellwords/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Yasuhiro Matsumoto + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/mattn/go-shellwords/README.md b/vendor/github.com/mattn/go-shellwords/README.md new file mode 100644 index 0000000000..b1d235c78d --- /dev/null +++ b/vendor/github.com/mattn/go-shellwords/README.md @@ -0,0 +1,47 @@ +# go-shellwords + +[![Coverage Status](https://coveralls.io/repos/mattn/go-shellwords/badge.png?branch=master)](https://coveralls.io/r/mattn/go-shellwords?branch=master) +[![Build Status](https://travis-ci.org/mattn/go-shellwords.svg?branch=master)](https://travis-ci.org/mattn/go-shellwords) + +Parse line as shell words. + +## Usage + +```go +args, err := shellwords.Parse("./foo --bar=baz") +// args should be ["./foo", "--bar=baz"] +``` + +```go +os.Setenv("FOO", "bar") +p := shellwords.NewParser() +p.ParseEnv = true +args, err := p.Parse("./foo $FOO") +// args should be ["./foo", "bar"] +``` + +```go +p := shellwords.NewParser() +p.ParseBacktick = true +args, err := p.Parse("./foo `echo $SHELL`") +// args should be ["./foo", "/bin/bash"] +``` + +```go +shellwords.ParseBacktick = true +p := shellwords.NewParser() +args, err := p.Parse("./foo `echo $SHELL`") +// args should be ["./foo", "/bin/bash"] +``` + +# Thanks + +This is based on cpan module [Parse::CommandLine](https://metacpan.org/pod/Parse::CommandLine). + +# License + +under the MIT License: http://mattn.mit-license.org/2017 + +# Author + +Yasuhiro Matsumoto (a.k.a mattn) diff --git a/vendor/github.com/mattn/go-shellwords/shellwords.go b/vendor/github.com/mattn/go-shellwords/shellwords.go new file mode 100644 index 0000000000..bcd1e1f06e --- /dev/null +++ b/vendor/github.com/mattn/go-shellwords/shellwords.go @@ -0,0 +1,178 @@ +package shellwords + +import ( + "errors" + "os" + "regexp" +) + +var ( + ParseEnv bool = false + ParseBacktick bool = false +) + +var envRe = regexp.MustCompile(`\$({[a-zA-Z0-9_]+}|[a-zA-Z0-9_]+)`) + +func isSpace(r rune) bool { + switch r { + case ' ', '\t', '\r', '\n': + return true + } + return false +} + +func replaceEnv(s string) string { + return envRe.ReplaceAllStringFunc(s, func(s string) string { + s = s[1:] + if s[0] == '{' { + s = s[1 : len(s)-1] + } + return os.Getenv(s) + }) +} + +type Parser struct { + ParseEnv bool + ParseBacktick bool + Position int +} + +func NewParser() *Parser { + return &Parser{ParseEnv, ParseBacktick, 0} +} + +func (p *Parser) Parse(line string) ([]string, error) { + args := []string{} + buf := "" + var escaped, doubleQuoted, singleQuoted, backQuote, dollarQuote bool + backtick := "" + + pos := -1 + got := false + +loop: + for i, r := range line { + if escaped { + buf += string(r) + escaped = false + continue + } + + if r == '\\' { + if singleQuoted { + buf += string(r) + } else { + escaped = true + } + continue + } + + if isSpace(r) { + if singleQuoted || doubleQuoted || backQuote || dollarQuote { + buf += string(r) + backtick += string(r) + } else if got { + if p.ParseEnv { + buf = replaceEnv(buf) + } + args = append(args, buf) + buf = "" + got = false + } + continue + } + + switch r { + case '`': + if !singleQuoted && !doubleQuoted && !dollarQuote { + if p.ParseBacktick { + if backQuote { + out, err := shellRun(backtick) + if err != nil { + return nil, err + } + buf = out + } + backtick = "" + backQuote = !backQuote + continue + } + backtick = "" + backQuote = !backQuote + } + case ')': + if !singleQuoted && !doubleQuoted && !backQuote { + if p.ParseBacktick { + if dollarQuote { + out, err := shellRun(backtick) + if err != nil { + return nil, err + } + buf = out + } + backtick = "" + dollarQuote = !dollarQuote + continue + } + backtick = "" + dollarQuote = !dollarQuote + } + case '(': + if !singleQuoted && !doubleQuoted && !backQuote { + if !dollarQuote && len(buf) > 0 && buf == "$" { + dollarQuote = true + buf += "(" + continue + } else { + return nil, errors.New("invalid command line string") + } + } + case '"': + if !singleQuoted && !dollarQuote { + doubleQuoted = !doubleQuoted + continue + } + case '\'': + if !doubleQuoted && !dollarQuote { + singleQuoted = !singleQuoted + continue + } + case ';', '&', '|', '<', '>': + if !(escaped || singleQuoted || doubleQuoted || backQuote) { + if r == '>' && len(buf) > 0 { + if c := buf[0]; '0' <= c && c <= '9' { + i -= 1 + got = false + } + } + pos = i + break loop + } + } + + got = true + buf += string(r) + if backQuote || dollarQuote { + backtick += string(r) + } + } + + if got { + if p.ParseEnv { + buf = replaceEnv(buf) + } + args = append(args, buf) + } + + if escaped || singleQuoted || doubleQuoted || backQuote || dollarQuote { + return nil, errors.New("invalid command line string") + } + + p.Position = pos + + return args, nil +} + +func Parse(line string) ([]string, error) { + return NewParser().Parse(line) +} diff --git a/vendor/github.com/mattn/go-shellwords/util_go15.go b/vendor/github.com/mattn/go-shellwords/util_go15.go new file mode 100644 index 0000000000..180f00f0bd --- /dev/null +++ b/vendor/github.com/mattn/go-shellwords/util_go15.go @@ -0,0 +1,24 @@ +// +build !go1.6 + +package shellwords + +import ( + "os" + "os/exec" + "runtime" + "strings" +) + +func shellRun(line string) (string, error) { + var b []byte + var err error + if runtime.GOOS == "windows" { + b, err = exec.Command(os.Getenv("COMSPEC"), "/c", line).Output() + } else { + b, err = exec.Command(os.Getenv("SHELL"), "-c", line).Output() + } + if err != nil { + return "", err + } + return strings.TrimSpace(string(b)), nil +} diff --git a/vendor/github.com/mattn/go-shellwords/util_posix.go b/vendor/github.com/mattn/go-shellwords/util_posix.go new file mode 100644 index 0000000000..eaf1011d60 --- /dev/null +++ b/vendor/github.com/mattn/go-shellwords/util_posix.go @@ -0,0 +1,22 @@ +// +build !windows,go1.6 + +package shellwords + +import ( + "errors" + "os" + "os/exec" + "strings" +) + +func shellRun(line string) (string, error) { + shell := os.Getenv("SHELL") + b, err := exec.Command(shell, "-c", line).Output() + if err != nil { + if eerr, ok := err.(*exec.ExitError); ok { + b = eerr.Stderr + } + return "", errors.New(err.Error() + ":" + string(b)) + } + return strings.TrimSpace(string(b)), nil +} diff --git a/vendor/github.com/mattn/go-shellwords/util_windows.go b/vendor/github.com/mattn/go-shellwords/util_windows.go new file mode 100644 index 0000000000..e46f89a1fe --- /dev/null +++ b/vendor/github.com/mattn/go-shellwords/util_windows.go @@ -0,0 +1,22 @@ +// +build windows,go1.6 + +package shellwords + +import ( + "errors" + "os" + "os/exec" + "strings" +) + +func shellRun(line string) (string, error) { + shell := os.Getenv("COMSPEC") + b, err := exec.Command(shell, "/c", line).Output() + if err != nil { + if eerr, ok := err.(*exec.ExitError); ok { + b = eerr.Stderr + } + return "", errors.New(err.Error() + ":" + string(b)) + } + return strings.TrimSpace(string(b)), nil +} diff --git a/vendor/google.golang.org/grpc/BUILD b/vendor/google.golang.org/grpc/BUILD index b266ac7de5..99e7a8d89d 100644 --- a/vendor/google.golang.org/grpc/BUILD +++ b/vendor/google.golang.org/grpc/BUILD @@ -63,7 +63,7 @@ filegroup( "//vendor/google.golang.org/grpc/codes:all-srcs", "//vendor/google.golang.org/grpc/connectivity:all-srcs", "//vendor/google.golang.org/grpc/credentials:all-srcs", - "//vendor/google.golang.org/grpc/grpclb/grpc_lb_v1:all-srcs", + "//vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages:all-srcs", "//vendor/google.golang.org/grpc/grpclog:all-srcs", "//vendor/google.golang.org/grpc/health/grpc_health_v1:all-srcs", "//vendor/google.golang.org/grpc/internal:all-srcs", diff --git a/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/BUILD b/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/BUILD deleted file mode 100644 index 35716e585b..0000000000 --- a/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/BUILD +++ /dev/null @@ -1,25 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["doc.go"], - importpath = "google.golang.org/grpc/grpclb/grpc_lb_v1", - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/messages:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/doc.go b/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/doc.go deleted file mode 100644 index aba962840c..0000000000 --- a/vendor/google.golang.org/grpc/grpclb/grpc_lb_v1/doc.go +++ /dev/null @@ -1,21 +0,0 @@ -/* - * - * Copyright 2017 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// Package grpc_lb_v1 is the parent package of all gRPC loadbalancer -// message and service protobuf definitions. -package grpc_lb_v1 From 4afcccd225756eaf5393e37b9176213c10d8c90b Mon Sep 17 00:00:00 2001 From: David Ashpole Date: Tue, 5 Jun 2018 17:12:56 -0700 Subject: [PATCH 2/2] disable process scheduler metrics --- pkg/kubelet/cadvisor/cadvisor_linux.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/kubelet/cadvisor/cadvisor_linux.go b/pkg/kubelet/cadvisor/cadvisor_linux.go index ffc2b0417b..6418beb187 100644 --- a/pkg/kubelet/cadvisor/cadvisor_linux.go +++ b/pkg/kubelet/cadvisor/cadvisor_linux.go @@ -109,9 +109,10 @@ func New(address string, port uint, imageFsInfoProvider ImageFsInfoProvider, roo sysFs := sysfs.NewRealSysFs() ignoreMetrics := cadvisormetrics.MetricSet{ - cadvisormetrics.NetworkTcpUsageMetrics: struct{}{}, - cadvisormetrics.NetworkUdpUsageMetrics: struct{}{}, - cadvisormetrics.PerCpuUsageMetrics: struct{}{}, + cadvisormetrics.NetworkTcpUsageMetrics: struct{}{}, + cadvisormetrics.NetworkUdpUsageMetrics: struct{}{}, + cadvisormetrics.PerCpuUsageMetrics: struct{}{}, + cadvisormetrics.ProcessSchedulerMetrics: struct{}{}, } if !usingLegacyStats { ignoreMetrics[cadvisormetrics.DiskUsageMetrics] = struct{}{}