From cbb7ca8390415511013609c71059f9a9d793f38c Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Mon, 13 Jul 2020 20:56:47 +0300 Subject: [PATCH] refactor: merge osd into machined This merges `osd` API into `machined`. API was copied from `osd` into `machined`, and `osd` API was deprecated. For backwards compatibility, `machined` still implements `osd` API, so older Talos API clients can still talk to the node without changes. Docs were updated. No functional changes. Signed-off-by: Andrey Smirnov --- .conform.yaml | 1 - Dockerfile | 23 +- api/machine/machine.pb.go | 2561 ++++++++++++++++- api/machine/machine.proto | 161 ++ api/os/os.pb.go | 2183 +------------- api/os/os.proto | 172 +- cmd/talosctl/cmd/talos/containers.go | 4 +- cmd/talosctl/cmd/talos/memory.go | 6 +- cmd/talosctl/cmd/talos/processes.go | 14 +- cmd/talosctl/cmd/talos/stats.go | 4 +- docs/website/content/v0.6.en.json | 4 - .../content/v0.6/en/components/apid.md | 8 +- .../content/v0.6/en/components/machined.md | 1 - .../content/v0.6/en/components/osctl.md | 2 +- .../website/content/v0.6/en/components/osd.md | 20 - .../content/v0.6/en/components/overview.md | 1 - .../content/v0.6/en/configuration/overview.md | 2 +- .../content/v0.6/en/guides/cloud/azure.md | 4 +- .../en/guides/getting-started/talosctl.md | 2 - internal/app/apid/main.go | 1 + .../internal/server/v1alpha1/osd_compat.go | 19 + .../server/v1alpha1/v1alpha1_server.go | 331 ++- .../v1alpha1/v1alpha1_sequencer_tasks.go | 1 - .../runner/containerd/containerd_test.go | 10 +- .../app/machined/pkg/system/services/osd.go | 143 - .../machined/pkg/system/services/osd_test.go | 18 - .../app/machined/pkg/system/system_test.go | 2 +- internal/app/osd/internal/reg/reg.go | 379 --- internal/app/osd/internal/reg/reg_test.go | 5 - internal/app/osd/main.go | 32 - internal/app/routerd/main.go | 5 +- internal/integration/api/logs.go | 6 +- internal/integration/cli/containers.go | 2 +- internal/integration/cli/services.go | 6 +- internal/integration/cli/stats.go | 2 +- pkg/client/client.go | 38 +- pkg/constants/constants.go | 3 - 37 files changed, 3093 insertions(+), 3083 deletions(-) delete mode 100644 docs/website/content/v0.6/en/components/osd.md create mode 100644 internal/app/machined/internal/server/v1alpha1/osd_compat.go delete mode 100644 internal/app/machined/pkg/system/services/osd.go delete mode 100644 internal/app/machined/pkg/system/services/osd_test.go delete mode 100644 internal/app/osd/internal/reg/reg.go delete mode 100644 internal/app/osd/internal/reg/reg_test.go delete mode 100644 internal/app/osd/main.go diff --git a/.conform.yaml b/.conform.yaml index e62a310d2..137d096ba 100644 --- a/.conform.yaml +++ b/.conform.yaml @@ -28,7 +28,6 @@ policies: - networkd - timed - talosctl - - osd - trustd - routerd - talosctl diff --git a/Dockerfile b/Dockerfile index 6e67c59b3..32f688d56 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,8 +42,6 @@ COPY ./api/common/common.proto /api/common/common.proto RUN protoc -I/api --go_out=plugins=grpc,paths=source_relative:/api common/common.proto COPY ./api/health/health.proto /api/health/health.proto RUN protoc -I/api --go_out=plugins=grpc,paths=source_relative:/api health/health.proto -COPY ./api/os/os.proto /api/os/os.proto -RUN protoc -I/api --go_out=plugins=grpc,paths=source_relative:/api os/os.proto COPY ./api/security/security.proto /api/security/security.proto RUN protoc -I/api --go_out=plugins=grpc,paths=source_relative:/api security/security.proto COPY ./api/machine/machine.proto /api/machine/machine.proto @@ -52,6 +50,8 @@ COPY ./api/time/time.proto /api/time/time.proto RUN protoc -I/api --go_out=plugins=grpc,paths=source_relative:/api time/time.proto COPY ./api/network/network.proto /api/network/network.proto RUN protoc -I/api --go_out=plugins=grpc,paths=source_relative:/api network/network.proto +COPY ./api/os/os.proto /api/os/os.proto +RUN protoc -I/api --go_out=plugins=grpc,paths=source_relative:/api os/os.proto # Gofumports generated files to adjust import order RUN gofumports -w -local github.com/talos-systems/talos /api/ @@ -141,24 +141,6 @@ WORKDIR /scratch RUN printf "FROM scratch\nCOPY ./apid /apid\nENTRYPOINT [\"/apid\"]" > Dockerfile RUN --security=insecure img build --tag ${USERNAME}/apid:${TAG} --output type=docker,dest=/apid.tar --no-console . -# The osd target builds the osd image. - -FROM base AS osd-build -ARG SHA -ARG TAG -ARG VERSION_PKG="github.com/talos-systems/talos/pkg/version" -WORKDIR /src/internal/app/osd -RUN --mount=type=cache,target=/.cache/go-build go build -ldflags "-s -w -X ${VERSION_PKG}.Name=Server -X ${VERSION_PKG}.SHA=${SHA} -X ${VERSION_PKG}.Tag=${TAG}" -o /osd -RUN chmod +x /osd - -FROM base AS osd-image -ARG TAG -ARG USERNAME -COPY --from=osd-build /osd /scratch/osd -WORKDIR /scratch -RUN printf "FROM scratch\nCOPY ./osd /osd\nENTRYPOINT [\"/osd\"]" > Dockerfile -RUN --security=insecure img build --tag ${USERNAME}/osd:${TAG} --output type=docker,dest=/osd.tar --no-console . - # The trustd target builds the trustd image. FROM base AS trustd-build @@ -320,7 +302,6 @@ COPY --from=machined /machined /rootfs/sbin/init COPY --from=apid-image /apid.tar /rootfs/usr/images/ COPY --from=bootkube-image /bootkube.tar /rootfs/usr/images/ COPY --from=timed-image /timed.tar /rootfs/usr/images/ -COPY --from=osd-image /osd.tar /rootfs/usr/images/ COPY --from=trustd-image /trustd.tar /rootfs/usr/images/ COPY --from=networkd-image /networkd.tar /rootfs/usr/images/ COPY --from=routerd-image /routerd.tar /rootfs/usr/images/ diff --git a/api/machine/machine.pb.go b/api/machine/machine.pb.go index b55b0e769..048dae518 100644 --- a/api/machine/machine.pb.go +++ b/api/machine/machine.pb.go @@ -3351,6 +3351,1511 @@ func (x *RollbackResponse) GetMessages() []*Rollback { return nil } +type ContainersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + // driver might be default "containerd" or "cri" + Driver common.ContainerDriver `protobuf:"varint,2,opt,name=driver,proto3,enum=common.ContainerDriver" json:"driver,omitempty"` +} + +func (x *ContainersRequest) Reset() { + *x = ContainersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContainersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContainersRequest) ProtoMessage() {} + +func (x *ContainersRequest) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ContainersRequest.ProtoReflect.Descriptor instead. +func (*ContainersRequest) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{56} +} + +func (x *ContainersRequest) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *ContainersRequest) GetDriver() common.ContainerDriver { + if x != nil { + return x.Driver + } + return common.ContainerDriver_CONTAINERD +} + +// The messages message containing the requested containers. +type ContainerInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + Image string `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"` + Pid uint32 `protobuf:"varint,4,opt,name=pid,proto3" json:"pid,omitempty"` + Status string `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` + PodId string `protobuf:"bytes,6,opt,name=pod_id,json=podId,proto3" json:"pod_id,omitempty"` + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *ContainerInfo) Reset() { + *x = ContainerInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContainerInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContainerInfo) ProtoMessage() {} + +func (x *ContainerInfo) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ContainerInfo.ProtoReflect.Descriptor instead. +func (*ContainerInfo) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{57} +} + +func (x *ContainerInfo) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *ContainerInfo) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ContainerInfo) GetImage() string { + if x != nil { + return x.Image + } + return "" +} + +func (x *ContainerInfo) GetPid() uint32 { + if x != nil { + return x.Pid + } + return 0 +} + +func (x *ContainerInfo) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *ContainerInfo) GetPodId() string { + if x != nil { + return x.PodId + } + return "" +} + +func (x *ContainerInfo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The messages message containing the requested containers. +type Container struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Containers []*ContainerInfo `protobuf:"bytes,2,rep,name=containers,proto3" json:"containers,omitempty"` +} + +func (x *Container) Reset() { + *x = Container{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Container) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Container) ProtoMessage() {} + +func (x *Container) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Container.ProtoReflect.Descriptor instead. +func (*Container) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{58} +} + +func (x *Container) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Container) GetContainers() []*ContainerInfo { + if x != nil { + return x.Containers + } + return nil +} + +type ContainersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*Container `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *ContainersResponse) Reset() { + *x = ContainersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContainersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContainersResponse) ProtoMessage() {} + +func (x *ContainersResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ContainersResponse.ProtoReflect.Descriptor instead. +func (*ContainersResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{59} +} + +func (x *ContainersResponse) GetMessages() []*Container { + if x != nil { + return x.Messages + } + return nil +} + +// dmesg +type DmesgRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Follow bool `protobuf:"varint,1,opt,name=follow,proto3" json:"follow,omitempty"` + Tail bool `protobuf:"varint,2,opt,name=tail,proto3" json:"tail,omitempty"` +} + +func (x *DmesgRequest) Reset() { + *x = DmesgRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DmesgRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DmesgRequest) ProtoMessage() {} + +func (x *DmesgRequest) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DmesgRequest.ProtoReflect.Descriptor instead. +func (*DmesgRequest) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{60} +} + +func (x *DmesgRequest) GetFollow() bool { + if x != nil { + return x.Follow + } + return false +} + +func (x *DmesgRequest) GetTail() bool { + if x != nil { + return x.Tail + } + return false +} + +// rpc processes +type ProcessesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ProcessesRequest) Reset() { + *x = ProcessesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProcessesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProcessesRequest) ProtoMessage() {} + +func (x *ProcessesRequest) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProcessesRequest.ProtoReflect.Descriptor instead. +func (*ProcessesRequest) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{61} +} + +type ProcessesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*Process `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *ProcessesResponse) Reset() { + *x = ProcessesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProcessesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProcessesResponse) ProtoMessage() {} + +func (x *ProcessesResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProcessesResponse.ProtoReflect.Descriptor instead. +func (*ProcessesResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{62} +} + +func (x *ProcessesResponse) GetMessages() []*Process { + if x != nil { + return x.Messages + } + return nil +} + +type Process struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Processes []*ProcessInfo `protobuf:"bytes,2,rep,name=processes,proto3" json:"processes,omitempty"` +} + +func (x *Process) Reset() { + *x = Process{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Process) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Process) ProtoMessage() {} + +func (x *Process) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Process.ProtoReflect.Descriptor instead. +func (*Process) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{63} +} + +func (x *Process) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Process) GetProcesses() []*ProcessInfo { + if x != nil { + return x.Processes + } + return nil +} + +type ProcessInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pid int32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"` + Ppid int32 `protobuf:"varint,2,opt,name=ppid,proto3" json:"ppid,omitempty"` + State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` + Threads int32 `protobuf:"varint,4,opt,name=threads,proto3" json:"threads,omitempty"` + CpuTime float64 `protobuf:"fixed64,5,opt,name=cpu_time,json=cpuTime,proto3" json:"cpu_time,omitempty"` + VirtualMemory uint64 `protobuf:"varint,6,opt,name=virtual_memory,json=virtualMemory,proto3" json:"virtual_memory,omitempty"` + ResidentMemory uint64 `protobuf:"varint,7,opt,name=resident_memory,json=residentMemory,proto3" json:"resident_memory,omitempty"` + Command string `protobuf:"bytes,8,opt,name=command,proto3" json:"command,omitempty"` + Executable string `protobuf:"bytes,9,opt,name=executable,proto3" json:"executable,omitempty"` + Args string `protobuf:"bytes,10,opt,name=args,proto3" json:"args,omitempty"` +} + +func (x *ProcessInfo) Reset() { + *x = ProcessInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProcessInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProcessInfo) ProtoMessage() {} + +func (x *ProcessInfo) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProcessInfo.ProtoReflect.Descriptor instead. +func (*ProcessInfo) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{64} +} + +func (x *ProcessInfo) GetPid() int32 { + if x != nil { + return x.Pid + } + return 0 +} + +func (x *ProcessInfo) GetPpid() int32 { + if x != nil { + return x.Ppid + } + return 0 +} + +func (x *ProcessInfo) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *ProcessInfo) GetThreads() int32 { + if x != nil { + return x.Threads + } + return 0 +} + +func (x *ProcessInfo) GetCpuTime() float64 { + if x != nil { + return x.CpuTime + } + return 0 +} + +func (x *ProcessInfo) GetVirtualMemory() uint64 { + if x != nil { + return x.VirtualMemory + } + return 0 +} + +func (x *ProcessInfo) GetResidentMemory() uint64 { + if x != nil { + return x.ResidentMemory + } + return 0 +} + +func (x *ProcessInfo) GetCommand() string { + if x != nil { + return x.Command + } + return "" +} + +func (x *ProcessInfo) GetExecutable() string { + if x != nil { + return x.Executable + } + return "" +} + +func (x *ProcessInfo) GetArgs() string { + if x != nil { + return x.Args + } + return "" +} + +// rpc restart +// The request message containing the process to restart. +type RestartRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // driver might be default "containerd" or "cri" + Driver common.ContainerDriver `protobuf:"varint,3,opt,name=driver,proto3,enum=common.ContainerDriver" json:"driver,omitempty"` +} + +func (x *RestartRequest) Reset() { + *x = RestartRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RestartRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestartRequest) ProtoMessage() {} + +func (x *RestartRequest) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RestartRequest.ProtoReflect.Descriptor instead. +func (*RestartRequest) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{65} +} + +func (x *RestartRequest) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *RestartRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *RestartRequest) GetDriver() common.ContainerDriver { + if x != nil { + return x.Driver + } + return common.ContainerDriver_CONTAINERD +} + +type Restart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (x *Restart) Reset() { + *x = Restart{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Restart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Restart) ProtoMessage() {} + +func (x *Restart) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Restart.ProtoReflect.Descriptor instead. +func (*Restart) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{66} +} + +func (x *Restart) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +// The messages message containing the restart status. +type RestartResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*Restart `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *RestartResponse) Reset() { + *x = RestartResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RestartResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestartResponse) ProtoMessage() {} + +func (x *RestartResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RestartResponse.ProtoReflect.Descriptor instead. +func (*RestartResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{67} +} + +func (x *RestartResponse) GetMessages() []*Restart { + if x != nil { + return x.Messages + } + return nil +} + +// The request message containing the containerd namespace. +type StatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + // driver might be default "containerd" or "cri" + Driver common.ContainerDriver `protobuf:"varint,2,opt,name=driver,proto3,enum=common.ContainerDriver" json:"driver,omitempty"` +} + +func (x *StatsRequest) Reset() { + *x = StatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatsRequest) ProtoMessage() {} + +func (x *StatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatsRequest.ProtoReflect.Descriptor instead. +func (*StatsRequest) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{68} +} + +func (x *StatsRequest) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *StatsRequest) GetDriver() common.ContainerDriver { + if x != nil { + return x.Driver + } + return common.ContainerDriver_CONTAINERD +} + +// The messages message containing the requested stats. +type Stats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Stats []*Stat `protobuf:"bytes,2,rep,name=stats,proto3" json:"stats,omitempty"` +} + +func (x *Stats) Reset() { + *x = Stats{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Stats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Stats) ProtoMessage() {} + +func (x *Stats) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Stats.ProtoReflect.Descriptor instead. +func (*Stats) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{69} +} + +func (x *Stats) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Stats) GetStats() []*Stat { + if x != nil { + return x.Stats + } + return nil +} + +type StatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*Stats `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *StatsResponse) Reset() { + *x = StatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatsResponse) ProtoMessage() {} + +func (x *StatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatsResponse.ProtoReflect.Descriptor instead. +func (*StatsResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{70} +} + +func (x *StatsResponse) GetMessages() []*Stats { + if x != nil { + return x.Messages + } + return nil +} + +// The messages message containing the requested stat. +type Stat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + MemoryUsage uint64 `protobuf:"varint,4,opt,name=memory_usage,json=memoryUsage,proto3" json:"memory_usage,omitempty"` + CpuUsage uint64 `protobuf:"varint,5,opt,name=cpu_usage,json=cpuUsage,proto3" json:"cpu_usage,omitempty"` + PodId string `protobuf:"bytes,6,opt,name=pod_id,json=podId,proto3" json:"pod_id,omitempty"` + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *Stat) Reset() { + *x = Stat{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Stat) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Stat) ProtoMessage() {} + +func (x *Stat) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Stat.ProtoReflect.Descriptor instead. +func (*Stat) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{71} +} + +func (x *Stat) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *Stat) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Stat) GetMemoryUsage() uint64 { + if x != nil { + return x.MemoryUsage + } + return 0 +} + +func (x *Stat) GetCpuUsage() uint64 { + if x != nil { + return x.CpuUsage + } + return 0 +} + +func (x *Stat) GetPodId() string { + if x != nil { + return x.PodId + } + return "" +} + +func (x *Stat) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type Memory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Meminfo *MemInfo `protobuf:"bytes,2,opt,name=meminfo,proto3" json:"meminfo,omitempty"` +} + +func (x *Memory) Reset() { + *x = Memory{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Memory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Memory) ProtoMessage() {} + +func (x *Memory) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Memory.ProtoReflect.Descriptor instead. +func (*Memory) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{72} +} + +func (x *Memory) GetMetadata() *common.Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Memory) GetMeminfo() *MemInfo { + if x != nil { + return x.Meminfo + } + return nil +} + +type MemoryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Messages []*Memory `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` +} + +func (x *MemoryResponse) Reset() { + *x = MemoryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MemoryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MemoryResponse) ProtoMessage() {} + +func (x *MemoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MemoryResponse.ProtoReflect.Descriptor instead. +func (*MemoryResponse) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{73} +} + +func (x *MemoryResponse) GetMessages() []*Memory { + if x != nil { + return x.Messages + } + return nil +} + +type MemInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Memtotal uint64 `protobuf:"varint,1,opt,name=memtotal,proto3" json:"memtotal,omitempty"` + Memfree uint64 `protobuf:"varint,2,opt,name=memfree,proto3" json:"memfree,omitempty"` + Memavailable uint64 `protobuf:"varint,3,opt,name=memavailable,proto3" json:"memavailable,omitempty"` + Buffers uint64 `protobuf:"varint,4,opt,name=buffers,proto3" json:"buffers,omitempty"` + Cached uint64 `protobuf:"varint,5,opt,name=cached,proto3" json:"cached,omitempty"` + Swapcached uint64 `protobuf:"varint,6,opt,name=swapcached,proto3" json:"swapcached,omitempty"` + Active uint64 `protobuf:"varint,7,opt,name=active,proto3" json:"active,omitempty"` + Inactive uint64 `protobuf:"varint,8,opt,name=inactive,proto3" json:"inactive,omitempty"` + Activeanon uint64 `protobuf:"varint,9,opt,name=activeanon,proto3" json:"activeanon,omitempty"` + Inactiveanon uint64 `protobuf:"varint,10,opt,name=inactiveanon,proto3" json:"inactiveanon,omitempty"` + Activefile uint64 `protobuf:"varint,11,opt,name=activefile,proto3" json:"activefile,omitempty"` + Inactivefile uint64 `protobuf:"varint,12,opt,name=inactivefile,proto3" json:"inactivefile,omitempty"` + Unevictable uint64 `protobuf:"varint,13,opt,name=unevictable,proto3" json:"unevictable,omitempty"` + Mlocked uint64 `protobuf:"varint,14,opt,name=mlocked,proto3" json:"mlocked,omitempty"` + Swaptotal uint64 `protobuf:"varint,15,opt,name=swaptotal,proto3" json:"swaptotal,omitempty"` + Swapfree uint64 `protobuf:"varint,16,opt,name=swapfree,proto3" json:"swapfree,omitempty"` + Dirty uint64 `protobuf:"varint,17,opt,name=dirty,proto3" json:"dirty,omitempty"` + Writeback uint64 `protobuf:"varint,18,opt,name=writeback,proto3" json:"writeback,omitempty"` + Anonpages uint64 `protobuf:"varint,19,opt,name=anonpages,proto3" json:"anonpages,omitempty"` + Mapped uint64 `protobuf:"varint,20,opt,name=mapped,proto3" json:"mapped,omitempty"` + Shmem uint64 `protobuf:"varint,21,opt,name=shmem,proto3" json:"shmem,omitempty"` + Slab uint64 `protobuf:"varint,22,opt,name=slab,proto3" json:"slab,omitempty"` + Sreclaimable uint64 `protobuf:"varint,23,opt,name=sreclaimable,proto3" json:"sreclaimable,omitempty"` + Sunreclaim uint64 `protobuf:"varint,24,opt,name=sunreclaim,proto3" json:"sunreclaim,omitempty"` + Kernelstack uint64 `protobuf:"varint,25,opt,name=kernelstack,proto3" json:"kernelstack,omitempty"` + Pagetables uint64 `protobuf:"varint,26,opt,name=pagetables,proto3" json:"pagetables,omitempty"` + Nfsunstable uint64 `protobuf:"varint,27,opt,name=nfsunstable,proto3" json:"nfsunstable,omitempty"` + Bounce uint64 `protobuf:"varint,28,opt,name=bounce,proto3" json:"bounce,omitempty"` + Writebacktmp uint64 `protobuf:"varint,29,opt,name=writebacktmp,proto3" json:"writebacktmp,omitempty"` + Commitlimit uint64 `protobuf:"varint,30,opt,name=commitlimit,proto3" json:"commitlimit,omitempty"` + Committedas uint64 `protobuf:"varint,31,opt,name=committedas,proto3" json:"committedas,omitempty"` + Vmalloctotal uint64 `protobuf:"varint,32,opt,name=vmalloctotal,proto3" json:"vmalloctotal,omitempty"` + Vmallocused uint64 `protobuf:"varint,33,opt,name=vmallocused,proto3" json:"vmallocused,omitempty"` + Vmallocchunk uint64 `protobuf:"varint,34,opt,name=vmallocchunk,proto3" json:"vmallocchunk,omitempty"` + Hardwarecorrupted uint64 `protobuf:"varint,35,opt,name=hardwarecorrupted,proto3" json:"hardwarecorrupted,omitempty"` + Anonhugepages uint64 `protobuf:"varint,36,opt,name=anonhugepages,proto3" json:"anonhugepages,omitempty"` + Shmemhugepages uint64 `protobuf:"varint,37,opt,name=shmemhugepages,proto3" json:"shmemhugepages,omitempty"` + Shmempmdmapped uint64 `protobuf:"varint,38,opt,name=shmempmdmapped,proto3" json:"shmempmdmapped,omitempty"` + Cmatotal uint64 `protobuf:"varint,39,opt,name=cmatotal,proto3" json:"cmatotal,omitempty"` + Cmafree uint64 `protobuf:"varint,40,opt,name=cmafree,proto3" json:"cmafree,omitempty"` + Hugepagestotal uint64 `protobuf:"varint,41,opt,name=hugepagestotal,proto3" json:"hugepagestotal,omitempty"` + Hugepagesfree uint64 `protobuf:"varint,42,opt,name=hugepagesfree,proto3" json:"hugepagesfree,omitempty"` + Hugepagesrsvd uint64 `protobuf:"varint,43,opt,name=hugepagesrsvd,proto3" json:"hugepagesrsvd,omitempty"` + Hugepagessurp uint64 `protobuf:"varint,44,opt,name=hugepagessurp,proto3" json:"hugepagessurp,omitempty"` + Hugepagesize uint64 `protobuf:"varint,45,opt,name=hugepagesize,proto3" json:"hugepagesize,omitempty"` + Directmap4K uint64 `protobuf:"varint,46,opt,name=directmap4k,proto3" json:"directmap4k,omitempty"` + Directmap2M uint64 `protobuf:"varint,47,opt,name=directmap2m,proto3" json:"directmap2m,omitempty"` + Directmap1G uint64 `protobuf:"varint,48,opt,name=directmap1g,proto3" json:"directmap1g,omitempty"` +} + +func (x *MemInfo) Reset() { + *x = MemInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_machine_machine_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MemInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MemInfo) ProtoMessage() {} + +func (x *MemInfo) ProtoReflect() protoreflect.Message { + mi := &file_machine_machine_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MemInfo.ProtoReflect.Descriptor instead. +func (*MemInfo) Descriptor() ([]byte, []int) { + return file_machine_machine_proto_rawDescGZIP(), []int{74} +} + +func (x *MemInfo) GetMemtotal() uint64 { + if x != nil { + return x.Memtotal + } + return 0 +} + +func (x *MemInfo) GetMemfree() uint64 { + if x != nil { + return x.Memfree + } + return 0 +} + +func (x *MemInfo) GetMemavailable() uint64 { + if x != nil { + return x.Memavailable + } + return 0 +} + +func (x *MemInfo) GetBuffers() uint64 { + if x != nil { + return x.Buffers + } + return 0 +} + +func (x *MemInfo) GetCached() uint64 { + if x != nil { + return x.Cached + } + return 0 +} + +func (x *MemInfo) GetSwapcached() uint64 { + if x != nil { + return x.Swapcached + } + return 0 +} + +func (x *MemInfo) GetActive() uint64 { + if x != nil { + return x.Active + } + return 0 +} + +func (x *MemInfo) GetInactive() uint64 { + if x != nil { + return x.Inactive + } + return 0 +} + +func (x *MemInfo) GetActiveanon() uint64 { + if x != nil { + return x.Activeanon + } + return 0 +} + +func (x *MemInfo) GetInactiveanon() uint64 { + if x != nil { + return x.Inactiveanon + } + return 0 +} + +func (x *MemInfo) GetActivefile() uint64 { + if x != nil { + return x.Activefile + } + return 0 +} + +func (x *MemInfo) GetInactivefile() uint64 { + if x != nil { + return x.Inactivefile + } + return 0 +} + +func (x *MemInfo) GetUnevictable() uint64 { + if x != nil { + return x.Unevictable + } + return 0 +} + +func (x *MemInfo) GetMlocked() uint64 { + if x != nil { + return x.Mlocked + } + return 0 +} + +func (x *MemInfo) GetSwaptotal() uint64 { + if x != nil { + return x.Swaptotal + } + return 0 +} + +func (x *MemInfo) GetSwapfree() uint64 { + if x != nil { + return x.Swapfree + } + return 0 +} + +func (x *MemInfo) GetDirty() uint64 { + if x != nil { + return x.Dirty + } + return 0 +} + +func (x *MemInfo) GetWriteback() uint64 { + if x != nil { + return x.Writeback + } + return 0 +} + +func (x *MemInfo) GetAnonpages() uint64 { + if x != nil { + return x.Anonpages + } + return 0 +} + +func (x *MemInfo) GetMapped() uint64 { + if x != nil { + return x.Mapped + } + return 0 +} + +func (x *MemInfo) GetShmem() uint64 { + if x != nil { + return x.Shmem + } + return 0 +} + +func (x *MemInfo) GetSlab() uint64 { + if x != nil { + return x.Slab + } + return 0 +} + +func (x *MemInfo) GetSreclaimable() uint64 { + if x != nil { + return x.Sreclaimable + } + return 0 +} + +func (x *MemInfo) GetSunreclaim() uint64 { + if x != nil { + return x.Sunreclaim + } + return 0 +} + +func (x *MemInfo) GetKernelstack() uint64 { + if x != nil { + return x.Kernelstack + } + return 0 +} + +func (x *MemInfo) GetPagetables() uint64 { + if x != nil { + return x.Pagetables + } + return 0 +} + +func (x *MemInfo) GetNfsunstable() uint64 { + if x != nil { + return x.Nfsunstable + } + return 0 +} + +func (x *MemInfo) GetBounce() uint64 { + if x != nil { + return x.Bounce + } + return 0 +} + +func (x *MemInfo) GetWritebacktmp() uint64 { + if x != nil { + return x.Writebacktmp + } + return 0 +} + +func (x *MemInfo) GetCommitlimit() uint64 { + if x != nil { + return x.Commitlimit + } + return 0 +} + +func (x *MemInfo) GetCommittedas() uint64 { + if x != nil { + return x.Committedas + } + return 0 +} + +func (x *MemInfo) GetVmalloctotal() uint64 { + if x != nil { + return x.Vmalloctotal + } + return 0 +} + +func (x *MemInfo) GetVmallocused() uint64 { + if x != nil { + return x.Vmallocused + } + return 0 +} + +func (x *MemInfo) GetVmallocchunk() uint64 { + if x != nil { + return x.Vmallocchunk + } + return 0 +} + +func (x *MemInfo) GetHardwarecorrupted() uint64 { + if x != nil { + return x.Hardwarecorrupted + } + return 0 +} + +func (x *MemInfo) GetAnonhugepages() uint64 { + if x != nil { + return x.Anonhugepages + } + return 0 +} + +func (x *MemInfo) GetShmemhugepages() uint64 { + if x != nil { + return x.Shmemhugepages + } + return 0 +} + +func (x *MemInfo) GetShmempmdmapped() uint64 { + if x != nil { + return x.Shmempmdmapped + } + return 0 +} + +func (x *MemInfo) GetCmatotal() uint64 { + if x != nil { + return x.Cmatotal + } + return 0 +} + +func (x *MemInfo) GetCmafree() uint64 { + if x != nil { + return x.Cmafree + } + return 0 +} + +func (x *MemInfo) GetHugepagestotal() uint64 { + if x != nil { + return x.Hugepagestotal + } + return 0 +} + +func (x *MemInfo) GetHugepagesfree() uint64 { + if x != nil { + return x.Hugepagesfree + } + return 0 +} + +func (x *MemInfo) GetHugepagesrsvd() uint64 { + if x != nil { + return x.Hugepagesrsvd + } + return 0 +} + +func (x *MemInfo) GetHugepagessurp() uint64 { + if x != nil { + return x.Hugepagessurp + } + return 0 +} + +func (x *MemInfo) GetHugepagesize() uint64 { + if x != nil { + return x.Hugepagesize + } + return 0 +} + +func (x *MemInfo) GetDirectmap4K() uint64 { + if x != nil { + return x.Directmap4K + } + return 0 +} + +func (x *MemInfo) GetDirectmap2M() uint64 { + if x != nil { + return x.Directmap2M + } + return 0 +} + +func (x *MemInfo) GetDirectmap1G() uint64 { + if x != nil { + return x.Directmap1G + } + return 0 +} + var File_machine_machine_proto protoreflect.FileDescriptor var file_machine_machine_proto_rawDesc = []byte{ @@ -3660,85 +5165,318 @@ var file_machine_machine_proto_rawDesc = []byte{ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x08, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x32, 0x91, 0x09, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x74, - 0x73, 0x74, 0x72, 0x61, 0x70, 0x12, 0x19, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, - 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x73, - 0x74, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, - 0x43, 0x6f, 0x70, 0x79, 0x12, 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, - 0x6f, 0x70, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x32, 0x0a, 0x06, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x6d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x34, - 0x0a, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x62, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0xa8, 0x01, 0x0a, 0x0d, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x71, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x36, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x22, 0x44, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, + 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x3a, 0x0a, + 0x0c, 0x44, 0x6d, 0x65, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, + 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x12, 0x0a, 0x10, 0x50, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x41, 0x0a, + 0x11, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x22, 0x6b, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x9c, 0x02, + 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, + 0x03, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, + 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, + 0x61, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x70, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x63, 0x70, 0x75, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x4d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, + 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x6f, 0x0a, 0x0e, + 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x06, + 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0x37, 0x0a, + 0x07, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x3f, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x08, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x5d, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x06, + 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0x5a, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, + 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x22, 0x3b, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, + 0x9f, 0x01, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, + 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x70, + 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x62, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x65, + 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x3d, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x22, 0x8b, 0x0c, 0x0a, 0x07, 0x4d, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x65, 0x6d, 0x66, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, + 0x65, 0x6d, 0x66, 0x72, 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x65, + 0x6d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x62, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x77, 0x61, 0x70, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x61, 0x6e, 0x6f, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x61, 0x6e, 0x6f, 0x6e, + 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x61, 0x6e, 0x6f, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x61, 0x6e, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x66, 0x69, + 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x66, 0x69, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x65, 0x76, + 0x69, 0x63, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, + 0x6e, 0x65, 0x76, 0x69, 0x63, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6c, + 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x6c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x77, 0x61, 0x70, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x77, 0x61, 0x70, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x77, 0x61, 0x70, 0x66, 0x72, 0x65, 0x65, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x61, 0x70, 0x66, 0x72, 0x65, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x69, 0x72, 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x64, + 0x69, 0x72, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, + 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, + 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6e, 0x6f, 0x6e, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6e, 0x6f, 0x6e, 0x70, 0x61, 0x67, 0x65, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x6d, 0x65, + 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x68, 0x6d, 0x65, 0x6d, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6c, 0x61, 0x62, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, + 0x61, 0x62, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x72, 0x65, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x72, 0x65, 0x63, + 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x75, 0x6e, 0x72, + 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, + 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x66, 0x73, 0x75, + 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6e, + 0x66, 0x73, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, + 0x75, 0x6e, 0x63, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x62, 0x6f, 0x75, 0x6e, + 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x74, + 0x6d, 0x70, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, + 0x61, 0x63, 0x6b, 0x74, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x64, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x61, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x6d, + 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x20, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0c, 0x76, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x20, + 0x0a, 0x0b, 0x76, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x75, 0x73, 0x65, 0x64, 0x18, 0x21, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x76, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x75, 0x73, 0x65, 0x64, + 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x63, 0x68, 0x75, 0x6e, 0x6b, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x76, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x63, + 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x72, 0x75, 0x70, 0x74, 0x65, 0x64, 0x18, 0x23, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x11, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x72, 0x75, 0x70, 0x74, + 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6e, 0x6f, 0x6e, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, + 0x67, 0x65, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x61, 0x6e, 0x6f, 0x6e, 0x68, + 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x68, 0x6d, 0x65, + 0x6d, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0e, 0x73, 0x68, 0x6d, 0x65, 0x6d, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, + 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x68, 0x6d, 0x65, 0x6d, 0x70, 0x6d, 0x64, 0x6d, 0x61, 0x70, 0x70, + 0x65, 0x64, 0x18, 0x26, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x68, 0x6d, 0x65, 0x6d, 0x70, + 0x6d, 0x64, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6d, 0x61, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x27, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x6d, 0x61, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6d, 0x61, 0x66, 0x72, 0x65, 0x65, 0x18, + 0x28, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6d, 0x61, 0x66, 0x72, 0x65, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x18, 0x29, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, + 0x73, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, + 0x67, 0x65, 0x73, 0x66, 0x72, 0x65, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x68, + 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x66, 0x72, 0x65, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x72, 0x73, 0x76, 0x64, 0x18, 0x2b, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0d, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x72, 0x73, + 0x76, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x73, + 0x75, 0x72, 0x70, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x68, 0x75, 0x67, 0x65, 0x70, + 0x61, 0x67, 0x65, 0x73, 0x73, 0x75, 0x72, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x75, 0x67, 0x65, + 0x70, 0x61, 0x67, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x70, 0x34, 0x6b, 0x18, 0x2e, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x70, 0x34, 0x6b, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x70, 0x32, 0x6d, 0x18, 0x2f, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x70, 0x32, 0x6d, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x70, 0x31, 0x67, 0x18, + 0x30, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x70, + 0x31, 0x67, 0x32, 0xfa, 0x0b, 0x0a, 0x0e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, + 0x61, 0x70, 0x12, 0x19, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x42, 0x6f, 0x6f, + 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x2c, 0x0a, 0x04, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x2e, + 0x0a, 0x05, 0x44, 0x6d, 0x65, 0x73, 0x67, 0x12, 0x15, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x2e, 0x44, 0x6d, 0x65, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x32, + 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x0e, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x30, 0x01, 0x12, 0x34, 0x0a, 0x0a, 0x4b, 0x75, 0x62, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x2c, 0x0a, 0x04, 0x4c, + 0x6f, 0x67, 0x73, 0x12, 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3f, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, - 0x74, 0x61, 0x30, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x2e, 0x6d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x46, 0x69, 0x6c, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x30, 0x01, 0x12, 0x2c, 0x0a, 0x04, 0x4c, 0x6f, 0x67, 0x73, 0x12, - 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, - 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x06, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x14, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x06, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x52, 0x6f, 0x6c, - 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, - 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x19, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x52, 0x65, - 0x73, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x17, 0x2e, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x43, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1e, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3d, 0x0a, 0x08, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x68, - 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, - 0x0a, 0x07, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x55, 0x70, 0x67, - 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x4b, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, - 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0a, 0x4d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x41, 0x70, 0x69, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x2d, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x52, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x62, + 0x61, 0x63, 0x6b, 0x12, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x6f, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x52, 0x65, 0x73, 0x65, + 0x74, 0x12, 0x15, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3c, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, + 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, + 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1e, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, + 0x6f, 0x70, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, + 0x08, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x19, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x68, 0x75, 0x74, + 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x15, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, + 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x4b, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x61, + 0x70, 0x69, 0x42, 0x0a, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x41, 0x70, 0x69, 0x50, 0x01, + 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x61, 0x6c, + 0x6f, 0x73, 0x2d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x74, 0x61, 0x6c, 0x6f, 0x73, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3755,7 +5493,7 @@ func file_machine_machine_proto_rawDescGZIP() []byte { var ( file_machine_machine_proto_enumTypes = make([]protoimpl.EnumInfo, 5) - file_machine_machine_proto_msgTypes = make([]protoimpl.MessageInfo, 56) + file_machine_machine_proto_msgTypes = make([]protoimpl.MessageInfo, 75) file_machine_machine_proto_goTypes = []interface{}{ (SequenceEvent_Action)(0), // 0: machine.SequenceEvent.Action (PhaseEvent_Action)(0), // 1: machine.PhaseEvent.Action @@ -3818,105 +5556,153 @@ var ( (*RollbackRequest)(nil), // 58: machine.RollbackRequest (*Rollback)(nil), // 59: machine.Rollback (*RollbackResponse)(nil), // 60: machine.RollbackResponse - (*common.Metadata)(nil), // 61: common.Metadata - (*common.Error)(nil), // 62: common.Error - (*any.Any)(nil), // 63: google.protobuf.Any - (*timestamp.Timestamp)(nil), // 64: google.protobuf.Timestamp - (common.ContainerDriver)(0), // 65: common.ContainerDriver - (*empty.Empty)(nil), // 66: google.protobuf.Empty - (*common.Data)(nil), // 67: common.Data + (*ContainersRequest)(nil), // 61: machine.ContainersRequest + (*ContainerInfo)(nil), // 62: machine.ContainerInfo + (*Container)(nil), // 63: machine.Container + (*ContainersResponse)(nil), // 64: machine.ContainersResponse + (*DmesgRequest)(nil), // 65: machine.DmesgRequest + (*ProcessesRequest)(nil), // 66: machine.ProcessesRequest + (*ProcessesResponse)(nil), // 67: machine.ProcessesResponse + (*Process)(nil), // 68: machine.Process + (*ProcessInfo)(nil), // 69: machine.ProcessInfo + (*RestartRequest)(nil), // 70: machine.RestartRequest + (*Restart)(nil), // 71: machine.Restart + (*RestartResponse)(nil), // 72: machine.RestartResponse + (*StatsRequest)(nil), // 73: machine.StatsRequest + (*Stats)(nil), // 74: machine.Stats + (*StatsResponse)(nil), // 75: machine.StatsResponse + (*Stat)(nil), // 76: machine.Stat + (*Memory)(nil), // 77: machine.Memory + (*MemoryResponse)(nil), // 78: machine.MemoryResponse + (*MemInfo)(nil), // 79: machine.MemInfo + (*common.Metadata)(nil), // 80: common.Metadata + (*common.Error)(nil), // 81: common.Error + (*any.Any)(nil), // 82: google.protobuf.Any + (*timestamp.Timestamp)(nil), // 83: google.protobuf.Timestamp + (common.ContainerDriver)(0), // 84: common.ContainerDriver + (*empty.Empty)(nil), // 85: google.protobuf.Empty + (*common.Data)(nil), // 86: common.Data } ) var file_machine_machine_proto_depIdxs = []int32{ - 61, // 0: machine.Reboot.metadata:type_name -> common.Metadata + 80, // 0: machine.Reboot.metadata:type_name -> common.Metadata 5, // 1: machine.RebootResponse.messages:type_name -> machine.Reboot - 61, // 2: machine.Bootstrap.metadata:type_name -> common.Metadata + 80, // 2: machine.Bootstrap.metadata:type_name -> common.Metadata 8, // 3: machine.BootstrapResponse.messages:type_name -> machine.Bootstrap 0, // 4: machine.SequenceEvent.action:type_name -> machine.SequenceEvent.Action - 62, // 5: machine.SequenceEvent.error:type_name -> common.Error + 81, // 5: machine.SequenceEvent.error:type_name -> common.Error 1, // 6: machine.PhaseEvent.action:type_name -> machine.PhaseEvent.Action 2, // 7: machine.TaskEvent.action:type_name -> machine.TaskEvent.Action 3, // 8: machine.ServiceStateEvent.action:type_name -> machine.ServiceStateEvent.Action - 61, // 9: machine.Event.metadata:type_name -> common.Metadata - 63, // 10: machine.Event.data:type_name -> google.protobuf.Any - 61, // 11: machine.Reset.metadata:type_name -> common.Metadata + 80, // 9: machine.Event.metadata:type_name -> common.Metadata + 82, // 10: machine.Event.data:type_name -> google.protobuf.Any + 80, // 11: machine.Reset.metadata:type_name -> common.Metadata 17, // 12: machine.ResetResponse.messages:type_name -> machine.Reset 4, // 13: machine.RecoverRequest.source:type_name -> machine.RecoverRequest.Source - 61, // 14: machine.Recover.metadata:type_name -> common.Metadata + 80, // 14: machine.Recover.metadata:type_name -> common.Metadata 20, // 15: machine.RecoverResponse.messages:type_name -> machine.Recover - 61, // 16: machine.Shutdown.metadata:type_name -> common.Metadata + 80, // 16: machine.Shutdown.metadata:type_name -> common.Metadata 22, // 17: machine.ShutdownResponse.messages:type_name -> machine.Shutdown - 61, // 18: machine.Upgrade.metadata:type_name -> common.Metadata + 80, // 18: machine.Upgrade.metadata:type_name -> common.Metadata 25, // 19: machine.UpgradeResponse.messages:type_name -> machine.Upgrade - 61, // 20: machine.ServiceList.metadata:type_name -> common.Metadata + 80, // 20: machine.ServiceList.metadata:type_name -> common.Metadata 29, // 21: machine.ServiceList.services:type_name -> machine.ServiceInfo 27, // 22: machine.ServiceListResponse.messages:type_name -> machine.ServiceList 30, // 23: machine.ServiceInfo.events:type_name -> machine.ServiceEvents 32, // 24: machine.ServiceInfo.health:type_name -> machine.ServiceHealth 31, // 25: machine.ServiceEvents.events:type_name -> machine.ServiceEvent - 64, // 26: machine.ServiceEvent.ts:type_name -> google.protobuf.Timestamp - 64, // 27: machine.ServiceHealth.last_change:type_name -> google.protobuf.Timestamp - 61, // 28: machine.ServiceStart.metadata:type_name -> common.Metadata + 83, // 26: machine.ServiceEvent.ts:type_name -> google.protobuf.Timestamp + 83, // 27: machine.ServiceHealth.last_change:type_name -> google.protobuf.Timestamp + 80, // 28: machine.ServiceStart.metadata:type_name -> common.Metadata 34, // 29: machine.ServiceStartResponse.messages:type_name -> machine.ServiceStart - 61, // 30: machine.ServiceStop.metadata:type_name -> common.Metadata + 80, // 30: machine.ServiceStop.metadata:type_name -> common.Metadata 37, // 31: machine.ServiceStopResponse.messages:type_name -> machine.ServiceStop - 61, // 32: machine.ServiceRestart.metadata:type_name -> common.Metadata + 80, // 32: machine.ServiceRestart.metadata:type_name -> common.Metadata 40, // 33: machine.ServiceRestartResponse.messages:type_name -> machine.ServiceRestart - 61, // 34: machine.FileInfo.metadata:type_name -> common.Metadata - 61, // 35: machine.Mounts.metadata:type_name -> common.Metadata + 80, // 34: machine.FileInfo.metadata:type_name -> common.Metadata + 80, // 35: machine.Mounts.metadata:type_name -> common.Metadata 51, // 36: machine.Mounts.stats:type_name -> machine.MountStat 49, // 37: machine.MountsResponse.messages:type_name -> machine.Mounts - 61, // 38: machine.Version.metadata:type_name -> common.Metadata + 80, // 38: machine.Version.metadata:type_name -> common.Metadata 54, // 39: machine.Version.version:type_name -> machine.VersionInfo 55, // 40: machine.Version.platform:type_name -> machine.PlatformInfo 52, // 41: machine.VersionResponse.messages:type_name -> machine.Version - 65, // 42: machine.LogsRequest.driver:type_name -> common.ContainerDriver - 61, // 43: machine.Rollback.metadata:type_name -> common.Metadata + 84, // 42: machine.LogsRequest.driver:type_name -> common.ContainerDriver + 80, // 43: machine.Rollback.metadata:type_name -> common.Metadata 59, // 44: machine.RollbackResponse.messages:type_name -> machine.Rollback - 7, // 45: machine.MachineService.Bootstrap:input_type -> machine.BootstrapRequest - 46, // 46: machine.MachineService.Copy:input_type -> machine.CopyRequest - 14, // 47: machine.MachineService.Events:input_type -> machine.EventsRequest - 66, // 48: machine.MachineService.Kubeconfig:input_type -> google.protobuf.Empty - 47, // 49: machine.MachineService.List:input_type -> machine.ListRequest - 56, // 50: machine.MachineService.Logs:input_type -> machine.LogsRequest - 66, // 51: machine.MachineService.Mounts:input_type -> google.protobuf.Empty - 57, // 52: machine.MachineService.Read:input_type -> machine.ReadRequest - 66, // 53: machine.MachineService.Reboot:input_type -> google.protobuf.Empty - 58, // 54: machine.MachineService.Rollback:input_type -> machine.RollbackRequest - 16, // 55: machine.MachineService.Reset:input_type -> machine.ResetRequest - 19, // 56: machine.MachineService.Recover:input_type -> machine.RecoverRequest - 66, // 57: machine.MachineService.ServiceList:input_type -> google.protobuf.Empty - 39, // 58: machine.MachineService.ServiceRestart:input_type -> machine.ServiceRestartRequest - 33, // 59: machine.MachineService.ServiceStart:input_type -> machine.ServiceStartRequest - 36, // 60: machine.MachineService.ServiceStop:input_type -> machine.ServiceStopRequest - 66, // 61: machine.MachineService.Shutdown:input_type -> google.protobuf.Empty - 24, // 62: machine.MachineService.Upgrade:input_type -> machine.UpgradeRequest - 66, // 63: machine.MachineService.Version:input_type -> google.protobuf.Empty - 9, // 64: machine.MachineService.Bootstrap:output_type -> machine.BootstrapResponse - 67, // 65: machine.MachineService.Copy:output_type -> common.Data - 15, // 66: machine.MachineService.Events:output_type -> machine.Event - 67, // 67: machine.MachineService.Kubeconfig:output_type -> common.Data - 48, // 68: machine.MachineService.List:output_type -> machine.FileInfo - 67, // 69: machine.MachineService.Logs:output_type -> common.Data - 50, // 70: machine.MachineService.Mounts:output_type -> machine.MountsResponse - 67, // 71: machine.MachineService.Read:output_type -> common.Data - 6, // 72: machine.MachineService.Reboot:output_type -> machine.RebootResponse - 60, // 73: machine.MachineService.Rollback:output_type -> machine.RollbackResponse - 18, // 74: machine.MachineService.Reset:output_type -> machine.ResetResponse - 21, // 75: machine.MachineService.Recover:output_type -> machine.RecoverResponse - 28, // 76: machine.MachineService.ServiceList:output_type -> machine.ServiceListResponse - 41, // 77: machine.MachineService.ServiceRestart:output_type -> machine.ServiceRestartResponse - 35, // 78: machine.MachineService.ServiceStart:output_type -> machine.ServiceStartResponse - 38, // 79: machine.MachineService.ServiceStop:output_type -> machine.ServiceStopResponse - 23, // 80: machine.MachineService.Shutdown:output_type -> machine.ShutdownResponse - 26, // 81: machine.MachineService.Upgrade:output_type -> machine.UpgradeResponse - 53, // 82: machine.MachineService.Version:output_type -> machine.VersionResponse - 64, // [64:83] is the sub-list for method output_type - 45, // [45:64] is the sub-list for method input_type - 45, // [45:45] is the sub-list for extension type_name - 45, // [45:45] is the sub-list for extension extendee - 0, // [0:45] is the sub-list for field type_name + 84, // 45: machine.ContainersRequest.driver:type_name -> common.ContainerDriver + 80, // 46: machine.Container.metadata:type_name -> common.Metadata + 62, // 47: machine.Container.containers:type_name -> machine.ContainerInfo + 63, // 48: machine.ContainersResponse.messages:type_name -> machine.Container + 68, // 49: machine.ProcessesResponse.messages:type_name -> machine.Process + 80, // 50: machine.Process.metadata:type_name -> common.Metadata + 69, // 51: machine.Process.processes:type_name -> machine.ProcessInfo + 84, // 52: machine.RestartRequest.driver:type_name -> common.ContainerDriver + 80, // 53: machine.Restart.metadata:type_name -> common.Metadata + 71, // 54: machine.RestartResponse.messages:type_name -> machine.Restart + 84, // 55: machine.StatsRequest.driver:type_name -> common.ContainerDriver + 80, // 56: machine.Stats.metadata:type_name -> common.Metadata + 76, // 57: machine.Stats.stats:type_name -> machine.Stat + 74, // 58: machine.StatsResponse.messages:type_name -> machine.Stats + 80, // 59: machine.Memory.metadata:type_name -> common.Metadata + 79, // 60: machine.Memory.meminfo:type_name -> machine.MemInfo + 77, // 61: machine.MemoryResponse.messages:type_name -> machine.Memory + 7, // 62: machine.MachineService.Bootstrap:input_type -> machine.BootstrapRequest + 61, // 63: machine.MachineService.Containers:input_type -> machine.ContainersRequest + 46, // 64: machine.MachineService.Copy:input_type -> machine.CopyRequest + 65, // 65: machine.MachineService.Dmesg:input_type -> machine.DmesgRequest + 14, // 66: machine.MachineService.Events:input_type -> machine.EventsRequest + 85, // 67: machine.MachineService.Kubeconfig:input_type -> google.protobuf.Empty + 47, // 68: machine.MachineService.List:input_type -> machine.ListRequest + 56, // 69: machine.MachineService.Logs:input_type -> machine.LogsRequest + 85, // 70: machine.MachineService.Memory:input_type -> google.protobuf.Empty + 85, // 71: machine.MachineService.Mounts:input_type -> google.protobuf.Empty + 85, // 72: machine.MachineService.Processes:input_type -> google.protobuf.Empty + 57, // 73: machine.MachineService.Read:input_type -> machine.ReadRequest + 85, // 74: machine.MachineService.Reboot:input_type -> google.protobuf.Empty + 70, // 75: machine.MachineService.Restart:input_type -> machine.RestartRequest + 58, // 76: machine.MachineService.Rollback:input_type -> machine.RollbackRequest + 16, // 77: machine.MachineService.Reset:input_type -> machine.ResetRequest + 19, // 78: machine.MachineService.Recover:input_type -> machine.RecoverRequest + 85, // 79: machine.MachineService.ServiceList:input_type -> google.protobuf.Empty + 39, // 80: machine.MachineService.ServiceRestart:input_type -> machine.ServiceRestartRequest + 33, // 81: machine.MachineService.ServiceStart:input_type -> machine.ServiceStartRequest + 36, // 82: machine.MachineService.ServiceStop:input_type -> machine.ServiceStopRequest + 85, // 83: machine.MachineService.Shutdown:input_type -> google.protobuf.Empty + 73, // 84: machine.MachineService.Stats:input_type -> machine.StatsRequest + 24, // 85: machine.MachineService.Upgrade:input_type -> machine.UpgradeRequest + 85, // 86: machine.MachineService.Version:input_type -> google.protobuf.Empty + 9, // 87: machine.MachineService.Bootstrap:output_type -> machine.BootstrapResponse + 64, // 88: machine.MachineService.Containers:output_type -> machine.ContainersResponse + 86, // 89: machine.MachineService.Copy:output_type -> common.Data + 86, // 90: machine.MachineService.Dmesg:output_type -> common.Data + 15, // 91: machine.MachineService.Events:output_type -> machine.Event + 86, // 92: machine.MachineService.Kubeconfig:output_type -> common.Data + 48, // 93: machine.MachineService.List:output_type -> machine.FileInfo + 86, // 94: machine.MachineService.Logs:output_type -> common.Data + 78, // 95: machine.MachineService.Memory:output_type -> machine.MemoryResponse + 50, // 96: machine.MachineService.Mounts:output_type -> machine.MountsResponse + 67, // 97: machine.MachineService.Processes:output_type -> machine.ProcessesResponse + 86, // 98: machine.MachineService.Read:output_type -> common.Data + 6, // 99: machine.MachineService.Reboot:output_type -> machine.RebootResponse + 72, // 100: machine.MachineService.Restart:output_type -> machine.RestartResponse + 60, // 101: machine.MachineService.Rollback:output_type -> machine.RollbackResponse + 18, // 102: machine.MachineService.Reset:output_type -> machine.ResetResponse + 21, // 103: machine.MachineService.Recover:output_type -> machine.RecoverResponse + 28, // 104: machine.MachineService.ServiceList:output_type -> machine.ServiceListResponse + 41, // 105: machine.MachineService.ServiceRestart:output_type -> machine.ServiceRestartResponse + 35, // 106: machine.MachineService.ServiceStart:output_type -> machine.ServiceStartResponse + 38, // 107: machine.MachineService.ServiceStop:output_type -> machine.ServiceStopResponse + 23, // 108: machine.MachineService.Shutdown:output_type -> machine.ShutdownResponse + 75, // 109: machine.MachineService.Stats:output_type -> machine.StatsResponse + 26, // 110: machine.MachineService.Upgrade:output_type -> machine.UpgradeResponse + 53, // 111: machine.MachineService.Version:output_type -> machine.VersionResponse + 87, // [87:112] is the sub-list for method output_type + 62, // [62:87] is the sub-list for method input_type + 62, // [62:62] is the sub-list for extension type_name + 62, // [62:62] is the sub-list for extension extendee + 0, // [0:62] is the sub-list for field type_name } func init() { file_machine_machine_proto_init() } @@ -4597,6 +6383,234 @@ func file_machine_machine_proto_init() { return nil } } + file_machine_machine_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContainersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContainerInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Container); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContainersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DmesgRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProcessesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProcessesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Process); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProcessInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RestartRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Restart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RestartResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Stats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Stat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Memory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemoryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_machine_machine_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -4604,7 +6618,7 @@ func file_machine_machine_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_machine_machine_proto_rawDesc, NumEnums: 5, - NumMessages: 56, + NumMessages: 75, NumExtensions: 0, NumServices: 1, }, @@ -4634,14 +6648,19 @@ const _ = grpc.SupportPackageIsVersion6 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type MachineServiceClient interface { Bootstrap(ctx context.Context, in *BootstrapRequest, opts ...grpc.CallOption) (*BootstrapResponse, error) + Containers(ctx context.Context, in *ContainersRequest, opts ...grpc.CallOption) (*ContainersResponse, error) Copy(ctx context.Context, in *CopyRequest, opts ...grpc.CallOption) (MachineService_CopyClient, error) + Dmesg(ctx context.Context, in *DmesgRequest, opts ...grpc.CallOption) (MachineService_DmesgClient, error) Events(ctx context.Context, in *EventsRequest, opts ...grpc.CallOption) (MachineService_EventsClient, error) Kubeconfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (MachineService_KubeconfigClient, error) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (MachineService_ListClient, error) Logs(ctx context.Context, in *LogsRequest, opts ...grpc.CallOption) (MachineService_LogsClient, error) + Memory(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MemoryResponse, error) Mounts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MountsResponse, error) + Processes(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ProcessesResponse, error) Read(ctx context.Context, in *ReadRequest, opts ...grpc.CallOption) (MachineService_ReadClient, error) Reboot(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*RebootResponse, error) + Restart(ctx context.Context, in *RestartRequest, opts ...grpc.CallOption) (*RestartResponse, error) Rollback(ctx context.Context, in *RollbackRequest, opts ...grpc.CallOption) (*RollbackResponse, error) Reset(ctx context.Context, in *ResetRequest, opts ...grpc.CallOption) (*ResetResponse, error) Recover(ctx context.Context, in *RecoverRequest, opts ...grpc.CallOption) (*RecoverResponse, error) @@ -4650,6 +6669,7 @@ type MachineServiceClient interface { ServiceStart(ctx context.Context, in *ServiceStartRequest, opts ...grpc.CallOption) (*ServiceStartResponse, error) ServiceStop(ctx context.Context, in *ServiceStopRequest, opts ...grpc.CallOption) (*ServiceStopResponse, error) Shutdown(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ShutdownResponse, error) + Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (*StatsResponse, error) Upgrade(ctx context.Context, in *UpgradeRequest, opts ...grpc.CallOption) (*UpgradeResponse, error) Version(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*VersionResponse, error) } @@ -4671,6 +6691,15 @@ func (c *machineServiceClient) Bootstrap(ctx context.Context, in *BootstrapReque return out, nil } +func (c *machineServiceClient) Containers(ctx context.Context, in *ContainersRequest, opts ...grpc.CallOption) (*ContainersResponse, error) { + out := new(ContainersResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/Containers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *machineServiceClient) Copy(ctx context.Context, in *CopyRequest, opts ...grpc.CallOption) (MachineService_CopyClient, error) { stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[0], "/machine.MachineService/Copy", opts...) if err != nil { @@ -4703,8 +6732,40 @@ func (x *machineServiceCopyClient) Recv() (*common.Data, error) { return m, nil } +func (c *machineServiceClient) Dmesg(ctx context.Context, in *DmesgRequest, opts ...grpc.CallOption) (MachineService_DmesgClient, error) { + stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[1], "/machine.MachineService/Dmesg", opts...) + if err != nil { + return nil, err + } + x := &machineServiceDmesgClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type MachineService_DmesgClient interface { + Recv() (*common.Data, error) + grpc.ClientStream +} + +type machineServiceDmesgClient struct { + grpc.ClientStream +} + +func (x *machineServiceDmesgClient) Recv() (*common.Data, error) { + m := new(common.Data) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + func (c *machineServiceClient) Events(ctx context.Context, in *EventsRequest, opts ...grpc.CallOption) (MachineService_EventsClient, error) { - stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[1], "/machine.MachineService/Events", opts...) + stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[2], "/machine.MachineService/Events", opts...) if err != nil { return nil, err } @@ -4736,7 +6797,7 @@ func (x *machineServiceEventsClient) Recv() (*Event, error) { } func (c *machineServiceClient) Kubeconfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (MachineService_KubeconfigClient, error) { - stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[2], "/machine.MachineService/Kubeconfig", opts...) + stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[3], "/machine.MachineService/Kubeconfig", opts...) if err != nil { return nil, err } @@ -4768,7 +6829,7 @@ func (x *machineServiceKubeconfigClient) Recv() (*common.Data, error) { } func (c *machineServiceClient) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (MachineService_ListClient, error) { - stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[3], "/machine.MachineService/List", opts...) + stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[4], "/machine.MachineService/List", opts...) if err != nil { return nil, err } @@ -4800,7 +6861,7 @@ func (x *machineServiceListClient) Recv() (*FileInfo, error) { } func (c *machineServiceClient) Logs(ctx context.Context, in *LogsRequest, opts ...grpc.CallOption) (MachineService_LogsClient, error) { - stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[4], "/machine.MachineService/Logs", opts...) + stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[5], "/machine.MachineService/Logs", opts...) if err != nil { return nil, err } @@ -4831,6 +6892,15 @@ func (x *machineServiceLogsClient) Recv() (*common.Data, error) { return m, nil } +func (c *machineServiceClient) Memory(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MemoryResponse, error) { + out := new(MemoryResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/Memory", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *machineServiceClient) Mounts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MountsResponse, error) { out := new(MountsResponse) err := c.cc.Invoke(ctx, "/machine.MachineService/Mounts", in, out, opts...) @@ -4840,8 +6910,17 @@ func (c *machineServiceClient) Mounts(ctx context.Context, in *empty.Empty, opts return out, nil } +func (c *machineServiceClient) Processes(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ProcessesResponse, error) { + out := new(ProcessesResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/Processes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *machineServiceClient) Read(ctx context.Context, in *ReadRequest, opts ...grpc.CallOption) (MachineService_ReadClient, error) { - stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[5], "/machine.MachineService/Read", opts...) + stream, err := c.cc.NewStream(ctx, &_MachineService_serviceDesc.Streams[6], "/machine.MachineService/Read", opts...) if err != nil { return nil, err } @@ -4881,6 +6960,15 @@ func (c *machineServiceClient) Reboot(ctx context.Context, in *empty.Empty, opts return out, nil } +func (c *machineServiceClient) Restart(ctx context.Context, in *RestartRequest, opts ...grpc.CallOption) (*RestartResponse, error) { + out := new(RestartResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/Restart", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *machineServiceClient) Rollback(ctx context.Context, in *RollbackRequest, opts ...grpc.CallOption) (*RollbackResponse, error) { out := new(RollbackResponse) err := c.cc.Invoke(ctx, "/machine.MachineService/Rollback", in, out, opts...) @@ -4953,6 +7041,15 @@ func (c *machineServiceClient) Shutdown(ctx context.Context, in *empty.Empty, op return out, nil } +func (c *machineServiceClient) Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (*StatsResponse, error) { + out := new(StatsResponse) + err := c.cc.Invoke(ctx, "/machine.MachineService/Stats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *machineServiceClient) Upgrade(ctx context.Context, in *UpgradeRequest, opts ...grpc.CallOption) (*UpgradeResponse, error) { out := new(UpgradeResponse) err := c.cc.Invoke(ctx, "/machine.MachineService/Upgrade", in, out, opts...) @@ -4974,14 +7071,19 @@ func (c *machineServiceClient) Version(ctx context.Context, in *empty.Empty, opt // MachineServiceServer is the server API for MachineService service. type MachineServiceServer interface { Bootstrap(context.Context, *BootstrapRequest) (*BootstrapResponse, error) + Containers(context.Context, *ContainersRequest) (*ContainersResponse, error) Copy(*CopyRequest, MachineService_CopyServer) error + Dmesg(*DmesgRequest, MachineService_DmesgServer) error Events(*EventsRequest, MachineService_EventsServer) error Kubeconfig(*empty.Empty, MachineService_KubeconfigServer) error List(*ListRequest, MachineService_ListServer) error Logs(*LogsRequest, MachineService_LogsServer) error + Memory(context.Context, *empty.Empty) (*MemoryResponse, error) Mounts(context.Context, *empty.Empty) (*MountsResponse, error) + Processes(context.Context, *empty.Empty) (*ProcessesResponse, error) Read(*ReadRequest, MachineService_ReadServer) error Reboot(context.Context, *empty.Empty) (*RebootResponse, error) + Restart(context.Context, *RestartRequest) (*RestartResponse, error) Rollback(context.Context, *RollbackRequest) (*RollbackResponse, error) Reset(context.Context, *ResetRequest) (*ResetResponse, error) Recover(context.Context, *RecoverRequest) (*RecoverResponse, error) @@ -4990,6 +7092,7 @@ type MachineServiceServer interface { ServiceStart(context.Context, *ServiceStartRequest) (*ServiceStartResponse, error) ServiceStop(context.Context, *ServiceStopRequest) (*ServiceStopResponse, error) Shutdown(context.Context, *empty.Empty) (*ShutdownResponse, error) + Stats(context.Context, *StatsRequest) (*StatsResponse, error) Upgrade(context.Context, *UpgradeRequest) (*UpgradeResponse, error) Version(context.Context, *empty.Empty) (*VersionResponse, error) } @@ -5002,10 +7105,18 @@ func (*UnimplementedMachineServiceServer) Bootstrap(context.Context, *BootstrapR return nil, status.Errorf(codes.Unimplemented, "method Bootstrap not implemented") } +func (*UnimplementedMachineServiceServer) Containers(context.Context, *ContainersRequest) (*ContainersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Containers not implemented") +} + func (*UnimplementedMachineServiceServer) Copy(*CopyRequest, MachineService_CopyServer) error { return status.Errorf(codes.Unimplemented, "method Copy not implemented") } +func (*UnimplementedMachineServiceServer) Dmesg(*DmesgRequest, MachineService_DmesgServer) error { + return status.Errorf(codes.Unimplemented, "method Dmesg not implemented") +} + func (*UnimplementedMachineServiceServer) Events(*EventsRequest, MachineService_EventsServer) error { return status.Errorf(codes.Unimplemented, "method Events not implemented") } @@ -5022,10 +7133,18 @@ func (*UnimplementedMachineServiceServer) Logs(*LogsRequest, MachineService_Logs return status.Errorf(codes.Unimplemented, "method Logs not implemented") } +func (*UnimplementedMachineServiceServer) Memory(context.Context, *empty.Empty) (*MemoryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Memory not implemented") +} + func (*UnimplementedMachineServiceServer) Mounts(context.Context, *empty.Empty) (*MountsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Mounts not implemented") } +func (*UnimplementedMachineServiceServer) Processes(context.Context, *empty.Empty) (*ProcessesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Processes not implemented") +} + func (*UnimplementedMachineServiceServer) Read(*ReadRequest, MachineService_ReadServer) error { return status.Errorf(codes.Unimplemented, "method Read not implemented") } @@ -5034,6 +7153,10 @@ func (*UnimplementedMachineServiceServer) Reboot(context.Context, *empty.Empty) return nil, status.Errorf(codes.Unimplemented, "method Reboot not implemented") } +func (*UnimplementedMachineServiceServer) Restart(context.Context, *RestartRequest) (*RestartResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Restart not implemented") +} + func (*UnimplementedMachineServiceServer) Rollback(context.Context, *RollbackRequest) (*RollbackResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Rollback not implemented") } @@ -5066,6 +7189,10 @@ func (*UnimplementedMachineServiceServer) Shutdown(context.Context, *empty.Empty return nil, status.Errorf(codes.Unimplemented, "method Shutdown not implemented") } +func (*UnimplementedMachineServiceServer) Stats(context.Context, *StatsRequest) (*StatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Stats not implemented") +} + func (*UnimplementedMachineServiceServer) Upgrade(context.Context, *UpgradeRequest) (*UpgradeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Upgrade not implemented") } @@ -5096,6 +7223,24 @@ func _MachineService_Bootstrap_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _MachineService_Containers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).Containers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/Containers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).Containers(ctx, req.(*ContainersRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _MachineService_Copy_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(CopyRequest) if err := stream.RecvMsg(m); err != nil { @@ -5117,6 +7262,27 @@ func (x *machineServiceCopyServer) Send(m *common.Data) error { return x.ServerStream.SendMsg(m) } +func _MachineService_Dmesg_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(DmesgRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(MachineServiceServer).Dmesg(m, &machineServiceDmesgServer{stream}) +} + +type MachineService_DmesgServer interface { + Send(*common.Data) error + grpc.ServerStream +} + +type machineServiceDmesgServer struct { + grpc.ServerStream +} + +func (x *machineServiceDmesgServer) Send(m *common.Data) error { + return x.ServerStream.SendMsg(m) +} + func _MachineService_Events_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(EventsRequest) if err := stream.RecvMsg(m); err != nil { @@ -5201,6 +7367,24 @@ func (x *machineServiceLogsServer) Send(m *common.Data) error { return x.ServerStream.SendMsg(m) } +func _MachineService_Memory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(empty.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).Memory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/Memory", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).Memory(ctx, req.(*empty.Empty)) + } + return interceptor(ctx, in, info, handler) +} + func _MachineService_Mounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(empty.Empty) if err := dec(in); err != nil { @@ -5219,6 +7403,24 @@ func _MachineService_Mounts_Handler(srv interface{}, ctx context.Context, dec fu return interceptor(ctx, in, info, handler) } +func _MachineService_Processes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(empty.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).Processes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/Processes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).Processes(ctx, req.(*empty.Empty)) + } + return interceptor(ctx, in, info, handler) +} + func _MachineService_Read_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(ReadRequest) if err := stream.RecvMsg(m); err != nil { @@ -5258,6 +7460,24 @@ func _MachineService_Reboot_Handler(srv interface{}, ctx context.Context, dec fu return interceptor(ctx, in, info, handler) } +func _MachineService_Restart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RestartRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).Restart(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/Restart", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).Restart(ctx, req.(*RestartRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _MachineService_Rollback_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RollbackRequest) if err := dec(in); err != nil { @@ -5402,6 +7622,24 @@ func _MachineService_Shutdown_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _MachineService_Stats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MachineServiceServer).Stats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/machine.MachineService/Stats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MachineServiceServer).Stats(ctx, req.(*StatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _MachineService_Upgrade_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpgradeRequest) if err := dec(in); err != nil { @@ -5446,14 +7684,30 @@ var _MachineService_serviceDesc = grpc.ServiceDesc{ MethodName: "Bootstrap", Handler: _MachineService_Bootstrap_Handler, }, + { + MethodName: "Containers", + Handler: _MachineService_Containers_Handler, + }, + { + MethodName: "Memory", + Handler: _MachineService_Memory_Handler, + }, { MethodName: "Mounts", Handler: _MachineService_Mounts_Handler, }, + { + MethodName: "Processes", + Handler: _MachineService_Processes_Handler, + }, { MethodName: "Reboot", Handler: _MachineService_Reboot_Handler, }, + { + MethodName: "Restart", + Handler: _MachineService_Restart_Handler, + }, { MethodName: "Rollback", Handler: _MachineService_Rollback_Handler, @@ -5486,6 +7740,10 @@ var _MachineService_serviceDesc = grpc.ServiceDesc{ MethodName: "Shutdown", Handler: _MachineService_Shutdown_Handler, }, + { + MethodName: "Stats", + Handler: _MachineService_Stats_Handler, + }, { MethodName: "Upgrade", Handler: _MachineService_Upgrade_Handler, @@ -5501,6 +7759,11 @@ var _MachineService_serviceDesc = grpc.ServiceDesc{ Handler: _MachineService_Copy_Handler, ServerStreams: true, }, + { + StreamName: "Dmesg", + Handler: _MachineService_Dmesg_Handler, + ServerStreams: true, + }, { StreamName: "Events", Handler: _MachineService_Events_Handler, diff --git a/api/machine/machine.proto b/api/machine/machine.proto index deec5cf60..a71f4dab9 100644 --- a/api/machine/machine.proto +++ b/api/machine/machine.proto @@ -15,14 +15,19 @@ import "common/common.proto"; // The machine service definition. service MachineService { rpc Bootstrap(BootstrapRequest) returns (BootstrapResponse); + rpc Containers(ContainersRequest) returns (ContainersResponse); rpc Copy(CopyRequest) returns (stream common.Data); + rpc Dmesg(DmesgRequest) returns (stream common.Data); rpc Events(EventsRequest) returns (stream Event); rpc Kubeconfig(google.protobuf.Empty) returns (stream common.Data); rpc List(ListRequest) returns (stream FileInfo); rpc Logs(LogsRequest) returns (stream common.Data); + rpc Memory(google.protobuf.Empty) returns (MemoryResponse); rpc Mounts(google.protobuf.Empty) returns (MountsResponse); + rpc Processes(google.protobuf.Empty) returns (ProcessesResponse); rpc Read(ReadRequest) returns (stream common.Data); rpc Reboot(google.protobuf.Empty) returns (RebootResponse); + rpc Restart(RestartRequest) returns (RestartResponse); rpc Rollback(RollbackRequest) returns (RollbackResponse); rpc Reset(ResetRequest) returns (ResetResponse); rpc Recover(RecoverRequest) returns (RecoverResponse); @@ -31,6 +36,7 @@ service MachineService { rpc ServiceStart(ServiceStartRequest) returns (ServiceStartResponse); rpc ServiceStop(ServiceStopRequest) returns (ServiceStopResponse); rpc Shutdown(google.protobuf.Empty) returns (ShutdownResponse); + rpc Stats(StatsRequest) returns (StatsResponse); rpc Upgrade(UpgradeRequest) returns (UpgradeResponse); rpc Version(google.protobuf.Empty) returns (VersionResponse); } @@ -318,3 +324,158 @@ message RollbackRequest {} message Rollback { common.Metadata metadata = 1; } message RollbackResponse { repeated Rollback messages = 1; } + +// rpc Containers + +message ContainersRequest { + string namespace = 1; + // driver might be default "containerd" or "cri" + common.ContainerDriver driver = 2; +} + +// The messages message containing the requested containers. +message ContainerInfo { + string namespace = 1; + string id = 2; + string image = 3; + uint32 pid = 4; + string status = 5; + string pod_id = 6; + string name = 7; +} + +// The messages message containing the requested containers. +message Container { + common.Metadata metadata = 1; + repeated ContainerInfo containers = 2; +} + +message ContainersResponse { repeated Container messages = 1; } + +// dmesg +message DmesgRequest { + bool follow = 1; + bool tail = 2; +} + +// rpc processes +message ProcessesRequest {} + +message ProcessesResponse { repeated Process messages = 1; } + +message Process { + common.Metadata metadata = 1; + repeated ProcessInfo processes = 2; +} + +message ProcessInfo { + int32 pid = 1; + int32 ppid = 2; + string state = 3; + int32 threads = 4; + double cpu_time = 5; + uint64 virtual_memory = 6; + uint64 resident_memory = 7; + string command = 8; + string executable = 9; + string args = 10; +} + +// rpc restart +// The request message containing the process to restart. +message RestartRequest { + string namespace = 1; + string id = 2; + // driver might be default "containerd" or "cri" + common.ContainerDriver driver = 3; +} + +message Restart { common.Metadata metadata = 1; } + +// The messages message containing the restart status. +message RestartResponse { repeated Restart messages = 1; } + +// rpc stats + +// The request message containing the containerd namespace. +message StatsRequest { + string namespace = 1; + // driver might be default "containerd" or "cri" + common.ContainerDriver driver = 2; +} + +// The messages message containing the requested stats. +message Stats { + common.Metadata metadata = 1; + repeated Stat stats = 2; +} + +message StatsResponse { repeated Stats messages = 1; } + +// The messages message containing the requested stat. +message Stat { + string namespace = 1; + string id = 2; + uint64 memory_usage = 4; + uint64 cpu_usage = 5; + string pod_id = 6; + string name = 7; +} + +message Memory { + common.Metadata metadata = 1; + MemInfo meminfo = 2; +} + +message MemoryResponse { repeated Memory messages = 1; } + +message MemInfo { + uint64 memtotal = 1; + uint64 memfree = 2; + uint64 memavailable = 3; + uint64 buffers = 4; + uint64 cached = 5; + uint64 swapcached = 6; + uint64 active = 7; + uint64 inactive = 8; + uint64 activeanon = 9; + uint64 inactiveanon = 10; + uint64 activefile = 11; + uint64 inactivefile = 12; + uint64 unevictable = 13; + uint64 mlocked = 14; + uint64 swaptotal = 15; + uint64 swapfree = 16; + uint64 dirty = 17; + uint64 writeback = 18; + uint64 anonpages = 19; + uint64 mapped = 20; + uint64 shmem = 21; + uint64 slab = 22; + uint64 sreclaimable = 23; + uint64 sunreclaim = 24; + uint64 kernelstack = 25; + uint64 pagetables = 26; + uint64 nfsunstable = 27; + uint64 bounce = 28; + uint64 writebacktmp = 29; + uint64 commitlimit = 30; + uint64 committedas = 31; + uint64 vmalloctotal = 32; + uint64 vmallocused = 33; + uint64 vmallocchunk = 34; + uint64 hardwarecorrupted = 35; + uint64 anonhugepages = 36; + uint64 shmemhugepages = 37; + uint64 shmempmdmapped = 38; + uint64 cmatotal = 39; + uint64 cmafree = 40; + uint64 hugepagestotal = 41; + uint64 hugepagesfree = 42; + uint64 hugepagesrsvd = 43; + uint64 hugepagessurp = 44; + uint64 hugepagesize = 45; + uint64 directmap4k = 46; + uint64 directmap2m = 47; + uint64 directmap1g = 48; +} diff --git a/api/os/os.pb.go b/api/os/os.pb.go index 151142759..59c92ebf4 100644 --- a/api/os/os.pb.go +++ b/api/os/os.pb.go @@ -9,7 +9,6 @@ package os import ( context "context" reflect "reflect" - sync "sync" proto "github.com/golang/protobuf/proto" empty "github.com/golang/protobuf/ptypes/empty" @@ -20,6 +19,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" common "github.com/talos-systems/talos/api/common" + machine "github.com/talos-systems/talos/api/machine" ) const ( @@ -33,1511 +33,6 @@ const ( // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 -type ContainersRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` - // driver might be default "containerd" or "cri" - Driver common.ContainerDriver `protobuf:"varint,2,opt,name=driver,proto3,enum=common.ContainerDriver" json:"driver,omitempty"` -} - -func (x *ContainersRequest) Reset() { - *x = ContainersRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ContainersRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ContainersRequest) ProtoMessage() {} - -func (x *ContainersRequest) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ContainersRequest.ProtoReflect.Descriptor instead. -func (*ContainersRequest) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{0} -} - -func (x *ContainersRequest) GetNamespace() string { - if x != nil { - return x.Namespace - } - return "" -} - -func (x *ContainersRequest) GetDriver() common.ContainerDriver { - if x != nil { - return x.Driver - } - return common.ContainerDriver_CONTAINERD -} - -// The messages message containing the requested containers. -type ContainerInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - Image string `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"` - Pid uint32 `protobuf:"varint,4,opt,name=pid,proto3" json:"pid,omitempty"` - Status string `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` - PodId string `protobuf:"bytes,6,opt,name=pod_id,json=podId,proto3" json:"pod_id,omitempty"` - Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` -} - -func (x *ContainerInfo) Reset() { - *x = ContainerInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ContainerInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ContainerInfo) ProtoMessage() {} - -func (x *ContainerInfo) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ContainerInfo.ProtoReflect.Descriptor instead. -func (*ContainerInfo) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{1} -} - -func (x *ContainerInfo) GetNamespace() string { - if x != nil { - return x.Namespace - } - return "" -} - -func (x *ContainerInfo) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *ContainerInfo) GetImage() string { - if x != nil { - return x.Image - } - return "" -} - -func (x *ContainerInfo) GetPid() uint32 { - if x != nil { - return x.Pid - } - return 0 -} - -func (x *ContainerInfo) GetStatus() string { - if x != nil { - return x.Status - } - return "" -} - -func (x *ContainerInfo) GetPodId() string { - if x != nil { - return x.PodId - } - return "" -} - -func (x *ContainerInfo) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -// The messages message containing the requested containers. -type Container struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Containers []*ContainerInfo `protobuf:"bytes,2,rep,name=containers,proto3" json:"containers,omitempty"` -} - -func (x *Container) Reset() { - *x = Container{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Container) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Container) ProtoMessage() {} - -func (x *Container) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Container.ProtoReflect.Descriptor instead. -func (*Container) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{2} -} - -func (x *Container) GetMetadata() *common.Metadata { - if x != nil { - return x.Metadata - } - return nil -} - -func (x *Container) GetContainers() []*ContainerInfo { - if x != nil { - return x.Containers - } - return nil -} - -type ContainersResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Messages []*Container `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` -} - -func (x *ContainersResponse) Reset() { - *x = ContainersResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ContainersResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ContainersResponse) ProtoMessage() {} - -func (x *ContainersResponse) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ContainersResponse.ProtoReflect.Descriptor instead. -func (*ContainersResponse) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{3} -} - -func (x *ContainersResponse) GetMessages() []*Container { - if x != nil { - return x.Messages - } - return nil -} - -// dmesg -type DmesgRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Follow bool `protobuf:"varint,1,opt,name=follow,proto3" json:"follow,omitempty"` - Tail bool `protobuf:"varint,2,opt,name=tail,proto3" json:"tail,omitempty"` -} - -func (x *DmesgRequest) Reset() { - *x = DmesgRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DmesgRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DmesgRequest) ProtoMessage() {} - -func (x *DmesgRequest) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DmesgRequest.ProtoReflect.Descriptor instead. -func (*DmesgRequest) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{4} -} - -func (x *DmesgRequest) GetFollow() bool { - if x != nil { - return x.Follow - } - return false -} - -func (x *DmesgRequest) GetTail() bool { - if x != nil { - return x.Tail - } - return false -} - -// rpc processes -type ProcessesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *ProcessesRequest) Reset() { - *x = ProcessesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProcessesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProcessesRequest) ProtoMessage() {} - -func (x *ProcessesRequest) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ProcessesRequest.ProtoReflect.Descriptor instead. -func (*ProcessesRequest) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{5} -} - -type ProcessesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Messages []*Process `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` -} - -func (x *ProcessesResponse) Reset() { - *x = ProcessesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProcessesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProcessesResponse) ProtoMessage() {} - -func (x *ProcessesResponse) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ProcessesResponse.ProtoReflect.Descriptor instead. -func (*ProcessesResponse) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{6} -} - -func (x *ProcessesResponse) GetMessages() []*Process { - if x != nil { - return x.Messages - } - return nil -} - -type Process struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Processes []*ProcessInfo `protobuf:"bytes,2,rep,name=processes,proto3" json:"processes,omitempty"` -} - -func (x *Process) Reset() { - *x = Process{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Process) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Process) ProtoMessage() {} - -func (x *Process) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Process.ProtoReflect.Descriptor instead. -func (*Process) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{7} -} - -func (x *Process) GetMetadata() *common.Metadata { - if x != nil { - return x.Metadata - } - return nil -} - -func (x *Process) GetProcesses() []*ProcessInfo { - if x != nil { - return x.Processes - } - return nil -} - -type ProcessInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pid int32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"` - Ppid int32 `protobuf:"varint,2,opt,name=ppid,proto3" json:"ppid,omitempty"` - State string `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` - Threads int32 `protobuf:"varint,4,opt,name=threads,proto3" json:"threads,omitempty"` - CpuTime float64 `protobuf:"fixed64,5,opt,name=cpu_time,json=cpuTime,proto3" json:"cpu_time,omitempty"` - VirtualMemory uint64 `protobuf:"varint,6,opt,name=virtual_memory,json=virtualMemory,proto3" json:"virtual_memory,omitempty"` - ResidentMemory uint64 `protobuf:"varint,7,opt,name=resident_memory,json=residentMemory,proto3" json:"resident_memory,omitempty"` - Command string `protobuf:"bytes,8,opt,name=command,proto3" json:"command,omitempty"` - Executable string `protobuf:"bytes,9,opt,name=executable,proto3" json:"executable,omitempty"` - Args string `protobuf:"bytes,10,opt,name=args,proto3" json:"args,omitempty"` -} - -func (x *ProcessInfo) Reset() { - *x = ProcessInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProcessInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProcessInfo) ProtoMessage() {} - -func (x *ProcessInfo) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ProcessInfo.ProtoReflect.Descriptor instead. -func (*ProcessInfo) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{8} -} - -func (x *ProcessInfo) GetPid() int32 { - if x != nil { - return x.Pid - } - return 0 -} - -func (x *ProcessInfo) GetPpid() int32 { - if x != nil { - return x.Ppid - } - return 0 -} - -func (x *ProcessInfo) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *ProcessInfo) GetThreads() int32 { - if x != nil { - return x.Threads - } - return 0 -} - -func (x *ProcessInfo) GetCpuTime() float64 { - if x != nil { - return x.CpuTime - } - return 0 -} - -func (x *ProcessInfo) GetVirtualMemory() uint64 { - if x != nil { - return x.VirtualMemory - } - return 0 -} - -func (x *ProcessInfo) GetResidentMemory() uint64 { - if x != nil { - return x.ResidentMemory - } - return 0 -} - -func (x *ProcessInfo) GetCommand() string { - if x != nil { - return x.Command - } - return "" -} - -func (x *ProcessInfo) GetExecutable() string { - if x != nil { - return x.Executable - } - return "" -} - -func (x *ProcessInfo) GetArgs() string { - if x != nil { - return x.Args - } - return "" -} - -// rpc restart -// The request message containing the process to restart. -type RestartRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - // driver might be default "containerd" or "cri" - Driver common.ContainerDriver `protobuf:"varint,3,opt,name=driver,proto3,enum=common.ContainerDriver" json:"driver,omitempty"` -} - -func (x *RestartRequest) Reset() { - *x = RestartRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RestartRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RestartRequest) ProtoMessage() {} - -func (x *RestartRequest) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RestartRequest.ProtoReflect.Descriptor instead. -func (*RestartRequest) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{9} -} - -func (x *RestartRequest) GetNamespace() string { - if x != nil { - return x.Namespace - } - return "" -} - -func (x *RestartRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *RestartRequest) GetDriver() common.ContainerDriver { - if x != nil { - return x.Driver - } - return common.ContainerDriver_CONTAINERD -} - -type Restart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` -} - -func (x *Restart) Reset() { - *x = Restart{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Restart) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Restart) ProtoMessage() {} - -func (x *Restart) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Restart.ProtoReflect.Descriptor instead. -func (*Restart) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{10} -} - -func (x *Restart) GetMetadata() *common.Metadata { - if x != nil { - return x.Metadata - } - return nil -} - -// The messages message containing the restart status. -type RestartResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Messages []*Restart `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` -} - -func (x *RestartResponse) Reset() { - *x = RestartResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RestartResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RestartResponse) ProtoMessage() {} - -func (x *RestartResponse) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RestartResponse.ProtoReflect.Descriptor instead. -func (*RestartResponse) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{11} -} - -func (x *RestartResponse) GetMessages() []*Restart { - if x != nil { - return x.Messages - } - return nil -} - -// The request message containing the containerd namespace. -type StatsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` - // driver might be default "containerd" or "cri" - Driver common.ContainerDriver `protobuf:"varint,2,opt,name=driver,proto3,enum=common.ContainerDriver" json:"driver,omitempty"` -} - -func (x *StatsRequest) Reset() { - *x = StatsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StatsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StatsRequest) ProtoMessage() {} - -func (x *StatsRequest) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use StatsRequest.ProtoReflect.Descriptor instead. -func (*StatsRequest) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{12} -} - -func (x *StatsRequest) GetNamespace() string { - if x != nil { - return x.Namespace - } - return "" -} - -func (x *StatsRequest) GetDriver() common.ContainerDriver { - if x != nil { - return x.Driver - } - return common.ContainerDriver_CONTAINERD -} - -// The messages message containing the requested stats. -type Stats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Stats []*Stat `protobuf:"bytes,2,rep,name=stats,proto3" json:"stats,omitempty"` -} - -func (x *Stats) Reset() { - *x = Stats{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Stats) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Stats) ProtoMessage() {} - -func (x *Stats) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Stats.ProtoReflect.Descriptor instead. -func (*Stats) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{13} -} - -func (x *Stats) GetMetadata() *common.Metadata { - if x != nil { - return x.Metadata - } - return nil -} - -func (x *Stats) GetStats() []*Stat { - if x != nil { - return x.Stats - } - return nil -} - -type StatsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Messages []*Stats `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` -} - -func (x *StatsResponse) Reset() { - *x = StatsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StatsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StatsResponse) ProtoMessage() {} - -func (x *StatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use StatsResponse.ProtoReflect.Descriptor instead. -func (*StatsResponse) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{14} -} - -func (x *StatsResponse) GetMessages() []*Stats { - if x != nil { - return x.Messages - } - return nil -} - -// The messages message containing the requested stat. -type Stat struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - MemoryUsage uint64 `protobuf:"varint,4,opt,name=memory_usage,json=memoryUsage,proto3" json:"memory_usage,omitempty"` - CpuUsage uint64 `protobuf:"varint,5,opt,name=cpu_usage,json=cpuUsage,proto3" json:"cpu_usage,omitempty"` - PodId string `protobuf:"bytes,6,opt,name=pod_id,json=podId,proto3" json:"pod_id,omitempty"` - Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` -} - -func (x *Stat) Reset() { - *x = Stat{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Stat) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Stat) ProtoMessage() {} - -func (x *Stat) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Stat.ProtoReflect.Descriptor instead. -func (*Stat) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{15} -} - -func (x *Stat) GetNamespace() string { - if x != nil { - return x.Namespace - } - return "" -} - -func (x *Stat) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *Stat) GetMemoryUsage() uint64 { - if x != nil { - return x.MemoryUsage - } - return 0 -} - -func (x *Stat) GetCpuUsage() uint64 { - if x != nil { - return x.CpuUsage - } - return 0 -} - -func (x *Stat) GetPodId() string { - if x != nil { - return x.PodId - } - return "" -} - -func (x *Stat) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -type Memory struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Metadata *common.Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` - Meminfo *MemInfo `protobuf:"bytes,2,opt,name=meminfo,proto3" json:"meminfo,omitempty"` -} - -func (x *Memory) Reset() { - *x = Memory{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Memory) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Memory) ProtoMessage() {} - -func (x *Memory) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Memory.ProtoReflect.Descriptor instead. -func (*Memory) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{16} -} - -func (x *Memory) GetMetadata() *common.Metadata { - if x != nil { - return x.Metadata - } - return nil -} - -func (x *Memory) GetMeminfo() *MemInfo { - if x != nil { - return x.Meminfo - } - return nil -} - -type MemoryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Messages []*Memory `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` -} - -func (x *MemoryResponse) Reset() { - *x = MemoryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MemoryResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MemoryResponse) ProtoMessage() {} - -func (x *MemoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MemoryResponse.ProtoReflect.Descriptor instead. -func (*MemoryResponse) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{17} -} - -func (x *MemoryResponse) GetMessages() []*Memory { - if x != nil { - return x.Messages - } - return nil -} - -type MemInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Memtotal uint64 `protobuf:"varint,1,opt,name=memtotal,proto3" json:"memtotal,omitempty"` - Memfree uint64 `protobuf:"varint,2,opt,name=memfree,proto3" json:"memfree,omitempty"` - Memavailable uint64 `protobuf:"varint,3,opt,name=memavailable,proto3" json:"memavailable,omitempty"` - Buffers uint64 `protobuf:"varint,4,opt,name=buffers,proto3" json:"buffers,omitempty"` - Cached uint64 `protobuf:"varint,5,opt,name=cached,proto3" json:"cached,omitempty"` - Swapcached uint64 `protobuf:"varint,6,opt,name=swapcached,proto3" json:"swapcached,omitempty"` - Active uint64 `protobuf:"varint,7,opt,name=active,proto3" json:"active,omitempty"` - Inactive uint64 `protobuf:"varint,8,opt,name=inactive,proto3" json:"inactive,omitempty"` - Activeanon uint64 `protobuf:"varint,9,opt,name=activeanon,proto3" json:"activeanon,omitempty"` - Inactiveanon uint64 `protobuf:"varint,10,opt,name=inactiveanon,proto3" json:"inactiveanon,omitempty"` - Activefile uint64 `protobuf:"varint,11,opt,name=activefile,proto3" json:"activefile,omitempty"` - Inactivefile uint64 `protobuf:"varint,12,opt,name=inactivefile,proto3" json:"inactivefile,omitempty"` - Unevictable uint64 `protobuf:"varint,13,opt,name=unevictable,proto3" json:"unevictable,omitempty"` - Mlocked uint64 `protobuf:"varint,14,opt,name=mlocked,proto3" json:"mlocked,omitempty"` - Swaptotal uint64 `protobuf:"varint,15,opt,name=swaptotal,proto3" json:"swaptotal,omitempty"` - Swapfree uint64 `protobuf:"varint,16,opt,name=swapfree,proto3" json:"swapfree,omitempty"` - Dirty uint64 `protobuf:"varint,17,opt,name=dirty,proto3" json:"dirty,omitempty"` - Writeback uint64 `protobuf:"varint,18,opt,name=writeback,proto3" json:"writeback,omitempty"` - Anonpages uint64 `protobuf:"varint,19,opt,name=anonpages,proto3" json:"anonpages,omitempty"` - Mapped uint64 `protobuf:"varint,20,opt,name=mapped,proto3" json:"mapped,omitempty"` - Shmem uint64 `protobuf:"varint,21,opt,name=shmem,proto3" json:"shmem,omitempty"` - Slab uint64 `protobuf:"varint,22,opt,name=slab,proto3" json:"slab,omitempty"` - Sreclaimable uint64 `protobuf:"varint,23,opt,name=sreclaimable,proto3" json:"sreclaimable,omitempty"` - Sunreclaim uint64 `protobuf:"varint,24,opt,name=sunreclaim,proto3" json:"sunreclaim,omitempty"` - Kernelstack uint64 `protobuf:"varint,25,opt,name=kernelstack,proto3" json:"kernelstack,omitempty"` - Pagetables uint64 `protobuf:"varint,26,opt,name=pagetables,proto3" json:"pagetables,omitempty"` - Nfsunstable uint64 `protobuf:"varint,27,opt,name=nfsunstable,proto3" json:"nfsunstable,omitempty"` - Bounce uint64 `protobuf:"varint,28,opt,name=bounce,proto3" json:"bounce,omitempty"` - Writebacktmp uint64 `protobuf:"varint,29,opt,name=writebacktmp,proto3" json:"writebacktmp,omitempty"` - Commitlimit uint64 `protobuf:"varint,30,opt,name=commitlimit,proto3" json:"commitlimit,omitempty"` - Committedas uint64 `protobuf:"varint,31,opt,name=committedas,proto3" json:"committedas,omitempty"` - Vmalloctotal uint64 `protobuf:"varint,32,opt,name=vmalloctotal,proto3" json:"vmalloctotal,omitempty"` - Vmallocused uint64 `protobuf:"varint,33,opt,name=vmallocused,proto3" json:"vmallocused,omitempty"` - Vmallocchunk uint64 `protobuf:"varint,34,opt,name=vmallocchunk,proto3" json:"vmallocchunk,omitempty"` - Hardwarecorrupted uint64 `protobuf:"varint,35,opt,name=hardwarecorrupted,proto3" json:"hardwarecorrupted,omitempty"` - Anonhugepages uint64 `protobuf:"varint,36,opt,name=anonhugepages,proto3" json:"anonhugepages,omitempty"` - Shmemhugepages uint64 `protobuf:"varint,37,opt,name=shmemhugepages,proto3" json:"shmemhugepages,omitempty"` - Shmempmdmapped uint64 `protobuf:"varint,38,opt,name=shmempmdmapped,proto3" json:"shmempmdmapped,omitempty"` - Cmatotal uint64 `protobuf:"varint,39,opt,name=cmatotal,proto3" json:"cmatotal,omitempty"` - Cmafree uint64 `protobuf:"varint,40,opt,name=cmafree,proto3" json:"cmafree,omitempty"` - Hugepagestotal uint64 `protobuf:"varint,41,opt,name=hugepagestotal,proto3" json:"hugepagestotal,omitempty"` - Hugepagesfree uint64 `protobuf:"varint,42,opt,name=hugepagesfree,proto3" json:"hugepagesfree,omitempty"` - Hugepagesrsvd uint64 `protobuf:"varint,43,opt,name=hugepagesrsvd,proto3" json:"hugepagesrsvd,omitempty"` - Hugepagessurp uint64 `protobuf:"varint,44,opt,name=hugepagessurp,proto3" json:"hugepagessurp,omitempty"` - Hugepagesize uint64 `protobuf:"varint,45,opt,name=hugepagesize,proto3" json:"hugepagesize,omitempty"` - Directmap4K uint64 `protobuf:"varint,46,opt,name=directmap4k,proto3" json:"directmap4k,omitempty"` - Directmap2M uint64 `protobuf:"varint,47,opt,name=directmap2m,proto3" json:"directmap2m,omitempty"` - Directmap1G uint64 `protobuf:"varint,48,opt,name=directmap1g,proto3" json:"directmap1g,omitempty"` -} - -func (x *MemInfo) Reset() { - *x = MemInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_os_os_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MemInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MemInfo) ProtoMessage() {} - -func (x *MemInfo) ProtoReflect() protoreflect.Message { - mi := &file_os_os_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MemInfo.ProtoReflect.Descriptor instead. -func (*MemInfo) Descriptor() ([]byte, []int) { - return file_os_os_proto_rawDescGZIP(), []int{18} -} - -func (x *MemInfo) GetMemtotal() uint64 { - if x != nil { - return x.Memtotal - } - return 0 -} - -func (x *MemInfo) GetMemfree() uint64 { - if x != nil { - return x.Memfree - } - return 0 -} - -func (x *MemInfo) GetMemavailable() uint64 { - if x != nil { - return x.Memavailable - } - return 0 -} - -func (x *MemInfo) GetBuffers() uint64 { - if x != nil { - return x.Buffers - } - return 0 -} - -func (x *MemInfo) GetCached() uint64 { - if x != nil { - return x.Cached - } - return 0 -} - -func (x *MemInfo) GetSwapcached() uint64 { - if x != nil { - return x.Swapcached - } - return 0 -} - -func (x *MemInfo) GetActive() uint64 { - if x != nil { - return x.Active - } - return 0 -} - -func (x *MemInfo) GetInactive() uint64 { - if x != nil { - return x.Inactive - } - return 0 -} - -func (x *MemInfo) GetActiveanon() uint64 { - if x != nil { - return x.Activeanon - } - return 0 -} - -func (x *MemInfo) GetInactiveanon() uint64 { - if x != nil { - return x.Inactiveanon - } - return 0 -} - -func (x *MemInfo) GetActivefile() uint64 { - if x != nil { - return x.Activefile - } - return 0 -} - -func (x *MemInfo) GetInactivefile() uint64 { - if x != nil { - return x.Inactivefile - } - return 0 -} - -func (x *MemInfo) GetUnevictable() uint64 { - if x != nil { - return x.Unevictable - } - return 0 -} - -func (x *MemInfo) GetMlocked() uint64 { - if x != nil { - return x.Mlocked - } - return 0 -} - -func (x *MemInfo) GetSwaptotal() uint64 { - if x != nil { - return x.Swaptotal - } - return 0 -} - -func (x *MemInfo) GetSwapfree() uint64 { - if x != nil { - return x.Swapfree - } - return 0 -} - -func (x *MemInfo) GetDirty() uint64 { - if x != nil { - return x.Dirty - } - return 0 -} - -func (x *MemInfo) GetWriteback() uint64 { - if x != nil { - return x.Writeback - } - return 0 -} - -func (x *MemInfo) GetAnonpages() uint64 { - if x != nil { - return x.Anonpages - } - return 0 -} - -func (x *MemInfo) GetMapped() uint64 { - if x != nil { - return x.Mapped - } - return 0 -} - -func (x *MemInfo) GetShmem() uint64 { - if x != nil { - return x.Shmem - } - return 0 -} - -func (x *MemInfo) GetSlab() uint64 { - if x != nil { - return x.Slab - } - return 0 -} - -func (x *MemInfo) GetSreclaimable() uint64 { - if x != nil { - return x.Sreclaimable - } - return 0 -} - -func (x *MemInfo) GetSunreclaim() uint64 { - if x != nil { - return x.Sunreclaim - } - return 0 -} - -func (x *MemInfo) GetKernelstack() uint64 { - if x != nil { - return x.Kernelstack - } - return 0 -} - -func (x *MemInfo) GetPagetables() uint64 { - if x != nil { - return x.Pagetables - } - return 0 -} - -func (x *MemInfo) GetNfsunstable() uint64 { - if x != nil { - return x.Nfsunstable - } - return 0 -} - -func (x *MemInfo) GetBounce() uint64 { - if x != nil { - return x.Bounce - } - return 0 -} - -func (x *MemInfo) GetWritebacktmp() uint64 { - if x != nil { - return x.Writebacktmp - } - return 0 -} - -func (x *MemInfo) GetCommitlimit() uint64 { - if x != nil { - return x.Commitlimit - } - return 0 -} - -func (x *MemInfo) GetCommittedas() uint64 { - if x != nil { - return x.Committedas - } - return 0 -} - -func (x *MemInfo) GetVmalloctotal() uint64 { - if x != nil { - return x.Vmalloctotal - } - return 0 -} - -func (x *MemInfo) GetVmallocused() uint64 { - if x != nil { - return x.Vmallocused - } - return 0 -} - -func (x *MemInfo) GetVmallocchunk() uint64 { - if x != nil { - return x.Vmallocchunk - } - return 0 -} - -func (x *MemInfo) GetHardwarecorrupted() uint64 { - if x != nil { - return x.Hardwarecorrupted - } - return 0 -} - -func (x *MemInfo) GetAnonhugepages() uint64 { - if x != nil { - return x.Anonhugepages - } - return 0 -} - -func (x *MemInfo) GetShmemhugepages() uint64 { - if x != nil { - return x.Shmemhugepages - } - return 0 -} - -func (x *MemInfo) GetShmempmdmapped() uint64 { - if x != nil { - return x.Shmempmdmapped - } - return 0 -} - -func (x *MemInfo) GetCmatotal() uint64 { - if x != nil { - return x.Cmatotal - } - return 0 -} - -func (x *MemInfo) GetCmafree() uint64 { - if x != nil { - return x.Cmafree - } - return 0 -} - -func (x *MemInfo) GetHugepagestotal() uint64 { - if x != nil { - return x.Hugepagestotal - } - return 0 -} - -func (x *MemInfo) GetHugepagesfree() uint64 { - if x != nil { - return x.Hugepagesfree - } - return 0 -} - -func (x *MemInfo) GetHugepagesrsvd() uint64 { - if x != nil { - return x.Hugepagesrsvd - } - return 0 -} - -func (x *MemInfo) GetHugepagessurp() uint64 { - if x != nil { - return x.Hugepagessurp - } - return 0 -} - -func (x *MemInfo) GetHugepagesize() uint64 { - if x != nil { - return x.Hugepagesize - } - return 0 -} - -func (x *MemInfo) GetDirectmap4K() uint64 { - if x != nil { - return x.Directmap4K - } - return 0 -} - -func (x *MemInfo) GetDirectmap2M() uint64 { - if x != nil { - return x.Directmap2M - } - return 0 -} - -func (x *MemInfo) GetDirectmap1G() uint64 { - if x != nil { - return x.Directmap1G - } - return 0 -} - var File_os_os_proto protoreflect.FileDescriptor var file_os_os_proto_rawDesc = []byte{ @@ -1545,317 +40,70 @@ var file_os_os_proto_rawDesc = []byte{ 0x73, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x62, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, - 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0xa8, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x6c, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, - 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, - 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, - 0x22, 0x3f, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x73, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x22, 0x3a, 0x0a, 0x0c, 0x44, 0x6d, 0x65, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x69, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x12, 0x0a, - 0x10, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x3c, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x73, 0x2e, 0x50, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, - 0x66, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x73, - 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x70, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x70, 0x69, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x19, 0x0a, - 0x08, 0x63, 0x70, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x07, 0x63, 0x70, 0x75, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, - 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, - 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, - 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0x37, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x3a, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x5d, 0x0a, 0x0c, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x64, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x72, 0x69, - 0x76, 0x65, 0x72, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x22, 0x55, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x08, 0x2e, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x73, 0x22, 0x36, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x9f, 0x01, 0x0a, 0x04, 0x53, - 0x74, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6f, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x70, 0x6f, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5d, 0x0a, 0x06, - 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x6d, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x38, 0x0a, 0x0e, 0x4d, - 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, - 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x8b, 0x0c, 0x0a, 0x07, 0x4d, 0x65, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x6d, 0x66, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x6d, 0x65, 0x6d, 0x66, 0x72, 0x65, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, - 0x65, 0x6d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x62, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x73, 0x77, 0x61, 0x70, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x61, 0x6e, 0x6f, 0x6e, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x61, 0x6e, 0x6f, - 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x61, 0x6e, 0x6f, - 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x61, 0x6e, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x66, - 0x69, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x65, - 0x76, 0x69, 0x63, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x75, 0x6e, 0x65, 0x76, 0x69, 0x63, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x6c, - 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x77, 0x61, 0x70, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x77, 0x61, 0x70, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x77, 0x61, 0x70, 0x66, 0x72, 0x65, 0x65, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x77, 0x61, 0x70, 0x66, 0x72, 0x65, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x69, 0x72, 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x64, 0x69, 0x72, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, - 0x63, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, - 0x61, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6e, 0x6f, 0x6e, 0x70, 0x61, 0x67, 0x65, 0x73, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6e, 0x6f, 0x6e, 0x70, 0x61, 0x67, 0x65, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x6d, - 0x65, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x68, 0x6d, 0x65, 0x6d, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x61, 0x62, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, - 0x6c, 0x61, 0x62, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x72, 0x65, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x72, 0x65, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x75, 0x6e, - 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x6b, 0x65, 0x72, 0x6e, 0x65, - 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6b, 0x65, - 0x72, 0x6e, 0x65, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, - 0x65, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, - 0x61, 0x67, 0x65, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x66, 0x73, - 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x6e, 0x66, 0x73, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, - 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x62, 0x6f, 0x75, - 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x62, 0x61, 0x63, 0x6b, - 0x74, 0x6d, 0x70, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x62, 0x61, 0x63, 0x6b, 0x74, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x61, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x76, - 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x20, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0c, 0x76, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, - 0x20, 0x0a, 0x0b, 0x76, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x75, 0x73, 0x65, 0x64, 0x18, 0x21, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x76, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x75, 0x73, 0x65, - 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x63, 0x68, 0x75, 0x6e, - 0x6b, 0x18, 0x22, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x76, 0x6d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, - 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x72, 0x75, 0x70, 0x74, 0x65, 0x64, 0x18, 0x23, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x11, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x72, 0x75, 0x70, - 0x74, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6e, 0x6f, 0x6e, 0x68, 0x75, 0x67, 0x65, 0x70, - 0x61, 0x67, 0x65, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x61, 0x6e, 0x6f, 0x6e, - 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x68, 0x6d, - 0x65, 0x6d, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0e, 0x73, 0x68, 0x6d, 0x65, 0x6d, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, - 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x68, 0x6d, 0x65, 0x6d, 0x70, 0x6d, 0x64, 0x6d, 0x61, 0x70, - 0x70, 0x65, 0x64, 0x18, 0x26, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x68, 0x6d, 0x65, 0x6d, - 0x70, 0x6d, 0x64, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6d, 0x61, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x27, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x6d, 0x61, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6d, 0x61, 0x66, 0x72, 0x65, 0x65, - 0x18, 0x28, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6d, 0x61, 0x66, 0x72, 0x65, 0x65, 0x12, - 0x26, 0x0a, 0x0e, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, - 0x65, 0x73, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x75, 0x67, 0x65, 0x70, - 0x61, 0x67, 0x65, 0x73, 0x66, 0x72, 0x65, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, - 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x66, 0x72, 0x65, 0x65, 0x12, 0x24, 0x0a, - 0x0d, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x72, 0x73, 0x76, 0x64, 0x18, 0x2b, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x72, - 0x73, 0x76, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, - 0x73, 0x75, 0x72, 0x70, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x68, 0x75, 0x67, 0x65, - 0x70, 0x61, 0x67, 0x65, 0x73, 0x73, 0x75, 0x72, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x75, 0x67, - 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0c, 0x68, 0x75, 0x67, 0x65, 0x70, 0x61, 0x67, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x70, 0x34, 0x6b, 0x18, 0x2e, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x70, 0x34, 0x6b, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x70, 0x32, 0x6d, 0x18, 0x2f, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x70, 0x32, - 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, 0x70, 0x31, 0x67, - 0x18, 0x30, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6d, 0x61, - 0x70, 0x31, 0x67, 0x32, 0xc7, 0x02, 0x0a, 0x09, 0x4f, 0x53, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, - 0x15, 0x2e, 0x6f, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, - 0x0a, 0x05, 0x44, 0x6d, 0x65, 0x73, 0x67, 0x12, 0x10, 0x2e, 0x6f, 0x73, 0x2e, 0x44, 0x6d, 0x65, - 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x4d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x6f, 0x73, - 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3a, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x6f, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x52, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x12, 0x2e, 0x6f, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6f, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x2c, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x10, 0x2e, 0x6f, 0x73, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x6f, 0x73, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x3c, 0x0a, - 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x05, 0x4f, 0x73, 0x41, - 0x70, 0x69, 0x50, 0x01, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x2d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x74, - 0x61, 0x6c, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xf9, 0x02, 0x0a, 0x09, 0x4f, + 0x53, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2e, 0x0a, 0x05, 0x44, 0x6d, 0x65, 0x73, 0x67, 0x12, 0x15, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x2e, 0x44, 0x6d, 0x65, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x0c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, + 0x39, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x50, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x1a, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x52, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x18, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x12, 0x15, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x1a, 0x03, 0x88, 0x02, 0x01, 0x42, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x73, + 0x2e, 0x61, 0x70, 0x69, 0x42, 0x05, 0x4f, 0x73, 0x41, 0x70, 0x69, 0x50, 0x01, 0x5a, 0x25, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x2d, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -var ( - file_os_os_proto_rawDescOnce sync.Once - file_os_os_proto_rawDescData = file_os_os_proto_rawDesc -) - -func file_os_os_proto_rawDescGZIP() []byte { - file_os_os_proto_rawDescOnce.Do(func() { - file_os_os_proto_rawDescData = protoimpl.X.CompressGZIP(file_os_os_proto_rawDescData) - }) - return file_os_os_proto_rawDescData +var file_os_os_proto_goTypes = []interface{}{ + (*machine.ContainersRequest)(nil), // 0: machine.ContainersRequest + (*machine.DmesgRequest)(nil), // 1: machine.DmesgRequest + (*empty.Empty)(nil), // 2: google.protobuf.Empty + (*machine.RestartRequest)(nil), // 3: machine.RestartRequest + (*machine.StatsRequest)(nil), // 4: machine.StatsRequest + (*machine.ContainersResponse)(nil), // 5: machine.ContainersResponse + (*common.Data)(nil), // 6: common.Data + (*machine.MemoryResponse)(nil), // 7: machine.MemoryResponse + (*machine.ProcessesResponse)(nil), // 8: machine.ProcessesResponse + (*machine.RestartResponse)(nil), // 9: machine.RestartResponse + (*machine.StatsResponse)(nil), // 10: machine.StatsResponse } -var ( - file_os_os_proto_msgTypes = make([]protoimpl.MessageInfo, 19) - file_os_os_proto_goTypes = []interface{}{ - (*ContainersRequest)(nil), // 0: os.ContainersRequest - (*ContainerInfo)(nil), // 1: os.ContainerInfo - (*Container)(nil), // 2: os.Container - (*ContainersResponse)(nil), // 3: os.ContainersResponse - (*DmesgRequest)(nil), // 4: os.DmesgRequest - (*ProcessesRequest)(nil), // 5: os.ProcessesRequest - (*ProcessesResponse)(nil), // 6: os.ProcessesResponse - (*Process)(nil), // 7: os.Process - (*ProcessInfo)(nil), // 8: os.ProcessInfo - (*RestartRequest)(nil), // 9: os.RestartRequest - (*Restart)(nil), // 10: os.Restart - (*RestartResponse)(nil), // 11: os.RestartResponse - (*StatsRequest)(nil), // 12: os.StatsRequest - (*Stats)(nil), // 13: os.Stats - (*StatsResponse)(nil), // 14: os.StatsResponse - (*Stat)(nil), // 15: os.Stat - (*Memory)(nil), // 16: os.Memory - (*MemoryResponse)(nil), // 17: os.MemoryResponse - (*MemInfo)(nil), // 18: os.MemInfo - (common.ContainerDriver)(0), // 19: common.ContainerDriver - (*common.Metadata)(nil), // 20: common.Metadata - (*empty.Empty)(nil), // 21: google.protobuf.Empty - (*common.Data)(nil), // 22: common.Data - } -) - var file_os_os_proto_depIdxs = []int32{ - 19, // 0: os.ContainersRequest.driver:type_name -> common.ContainerDriver - 20, // 1: os.Container.metadata:type_name -> common.Metadata - 1, // 2: os.Container.containers:type_name -> os.ContainerInfo - 2, // 3: os.ContainersResponse.messages:type_name -> os.Container - 7, // 4: os.ProcessesResponse.messages:type_name -> os.Process - 20, // 5: os.Process.metadata:type_name -> common.Metadata - 8, // 6: os.Process.processes:type_name -> os.ProcessInfo - 19, // 7: os.RestartRequest.driver:type_name -> common.ContainerDriver - 20, // 8: os.Restart.metadata:type_name -> common.Metadata - 10, // 9: os.RestartResponse.messages:type_name -> os.Restart - 19, // 10: os.StatsRequest.driver:type_name -> common.ContainerDriver - 20, // 11: os.Stats.metadata:type_name -> common.Metadata - 15, // 12: os.Stats.stats:type_name -> os.Stat - 13, // 13: os.StatsResponse.messages:type_name -> os.Stats - 20, // 14: os.Memory.metadata:type_name -> common.Metadata - 18, // 15: os.Memory.meminfo:type_name -> os.MemInfo - 16, // 16: os.MemoryResponse.messages:type_name -> os.Memory - 0, // 17: os.OSService.Containers:input_type -> os.ContainersRequest - 4, // 18: os.OSService.Dmesg:input_type -> os.DmesgRequest - 21, // 19: os.OSService.Memory:input_type -> google.protobuf.Empty - 21, // 20: os.OSService.Processes:input_type -> google.protobuf.Empty - 9, // 21: os.OSService.Restart:input_type -> os.RestartRequest - 12, // 22: os.OSService.Stats:input_type -> os.StatsRequest - 3, // 23: os.OSService.Containers:output_type -> os.ContainersResponse - 22, // 24: os.OSService.Dmesg:output_type -> common.Data - 17, // 25: os.OSService.Memory:output_type -> os.MemoryResponse - 6, // 26: os.OSService.Processes:output_type -> os.ProcessesResponse - 11, // 27: os.OSService.Restart:output_type -> os.RestartResponse - 14, // 28: os.OSService.Stats:output_type -> os.StatsResponse - 23, // [23:29] is the sub-list for method output_type - 17, // [17:23] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 0, // 0: os.OSService.Containers:input_type -> machine.ContainersRequest + 1, // 1: os.OSService.Dmesg:input_type -> machine.DmesgRequest + 2, // 2: os.OSService.Memory:input_type -> google.protobuf.Empty + 2, // 3: os.OSService.Processes:input_type -> google.protobuf.Empty + 3, // 4: os.OSService.Restart:input_type -> machine.RestartRequest + 4, // 5: os.OSService.Stats:input_type -> machine.StatsRequest + 5, // 6: os.OSService.Containers:output_type -> machine.ContainersResponse + 6, // 7: os.OSService.Dmesg:output_type -> common.Data + 7, // 8: os.OSService.Memory:output_type -> machine.MemoryResponse + 8, // 9: os.OSService.Processes:output_type -> machine.ProcessesResponse + 9, // 10: os.OSService.Restart:output_type -> machine.RestartResponse + 10, // 11: os.OSService.Stats:output_type -> machine.StatsResponse + 6, // [6:12] is the sub-list for method output_type + 0, // [0:6] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name } func init() { file_os_os_proto_init() } @@ -1863,249 +111,18 @@ func file_os_os_proto_init() { if File_os_os_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_os_os_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContainersRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContainerInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Container); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContainersResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DmesgRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProcessesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProcessesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Process); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProcessInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RestartRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Restart); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RestartResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Stats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Stat); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Memory); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MemoryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_os_os_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MemInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_os_os_proto_rawDesc, NumEnums: 0, - NumMessages: 19, + NumMessages: 0, NumExtensions: 0, NumServices: 1, }, GoTypes: file_os_os_proto_goTypes, DependencyIndexes: file_os_os_proto_depIdxs, - MessageInfos: file_os_os_proto_msgTypes, }.Build() File_os_os_proto = out.File file_os_os_proto_rawDesc = nil @@ -2126,25 +143,28 @@ const _ = grpc.SupportPackageIsVersion6 // OSServiceClient is the client API for OSService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +// +// Deprecated: Do not use. type OSServiceClient interface { - Containers(ctx context.Context, in *ContainersRequest, opts ...grpc.CallOption) (*ContainersResponse, error) - Dmesg(ctx context.Context, in *DmesgRequest, opts ...grpc.CallOption) (OSService_DmesgClient, error) - Memory(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MemoryResponse, error) - Processes(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ProcessesResponse, error) - Restart(ctx context.Context, in *RestartRequest, opts ...grpc.CallOption) (*RestartResponse, error) - Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (*StatsResponse, error) + Containers(ctx context.Context, in *machine.ContainersRequest, opts ...grpc.CallOption) (*machine.ContainersResponse, error) + Dmesg(ctx context.Context, in *machine.DmesgRequest, opts ...grpc.CallOption) (OSService_DmesgClient, error) + Memory(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*machine.MemoryResponse, error) + Processes(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*machine.ProcessesResponse, error) + Restart(ctx context.Context, in *machine.RestartRequest, opts ...grpc.CallOption) (*machine.RestartResponse, error) + Stats(ctx context.Context, in *machine.StatsRequest, opts ...grpc.CallOption) (*machine.StatsResponse, error) } type oSServiceClient struct { cc grpc.ClientConnInterface } +// Deprecated: Do not use. func NewOSServiceClient(cc grpc.ClientConnInterface) OSServiceClient { return &oSServiceClient{cc} } -func (c *oSServiceClient) Containers(ctx context.Context, in *ContainersRequest, opts ...grpc.CallOption) (*ContainersResponse, error) { - out := new(ContainersResponse) +func (c *oSServiceClient) Containers(ctx context.Context, in *machine.ContainersRequest, opts ...grpc.CallOption) (*machine.ContainersResponse, error) { + out := new(machine.ContainersResponse) err := c.cc.Invoke(ctx, "/os.OSService/Containers", in, out, opts...) if err != nil { return nil, err @@ -2152,7 +172,7 @@ func (c *oSServiceClient) Containers(ctx context.Context, in *ContainersRequest, return out, nil } -func (c *oSServiceClient) Dmesg(ctx context.Context, in *DmesgRequest, opts ...grpc.CallOption) (OSService_DmesgClient, error) { +func (c *oSServiceClient) Dmesg(ctx context.Context, in *machine.DmesgRequest, opts ...grpc.CallOption) (OSService_DmesgClient, error) { stream, err := c.cc.NewStream(ctx, &_OSService_serviceDesc.Streams[0], "/os.OSService/Dmesg", opts...) if err != nil { return nil, err @@ -2184,8 +204,8 @@ func (x *oSServiceDmesgClient) Recv() (*common.Data, error) { return m, nil } -func (c *oSServiceClient) Memory(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MemoryResponse, error) { - out := new(MemoryResponse) +func (c *oSServiceClient) Memory(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*machine.MemoryResponse, error) { + out := new(machine.MemoryResponse) err := c.cc.Invoke(ctx, "/os.OSService/Memory", in, out, opts...) if err != nil { return nil, err @@ -2193,8 +213,8 @@ func (c *oSServiceClient) Memory(ctx context.Context, in *empty.Empty, opts ...g return out, nil } -func (c *oSServiceClient) Processes(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ProcessesResponse, error) { - out := new(ProcessesResponse) +func (c *oSServiceClient) Processes(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*machine.ProcessesResponse, error) { + out := new(machine.ProcessesResponse) err := c.cc.Invoke(ctx, "/os.OSService/Processes", in, out, opts...) if err != nil { return nil, err @@ -2202,8 +222,8 @@ func (c *oSServiceClient) Processes(ctx context.Context, in *empty.Empty, opts . return out, nil } -func (c *oSServiceClient) Restart(ctx context.Context, in *RestartRequest, opts ...grpc.CallOption) (*RestartResponse, error) { - out := new(RestartResponse) +func (c *oSServiceClient) Restart(ctx context.Context, in *machine.RestartRequest, opts ...grpc.CallOption) (*machine.RestartResponse, error) { + out := new(machine.RestartResponse) err := c.cc.Invoke(ctx, "/os.OSService/Restart", in, out, opts...) if err != nil { return nil, err @@ -2211,8 +231,8 @@ func (c *oSServiceClient) Restart(ctx context.Context, in *RestartRequest, opts return out, nil } -func (c *oSServiceClient) Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (*StatsResponse, error) { - out := new(StatsResponse) +func (c *oSServiceClient) Stats(ctx context.Context, in *machine.StatsRequest, opts ...grpc.CallOption) (*machine.StatsResponse, error) { + out := new(machine.StatsResponse) err := c.cc.Invoke(ctx, "/os.OSService/Stats", in, out, opts...) if err != nil { return nil, err @@ -2221,49 +241,52 @@ func (c *oSServiceClient) Stats(ctx context.Context, in *StatsRequest, opts ...g } // OSServiceServer is the server API for OSService service. +// +// Deprecated: Do not use. type OSServiceServer interface { - Containers(context.Context, *ContainersRequest) (*ContainersResponse, error) - Dmesg(*DmesgRequest, OSService_DmesgServer) error - Memory(context.Context, *empty.Empty) (*MemoryResponse, error) - Processes(context.Context, *empty.Empty) (*ProcessesResponse, error) - Restart(context.Context, *RestartRequest) (*RestartResponse, error) - Stats(context.Context, *StatsRequest) (*StatsResponse, error) + Containers(context.Context, *machine.ContainersRequest) (*machine.ContainersResponse, error) + Dmesg(*machine.DmesgRequest, OSService_DmesgServer) error + Memory(context.Context, *empty.Empty) (*machine.MemoryResponse, error) + Processes(context.Context, *empty.Empty) (*machine.ProcessesResponse, error) + Restart(context.Context, *machine.RestartRequest) (*machine.RestartResponse, error) + Stats(context.Context, *machine.StatsRequest) (*machine.StatsResponse, error) } // UnimplementedOSServiceServer can be embedded to have forward compatible implementations. type UnimplementedOSServiceServer struct { } -func (*UnimplementedOSServiceServer) Containers(context.Context, *ContainersRequest) (*ContainersResponse, error) { +func (*UnimplementedOSServiceServer) Containers(context.Context, *machine.ContainersRequest) (*machine.ContainersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Containers not implemented") } -func (*UnimplementedOSServiceServer) Dmesg(*DmesgRequest, OSService_DmesgServer) error { +func (*UnimplementedOSServiceServer) Dmesg(*machine.DmesgRequest, OSService_DmesgServer) error { return status.Errorf(codes.Unimplemented, "method Dmesg not implemented") } -func (*UnimplementedOSServiceServer) Memory(context.Context, *empty.Empty) (*MemoryResponse, error) { +func (*UnimplementedOSServiceServer) Memory(context.Context, *empty.Empty) (*machine.MemoryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Memory not implemented") } -func (*UnimplementedOSServiceServer) Processes(context.Context, *empty.Empty) (*ProcessesResponse, error) { +func (*UnimplementedOSServiceServer) Processes(context.Context, *empty.Empty) (*machine.ProcessesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Processes not implemented") } -func (*UnimplementedOSServiceServer) Restart(context.Context, *RestartRequest) (*RestartResponse, error) { +func (*UnimplementedOSServiceServer) Restart(context.Context, *machine.RestartRequest) (*machine.RestartResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Restart not implemented") } -func (*UnimplementedOSServiceServer) Stats(context.Context, *StatsRequest) (*StatsResponse, error) { +func (*UnimplementedOSServiceServer) Stats(context.Context, *machine.StatsRequest) (*machine.StatsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Stats not implemented") } +// Deprecated: Do not use. func RegisterOSServiceServer(s *grpc.Server, srv OSServiceServer) { s.RegisterService(&_OSService_serviceDesc, srv) } func _OSService_Containers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ContainersRequest) + in := new(machine.ContainersRequest) if err := dec(in); err != nil { return nil, err } @@ -2275,13 +298,13 @@ func _OSService_Containers_Handler(srv interface{}, ctx context.Context, dec fun FullMethod: "/os.OSService/Containers", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OSServiceServer).Containers(ctx, req.(*ContainersRequest)) + return srv.(OSServiceServer).Containers(ctx, req.(*machine.ContainersRequest)) } return interceptor(ctx, in, info, handler) } func _OSService_Dmesg_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(DmesgRequest) + m := new(machine.DmesgRequest) if err := stream.RecvMsg(m); err != nil { return err } @@ -2338,7 +361,7 @@ func _OSService_Processes_Handler(srv interface{}, ctx context.Context, dec func } func _OSService_Restart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RestartRequest) + in := new(machine.RestartRequest) if err := dec(in); err != nil { return nil, err } @@ -2350,13 +373,13 @@ func _OSService_Restart_Handler(srv interface{}, ctx context.Context, dec func(i FullMethod: "/os.OSService/Restart", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OSServiceServer).Restart(ctx, req.(*RestartRequest)) + return srv.(OSServiceServer).Restart(ctx, req.(*machine.RestartRequest)) } return interceptor(ctx, in, info, handler) } func _OSService_Stats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(StatsRequest) + in := new(machine.StatsRequest) if err := dec(in); err != nil { return nil, err } @@ -2368,7 +391,7 @@ func _OSService_Stats_Handler(srv interface{}, ctx context.Context, dec func(int FullMethod: "/os.OSService/Stats", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OSServiceServer).Stats(ctx, req.(*StatsRequest)) + return srv.(OSServiceServer).Stats(ctx, req.(*machine.StatsRequest)) } return interceptor(ctx, in, info, handler) } diff --git a/api/os/os.proto b/api/os/os.proto index 812c66880..ec0ca982b 100644 --- a/api/os/os.proto +++ b/api/os/os.proto @@ -9,170 +9,18 @@ option java_package = "com.os.api"; import "google/protobuf/empty.proto"; import "common/common.proto"; +import "machine/machine.proto"; // The OS service definition. // -// OS Service also implements all the API of Init Service +// Deprecated: this API is deprecated and merged into Machine API. service OSService { - rpc Containers(ContainersRequest) returns (ContainersResponse); - rpc Dmesg(DmesgRequest) returns (stream common.Data); - rpc Memory(google.protobuf.Empty) returns (MemoryResponse); - rpc Processes(google.protobuf.Empty) returns (ProcessesResponse); - rpc Restart(RestartRequest) returns (RestartResponse); - rpc Stats(StatsRequest) returns (StatsResponse); -} - -// rpc Containers - -message ContainersRequest { - string namespace = 1; - // driver might be default "containerd" or "cri" - common.ContainerDriver driver = 2; -} - -// The messages message containing the requested containers. -message ContainerInfo { - string namespace = 1; - string id = 2; - string image = 3; - uint32 pid = 4; - string status = 5; - string pod_id = 6; - string name = 7; -} - -// The messages message containing the requested containers. -message Container { - common.Metadata metadata = 1; - repeated ContainerInfo containers = 2; -} - -message ContainersResponse { repeated Container messages = 1; } - -// dmesg -message DmesgRequest { - bool follow = 1; - bool tail = 2; -} - -// rpc processes -message ProcessesRequest {} - -message ProcessesResponse { repeated Process messages = 1; } - -message Process { - common.Metadata metadata = 1; - repeated ProcessInfo processes = 2; -} - -message ProcessInfo { - int32 pid = 1; - int32 ppid = 2; - string state = 3; - int32 threads = 4; - double cpu_time = 5; - uint64 virtual_memory = 6; - uint64 resident_memory = 7; - string command = 8; - string executable = 9; - string args = 10; -} - -// rpc restart -// The request message containing the process to restart. -message RestartRequest { - string namespace = 1; - string id = 2; - // driver might be default "containerd" or "cri" - common.ContainerDriver driver = 3; -} - -message Restart { common.Metadata metadata = 1; } - -// The messages message containing the restart status. -message RestartResponse { repeated Restart messages = 1; } - -// rpc stats - -// The request message containing the containerd namespace. -message StatsRequest { - string namespace = 1; - // driver might be default "containerd" or "cri" - common.ContainerDriver driver = 2; -} - -// The messages message containing the requested stats. -message Stats { - common.Metadata metadata = 1; - repeated Stat stats = 2; -} - -message StatsResponse { repeated Stats messages = 1; } - -// The messages message containing the requested stat. -message Stat { - string namespace = 1; - string id = 2; - uint64 memory_usage = 4; - uint64 cpu_usage = 5; - string pod_id = 6; - string name = 7; -} - -message Memory { - common.Metadata metadata = 1; - MemInfo meminfo = 2; -} - -message MemoryResponse { repeated Memory messages = 1; } - -message MemInfo { - uint64 memtotal = 1; - uint64 memfree = 2; - uint64 memavailable = 3; - uint64 buffers = 4; - uint64 cached = 5; - uint64 swapcached = 6; - uint64 active = 7; - uint64 inactive = 8; - uint64 activeanon = 9; - uint64 inactiveanon = 10; - uint64 activefile = 11; - uint64 inactivefile = 12; - uint64 unevictable = 13; - uint64 mlocked = 14; - uint64 swaptotal = 15; - uint64 swapfree = 16; - uint64 dirty = 17; - uint64 writeback = 18; - uint64 anonpages = 19; - uint64 mapped = 20; - uint64 shmem = 21; - uint64 slab = 22; - uint64 sreclaimable = 23; - uint64 sunreclaim = 24; - uint64 kernelstack = 25; - uint64 pagetables = 26; - uint64 nfsunstable = 27; - uint64 bounce = 28; - uint64 writebacktmp = 29; - uint64 commitlimit = 30; - uint64 committedas = 31; - uint64 vmalloctotal = 32; - uint64 vmallocused = 33; - uint64 vmallocchunk = 34; - uint64 hardwarecorrupted = 35; - uint64 anonhugepages = 36; - uint64 shmemhugepages = 37; - uint64 shmempmdmapped = 38; - uint64 cmatotal = 39; - uint64 cmafree = 40; - uint64 hugepagestotal = 41; - uint64 hugepagesfree = 42; - uint64 hugepagesrsvd = 43; - uint64 hugepagessurp = 44; - uint64 hugepagesize = 45; - uint64 directmap4k = 46; - uint64 directmap2m = 47; - uint64 directmap1g = 48; + option deprecated = true; + + rpc Containers(machine.ContainersRequest) returns (machine.ContainersResponse); + rpc Dmesg(machine.DmesgRequest) returns (stream common.Data); + rpc Memory(google.protobuf.Empty) returns (machine.MemoryResponse); + rpc Processes(google.protobuf.Empty) returns (machine.ProcessesResponse); + rpc Restart(machine.RestartRequest) returns (machine.RestartResponse); + rpc Stats(machine.StatsRequest) returns (machine.StatsResponse); } diff --git a/cmd/talosctl/cmd/talos/containers.go b/cmd/talosctl/cmd/talos/containers.go index 6827a3d13..dcd7cf454 100644 --- a/cmd/talosctl/cmd/talos/containers.go +++ b/cmd/talosctl/cmd/talos/containers.go @@ -18,7 +18,7 @@ import ( "google.golang.org/grpc/peer" "github.com/talos-systems/talos/api/common" - osapi "github.com/talos-systems/talos/api/os" + machineapi "github.com/talos-systems/talos/api/machine" "github.com/talos-systems/talos/pkg/cli" "github.com/talos-systems/talos/pkg/client" "github.com/talos-systems/talos/pkg/constants" @@ -60,7 +60,7 @@ var containersCmd = &cobra.Command{ }, } -func containerRender(remotePeer *peer.Peer, resp *osapi.ContainersResponse) error { +func containerRender(remotePeer *peer.Peer, resp *machineapi.ContainersResponse) error { w := tabwriter.NewWriter(os.Stdout, 0, 0, 3, ' ', 0) fmt.Fprintln(w, "NODE\tNAMESPACE\tID\tIMAGE\tPID\tSTATUS") diff --git a/cmd/talosctl/cmd/talos/memory.go b/cmd/talosctl/cmd/talos/memory.go index 484a0a21e..e84851db5 100644 --- a/cmd/talosctl/cmd/talos/memory.go +++ b/cmd/talosctl/cmd/talos/memory.go @@ -14,7 +14,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/peer" - osapi "github.com/talos-systems/talos/api/os" + machineapi "github.com/talos-systems/talos/api/machine" "github.com/talos-systems/talos/pkg/cli" "github.com/talos-systems/talos/pkg/client" ) @@ -50,7 +50,7 @@ var memoryCmd = &cobra.Command{ }, } -func briefRender(remotePeer *peer.Peer, resp *osapi.MemoryResponse) error { +func briefRender(remotePeer *peer.Peer, resp *machineapi.MemoryResponse) error { w := tabwriter.NewWriter(os.Stdout, 0, 0, 3, ' ', 0) fmt.Fprintln(w, "NODE\tTOTAL\tUSED\tFREE\tSHARED\tBUFFERS\tCACHE\tAVAILABLE") @@ -79,7 +79,7 @@ func briefRender(remotePeer *peer.Peer, resp *osapi.MemoryResponse) error { return w.Flush() } -func verboseRender(remotePeer *peer.Peer, resp *osapi.MemoryResponse) error { +func verboseRender(remotePeer *peer.Peer, resp *machineapi.MemoryResponse) error { defaultNode := client.AddrFromPeer(remotePeer) // Dump as /proc/meminfo diff --git a/cmd/talosctl/cmd/talos/processes.go b/cmd/talosctl/cmd/talos/processes.go index accac123d..aefff1929 100644 --- a/cmd/talosctl/cmd/talos/processes.go +++ b/cmd/talosctl/cmd/talos/processes.go @@ -21,7 +21,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/peer" - osapi "github.com/talos-systems/talos/api/os" + machineapi "github.com/talos-systems/talos/api/machine" "github.com/talos-systems/talos/pkg/cli" "github.com/talos-systems/talos/pkg/client" ) @@ -128,9 +128,9 @@ func processesUI(ctx context.Context, c *client.Client) { } } -type by func(p1, p2 *osapi.ProcessInfo) bool +type by func(p1, p2 *machineapi.ProcessInfo) bool -func (b by) sort(procs []*osapi.ProcessInfo) { +func (b by) sort(procs []*machineapi.ProcessInfo) { ps := &procSorter{ procs: procs, by: b, // The Sort method's receiver is the function (closure) that defines the sort order. @@ -139,8 +139,8 @@ func (b by) sort(procs []*osapi.ProcessInfo) { } type procSorter struct { - procs []*osapi.ProcessInfo - by func(p1, p2 *osapi.ProcessInfo) bool // Closure used in the Less method. + procs []*machineapi.ProcessInfo + by func(p1, p2 *machineapi.ProcessInfo) bool // Closure used in the Less method. } // Len is part of sort.Interface. @@ -159,12 +159,12 @@ func (s *procSorter) Less(i, j int) bool { } // Sort Methods. -var rss = func(p1, p2 *osapi.ProcessInfo) bool { +var rss = func(p1, p2 *machineapi.ProcessInfo) bool { // Reverse sort ( Descending ) return p1.ResidentMemory > p2.ResidentMemory } -var cpu = func(p1, p2 *osapi.ProcessInfo) bool { +var cpu = func(p1, p2 *machineapi.ProcessInfo) bool { // Reverse sort ( Descending ) return p1.CpuTime > p2.CpuTime } diff --git a/cmd/talosctl/cmd/talos/stats.go b/cmd/talosctl/cmd/talos/stats.go index 9cbfcd028..c15cfe12a 100644 --- a/cmd/talosctl/cmd/talos/stats.go +++ b/cmd/talosctl/cmd/talos/stats.go @@ -18,7 +18,7 @@ import ( "google.golang.org/grpc/peer" "github.com/talos-systems/talos/api/common" - osapi "github.com/talos-systems/talos/api/os" + machineapi "github.com/talos-systems/talos/api/machine" "github.com/talos-systems/talos/pkg/cli" "github.com/talos-systems/talos/pkg/client" "github.com/talos-systems/talos/pkg/constants" @@ -59,7 +59,7 @@ var statsCmd = &cobra.Command{ }, } -func statsRender(remotePeer *peer.Peer, resp *osapi.StatsResponse) error { +func statsRender(remotePeer *peer.Peer, resp *machineapi.StatsResponse) error { w := tabwriter.NewWriter(os.Stdout, 0, 0, 3, ' ', 0) fmt.Fprintln(w, "NODE\tNAMESPACE\tID\tMEMORY(MB)\tCPU") diff --git a/docs/website/content/v0.6.en.json b/docs/website/content/v0.6.en.json index 9086276b7..91c10c314 100644 --- a/docs/website/content/v0.6.en.json +++ b/docs/website/content/v0.6.en.json @@ -166,10 +166,6 @@ "title": "timed", "path": "v0.6/en/components/timed" }, - { - "title": "osd", - "path": "v0.6/en/components/osd" - }, { "title": "trustd", "path": "v0.6/en/components/trustd" diff --git a/docs/website/content/v0.6/en/components/apid.md b/docs/website/content/v0.6/en/components/apid.md index 0429370ea..e9b990e7e 100644 --- a/docs/website/content/v0.6/en/components/apid.md +++ b/docs/website/content/v0.6/en/components/apid.md @@ -17,7 +17,7 @@ If `--nodes` is not specified, the first endpoint will be used. > Note: Typically there will be an `endpoint` already defined in the Talos config file. > Optionally, `nodes` can be included here as well. -For example, if a user wants to interact with `osd`, a command like `talosctl -e cluster.talos.dev memory` may be used. +For example, if a user wants to interact with `machined`, a command like `talosctl -e cluster.talos.dev memory` may be used. ```bash $ talosctl -e cluster.talos.dev memory @@ -25,7 +25,7 @@ NODE TOTAL USED FREE SHARED BUFFERS CACHE AVAILABLE cluster.talos.dev 7938 1768 2390 145 53 3724 6571 ``` -In this case, `talosctl` is interacting with `apid` running on `cluster.talos.dev` and forwarding the request to the `osd` api. +In this case, `talosctl` is interacting with `apid` running on `cluster.talos.dev` and forwarding the request to the `machined` api. If we wanted to extend our example to retrieve `memory` from another node in our cluster, we could use the command `talosctl -e cluster.talos.dev -n node02 memory`. @@ -35,7 +35,7 @@ NODE TOTAL USED FREE SHARED BUFFERS CACHE AVAILABLE node02 7938 1768 2390 145 53 3724 6571 ``` -The `apid` instance on `cluster.talos.dev` receives the request and forwards it to `apid` running on `node02` which forwards the request to the `osd` api. +The `apid` instance on `cluster.talos.dev` receives the request and forwards it to `apid` running on `node02` which forwards the request to the `machined` api. We can further extend our example to retrieve `memory` for all nodes in our cluster by appending additional `-n node` flags or using a comma separated list of nodes ( `-n node01,node02,node03` ): @@ -47,4 +47,4 @@ node02 257844 14408 190796 18138 49 52589 227492 node03 257844 1830 255186 125 49 777 254556 ``` -The `apid` instance on `cluster.talos.dev` receives the request and forwards is to `node01`, `node02`, and `node03` which then forwards the request to their local `osd` api. +The `apid` instance on `cluster.talos.dev` receives the request and forwards is to `node01`, `node02`, and `node03` which then forwards the request to their local `machined` api. diff --git a/docs/website/content/v0.6/en/components/machined.md b/docs/website/content/v0.6/en/components/machined.md index f3a49a1ac..8b1b08ede 100644 --- a/docs/website/content/v0.6/en/components/machined.md +++ b/docs/website/content/v0.6/en/components/machined.md @@ -16,6 +16,5 @@ This includes: - [kubelet](https://kubernetes.io/docs/concepts/overview/components/) - [networkd](networkd) - [timed](timed) -- [osd](osd) - [trustd](trustd) - [udevd](udevd) diff --git a/docs/website/content/v0.6/en/components/osctl.md b/docs/website/content/v0.6/en/components/osctl.md index a56fbee3d..843f9947b 100644 --- a/docs/website/content/v0.6/en/components/osctl.md +++ b/docs/website/content/v0.6/en/components/osctl.md @@ -2,7 +2,7 @@ title: 'talosctl' --- -`talosctl` CLI is the client to the [osd](/components/osd) service running on every node. +`talosctl` CLI is the client to the [apid](/components/apid) service running on every node. `talosctl` should provide enough functionality to be a replacement for typical interactive shell operations. With it you can do things like: diff --git a/docs/website/content/v0.6/en/components/osd.md b/docs/website/content/v0.6/en/components/osd.md deleted file mode 100644 index 7446371ca..000000000 --- a/docs/website/content/v0.6/en/components/osd.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: 'osd' ---- - -Talos is unique in that it has no concept of host-level access. -There is no ssh daemon. -There is no interactive console session. -There are no shells installed. -Only what is required to run Kubernetes. -Furthermore, there is no way to run any custom processes on the host level. - -To make this work, we needed an out-of-band tool for managing the nodes. -In an ideal world, the system would be self-healing and we would never have to touch it. -But, in the real world, this does not happen. -We still need a way to handle operational scenarios that may arise. - -The `osd` daemon provides a way to do just that. -Based on the Principle of Least Privilege, `osd` provides operational value for cluster administrators by providing an API for node management. - -Interactions with `osd` are handled via [talosctl](/docs/components/talosctl) which communicates via gRPC. diff --git a/docs/website/content/v0.6/en/components/overview.md b/docs/website/content/v0.6/en/components/overview.md index 5fcfb3092..7b4c7c793 100644 --- a/docs/website/content/v0.6/en/components/overview.md +++ b/docs/website/content/v0.6/en/components/overview.md @@ -13,7 +13,6 @@ In this section we will discuss the various components of which Talos is compris | [machined](machined) | Talos replacement for the traditional Linux init-process. Specially designed to run Kubernetes and does not allow starting arbitrary user services. | | [networkd](networkd) | Handles all of the host level network configuration. Configuration is defined under the `networking` key | | [timed](timed) | Handles the host time synchronization by acting as a NTP-client. | -| [osd](osd) | Because there's no concept of host-level access in Talos, this is the out-of-band management tool for the nodes. It provides access to node information and offers operational functions. | | [kernel](kernel) | The Linux kernel included with Talos is configured according to the recommendations outlined in the [Kernel Self Protection Project](http://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project). | | [routerd](routerd) | Responsible for routing an incoming API request from `apid` to the appropriate backend (e.g. `osd`, `machined` and `timed`). | | [trustd](trustd) | To run and operate a Kubernetes cluster a certain level of trust is required. Based on the concept of a 'Root of Trust', `trustd` is a simple daemon responsible for establishing trust within the system. | diff --git a/docs/website/content/v0.6/en/configuration/overview.md b/docs/website/content/v0.6/en/configuration/overview.md index b7a7131e0..5347a4e49 100644 --- a/docs/website/content/v0.6/en/configuration/overview.md +++ b/docs/website/content/v0.6/en/configuration/overview.md @@ -5,7 +5,7 @@ title: 'Configuration Overview' In this section, we will step through the configuration of a Talos based Kubernetes cluster. There are three major components we will configure: -- `osd` and `talosctl` +- `apid` and `talosctl` - the master nodes - the worker nodes diff --git a/docs/website/content/v0.6/en/guides/cloud/azure.md b/docs/website/content/v0.6/en/guides/cloud/azure.md index e4db14b3e..288b047db 100644 --- a/docs/website/content/v0.6/en/guides/cloud/azure.md +++ b/docs/website/content/v0.6/en/guides/cloud/azure.md @@ -80,11 +80,11 @@ az network vnet create \ # Create network security group az network nsg create -g $GROUP -n talos-sg -# Client -> OSD +# Client -> apid az network nsg rule create \ -g $GROUP \ --nsg-name talos-sg \ - -n osd \ + -n apid \ --priority 1001 \ --destination-port-ranges 50000 \ --direction inbound diff --git a/docs/website/content/v0.6/en/guides/getting-started/talosctl.md b/docs/website/content/v0.6/en/guides/getting-started/talosctl.md index 953a8b7be..c18e1687f 100644 --- a/docs/website/content/v0.6/en/guides/getting-started/talosctl.md +++ b/docs/website/content/v0.6/en/guides/getting-started/talosctl.md @@ -104,7 +104,6 @@ NODE SERVICE STATE HEALTH LAST CHANGE LAST EVENT 192.168.2.44 machined-api Running ? 192h7m48s ago Service started as goroutine 192.168.2.44 networkd Running OK 192h7m11s ago Health check successful 192.168.2.44 ntpd Running ? 192h7m10s ago Started task ntpd (PID 4144) for container ntpd -192.168.2.44 osd Running OK 192h7m45s ago Health check successful 192.168.2.44 routerd Running OK 192h7m46s ago Started task routerd (PID 3907) for container routerd 192.168.2.44 system-containerd Running OK 192h7m48s ago Health check successful 192.168.2.44 trustd Running OK 192h7m45s ago Health check successful @@ -125,7 +124,6 @@ NODE NAMESPACE ID IMAGE PID STATUS 192.168.2.44 system apid talos/apid 4021 RUNNING 192.168.2.44 system networkd talos/networkd 3893 RUNNING 192.168.2.44 system ntpd talos/ntpd 4144 RUNNING -192.168.2.44 system osd talos/osd 4086 RUNNING 192.168.2.44 system routerd talos/routerd 3907 RUNNING 192.168.2.44 system trustd talos/trustd 4010 RUNNING ``` diff --git a/internal/app/apid/main.go b/internal/app/apid/main.go index a64853601..dc3c64156 100644 --- a/internal/app/apid/main.go +++ b/internal/app/apid/main.go @@ -72,6 +72,7 @@ func main() { // all existing streaming methods for _, methodName := range []string{ "/machine.MachineService/Copy", + "/machine.MachineService/Dmesg", "/machine.MachineService/Events", "/machine.MachineService/Kubeconfig", "/machine.MachineService/List", diff --git a/internal/app/machined/internal/server/v1alpha1/osd_compat.go b/internal/app/machined/internal/server/v1alpha1/osd_compat.go new file mode 100644 index 000000000..b2e4700ce --- /dev/null +++ b/internal/app/machined/internal/server/v1alpha1/osd_compat.go @@ -0,0 +1,19 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +package runtime + +import ( + "github.com/talos-systems/talos/api/machine" + "github.com/talos-systems/talos/api/os" +) + +type osdServer struct { + *Server +} + +// Dmesg implements the osapi.OsServer interface. +func (s *osdServer) Dmesg(req *machine.DmesgRequest, srv os.OSService_DmesgServer) error { + return s.Server.Dmesg(req, machine.MachineService_DmesgServer(srv)) +} diff --git a/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go b/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go index 87cb10ac4..469994fa5 100644 --- a/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go +++ b/internal/app/machined/internal/server/v1alpha1/v1alpha1_server.go @@ -17,6 +17,7 @@ import ( "os" "path/filepath" "strings" + "syscall" "time" "github.com/containerd/containerd" @@ -26,12 +27,14 @@ import ( criconstants "github.com/containerd/cri/pkg/constants" "github.com/golang/protobuf/ptypes/empty" "github.com/hashicorp/go-multierror" + "github.com/prometheus/procfs" "github.com/rs/xid" "golang.org/x/sys/unix" "google.golang.org/grpc" "github.com/talos-systems/talos/api/common" "github.com/talos-systems/talos/api/machine" + osapi "github.com/talos-systems/talos/api/os" "github.com/talos-systems/talos/internal/app/machined/pkg/runtime" "github.com/talos-systems/talos/internal/app/machined/pkg/runtime/v1alpha1/bootloader/syslinux" "github.com/talos-systems/talos/internal/app/machined/pkg/system" @@ -40,6 +43,7 @@ import ( "github.com/talos-systems/talos/internal/pkg/containers/cri" "github.com/talos-systems/talos/internal/pkg/containers/image" "github.com/talos-systems/talos/internal/pkg/etcd" + "github.com/talos-systems/talos/internal/pkg/kmsg" "github.com/talos-systems/talos/internal/pkg/kubeconfig" "github.com/talos-systems/talos/pkg/archiver" "github.com/talos-systems/talos/pkg/chunker" @@ -63,6 +67,7 @@ func (s *Server) Register(obj *grpc.Server) { s.server = obj machine.RegisterMachineServiceServer(obj, s) + osapi.RegisterOSServiceServer(obj, &osdServer{Server: s}) //nolint: staticcheck } // Reboot implements the machine.MachineServer interface. @@ -462,7 +467,7 @@ func (s *Server) List(req *machine.ListRequest, obj machine.MachineService_ListS return nil } -// Mounts implements the machine.OSDServer interface. +// Mounts implements the machine.MachineServer interface. func (s *Server) Mounts(ctx context.Context, in *empty.Empty) (reply *machine.MountsResponse, err error) { file, err := os.Open("/proc/mounts") if err != nil { @@ -553,7 +558,7 @@ func (s *Server) Version(ctx context.Context, in *empty.Empty) (reply *machine.V }, nil } -// Kubeconfig implements the osapi.OSDServer interface. +// Kubeconfig implements the machine.MachineServer interface. func (s *Server) Kubeconfig(empty *empty.Empty, obj machine.MachineService_KubeconfigServer) error { var b bytes.Buffer @@ -839,3 +844,325 @@ func pullAndValidateInstallerImage(ctx context.Context, reg runtime.Registries, return nil } + +// Containers implements the machine.MachineServer interface. +func (s *Server) Containers(ctx context.Context, in *machine.ContainersRequest) (reply *machine.ContainersResponse, err error) { + inspector, err := getContainerInspector(ctx, in.Namespace, in.Driver) + if err != nil { + return nil, err + } + // nolint: errcheck + defer inspector.Close() + + pods, err := inspector.Pods() + if err != nil { + // fatal error + if pods == nil { + return nil, err + } + // TODO: only some failed, need to handle it better via client + log.Println(err.Error()) + } + + containers := []*machine.ContainerInfo{} + + for _, pod := range pods { + for _, container := range pod.Containers { + container := &machine.ContainerInfo{ + Namespace: in.Namespace, + Id: container.Display, + PodId: pod.Name, + Name: container.Name, + Image: container.Image, + Pid: container.Pid, + Status: container.Status, + } + containers = append(containers, container) + } + } + + reply = &machine.ContainersResponse{ + Messages: []*machine.Container{ + { + Containers: containers, + }, + }, + } + + return reply, nil +} + +// Stats implements the machine.MachineServer interface. +// nolint: gocyclo +func (s *Server) Stats(ctx context.Context, in *machine.StatsRequest) (reply *machine.StatsResponse, err error) { + inspector, err := getContainerInspector(ctx, in.Namespace, in.Driver) + if err != nil { + return nil, err + } + // nolint: errcheck + defer inspector.Close() + + pods, err := inspector.Pods() + if err != nil { + // fatal error + if pods == nil { + return nil, err + } + // TODO: only some failed, need to handle it better via client + log.Println(err.Error()) + } + + stats := []*machine.Stat{} + + for _, pod := range pods { + for _, container := range pod.Containers { + if container.Metrics == nil { + continue + } + + stat := &machine.Stat{ + Namespace: in.Namespace, + Id: container.Display, + PodId: pod.Name, + Name: container.Name, + MemoryUsage: container.Metrics.MemoryUsage, + CpuUsage: container.Metrics.CPUUsage, + } + + stats = append(stats, stat) + } + } + + reply = &machine.StatsResponse{ + Messages: []*machine.Stats{ + { + Stats: stats, + }, + }, + } + + return reply, nil +} + +// Restart implements the machine.MachineServer interface. +func (s *Server) Restart(ctx context.Context, in *machine.RestartRequest) (*machine.RestartResponse, error) { + inspector, err := getContainerInspector(ctx, in.Namespace, in.Driver) + if err != nil { + return nil, err + } + // nolint: errcheck + defer inspector.Close() + + container, err := inspector.Container(in.Id) + if err != nil { + return nil, err + } + + if container == nil { + return nil, fmt.Errorf("container %q not found", in.Id) + } + + err = container.Kill(syscall.SIGTERM) + if err != nil { + return nil, err + } + + return &machine.RestartResponse{ + Messages: []*machine.Restart{ + {}, + }, + }, nil +} + +// Dmesg implements the machine.MachineServer interface. +// +//nolint: gocyclo +func (s *Server) Dmesg(req *machine.DmesgRequest, srv machine.MachineService_DmesgServer) error { + ctx := srv.Context() + + var options []kmsg.Option + + if req.Follow { + options = append(options, kmsg.Follow()) + } + + if req.Tail { + options = append(options, kmsg.FromTail()) + } + + reader, err := kmsg.NewReader(options...) + if err != nil { + return fmt.Errorf("error opening /dev/kmsg reader: %w", err) + } + defer reader.Close() //nolint: errcheck + + ch := reader.Scan(ctx) + + for { + select { + case <-ctx.Done(): + if err = reader.Close(); err != nil { + return err + } + case packet, ok := <-ch: + if !ok { + return nil + } + + if packet.Err != nil { + err = srv.Send(&common.Data{ + Metadata: &common.Metadata{ + Error: packet.Err.Error(), + }, + }) + } else { + msg := packet.Message + err = srv.Send(&common.Data{ + Bytes: []byte(fmt.Sprintf("%s: %7s: [%s]: %s", msg.Facility, msg.Priority, msg.Timestamp.Format(time.RFC3339Nano), msg.Message)), + }) + } + + if err != nil { + return err + } + } + } +} + +// Processes implements the machine.MachineServer interface. +func (s *Server) Processes(ctx context.Context, in *empty.Empty) (reply *machine.ProcessesResponse, err error) { + procs, err := procfs.AllProcs() + if err != nil { + return nil, err + } + + processes := make([]*machine.ProcessInfo, 0, len(procs)) + + var ( + command string + executable string + args []string + stats procfs.ProcStat + ) + + for _, proc := range procs { + command, err = proc.Comm() + if err != nil { + return nil, err + } + + executable, err = proc.Executable() + if err != nil { + return nil, err + } + + args, err = proc.CmdLine() + if err != nil { + return nil, err + } + + stats, err = proc.Stat() + if err != nil { + return nil, err + } + + p := &machine.ProcessInfo{ + Pid: int32(proc.PID), + Ppid: int32(stats.PPID), + State: stats.State, + Threads: int32(stats.NumThreads), + CpuTime: stats.CPUTime(), + VirtualMemory: uint64(stats.VirtualMemory()), + ResidentMemory: uint64(stats.ResidentMemory()), + Command: command, + Executable: executable, + Args: strings.Join(args, " "), + } + + processes = append(processes, p) + } + + reply = &machine.ProcessesResponse{ + Messages: []*machine.Process{ + { + Processes: processes, + }, + }, + } + + return reply, nil +} + +// Memory implements the machine.MachineServer interface. +func (s *Server) Memory(ctx context.Context, in *empty.Empty) (reply *machine.MemoryResponse, err error) { + proc, err := procfs.NewDefaultFS() + if err != nil { + return nil, err + } + + info, err := proc.Meminfo() + if err != nil { + return nil, err + } + + meminfo := &machine.MemInfo{ + Memtotal: info.MemTotal, + Memfree: info.MemFree, + Memavailable: info.MemAvailable, + Buffers: info.Buffers, + Cached: info.Cached, + Swapcached: info.SwapCached, + Active: info.Active, + Inactive: info.Inactive, + Activeanon: info.ActiveAnon, + Inactiveanon: info.InactiveAnon, + Activefile: info.ActiveFile, + Inactivefile: info.InactiveFile, + Unevictable: info.Unevictable, + Mlocked: info.Mlocked, + Swaptotal: info.SwapTotal, + Swapfree: info.SwapFree, + Dirty: info.Dirty, + Writeback: info.Writeback, + Anonpages: info.AnonPages, + Mapped: info.Mapped, + Shmem: info.Shmem, + Slab: info.Slab, + Sreclaimable: info.SReclaimable, + Sunreclaim: info.SUnreclaim, + Kernelstack: info.KernelStack, + Pagetables: info.PageTables, + Nfsunstable: info.NFSUnstable, + Bounce: info.Bounce, + Writebacktmp: info.WritebackTmp, + Commitlimit: info.CommitLimit, + Committedas: info.CommittedAS, + Vmalloctotal: info.VmallocTotal, + Vmallocused: info.VmallocUsed, + Vmallocchunk: info.VmallocChunk, + Hardwarecorrupted: info.HardwareCorrupted, + Anonhugepages: info.AnonHugePages, + Shmemhugepages: info.ShmemHugePages, + Shmempmdmapped: info.ShmemPmdMapped, + Cmatotal: info.CmaTotal, + Cmafree: info.CmaFree, + Hugepagestotal: info.HugePagesTotal, + Hugepagesfree: info.HugePagesFree, + Hugepagesrsvd: info.HugePagesRsvd, + Hugepagessurp: info.HugePagesSurp, + Hugepagesize: info.Hugepagesize, + Directmap4K: info.DirectMap4k, + Directmap2M: info.DirectMap2M, + Directmap1G: info.DirectMap1G, + } + + reply = &machine.MemoryResponse{ + Messages: []*machine.Memory{ + { + Meminfo: meminfo, + }, + }, + } + + return reply, err +} diff --git a/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go b/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go index 9d167e265..c7d7762c5 100644 --- a/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go +++ b/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go @@ -618,7 +618,6 @@ func StartAllServices(seq runtime.Sequence, data interface{}) (runtime.TaskExecu &services.APID{}, &services.Routerd{}, &services.Networkd{}, - &services.OSD{}, &services.CRI{}, &services.Kubelet{}, ) diff --git a/internal/app/machined/pkg/system/runner/containerd/containerd_test.go b/internal/app/machined/pkg/system/runner/containerd/containerd_test.go index 0767632f9..d5ba57cde 100644 --- a/internal/app/machined/pkg/system/runner/containerd/containerd_test.go +++ b/internal/app/machined/pkg/system/runner/containerd/containerd_test.go @@ -369,9 +369,9 @@ func (suite *ContainerdSuite) TestStopSigKill() { func (suite *ContainerdSuite) TestImportSuccess() { reqs := []*containerdrunner.ImportRequest{ { - Path: "/usr/images/osd.tar", + Path: "/usr/images/timed.tar", Options: []containerd.ImportOpt{ - containerd.WithIndexName("testtalos/osd"), + containerd.WithIndexName("testtalos/timed"), }, }, { @@ -386,7 +386,7 @@ func (suite *ContainerdSuite) TestImportSuccess() { ctx := namespaces.WithNamespace(context.Background(), suite.containerdNamespace) - for _, imageName := range []string{"testtalos/osd", "testtalos/trustd"} { + for _, imageName := range []string{"testtalos/timed", "testtalos/trustd"} { image, err := suite.client.ImageService().Get(ctx, imageName) suite.Require().NoError(err) suite.Require().Equal(imageName, image.Name) @@ -396,9 +396,9 @@ func (suite *ContainerdSuite) TestImportSuccess() { func (suite *ContainerdSuite) TestImportFail() { reqs := []*containerdrunner.ImportRequest{ { - Path: "/usr/images/osd.tar", + Path: "/usr/images/timed.tar", Options: []containerd.ImportOpt{ - containerd.WithIndexName("testtalos/osd2"), + containerd.WithIndexName("testtalos/timed2"), }, }, { diff --git a/internal/app/machined/pkg/system/services/osd.go b/internal/app/machined/pkg/system/services/osd.go deleted file mode 100644 index e279ac1d8..000000000 --- a/internal/app/machined/pkg/system/services/osd.go +++ /dev/null @@ -1,143 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -// nolint: golint -package services - -import ( - "context" - "fmt" - "os" - "path" - "path/filepath" - "strings" - - containerdapi "github.com/containerd/containerd" - "github.com/containerd/containerd/oci" - specs "github.com/opencontainers/runtime-spec/specs-go" - "github.com/syndtr/gocapability/capability" - "google.golang.org/grpc" - - "github.com/talos-systems/talos/internal/app/machined/pkg/runtime" - "github.com/talos-systems/talos/internal/app/machined/pkg/system/events" - "github.com/talos-systems/talos/internal/app/machined/pkg/system/health" - "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner" - "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/containerd" - "github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart" - "github.com/talos-systems/talos/internal/pkg/conditions" - "github.com/talos-systems/talos/pkg/constants" - "github.com/talos-systems/talos/pkg/grpc/dialer" -) - -// OSD implements the Service interface. It serves as the concrete type with -// the required methods. -type OSD struct{} - -// ID implements the Service interface. -func (o *OSD) ID(r runtime.Runtime) string { - return "osd" -} - -// PreFunc implements the Service interface. -func (o *OSD) PreFunc(ctx context.Context, r runtime.Runtime) error { - importer := containerd.NewImporter(constants.SystemContainerdNamespace, containerd.WithContainerdAddress(constants.SystemContainerdAddress)) - - return importer.Import(&containerd.ImportRequest{ - Path: "/usr/images/osd.tar", - Options: []containerdapi.ImportOpt{ - containerdapi.WithIndexName("talos/osd"), - }, - }) -} - -// PostFunc implements the Service interface. -func (o *OSD) PostFunc(r runtime.Runtime, state events.ServiceState) (err error) { - return nil -} - -// Condition implements the Service interface. -func (o *OSD) Condition(r runtime.Runtime) conditions.Condition { - return nil -} - -// DependsOn implements the Service interface. -func (o *OSD) DependsOn(r runtime.Runtime) []string { - return []string{"containerd", "networkd"} -} - -func (o *OSD) Runner(r runtime.Runtime) (runner.Runner, error) { - image := "talos/osd" - - // Set the process arguments. - args := runner.Args{ - ID: o.ID(r), - ProcessArgs: []string{ - "/osd", - }, - } - - // Ensure socket dir exists - if err := os.MkdirAll(filepath.Dir(constants.OSSocketPath), 0750); err != nil { - return nil, err - } - - // Set the mounts. - mounts := []specs.Mount{ - {Type: "bind", Destination: "/etc/ssl", Source: "/etc/ssl", Options: []string{"bind", "ro"}}, - {Type: "bind", Destination: "/tmp", Source: "/tmp", Options: []string{"rbind", "rshared", "rw"}}, - {Type: "bind", Destination: constants.ConfigPath, Source: constants.ConfigPath, Options: []string{"rbind", "ro"}}, - {Type: "bind", Destination: path.Dir(constants.ContainerdAddress), Source: path.Dir(constants.ContainerdAddress), Options: []string{"bind", "ro"}}, - {Type: "bind", Destination: constants.SystemRunPath, Source: constants.SystemRunPath, Options: []string{"bind", "ro"}}, - {Type: "bind", Destination: filepath.Dir(constants.OSSocketPath), Source: filepath.Dir(constants.OSSocketPath), Options: []string{"rbind", "rw"}}, - } - - env := []string{} - for key, val := range r.Config().Machine().Env() { - env = append(env, fmt.Sprintf("%s=%s", key, val)) - } - - return restart.New(containerd.NewRunner( - r.Config().Debug(), - &args, - runner.WithLoggingManager(r.Logging()), - runner.WithContainerdAddress(constants.SystemContainerdAddress), - runner.WithContainerImage(image), - runner.WithEnv(env), - runner.WithOCISpecOpts( - oci.WithCapabilities([]string{ - strings.ToUpper("CAP_" + capability.CAP_SYS_PTRACE.String()), - strings.ToUpper("CAP_" + capability.CAP_DAC_READ_SEARCH.String()), - strings.ToUpper("CAP_" + capability.CAP_DAC_OVERRIDE.String()), - strings.ToUpper("CAP_" + capability.CAP_SYSLOG.String()), - }), - oci.WithHostNamespace(specs.PIDNamespace), - oci.WithMounts(mounts), - oci.WithLinuxDevice("/dev/kmsg", "r"), - ), - ), - restart.WithType(restart.Forever), - ), nil -} - -// HealthFunc implements the HealthcheckedService interface. -func (o *OSD) HealthFunc(runtime.Runtime) health.Check { - return func(ctx context.Context) error { - conn, err := grpc.DialContext( - ctx, - fmt.Sprintf("%s://%s", "unix", constants.OSSocketPath), - grpc.WithInsecure(), - grpc.WithContextDialer(dialer.DialUnix()), - ) - if err != nil { - return err - } - - return conn.Close() - } -} - -// HealthSettings implements the HealthcheckedService interface. -func (o *OSD) HealthSettings(runtime.Runtime) *health.Settings { - return &health.DefaultSettings -} diff --git a/internal/app/machined/pkg/system/services/osd_test.go b/internal/app/machined/pkg/system/services/osd_test.go deleted file mode 100644 index 2376516c7..000000000 --- a/internal/app/machined/pkg/system/services/osd_test.go +++ /dev/null @@ -1,18 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -package services_test - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/talos-systems/talos/internal/app/machined/pkg/system" - "github.com/talos-systems/talos/internal/app/machined/pkg/system/services" -) - -func TestOSDInterfaces(t *testing.T) { - assert.Implements(t, (*system.HealthcheckedService)(nil), new(services.OSD)) -} diff --git a/internal/app/machined/pkg/system/system_test.go b/internal/app/machined/pkg/system/system_test.go index 82634e3e7..1648c854c 100644 --- a/internal/app/machined/pkg/system/system_test.go +++ b/internal/app/machined/pkg/system/system_test.go @@ -22,7 +22,7 @@ func (suite *SystemServicesSuite) TestStartShutdown() { system.Services(nil).LoadAndStart( &MockService{name: "containerd"}, &MockService{name: "trustd", dependencies: []string{"containerd"}}, - &MockService{name: "osd", dependencies: []string{"containerd", "trustd"}}, + &MockService{name: "machined", dependencies: []string{"containerd", "trustd"}}, ) time.Sleep(10 * time.Millisecond) diff --git a/internal/app/osd/internal/reg/reg.go b/internal/app/osd/internal/reg/reg.go deleted file mode 100644 index e1bc6e27c..000000000 --- a/internal/app/osd/internal/reg/reg.go +++ /dev/null @@ -1,379 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -package reg - -import ( - "context" - "errors" - "fmt" - "log" - "strings" - "syscall" - "time" - - criconstants "github.com/containerd/cri/pkg/constants" - "github.com/golang/protobuf/ptypes/empty" - "github.com/prometheus/procfs" - "google.golang.org/grpc" - - "github.com/talos-systems/talos/api/common" - osapi "github.com/talos-systems/talos/api/os" - "github.com/talos-systems/talos/internal/pkg/containers" - "github.com/talos-systems/talos/internal/pkg/containers/containerd" - "github.com/talos-systems/talos/internal/pkg/containers/cri" - "github.com/talos-systems/talos/internal/pkg/kmsg" - "github.com/talos-systems/talos/pkg/constants" -) - -// Registrator is the concrete type that implements the factory.Registrator and -// osapi.OSDServer interfaces. -type Registrator struct{} - -// Register implements the factory.Registrator interface. -func (r *Registrator) Register(s *grpc.Server) { - osapi.RegisterOSServiceServer(s, r) -} - -// Containers implements the osapi.OSDServer interface. -func (r *Registrator) Containers(ctx context.Context, in *osapi.ContainersRequest) (reply *osapi.ContainersResponse, err error) { - inspector, err := getContainerInspector(ctx, in.Namespace, in.Driver) - if err != nil { - return nil, err - } - // nolint: errcheck - defer inspector.Close() - - pods, err := inspector.Pods() - if err != nil { - // fatal error - if pods == nil { - return nil, err - } - // TODO: only some failed, need to handle it better via client - log.Println(err.Error()) - } - - containers := []*osapi.ContainerInfo{} - - for _, pod := range pods { - for _, container := range pod.Containers { - container := &osapi.ContainerInfo{ - Namespace: in.Namespace, - Id: container.Display, - PodId: pod.Name, - Name: container.Name, - Image: container.Image, - Pid: container.Pid, - Status: container.Status, - } - containers = append(containers, container) - } - } - - reply = &osapi.ContainersResponse{ - Messages: []*osapi.Container{ - { - Containers: containers, - }, - }, - } - - return reply, nil -} - -// Stats implements the osapi.OSDServer interface. -// nolint: gocyclo -func (r *Registrator) Stats(ctx context.Context, in *osapi.StatsRequest) (reply *osapi.StatsResponse, err error) { - inspector, err := getContainerInspector(ctx, in.Namespace, in.Driver) - if err != nil { - return nil, err - } - // nolint: errcheck - defer inspector.Close() - - pods, err := inspector.Pods() - if err != nil { - // fatal error - if pods == nil { - return nil, err - } - // TODO: only some failed, need to handle it better via client - log.Println(err.Error()) - } - - stats := []*osapi.Stat{} - - for _, pod := range pods { - for _, container := range pod.Containers { - if container.Metrics == nil { - continue - } - - stat := &osapi.Stat{ - Namespace: in.Namespace, - Id: container.Display, - PodId: pod.Name, - Name: container.Name, - MemoryUsage: container.Metrics.MemoryUsage, - CpuUsage: container.Metrics.CPUUsage, - } - - stats = append(stats, stat) - } - } - - reply = &osapi.StatsResponse{ - Messages: []*osapi.Stats{ - { - Stats: stats, - }, - }, - } - - return reply, nil -} - -// Restart implements the osapi.OSDServer interface. -func (r *Registrator) Restart(ctx context.Context, in *osapi.RestartRequest) (*osapi.RestartResponse, error) { - inspector, err := getContainerInspector(ctx, in.Namespace, in.Driver) - if err != nil { - return nil, err - } - // nolint: errcheck - defer inspector.Close() - - container, err := inspector.Container(in.Id) - if err != nil { - return nil, err - } - - if container == nil { - return nil, fmt.Errorf("container %q not found", in.Id) - } - - err = container.Kill(syscall.SIGTERM) - if err != nil { - return nil, err - } - - return &osapi.RestartResponse{ - Messages: []*osapi.Restart{ - {}, - }, - }, nil -} - -// Dmesg implements the osapi.OSDServer interface. -// -//nolint: gocyclo -func (r *Registrator) Dmesg(req *osapi.DmesgRequest, srv osapi.OSService_DmesgServer) error { - ctx := srv.Context() - - var options []kmsg.Option - - if req.Follow { - options = append(options, kmsg.Follow()) - } - - if req.Tail { - options = append(options, kmsg.FromTail()) - } - - reader, err := kmsg.NewReader(options...) - if err != nil { - return fmt.Errorf("error opening /dev/kmsg reader: %w", err) - } - defer reader.Close() //nolint: errcheck - - ch := reader.Scan(ctx) - - for { - select { - case <-ctx.Done(): - if err = reader.Close(); err != nil { - return err - } - case packet, ok := <-ch: - if !ok { - return nil - } - - if packet.Err != nil { - err = srv.Send(&common.Data{ - Metadata: &common.Metadata{ - Error: packet.Err.Error(), - }, - }) - } else { - msg := packet.Message - err = srv.Send(&common.Data{ - Bytes: []byte(fmt.Sprintf("%s: %7s: [%s]: %s", msg.Facility, msg.Priority, msg.Timestamp.Format(time.RFC3339Nano), msg.Message)), - }) - } - - if err != nil { - return err - } - } - } -} - -// Processes implements the osapi.OSDServer interface. -func (r *Registrator) Processes(ctx context.Context, in *empty.Empty) (reply *osapi.ProcessesResponse, err error) { - procs, err := procfs.AllProcs() - if err != nil { - return nil, err - } - - processes := make([]*osapi.ProcessInfo, 0, len(procs)) - - var ( - command string - executable string - args []string - stats procfs.ProcStat - ) - - for _, proc := range procs { - command, err = proc.Comm() - if err != nil { - return nil, err - } - - executable, err = proc.Executable() - if err != nil { - return nil, err - } - - args, err = proc.CmdLine() - if err != nil { - return nil, err - } - - stats, err = proc.Stat() - if err != nil { - return nil, err - } - - p := &osapi.ProcessInfo{ - Pid: int32(proc.PID), - Ppid: int32(stats.PPID), - State: stats.State, - Threads: int32(stats.NumThreads), - CpuTime: stats.CPUTime(), - VirtualMemory: uint64(stats.VirtualMemory()), - ResidentMemory: uint64(stats.ResidentMemory()), - Command: command, - Executable: executable, - Args: strings.Join(args, " "), - } - - processes = append(processes, p) - } - - reply = &osapi.ProcessesResponse{ - Messages: []*osapi.Process{ - { - Processes: processes, - }, - }, - } - - return reply, nil -} - -func getContainerInspector(ctx context.Context, namespace string, driver common.ContainerDriver) (containers.Inspector, error) { - switch driver { - case common.ContainerDriver_CRI: - if namespace != criconstants.K8sContainerdNamespace { - return nil, errors.New("CRI inspector is supported only for K8s namespace") - } - - return cri.NewInspector(ctx) - case common.ContainerDriver_CONTAINERD: - addr := constants.ContainerdAddress - if namespace == constants.SystemContainerdNamespace { - addr = constants.SystemContainerdAddress - } - - return containerd.NewInspector(ctx, namespace, containerd.WithContainerdAddress(addr)) - default: - return nil, fmt.Errorf("unsupported driver %q", driver) - } -} - -// Memory implements the osdapi.OSDServer interface. -func (r *Registrator) Memory(ctx context.Context, in *empty.Empty) (reply *osapi.MemoryResponse, err error) { - proc, err := procfs.NewDefaultFS() - if err != nil { - return nil, err - } - - info, err := proc.Meminfo() - if err != nil { - return nil, err - } - - meminfo := &osapi.MemInfo{ - Memtotal: info.MemTotal, - Memfree: info.MemFree, - Memavailable: info.MemAvailable, - Buffers: info.Buffers, - Cached: info.Cached, - Swapcached: info.SwapCached, - Active: info.Active, - Inactive: info.Inactive, - Activeanon: info.ActiveAnon, - Inactiveanon: info.InactiveAnon, - Activefile: info.ActiveFile, - Inactivefile: info.InactiveFile, - Unevictable: info.Unevictable, - Mlocked: info.Mlocked, - Swaptotal: info.SwapTotal, - Swapfree: info.SwapFree, - Dirty: info.Dirty, - Writeback: info.Writeback, - Anonpages: info.AnonPages, - Mapped: info.Mapped, - Shmem: info.Shmem, - Slab: info.Slab, - Sreclaimable: info.SReclaimable, - Sunreclaim: info.SUnreclaim, - Kernelstack: info.KernelStack, - Pagetables: info.PageTables, - Nfsunstable: info.NFSUnstable, - Bounce: info.Bounce, - Writebacktmp: info.WritebackTmp, - Commitlimit: info.CommitLimit, - Committedas: info.CommittedAS, - Vmalloctotal: info.VmallocTotal, - Vmallocused: info.VmallocUsed, - Vmallocchunk: info.VmallocChunk, - Hardwarecorrupted: info.HardwareCorrupted, - Anonhugepages: info.AnonHugePages, - Shmemhugepages: info.ShmemHugePages, - Shmempmdmapped: info.ShmemPmdMapped, - Cmatotal: info.CmaTotal, - Cmafree: info.CmaFree, - Hugepagestotal: info.HugePagesTotal, - Hugepagesfree: info.HugePagesFree, - Hugepagesrsvd: info.HugePagesRsvd, - Hugepagessurp: info.HugePagesSurp, - Hugepagesize: info.Hugepagesize, - Directmap4K: info.DirectMap4k, - Directmap2M: info.DirectMap2M, - Directmap1G: info.DirectMap1G, - } - - reply = &osapi.MemoryResponse{ - Messages: []*osapi.Memory{ - { - Meminfo: meminfo, - }, - }, - } - - return reply, err -} diff --git a/internal/app/osd/internal/reg/reg_test.go b/internal/app/osd/internal/reg/reg_test.go deleted file mode 100644 index e9ba955b0..000000000 --- a/internal/app/osd/internal/reg/reg_test.go +++ /dev/null @@ -1,5 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -package reg_test diff --git a/internal/app/osd/main.go b/internal/app/osd/main.go deleted file mode 100644 index f1d5dd940..000000000 --- a/internal/app/osd/main.go +++ /dev/null @@ -1,32 +0,0 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. - -package main - -import ( - "log" - - "github.com/talos-systems/talos/internal/app/osd/internal/reg" - "github.com/talos-systems/talos/pkg/constants" - "github.com/talos-systems/talos/pkg/grpc/factory" - "github.com/talos-systems/talos/pkg/startup" -) - -func init() { - log.SetFlags(log.Lshortfile | log.Ldate | log.Lmicroseconds | log.Ltime) -} - -func main() { - if err := startup.RandSeed(); err != nil { - log.Fatalf("failed to seed RNG: %v", err) - } - - log.Fatalf("%+v", factory.ListenAndServe( - ®.Registrator{}, - factory.Network("unix"), - factory.SocketPath(constants.OSSocketPath), - factory.WithDefaultLog(), - ), - ) -} diff --git a/internal/app/routerd/main.go b/internal/app/routerd/main.go index 60920696e..040f4eb77 100644 --- a/internal/app/routerd/main.go +++ b/internal/app/routerd/main.go @@ -28,8 +28,9 @@ func main() { router := director.NewRouter() // TODO: this should be dynamic based on plugin registration - router.RegisterLocalBackend("os.OSService", backend.NewLocal("osd", constants.OSSocketPath)) - router.RegisterLocalBackend("machine.MachineService", backend.NewLocal("machined", constants.MachineSocketPath)) + machinedBackend := backend.NewLocal("machined", constants.MachineSocketPath) + router.RegisterLocalBackend("os.OSService", machinedBackend) + router.RegisterLocalBackend("machine.MachineService", machinedBackend) router.RegisterLocalBackend("time.TimeService", backend.NewLocal("timed", constants.TimeSocketPath)) router.RegisterLocalBackend("network.NetworkService", backend.NewLocal("networkd", constants.NetworkSocketPath)) diff --git a/internal/integration/api/logs.go b/internal/integration/api/logs.go index f33a3d8cc..b36f0e001 100644 --- a/internal/integration/api/logs.go +++ b/internal/integration/api/logs.go @@ -165,7 +165,7 @@ func (suite *LogsSuite) TestTailStreaming0() { func (suite *LogsSuite) testStreaming(tailLines int32) { if tailLines >= 0 { - // invoke osd enough times to generate + // invoke machined enough times to generate // some logs for i := int32(0); i < tailLines; i++ { _, err := suite.Client.Stats(suite.nodeCtx, constants.SystemContainerdNamespace, common.ContainerDriver_CONTAINERD) @@ -177,7 +177,7 @@ func (suite *LogsSuite) testStreaming(tailLines int32) { suite.nodeCtx, constants.SystemContainerdNamespace, common.ContainerDriver_CONTAINERD, - "osd", + "machined", true, tailLines, ) @@ -229,7 +229,7 @@ DrainLoop: suite.Assert().InDelta(tailLines, linesDrained, 1) } - // invoke osd API + // invoke machined API _, err = suite.Client.Stats(suite.nodeCtx, constants.SystemContainerdNamespace, common.ContainerDriver_CONTAINERD) suite.Require().NoError(err) diff --git a/internal/integration/cli/containers.go b/internal/integration/cli/containers.go index 5798d5002..2f7f8dc0a 100644 --- a/internal/integration/cli/containers.go +++ b/internal/integration/cli/containers.go @@ -26,7 +26,7 @@ func (suite *ContainersSuite) SuiteName() string { func (suite *ContainersSuite) TestContainerd() { suite.RunCLI([]string{"containers"}, base.StdoutShouldMatch(regexp.MustCompile(`IMAGE`)), - base.StdoutShouldMatch(regexp.MustCompile(`talos/osd`)), + base.StdoutShouldMatch(regexp.MustCompile(`talos/routerd`)), ) suite.RunCLI([]string{"containers", "-k"}, base.StdoutShouldMatch(regexp.MustCompile(`kubelet`)), diff --git a/internal/integration/cli/services.go b/internal/integration/cli/services.go index 4605a4073..b199c8aee 100644 --- a/internal/integration/cli/services.go +++ b/internal/integration/cli/services.go @@ -26,7 +26,7 @@ func (suite *ServicesSuite) SuiteName() string { func (suite *ServicesSuite) TestList() { suite.RunCLI([]string{"services"}, base.StdoutShouldMatch(regexp.MustCompile(`STATE`)), - base.StdoutShouldMatch(regexp.MustCompile(`osd`)), + base.StdoutShouldMatch(regexp.MustCompile(`routerd`)), base.StdoutShouldMatch(regexp.MustCompile(`apid`)), ) } @@ -39,9 +39,9 @@ func (suite *ServicesSuite) TestStatus() { base.StdoutShouldMatch(regexp.MustCompile(`\[Running\]`)), ) - suite.RunCLI([]string{"service", "osd", "status"}, + suite.RunCLI([]string{"service", "routerd", "status"}, base.StdoutShouldMatch(regexp.MustCompile(`STATE`)), - base.StdoutShouldMatch(regexp.MustCompile(`osd`)), + base.StdoutShouldMatch(regexp.MustCompile(`routerd`)), base.StdoutShouldMatch(regexp.MustCompile(`\[Running\]`)), ) } diff --git a/internal/integration/cli/stats.go b/internal/integration/cli/stats.go index d0e1311a6..b6a47e686 100644 --- a/internal/integration/cli/stats.go +++ b/internal/integration/cli/stats.go @@ -26,7 +26,7 @@ func (suite *StatsSuite) SuiteName() string { func (suite *StatsSuite) TestContainerd() { suite.RunCLI([]string{"stats"}, base.StdoutShouldMatch(regexp.MustCompile(`CPU`)), - base.StdoutShouldMatch(regexp.MustCompile(`osd`)), + base.StdoutShouldMatch(regexp.MustCompile(`routerd`)), ) suite.RunCLI([]string{"stats", "-k"}, base.StdoutShouldMatch(regexp.MustCompile(`CPU`)), diff --git a/pkg/client/client.go b/pkg/client/client.go index c66a2bddb..f64367ee3 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -28,7 +28,6 @@ import ( "github.com/talos-systems/talos/api/common" machineapi "github.com/talos-systems/talos/api/machine" networkapi "github.com/talos-systems/talos/api/network" - osapi "github.com/talos-systems/talos/api/os" timeapi "github.com/talos-systems/talos/api/time" "github.com/talos-systems/talos/pkg/client/config" "github.com/talos-systems/talos/pkg/constants" @@ -47,7 +46,6 @@ type Credentials struct { type Client struct { options *Options conn *grpc.ClientConn - OSClient osapi.OSServiceClient MachineClient machineapi.MachineServiceClient TimeClient timeapi.TimeServiceClient NetworkClient networkapi.NetworkServiceClient @@ -120,7 +118,6 @@ func New(ctx context.Context, opts ...OptionFunc) (c *Client, err error) { return nil, fmt.Errorf("failed to create client connection: %w", err) } - c.OSClient = osapi.NewOSServiceClient(c.conn) c.MachineClient = machineapi.NewMachineServiceClient(c.conn) c.TimeClient = timeapi.NewTimeServiceClient(c.conn) c.NetworkClient = networkapi.NewNetworkServiceClient(c.conn) @@ -255,7 +252,6 @@ func NewClient(cfg *tls.Config, endpoints []string, port int, opts ...grpc.DialO return } - c.OSClient = osapi.NewOSServiceClient(c.conn) c.MachineClient = machineapi.NewMachineServiceClient(c.conn) c.TimeClient = timeapi.NewTimeServiceClient(c.conn) c.NetworkClient = networkapi.NewNetworkServiceClient(c.conn) @@ -333,9 +329,9 @@ func (c *Client) Kubeconfig(ctx context.Context) ([]byte, error) { } // Stats implements the proto.OSClient interface. -func (c *Client) Stats(ctx context.Context, namespace string, driver common.ContainerDriver, callOptions ...grpc.CallOption) (resp *osapi.StatsResponse, err error) { - resp, err = c.OSClient.Stats( - ctx, &osapi.StatsRequest{ +func (c *Client) Stats(ctx context.Context, namespace string, driver common.ContainerDriver, callOptions ...grpc.CallOption) (resp *machineapi.StatsResponse, err error) { + resp, err = c.MachineClient.Stats( + ctx, &machineapi.StatsRequest{ Namespace: namespace, Driver: driver, }, @@ -344,16 +340,16 @@ func (c *Client) Stats(ctx context.Context, namespace string, driver common.Cont var filtered interface{} filtered, err = FilterMessages(resp, err) - resp, _ = filtered.(*osapi.StatsResponse) //nolint: errcheck + resp, _ = filtered.(*machineapi.StatsResponse) //nolint: errcheck return } // Containers implements the proto.OSClient interface. -func (c *Client) Containers(ctx context.Context, namespace string, driver common.ContainerDriver, callOptions ...grpc.CallOption) (resp *osapi.ContainersResponse, err error) { - resp, err = c.OSClient.Containers( +func (c *Client) Containers(ctx context.Context, namespace string, driver common.ContainerDriver, callOptions ...grpc.CallOption) (resp *machineapi.ContainersResponse, err error) { + resp, err = c.MachineClient.Containers( ctx, - &osapi.ContainersRequest{ + &machineapi.ContainersRequest{ Namespace: namespace, Driver: driver, }, @@ -362,14 +358,14 @@ func (c *Client) Containers(ctx context.Context, namespace string, driver common var filtered interface{} filtered, err = FilterMessages(resp, err) - resp, _ = filtered.(*osapi.ContainersResponse) //nolint: errcheck + resp, _ = filtered.(*machineapi.ContainersResponse) //nolint: errcheck return } // Restart implements the proto.OSClient interface. func (c *Client) Restart(ctx context.Context, namespace string, driver common.ContainerDriver, id string, callOptions ...grpc.CallOption) (err error) { - _, err = c.OSClient.Restart(ctx, &osapi.RestartRequest{ + _, err = c.MachineClient.Restart(ctx, &machineapi.RestartRequest{ Id: id, Namespace: namespace, Driver: driver, @@ -415,8 +411,8 @@ func (c *Client) Shutdown(ctx context.Context) (err error) { } // Dmesg implements the proto.OSClient interface. -func (c *Client) Dmesg(ctx context.Context, follow, tail bool) (osapi.OSService_DmesgClient, error) { - return c.OSClient.Dmesg(ctx, &osapi.DmesgRequest{ +func (c *Client) Dmesg(ctx context.Context, follow, tail bool) (machineapi.MachineService_DmesgClient, error) { + return c.MachineClient.Dmesg(ctx, &machineapi.DmesgRequest{ Follow: follow, Tail: tail, }) @@ -481,8 +477,8 @@ func (c *Client) Interfaces(ctx context.Context, callOptions ...grpc.CallOption) } // Processes implements the proto.OSClient interface. -func (c *Client) Processes(ctx context.Context, callOptions ...grpc.CallOption) (resp *osapi.ProcessesResponse, err error) { - resp, err = c.OSClient.Processes( +func (c *Client) Processes(ctx context.Context, callOptions ...grpc.CallOption) (resp *machineapi.ProcessesResponse, err error) { + resp, err = c.MachineClient.Processes( ctx, &empty.Empty{}, callOptions..., @@ -490,14 +486,14 @@ func (c *Client) Processes(ctx context.Context, callOptions ...grpc.CallOption) var filtered interface{} filtered, err = FilterMessages(resp, err) - resp, _ = filtered.(*osapi.ProcessesResponse) //nolint: errcheck + resp, _ = filtered.(*machineapi.ProcessesResponse) //nolint: errcheck return } // Memory implements the proto.OSClient interface. -func (c *Client) Memory(ctx context.Context, callOptions ...grpc.CallOption) (resp *osapi.MemoryResponse, err error) { - resp, err = c.OSClient.Memory( +func (c *Client) Memory(ctx context.Context, callOptions ...grpc.CallOption) (resp *machineapi.MemoryResponse, err error) { + resp, err = c.MachineClient.Memory( ctx, &empty.Empty{}, callOptions..., @@ -505,7 +501,7 @@ func (c *Client) Memory(ctx context.Context, callOptions ...grpc.CallOption) (re var filtered interface{} filtered, err = FilterMessages(resp, err) - resp, _ = filtered.(*osapi.MemoryResponse) //nolint: errcheck + resp, _ = filtered.(*machineapi.MemoryResponse) //nolint: errcheck return } diff --git a/pkg/constants/constants.go b/pkg/constants/constants.go index ff15bbae8..609c89f13 100644 --- a/pkg/constants/constants.go +++ b/pkg/constants/constants.go @@ -236,9 +236,6 @@ const ( // NetworkSocketPath is the path to file socket of network API. NetworkSocketPath = SystemRunPath + "/networkd/networkd.sock" - // OSSocketPath is the path to file socket of os API. - OSSocketPath = SystemRunPath + "/osd/osd.sock" - // RouterdSocketPath is the path to file socket of router API. RouterdSocketPath = SystemRunPath + "/routerd/routerd.sock"