From 5d6a81ff526164303fafc4a027d80b865d98df81 Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Sat, 7 Feb 2026 17:08:51 +0000 Subject: [PATCH 1/7] feat(guest): add sysbox container runtime v0.6.7 Add Nestybox Sysbox as an alternative container runtime, enabling rootless containers to run workloads like Systemd, Docker, Kubernetes, just like VMs. Recipe builds sysbox-runc, sysbox-fs, and sysbox-mgr from source with reproducible builds verified (identical binaries across clean builds). Key design decisions: - Network access only in do_configure (go mod vendor); do_compile is fully offline with -mod=vendor - Pre-generated protobuf .pb.go files to avoid protoc build dependency - Orphaned bazil/fuse commit forked to Dstack-TEE/fuse with named branch - Kernel configs already present in linux-custom defconfig - Docker daemon configured with sysbox-runc runtime - Adapted for Yocto 5.3: UNPACKDIR for source paths, WORKDIR for build artifacts --- .../dstack-sysbox/dstack-sysbox_0.6.7.bb | 172 + .../dstack-sysbox/files/50-sysbox-mod.conf | 1 + .../dstack-sysbox/files/99-sysbox-sysctl.conf | 7 + .../dstack-sysbox/files/sysbox-fs.service | 18 + .../dstack-sysbox/files/sysbox-mgr.service | 17 + .../dstack-sysbox/files/sysbox.service | 13 + .../files/sysboxFsProtobuf.pb.go | 703 ++++ .../files/sysboxMgrProtobuf.pb.go | 3203 +++++++++++++++++ .../images/dstack-rootfs-base.inc | 1 + .../images/files/docker-daemon-nvidia.json | 3 + .../images/files/docker-daemon.json | 5 + .../linux/files/dstack-sysbox.cfg | 2 + .../linux/files/dstack-sysbox.scc | 3 + .../linux/linux-yocto%.bbappend | 3 + 14 files changed, 4151 insertions(+) create mode 100644 meta-dstack/recipes-core/dstack-sysbox/dstack-sysbox_0.6.7.bb create mode 100644 meta-dstack/recipes-core/dstack-sysbox/files/50-sysbox-mod.conf create mode 100644 meta-dstack/recipes-core/dstack-sysbox/files/99-sysbox-sysctl.conf create mode 100644 meta-dstack/recipes-core/dstack-sysbox/files/sysbox-fs.service create mode 100644 meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service create mode 100644 meta-dstack/recipes-core/dstack-sysbox/files/sysbox.service create mode 100644 meta-dstack/recipes-core/dstack-sysbox/files/sysboxFsProtobuf.pb.go create mode 100644 meta-dstack/recipes-core/dstack-sysbox/files/sysboxMgrProtobuf.pb.go create mode 100644 meta-dstack/recipes-kernel/linux/files/dstack-sysbox.cfg create mode 100644 meta-dstack/recipes-kernel/linux/files/dstack-sysbox.scc diff --git a/meta-dstack/recipes-core/dstack-sysbox/dstack-sysbox_0.6.7.bb b/meta-dstack/recipes-core/dstack-sysbox/dstack-sysbox_0.6.7.bb new file mode 100644 index 0000000..a8dddd0 --- /dev/null +++ b/meta-dstack/recipes-core/dstack-sysbox/dstack-sysbox_0.6.7.bb @@ -0,0 +1,172 @@ +SUMMARY = "Sysbox container runtime" +DESCRIPTION = "An open-source, next-generation runc that empowers rootless containers \ +to run workloads such as Systemd, Docker, Kubernetes, just like VMs." +HOMEPAGE = "https://github.com/nestybox/sysbox" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=cf0915b5e4f1337cf5b929ba1e388c42" + +SYSBOX_VERSION = "0.6.7" + +# Pin all submodule revisions from the v0.6.7 tag for reproducibility. +SRCREV_sysbox = "3a69811f54f8f83264ebb36dcaf51708e80b9e84" +SRCREV_sysbox-runc = "c58eba1be027c762c495bc4eeba7c0984beda1ab" +SRCREV_sysbox-fs = "6a8d71f54e7570e5297af89ff24ed3bafa61659f" +SRCREV_sysbox-mgr = "aaeff6c5dc70c137e62166474a309ca5fc42d044" +SRCREV_sysbox-ipc = "f05151f4b4c1df63d7fd241577ca032905c1bd0e" +SRCREV_sysbox-libs = "6faf00c74d45f7bdff0d1930fe8590c17a2d0a8b" +# bazil/fuse commit 45cd9a3 is orphaned in nestybox/fuse (not on any branch/tag). +# We forked it to Dstack-TEE/fuse with a named branch so BitBake can fetch it. +SRCREV_sysbox-fuse = "45cd9a3d884448418546d8eaa54ee7d772e576d6" + +SRCREV_FORMAT = "sysbox" + +SRC_URI = " \ + git://github.com/nestybox/sysbox.git;nobranch=1;name=sysbox;protocol=https;destsuffix=sysbox \ + git://github.com/nestybox/sysbox-runc.git;nobranch=1;name=sysbox-runc;protocol=https;destsuffix=sysbox-runc \ + git://github.com/nestybox/sysbox-fs.git;nobranch=1;name=sysbox-fs;protocol=https;destsuffix=sysbox-fs \ + git://github.com/nestybox/sysbox-mgr.git;nobranch=1;name=sysbox-mgr;protocol=https;destsuffix=sysbox-mgr \ + git://github.com/nestybox/sysbox-ipc.git;nobranch=1;name=sysbox-ipc;protocol=https;destsuffix=sysbox-ipc \ + git://github.com/nestybox/sysbox-libs.git;nobranch=1;name=sysbox-libs;protocol=https;destsuffix=sysbox-libs \ + git://github.com/Dstack-TEE/fuse.git;branch=sysbox-v0.6.7;name=sysbox-fuse;protocol=https;destsuffix=sysbox-fuse \ + file://sysbox.service \ + file://sysbox-fs.service \ + file://sysbox-mgr.service \ + file://99-sysbox-sysctl.conf \ + file://50-sysbox-mod.conf \ + file://sysboxFsProtobuf.pb.go \ + file://sysboxMgrProtobuf.pb.go \ +" + +S = "${UNPACKDIR}/sysbox" + +PV = "${SYSBOX_VERSION}+git${SRCPV}" + +DEPENDS += "libseccomp" +RDEPENDS:${PN} += "libseccomp" + +inherit go goarch pkgconfig systemd + +GO_IMPORT = "github.com/nestybox/sysbox" + +SYSBOX_LDFLAGS = " \ + -X 'main.edition=Community Edition (CE)' \ + -X main.version=${SYSBOX_VERSION} \ + -X main.commitId=${SRCREV_sysbox} \ + -X 'main.builtAt=1970-01-01T00:00:00Z' \ + -X 'main.builtBy=dstack' \ +" + +# Kernel >= 5.12 supports idmapped mounts +SYSBOX_RUNC_BUILDTAGS = "seccomp idmapped_mnt" +SYSBOX_MGR_BUILDTAGS = "idmapped_mnt" + +do_configure() { + # Arrange the source tree so that go.mod replace directives work. + # All components expect to find siblings in ../ relative to themselves. + # The git fetcher places them in ${UNPACKDIR}/sysbox-{runc,fs,mgr,ipc,libs}. + # This is already the correct layout since they are all at the same level + # under ${UNPACKDIR}. + + # sysbox-fs expects a 'bazil' subdirectory (submodule of nestybox/fuse). + # Remove the empty submodule placeholder left by git checkout, then symlink. + rm -rf ${UNPACKDIR}/sysbox-fs/bazil + ln -sfn ${UNPACKDIR}/sysbox-fuse ${UNPACKDIR}/sysbox-fs/bazil + + # Install pre-generated protobuf Go files. The upstream repo only ships + # .proto files and expects protoc + protoc-gen-go at build time. We + # pre-generate them to avoid the protoc native toolchain dependency. + install -m 0644 ${UNPACKDIR}/sysboxFsProtobuf.pb.go \ + ${UNPACKDIR}/sysbox-ipc/sysboxFsGrpc/sysboxFsProtobuf/ + install -m 0644 ${UNPACKDIR}/sysboxMgrProtobuf.pb.go \ + ${UNPACKDIR}/sysbox-ipc/sysboxMgrGrpc/sysboxMgrProtobuf/ + + # Vendor dependencies for each component so that do_compile needs no + # network access. go.sum in each repo guarantees content integrity. + # Use -modcacherw so cached modules are writable (BitBake needs to + # clean ${B}/pkg/mod between tasks). + for mod in sysbox-runc sysbox-fs sysbox-mgr; do + cd ${UNPACKDIR}/$mod + ${GO} mod vendor -modcacherw + done +} + +do_configure[network] = "1" + +do_compile() { + export CGO_ENABLED="1" + export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}" + export CGO_LDFLAGS="${LDFLAGS} -Wl,--build-id=none --sysroot=${STAGING_DIR_TARGET}" + export CFLAGS="" + export LDFLAGS="" + + # Set reproducible build environment + export SOURCE_DATE_EPOCH=0 + export TZ=UTC + + # Build sysbox-runc + cd ${UNPACKDIR}/sysbox-runc + ${GO} build -mod=vendor -buildvcs=false -trimpath \ + -tags "${SYSBOX_RUNC_BUILDTAGS}" \ + -ldflags "-buildid= -s -w -linkmode external -extldflags '-Wl,--build-id=none' ${SYSBOX_LDFLAGS}" \ + -o ${WORKDIR}/sysbox-runc-bin . + + # Build sysbox-fs + cd ${UNPACKDIR}/sysbox-fs + ${GO} build -mod=vendor -buildvcs=false -trimpath \ + -ldflags "-buildid= -s -w -linkmode external -extldflags '-Wl,--build-id=none' ${SYSBOX_LDFLAGS}" \ + -o ${WORKDIR}/sysbox-fs-bin ./cmd/sysbox-fs + + # Build sysbox-mgr + cd ${UNPACKDIR}/sysbox-mgr + ${GO} build -mod=vendor -buildvcs=false -trimpath \ + -tags "${SYSBOX_MGR_BUILDTAGS}" \ + -ldflags "-buildid= -s -w -linkmode external -extldflags '-Wl,--build-id=none' ${SYSBOX_LDFLAGS}" \ + -o ${WORKDIR}/sysbox-mgr-bin . +} + +do_install() { + # Install binaries + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/sysbox-runc-bin ${D}${bindir}/sysbox-runc + install -m 0755 ${WORKDIR}/sysbox-fs-bin ${D}${bindir}/sysbox-fs + install -m 0755 ${WORKDIR}/sysbox-mgr-bin ${D}${bindir}/sysbox-mgr + + # Install systemd services + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${UNPACKDIR}/sysbox.service ${D}${systemd_system_unitdir} + install -m 0644 ${UNPACKDIR}/sysbox-fs.service ${D}${systemd_system_unitdir} + install -m 0644 ${UNPACKDIR}/sysbox-mgr.service ${D}${systemd_system_unitdir} + fi + + # Install sysctl config + install -d ${D}${sysconfdir}/sysctl.d + install -m 0644 ${UNPACKDIR}/99-sysbox-sysctl.conf ${D}${sysconfdir}/sysctl.d/ + + # Install module autoload config + install -d ${D}${sysconfdir}/modules-load.d + install -m 0644 ${UNPACKDIR}/50-sysbox-mod.conf ${D}${sysconfdir}/modules-load.d/ + + # Create sysbox data directory + install -d ${D}/var/lib/sysbox +} + +SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${PN}', '', d)}" +SYSTEMD_SERVICE:${PN} = "sysbox.service sysbox-fs.service sysbox-mgr.service" +SYSTEMD_AUTO_ENABLE:${PN} = "enable" + +FILES:${PN} += " \ + ${bindir}/sysbox-runc \ + ${bindir}/sysbox-fs \ + ${bindir}/sysbox-mgr \ + ${systemd_system_unitdir}/sysbox.service \ + ${systemd_system_unitdir}/sysbox-fs.service \ + ${systemd_system_unitdir}/sysbox-mgr.service \ + ${sysconfdir}/sysctl.d/99-sysbox-sysctl.conf \ + ${sysconfdir}/modules-load.d/50-sysbox-mod.conf \ + /var/lib/sysbox \ +" + +INSANE_SKIP:${PN} += "ldflags already-stripped" + +COMPATIBLE_HOST = "x86_64.*-linux" diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/50-sysbox-mod.conf b/meta-dstack/recipes-core/dstack-sysbox/files/50-sysbox-mod.conf new file mode 100644 index 0000000..214e86b --- /dev/null +++ b/meta-dstack/recipes-core/dstack-sysbox/files/50-sysbox-mod.conf @@ -0,0 +1 @@ +configfs diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/99-sysbox-sysctl.conf b/meta-dstack/recipes-core/dstack-sysbox/files/99-sysbox-sysctl.conf new file mode 100644 index 0000000..96c18ee --- /dev/null +++ b/meta-dstack/recipes-core/dstack-sysbox/files/99-sysbox-sysctl.conf @@ -0,0 +1,7 @@ +kernel.unprivileged_userns_clone = 1 +fs.inotify.max_queued_events = 1048576 +fs.inotify.max_user_watches = 1048576 +fs.inotify.max_user_instances = 1048576 +kernel.keys.maxkeys = 20000 +kernel.keys.maxbytes = 1400000 +kernel.pid_max = 4194304 diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-fs.service b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-fs.service new file mode 100644 index 0000000..3ce213b --- /dev/null +++ b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-fs.service @@ -0,0 +1,18 @@ +[Unit] +Description=sysbox-fs (part of the Sysbox container runtime) +PartOf=sysbox.service +After=sysbox-mgr.service + +[Service] +Type=notify +ExecStart=/usr/bin/sysbox-fs --log /var/log/sysbox-fs.log +TimeoutStartSec=10 +TimeoutStopSec=10 +StartLimitInterval=0 +NotifyAccess=main +OOMScoreAdjust=-500 +LimitNOFILE=infinity +LimitNPROC=infinity + +[Install] +WantedBy=sysbox.service diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service new file mode 100644 index 0000000..11dbd12 --- /dev/null +++ b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service @@ -0,0 +1,17 @@ +[Unit] +Description=sysbox-mgr (part of the Sysbox container runtime) +PartOf=sysbox.service + +[Service] +Type=notify +ExecStart=/usr/bin/sysbox-mgr --log /var/log/sysbox-mgr.log +TimeoutStartSec=45 +TimeoutStopSec=90 +StartLimitInterval=0 +NotifyAccess=main +OOMScoreAdjust=-500 +LimitNOFILE=infinity +LimitNPROC=infinity + +[Install] +WantedBy=sysbox.service diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/sysbox.service b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox.service new file mode 100644 index 0000000..55e15a5 --- /dev/null +++ b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox.service @@ -0,0 +1,13 @@ +[Unit] +Description=Sysbox container runtime +Documentation=https://github.com/nestybox/sysbox +BindsTo=sysbox-mgr.service sysbox-fs.service +After=sysbox-mgr.service sysbox-fs.service +Before=docker.service containerd.service + +[Service] +Type=exec +ExecStart=/bin/sh -c "/usr/bin/sysbox-runc --version && /usr/bin/sysbox-mgr --version && /usr/bin/sysbox-fs --version && /bin/sleep infinity" + +[Install] +WantedBy=multi-user.target diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/sysboxFsProtobuf.pb.go b/meta-dstack/recipes-core/dstack-sysbox/files/sysboxFsProtobuf.pb.go new file mode 100644 index 0000000..d3b0a66 --- /dev/null +++ b/meta-dstack/recipes-core/dstack-sysbox/files/sysboxFsProtobuf.pb.go @@ -0,0 +1,703 @@ +// +// Sysbox-fs Protobuffer Definitions. +// + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.33.0 +// protoc v3.21.12 +// source: sysboxFsProtobuf.proto + +package sysboxFsProtobuf + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Request message sent by runC to sysbox-fs process during container +// registration, unregistration and update phases. +type ContainerData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` + InitPid int32 `protobuf:"varint,2,opt,name=InitPid,proto3" json:"InitPid,omitempty"` + Hostname string `protobuf:"bytes,3,opt,name=Hostname,proto3" json:"Hostname,omitempty"` + Ctime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=Ctime,proto3" json:"Ctime,omitempty"` + UidFirst int32 `protobuf:"varint,5,opt,name=UidFirst,proto3" json:"UidFirst,omitempty"` + UidSize int32 `protobuf:"varint,6,opt,name=UidSize,proto3" json:"UidSize,omitempty"` + GidFirst int32 `protobuf:"varint,7,opt,name=GidFirst,proto3" json:"GidFirst,omitempty"` + GidSize int32 `protobuf:"varint,8,opt,name=GidSize,proto3" json:"GidSize,omitempty"` + ProcRoPaths []string `protobuf:"bytes,9,rep,name=ProcRoPaths,proto3" json:"ProcRoPaths,omitempty"` + ProcMaskPaths []string `protobuf:"bytes,10,rep,name=ProcMaskPaths,proto3" json:"ProcMaskPaths,omitempty"` + Netns string `protobuf:"bytes,11,opt,name=Netns,proto3" json:"Netns,omitempty"` +} + +func (x *ContainerData) Reset() { + *x = ContainerData{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxFsProtobuf_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContainerData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContainerData) ProtoMessage() {} + +func (x *ContainerData) ProtoReflect() protoreflect.Message { + mi := &file_sysboxFsProtobuf_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 ContainerData.ProtoReflect.Descriptor instead. +func (*ContainerData) Descriptor() ([]byte, []int) { + return file_sysboxFsProtobuf_proto_rawDescGZIP(), []int{0} +} + +func (x *ContainerData) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ContainerData) GetInitPid() int32 { + if x != nil { + return x.InitPid + } + return 0 +} + +func (x *ContainerData) GetHostname() string { + if x != nil { + return x.Hostname + } + return "" +} + +func (x *ContainerData) GetCtime() *timestamppb.Timestamp { + if x != nil { + return x.Ctime + } + return nil +} + +func (x *ContainerData) GetUidFirst() int32 { + if x != nil { + return x.UidFirst + } + return 0 +} + +func (x *ContainerData) GetUidSize() int32 { + if x != nil { + return x.UidSize + } + return 0 +} + +func (x *ContainerData) GetGidFirst() int32 { + if x != nil { + return x.GidFirst + } + return 0 +} + +func (x *ContainerData) GetGidSize() int32 { + if x != nil { + return x.GidSize + } + return 0 +} + +func (x *ContainerData) GetProcRoPaths() []string { + if x != nil { + return x.ProcRoPaths + } + return nil +} + +func (x *ContainerData) GetProcMaskPaths() []string { + if x != nil { + return x.ProcMaskPaths + } + return nil +} + +func (x *ContainerData) GetNetns() string { + if x != nil { + return x.Netns + } + return "" +} + +// Response message sent from sysbox-fs to runC process. +type Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=Success,proto3" json:"Success,omitempty"` +} + +func (x *Response) Reset() { + *x = Response{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxFsProtobuf_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Response) ProtoMessage() {} + +func (x *Response) ProtoReflect() protoreflect.Message { + mi := &file_sysboxFsProtobuf_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 Response.ProtoReflect.Descriptor instead. +func (*Response) Descriptor() ([]byte, []int) { + return file_sysboxFsProtobuf_proto_rawDescGZIP(), []int{1} +} + +func (x *Response) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +type MountpointReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MountpointReq) Reset() { + *x = MountpointReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxFsProtobuf_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MountpointReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MountpointReq) ProtoMessage() {} + +func (x *MountpointReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxFsProtobuf_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 MountpointReq.ProtoReflect.Descriptor instead. +func (*MountpointReq) Descriptor() ([]byte, []int) { + return file_sysboxFsProtobuf_proto_rawDescGZIP(), []int{2} +} + +type MountpointResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mountpoint string `protobuf:"bytes,1,opt,name=Mountpoint,proto3" json:"Mountpoint,omitempty"` +} + +func (x *MountpointResp) Reset() { + *x = MountpointResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxFsProtobuf_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MountpointResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MountpointResp) ProtoMessage() {} + +func (x *MountpointResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxFsProtobuf_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 MountpointResp.ProtoReflect.Descriptor instead. +func (*MountpointResp) Descriptor() ([]byte, []int) { + return file_sysboxFsProtobuf_proto_rawDescGZIP(), []int{3} +} + +func (x *MountpointResp) GetMountpoint() string { + if x != nil { + return x.Mountpoint + } + return "" +} + +var File_sysboxFsProtobuf_proto protoreflect.FileDescriptor + +var file_sysboxFsProtobuf_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x73, 0x79, 0x73, 0x62, 0x6f, 0x78, 0x46, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xd1, 0x02, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x69, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x43, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x43, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x55, 0x69, 0x64, 0x46, 0x69, 0x72, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x55, 0x69, 0x64, 0x46, 0x69, 0x72, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x69, 0x64, + 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x55, 0x69, 0x64, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x69, 0x64, 0x46, 0x69, 0x72, 0x73, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x69, 0x64, 0x46, 0x69, 0x72, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x47, 0x69, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x47, 0x69, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x6f, + 0x63, 0x52, 0x6f, 0x50, 0x61, 0x74, 0x68, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, + 0x50, 0x72, 0x6f, 0x63, 0x52, 0x6f, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x50, + 0x72, 0x6f, 0x63, 0x4d, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x73, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0d, 0x50, 0x72, 0x6f, 0x63, 0x4d, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x74, 0x68, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x65, 0x74, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x4e, 0x65, 0x74, 0x6e, 0x73, 0x22, 0x24, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x0f, 0x0a, + 0x0d, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x22, 0x30, + 0x0a, 0x0e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x32, 0xf9, 0x02, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x44, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4d, 0x6f, + 0x75, 0x6e, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x6f, 0x75, + 0x6e, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x49, 0x0a, + 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x72, 0x65, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x48, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x55, 0x6e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0f, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x15, 0x5a, 0x13, + 0x2e, 0x2f, 0x3b, 0x73, 0x79, 0x73, 0x62, 0x6f, 0x78, 0x46, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_sysboxFsProtobuf_proto_rawDescOnce sync.Once + file_sysboxFsProtobuf_proto_rawDescData = file_sysboxFsProtobuf_proto_rawDesc +) + +func file_sysboxFsProtobuf_proto_rawDescGZIP() []byte { + file_sysboxFsProtobuf_proto_rawDescOnce.Do(func() { + file_sysboxFsProtobuf_proto_rawDescData = protoimpl.X.CompressGZIP(file_sysboxFsProtobuf_proto_rawDescData) + }) + return file_sysboxFsProtobuf_proto_rawDescData +} + +var file_sysboxFsProtobuf_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_sysboxFsProtobuf_proto_goTypes = []interface{}{ + (*ContainerData)(nil), // 0: protobuf.ContainerData + (*Response)(nil), // 1: protobuf.Response + (*MountpointReq)(nil), // 2: protobuf.MountpointReq + (*MountpointResp)(nil), // 3: protobuf.MountpointResp + (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp +} +var file_sysboxFsProtobuf_proto_depIdxs = []int32{ + 4, // 0: protobuf.ContainerData.Ctime:type_name -> google.protobuf.Timestamp + 2, // 1: protobuf.sysboxStateChannel.GetMountpoint:input_type -> protobuf.MountpointReq + 0, // 2: protobuf.sysboxStateChannel.ContainerPreRegistration:input_type -> protobuf.ContainerData + 0, // 3: protobuf.sysboxStateChannel.ContainerRegistration:input_type -> protobuf.ContainerData + 0, // 4: protobuf.sysboxStateChannel.ContainerUnregistration:input_type -> protobuf.ContainerData + 0, // 5: protobuf.sysboxStateChannel.ContainerUpdate:input_type -> protobuf.ContainerData + 3, // 6: protobuf.sysboxStateChannel.GetMountpoint:output_type -> protobuf.MountpointResp + 1, // 7: protobuf.sysboxStateChannel.ContainerPreRegistration:output_type -> protobuf.Response + 1, // 8: protobuf.sysboxStateChannel.ContainerRegistration:output_type -> protobuf.Response + 1, // 9: protobuf.sysboxStateChannel.ContainerUnregistration:output_type -> protobuf.Response + 1, // 10: protobuf.sysboxStateChannel.ContainerUpdate:output_type -> protobuf.Response + 6, // [6:11] is the sub-list for method output_type + 1, // [1:6] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_sysboxFsProtobuf_proto_init() } +func file_sysboxFsProtobuf_proto_init() { + if File_sysboxFsProtobuf_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_sysboxFsProtobuf_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContainerData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxFsProtobuf_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxFsProtobuf_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MountpointReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxFsProtobuf_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MountpointResp); 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_sysboxFsProtobuf_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_sysboxFsProtobuf_proto_goTypes, + DependencyIndexes: file_sysboxFsProtobuf_proto_depIdxs, + MessageInfos: file_sysboxFsProtobuf_proto_msgTypes, + }.Build() + File_sysboxFsProtobuf_proto = out.File + file_sysboxFsProtobuf_proto_rawDesc = nil + file_sysboxFsProtobuf_proto_goTypes = nil + file_sysboxFsProtobuf_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// SysboxStateChannelClient is the client API for SysboxStateChannel service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type SysboxStateChannelClient interface { + // Queries sysbox-fs for the FUSE mountpoint + GetMountpoint(ctx context.Context, in *MountpointReq, opts ...grpc.CallOption) (*MountpointResp, error) + // Generates a container-preregistration message + ContainerPreRegistration(ctx context.Context, in *ContainerData, opts ...grpc.CallOption) (*Response, error) + // Generates a container-registration message + ContainerRegistration(ctx context.Context, in *ContainerData, opts ...grpc.CallOption) (*Response, error) + // Generates a container-unregistration message + ContainerUnregistration(ctx context.Context, in *ContainerData, opts ...grpc.CallOption) (*Response, error) + // Generates a container-update message + ContainerUpdate(ctx context.Context, in *ContainerData, opts ...grpc.CallOption) (*Response, error) +} + +type sysboxStateChannelClient struct { + cc grpc.ClientConnInterface +} + +func NewSysboxStateChannelClient(cc grpc.ClientConnInterface) SysboxStateChannelClient { + return &sysboxStateChannelClient{cc} +} + +func (c *sysboxStateChannelClient) GetMountpoint(ctx context.Context, in *MountpointReq, opts ...grpc.CallOption) (*MountpointResp, error) { + out := new(MountpointResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxStateChannel/GetMountpoint", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxStateChannelClient) ContainerPreRegistration(ctx context.Context, in *ContainerData, opts ...grpc.CallOption) (*Response, error) { + out := new(Response) + err := c.cc.Invoke(ctx, "/protobuf.sysboxStateChannel/ContainerPreRegistration", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxStateChannelClient) ContainerRegistration(ctx context.Context, in *ContainerData, opts ...grpc.CallOption) (*Response, error) { + out := new(Response) + err := c.cc.Invoke(ctx, "/protobuf.sysboxStateChannel/ContainerRegistration", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxStateChannelClient) ContainerUnregistration(ctx context.Context, in *ContainerData, opts ...grpc.CallOption) (*Response, error) { + out := new(Response) + err := c.cc.Invoke(ctx, "/protobuf.sysboxStateChannel/ContainerUnregistration", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxStateChannelClient) ContainerUpdate(ctx context.Context, in *ContainerData, opts ...grpc.CallOption) (*Response, error) { + out := new(Response) + err := c.cc.Invoke(ctx, "/protobuf.sysboxStateChannel/ContainerUpdate", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SysboxStateChannelServer is the server API for SysboxStateChannel service. +type SysboxStateChannelServer interface { + // Queries sysbox-fs for the FUSE mountpoint + GetMountpoint(context.Context, *MountpointReq) (*MountpointResp, error) + // Generates a container-preregistration message + ContainerPreRegistration(context.Context, *ContainerData) (*Response, error) + // Generates a container-registration message + ContainerRegistration(context.Context, *ContainerData) (*Response, error) + // Generates a container-unregistration message + ContainerUnregistration(context.Context, *ContainerData) (*Response, error) + // Generates a container-update message + ContainerUpdate(context.Context, *ContainerData) (*Response, error) +} + +// UnimplementedSysboxStateChannelServer can be embedded to have forward compatible implementations. +type UnimplementedSysboxStateChannelServer struct { +} + +func (*UnimplementedSysboxStateChannelServer) GetMountpoint(context.Context, *MountpointReq) (*MountpointResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMountpoint not implemented") +} +func (*UnimplementedSysboxStateChannelServer) ContainerPreRegistration(context.Context, *ContainerData) (*Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method ContainerPreRegistration not implemented") +} +func (*UnimplementedSysboxStateChannelServer) ContainerRegistration(context.Context, *ContainerData) (*Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method ContainerRegistration not implemented") +} +func (*UnimplementedSysboxStateChannelServer) ContainerUnregistration(context.Context, *ContainerData) (*Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method ContainerUnregistration not implemented") +} +func (*UnimplementedSysboxStateChannelServer) ContainerUpdate(context.Context, *ContainerData) (*Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method ContainerUpdate not implemented") +} + +func RegisterSysboxStateChannelServer(s *grpc.Server, srv SysboxStateChannelServer) { + s.RegisterService(&_SysboxStateChannel_serviceDesc, srv) +} + +func _SysboxStateChannel_GetMountpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MountpointReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxStateChannelServer).GetMountpoint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxStateChannel/GetMountpoint", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxStateChannelServer).GetMountpoint(ctx, req.(*MountpointReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxStateChannel_ContainerPreRegistration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainerData) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxStateChannelServer).ContainerPreRegistration(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxStateChannel/ContainerPreRegistration", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxStateChannelServer).ContainerPreRegistration(ctx, req.(*ContainerData)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxStateChannel_ContainerRegistration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainerData) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxStateChannelServer).ContainerRegistration(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxStateChannel/ContainerRegistration", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxStateChannelServer).ContainerRegistration(ctx, req.(*ContainerData)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxStateChannel_ContainerUnregistration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainerData) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxStateChannelServer).ContainerUnregistration(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxStateChannel/ContainerUnregistration", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxStateChannelServer).ContainerUnregistration(ctx, req.(*ContainerData)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxStateChannel_ContainerUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContainerData) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxStateChannelServer).ContainerUpdate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxStateChannel/ContainerUpdate", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxStateChannelServer).ContainerUpdate(ctx, req.(*ContainerData)) + } + return interceptor(ctx, in, info, handler) +} + +var _SysboxStateChannel_serviceDesc = grpc.ServiceDesc{ + ServiceName: "protobuf.sysboxStateChannel", + HandlerType: (*SysboxStateChannelServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetMountpoint", + Handler: _SysboxStateChannel_GetMountpoint_Handler, + }, + { + MethodName: "ContainerPreRegistration", + Handler: _SysboxStateChannel_ContainerPreRegistration_Handler, + }, + { + MethodName: "ContainerRegistration", + Handler: _SysboxStateChannel_ContainerRegistration_Handler, + }, + { + MethodName: "ContainerUnregistration", + Handler: _SysboxStateChannel_ContainerUnregistration_Handler, + }, + { + MethodName: "ContainerUpdate", + Handler: _SysboxStateChannel_ContainerUpdate_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "sysboxFsProtobuf.proto", +} diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/sysboxMgrProtobuf.pb.go b/meta-dstack/recipes-core/dstack-sysbox/files/sysboxMgrProtobuf.pb.go new file mode 100644 index 0000000..1c0364d --- /dev/null +++ b/meta-dstack/recipes-core/dstack-sysbox/files/sysboxMgrProtobuf.pb.go @@ -0,0 +1,3203 @@ +// +// SysboxMgr Protobuffer Definitions. +// + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.33.0 +// protoc v3.21.12 +// source: sysboxMgrProtobuf.proto + +package sysboxMgrProtobuf + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type IDMapping struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ContainerID uint32 `protobuf:"varint,1,opt,name=containerID,proto3" json:"containerID,omitempty"` + HostID uint32 `protobuf:"varint,2,opt,name=hostID,proto3" json:"hostID,omitempty"` + Size uint32 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *IDMapping) Reset() { + *x = IDMapping{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IDMapping) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IDMapping) ProtoMessage() {} + +func (x *IDMapping) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 IDMapping.ProtoReflect.Descriptor instead. +func (*IDMapping) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{0} +} + +func (x *IDMapping) GetContainerID() uint32 { + if x != nil { + return x.ContainerID + } + return 0 +} + +func (x *IDMapping) GetHostID() uint32 { + if x != nil { + return x.HostID + } + return 0 +} + +func (x *IDMapping) GetSize() uint32 { + if x != nil { + return x.Size + } + return 0 +} + +type RegisterReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Rootfs string `protobuf:"bytes,2,opt,name=rootfs,proto3" json:"rootfs,omitempty"` + Userns string `protobuf:"bytes,3,opt,name=userns,proto3" json:"userns,omitempty"` + Netns string `protobuf:"bytes,4,opt,name=netns,proto3" json:"netns,omitempty"` + UidMappings []*IDMapping `protobuf:"bytes,5,rep,name=uidMappings,proto3" json:"uidMappings,omitempty"` + GidMappings []*IDMapping `protobuf:"bytes,6,rep,name=gidMappings,proto3" json:"gidMappings,omitempty"` +} + +func (x *RegisterReq) Reset() { + *x = RegisterReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterReq) ProtoMessage() {} + +func (x *RegisterReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 RegisterReq.ProtoReflect.Descriptor instead. +func (*RegisterReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{1} +} + +func (x *RegisterReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *RegisterReq) GetRootfs() string { + if x != nil { + return x.Rootfs + } + return "" +} + +func (x *RegisterReq) GetUserns() string { + if x != nil { + return x.Userns + } + return "" +} + +func (x *RegisterReq) GetNetns() string { + if x != nil { + return x.Netns + } + return "" +} + +func (x *RegisterReq) GetUidMappings() []*IDMapping { + if x != nil { + return x.UidMappings + } + return nil +} + +func (x *RegisterReq) GetGidMappings() []*IDMapping { + if x != nil { + return x.GidMappings + } + return nil +} + +type ContainerConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AliasDns bool `protobuf:"varint,1,opt,name=aliasDns,proto3" json:"aliasDns,omitempty"` + ShiftfsOk bool `protobuf:"varint,2,opt,name=ShiftfsOk,proto3" json:"ShiftfsOk,omitempty"` + ShiftfsOnOverlayfsOk bool `protobuf:"varint,3,opt,name=ShiftfsOnOverlayfsOk,proto3" json:"ShiftfsOnOverlayfsOk,omitempty"` + IDMapMountOk bool `protobuf:"varint,4,opt,name=IDMapMountOk,proto3" json:"IDMapMountOk,omitempty"` + OverlayfsOnIDMapMountOk bool `protobuf:"varint,5,opt,name=OverlayfsOnIDMapMountOk,proto3" json:"OverlayfsOnIDMapMountOk,omitempty"` + NoRootfsCloning bool `protobuf:"varint,6,opt,name=noRootfsCloning,proto3" json:"noRootfsCloning,omitempty"` + IgnoreSysfsChown bool `protobuf:"varint,7,opt,name=ignoreSysfsChown,proto3" json:"ignoreSysfsChown,omitempty"` + AllowTrustedXattr bool `protobuf:"varint,8,opt,name=allowTrustedXattr,proto3" json:"allowTrustedXattr,omitempty"` + HonorCaps bool `protobuf:"varint,9,opt,name=honorCaps,proto3" json:"honorCaps,omitempty"` + SyscontMode bool `protobuf:"varint,10,opt,name=syscontMode,proto3" json:"syscontMode,omitempty"` + Userns string `protobuf:"bytes,11,opt,name=userns,proto3" json:"userns,omitempty"` + UidMappings []*IDMapping `protobuf:"bytes,12,rep,name=uidMappings,proto3" json:"uidMappings,omitempty"` + GidMappings []*IDMapping `protobuf:"bytes,13,rep,name=gidMappings,proto3" json:"gidMappings,omitempty"` + FsuidMapFailOnErr bool `protobuf:"varint,14,opt,name=fsuidMapFailOnErr,proto3" json:"fsuidMapFailOnErr,omitempty"` + RootfsUidShiftType uint32 `protobuf:"varint,15,opt,name=rootfsUidShiftType,proto3" json:"rootfsUidShiftType,omitempty"` + NoShiftfsOnFuse bool `protobuf:"varint,16,opt,name=noShiftfsOnFuse,proto3" json:"noShiftfsOnFuse,omitempty"` + RelaxedReadOnly bool `protobuf:"varint,17,opt,name=relaxedReadOnly,proto3" json:"relaxedReadOnly,omitempty"` +} + +func (x *ContainerConfig) Reset() { + *x = ContainerConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContainerConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContainerConfig) ProtoMessage() {} + +func (x *ContainerConfig) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 ContainerConfig.ProtoReflect.Descriptor instead. +func (*ContainerConfig) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{2} +} + +func (x *ContainerConfig) GetAliasDns() bool { + if x != nil { + return x.AliasDns + } + return false +} + +func (x *ContainerConfig) GetShiftfsOk() bool { + if x != nil { + return x.ShiftfsOk + } + return false +} + +func (x *ContainerConfig) GetShiftfsOnOverlayfsOk() bool { + if x != nil { + return x.ShiftfsOnOverlayfsOk + } + return false +} + +func (x *ContainerConfig) GetIDMapMountOk() bool { + if x != nil { + return x.IDMapMountOk + } + return false +} + +func (x *ContainerConfig) GetOverlayfsOnIDMapMountOk() bool { + if x != nil { + return x.OverlayfsOnIDMapMountOk + } + return false +} + +func (x *ContainerConfig) GetNoRootfsCloning() bool { + if x != nil { + return x.NoRootfsCloning + } + return false +} + +func (x *ContainerConfig) GetIgnoreSysfsChown() bool { + if x != nil { + return x.IgnoreSysfsChown + } + return false +} + +func (x *ContainerConfig) GetAllowTrustedXattr() bool { + if x != nil { + return x.AllowTrustedXattr + } + return false +} + +func (x *ContainerConfig) GetHonorCaps() bool { + if x != nil { + return x.HonorCaps + } + return false +} + +func (x *ContainerConfig) GetSyscontMode() bool { + if x != nil { + return x.SyscontMode + } + return false +} + +func (x *ContainerConfig) GetUserns() string { + if x != nil { + return x.Userns + } + return "" +} + +func (x *ContainerConfig) GetUidMappings() []*IDMapping { + if x != nil { + return x.UidMappings + } + return nil +} + +func (x *ContainerConfig) GetGidMappings() []*IDMapping { + if x != nil { + return x.GidMappings + } + return nil +} + +func (x *ContainerConfig) GetFsuidMapFailOnErr() bool { + if x != nil { + return x.FsuidMapFailOnErr + } + return false +} + +func (x *ContainerConfig) GetRootfsUidShiftType() uint32 { + if x != nil { + return x.RootfsUidShiftType + } + return 0 +} + +func (x *ContainerConfig) GetNoShiftfsOnFuse() bool { + if x != nil { + return x.NoShiftfsOnFuse + } + return false +} + +func (x *ContainerConfig) GetRelaxedReadOnly() bool { + if x != nil { + return x.RelaxedReadOnly + } + return false +} + +type RegisterResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ContainerConfig *ContainerConfig `protobuf:"bytes,1,opt,name=containerConfig,proto3" json:"containerConfig,omitempty"` +} + +func (x *RegisterResp) Reset() { + *x = RegisterResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterResp) ProtoMessage() {} + +func (x *RegisterResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 RegisterResp.ProtoReflect.Descriptor instead. +func (*RegisterResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{3} +} + +func (x *RegisterResp) GetContainerConfig() *ContainerConfig { + if x != nil { + return x.ContainerConfig + } + return nil +} + +type UpdateReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Userns string `protobuf:"bytes,2,opt,name=userns,proto3" json:"userns,omitempty"` + Netns string `protobuf:"bytes,3,opt,name=netns,proto3" json:"netns,omitempty"` + UidMappings []*IDMapping `protobuf:"bytes,4,rep,name=uidMappings,proto3" json:"uidMappings,omitempty"` + GidMappings []*IDMapping `protobuf:"bytes,5,rep,name=gidMappings,proto3" json:"gidMappings,omitempty"` + RootfsUidShiftType uint32 `protobuf:"varint,6,opt,name=rootfsUidShiftType,proto3" json:"rootfsUidShiftType,omitempty"` +} + +func (x *UpdateReq) Reset() { + *x = UpdateReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateReq) ProtoMessage() {} + +func (x *UpdateReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 UpdateReq.ProtoReflect.Descriptor instead. +func (*UpdateReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *UpdateReq) GetUserns() string { + if x != nil { + return x.Userns + } + return "" +} + +func (x *UpdateReq) GetNetns() string { + if x != nil { + return x.Netns + } + return "" +} + +func (x *UpdateReq) GetUidMappings() []*IDMapping { + if x != nil { + return x.UidMappings + } + return nil +} + +func (x *UpdateReq) GetGidMappings() []*IDMapping { + if x != nil { + return x.GidMappings + } + return nil +} + +func (x *UpdateReq) GetRootfsUidShiftType() uint32 { + if x != nil { + return x.RootfsUidShiftType + } + return 0 +} + +type UpdateResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateResp) Reset() { + *x = UpdateResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateResp) ProtoMessage() {} + +func (x *UpdateResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 UpdateResp.ProtoReflect.Descriptor instead. +func (*UpdateResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{5} +} + +type UnregisterReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *UnregisterReq) Reset() { + *x = UnregisterReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnregisterReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnregisterReq) ProtoMessage() {} + +func (x *UnregisterReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 UnregisterReq.ProtoReflect.Descriptor instead. +func (*UnregisterReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{6} +} + +func (x *UnregisterReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type UnregisterResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UnregisterResp) Reset() { + *x = UnregisterResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnregisterResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnregisterResp) ProtoMessage() {} + +func (x *UnregisterResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 UnregisterResp.ProtoReflect.Descriptor instead. +func (*UnregisterResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{7} +} + +type SubidAllocReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Size uint64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *SubidAllocReq) Reset() { + *x = SubidAllocReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubidAllocReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubidAllocReq) ProtoMessage() {} + +func (x *SubidAllocReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 SubidAllocReq.ProtoReflect.Descriptor instead. +func (*SubidAllocReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{8} +} + +func (x *SubidAllocReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *SubidAllocReq) GetSize() uint64 { + if x != nil { + return x.Size + } + return 0 +} + +type SubidAllocResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid uint32 `protobuf:"varint,1,opt,name=uid,proto3" json:"uid,omitempty"` + Gid uint32 `protobuf:"varint,2,opt,name=gid,proto3" json:"gid,omitempty"` +} + +func (x *SubidAllocResp) Reset() { + *x = SubidAllocResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubidAllocResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubidAllocResp) ProtoMessage() {} + +func (x *SubidAllocResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 SubidAllocResp.ProtoReflect.Descriptor instead. +func (*SubidAllocResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{9} +} + +func (x *SubidAllocResp) GetUid() uint32 { + if x != nil { + return x.Uid + } + return 0 +} + +func (x *SubidAllocResp) GetGid() uint32 { + if x != nil { + return x.Gid + } + return 0 +} + +type MountPrepInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + Exclusive bool `protobuf:"varint,2,opt,name=exclusive,proto3" json:"exclusive,omitempty"` +} + +func (x *MountPrepInfo) Reset() { + *x = MountPrepInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MountPrepInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MountPrepInfo) ProtoMessage() {} + +func (x *MountPrepInfo) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 MountPrepInfo.ProtoReflect.Descriptor instead. +func (*MountPrepInfo) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{10} +} + +func (x *MountPrepInfo) GetSource() string { + if x != nil { + return x.Source + } + return "" +} + +func (x *MountPrepInfo) GetExclusive() bool { + if x != nil { + return x.Exclusive + } + return false +} + +type MountPrepReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Uid uint32 `protobuf:"varint,2,opt,name=uid,proto3" json:"uid,omitempty"` + Gid uint32 `protobuf:"varint,3,opt,name=gid,proto3" json:"gid,omitempty"` + PrepList []*MountPrepInfo `protobuf:"bytes,4,rep,name=prepList,proto3" json:"prepList,omitempty"` +} + +func (x *MountPrepReq) Reset() { + *x = MountPrepReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MountPrepReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MountPrepReq) ProtoMessage() {} + +func (x *MountPrepReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 MountPrepReq.ProtoReflect.Descriptor instead. +func (*MountPrepReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{11} +} + +func (x *MountPrepReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *MountPrepReq) GetUid() uint32 { + if x != nil { + return x.Uid + } + return 0 +} + +func (x *MountPrepReq) GetGid() uint32 { + if x != nil { + return x.Gid + } + return 0 +} + +func (x *MountPrepReq) GetPrepList() []*MountPrepInfo { + if x != nil { + return x.PrepList + } + return nil +} + +type MountPrepResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MountPrepResp) Reset() { + *x = MountPrepResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MountPrepResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MountPrepResp) ProtoMessage() {} + +func (x *MountPrepResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 MountPrepResp.ProtoReflect.Descriptor instead. +func (*MountPrepResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{12} +} + +type MountReqInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Kind uint32 `protobuf:"varint,1,opt,name=kind,proto3" json:"kind,omitempty"` + Dest string `protobuf:"bytes,2,opt,name=dest,proto3" json:"dest,omitempty"` +} + +func (x *MountReqInfo) Reset() { + *x = MountReqInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MountReqInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MountReqInfo) ProtoMessage() {} + +func (x *MountReqInfo) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 MountReqInfo.ProtoReflect.Descriptor instead. +func (*MountReqInfo) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{13} +} + +func (x *MountReqInfo) GetKind() uint32 { + if x != nil { + return x.Kind + } + return 0 +} + +func (x *MountReqInfo) GetDest() string { + if x != nil { + return x.Dest + } + return "" +} + +type MountReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + RootfsUidShiftType uint32 `protobuf:"varint,2,opt,name=rootfsUidShiftType,proto3" json:"rootfsUidShiftType,omitempty"` + ReqList []*MountReqInfo `protobuf:"bytes,3,rep,name=reqList,proto3" json:"reqList,omitempty"` +} + +func (x *MountReq) Reset() { + *x = MountReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MountReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MountReq) ProtoMessage() {} + +func (x *MountReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 MountReq.ProtoReflect.Descriptor instead. +func (*MountReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{14} +} + +func (x *MountReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *MountReq) GetRootfsUidShiftType() uint32 { + if x != nil { + return x.RootfsUidShiftType + } + return 0 +} + +func (x *MountReq) GetReqList() []*MountReqInfo { + if x != nil { + return x.ReqList + } + return nil +} + +type Mount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + Dest string `protobuf:"bytes,2,opt,name=dest,proto3" json:"dest,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + Opt []string `protobuf:"bytes,4,rep,name=opt,proto3" json:"opt,omitempty"` +} + +func (x *Mount) Reset() { + *x = Mount{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Mount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Mount) ProtoMessage() {} + +func (x *Mount) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 Mount.ProtoReflect.Descriptor instead. +func (*Mount) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{15} +} + +func (x *Mount) GetSource() string { + if x != nil { + return x.Source + } + return "" +} + +func (x *Mount) GetDest() string { + if x != nil { + return x.Dest + } + return "" +} + +func (x *Mount) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *Mount) GetOpt() []string { + if x != nil { + return x.Opt + } + return nil +} + +type MountResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mounts []*Mount `protobuf:"bytes,1,rep,name=mounts,proto3" json:"mounts,omitempty"` +} + +func (x *MountResp) Reset() { + *x = MountResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MountResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MountResp) ProtoMessage() {} + +func (x *MountResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 MountResp.ProtoReflect.Descriptor instead. +func (*MountResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{16} +} + +func (x *MountResp) GetMounts() []*Mount { + if x != nil { + return x.Mounts + } + return nil +} + +type ShiftfsMark struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + Readonly bool `protobuf:"varint,2,opt,name=readonly,proto3" json:"readonly,omitempty"` +} + +func (x *ShiftfsMark) Reset() { + *x = ShiftfsMark{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShiftfsMark) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShiftfsMark) ProtoMessage() {} + +func (x *ShiftfsMark) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 ShiftfsMark.ProtoReflect.Descriptor instead. +func (*ShiftfsMark) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{17} +} + +func (x *ShiftfsMark) GetSource() string { + if x != nil { + return x.Source + } + return "" +} + +func (x *ShiftfsMark) GetReadonly() bool { + if x != nil { + return x.Readonly + } + return false +} + +type ShiftfsMarkReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + ShiftfsMarks []*ShiftfsMark `protobuf:"bytes,2,rep,name=shiftfsMarks,proto3" json:"shiftfsMarks,omitempty"` +} + +func (x *ShiftfsMarkReq) Reset() { + *x = ShiftfsMarkReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShiftfsMarkReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShiftfsMarkReq) ProtoMessage() {} + +func (x *ShiftfsMarkReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_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 ShiftfsMarkReq.ProtoReflect.Descriptor instead. +func (*ShiftfsMarkReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{18} +} + +func (x *ShiftfsMarkReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ShiftfsMarkReq) GetShiftfsMarks() []*ShiftfsMark { + if x != nil { + return x.ShiftfsMarks + } + return nil +} + +type ShiftfsMarkResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShiftfsMarks []*ShiftfsMark `protobuf:"bytes,1,rep,name=shiftfsMarks,proto3" json:"shiftfsMarks,omitempty"` +} + +func (x *ShiftfsMarkResp) Reset() { + *x = ShiftfsMarkResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShiftfsMarkResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShiftfsMarkResp) ProtoMessage() {} + +func (x *ShiftfsMarkResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[19] + 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 ShiftfsMarkResp.ProtoReflect.Descriptor instead. +func (*ShiftfsMarkResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{19} +} + +func (x *ShiftfsMarkResp) GetShiftfsMarks() []*ShiftfsMark { + if x != nil { + return x.ShiftfsMarks + } + return nil +} + +type FsStateReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Rootfs string `protobuf:"bytes,2,opt,name=rootfs,proto3" json:"rootfs,omitempty"` +} + +func (x *FsStateReq) Reset() { + *x = FsStateReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FsStateReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FsStateReq) ProtoMessage() {} + +func (x *FsStateReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[20] + 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 FsStateReq.ProtoReflect.Descriptor instead. +func (*FsStateReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{20} +} + +func (x *FsStateReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *FsStateReq) GetRootfs() string { + if x != nil { + return x.Rootfs + } + return "" +} + +type FsEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Kind uint32 `protobuf:"varint,1,opt,name=kind,proto3" json:"kind,omitempty"` + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + Mode uint32 `protobuf:"varint,3,opt,name=mode,proto3" json:"mode,omitempty"` + Dst string `protobuf:"bytes,4,opt,name=dst,proto3" json:"dst,omitempty"` +} + +func (x *FsEntry) Reset() { + *x = FsEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FsEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FsEntry) ProtoMessage() {} + +func (x *FsEntry) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[21] + 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 FsEntry.ProtoReflect.Descriptor instead. +func (*FsEntry) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{21} +} + +func (x *FsEntry) GetKind() uint32 { + if x != nil { + return x.Kind + } + return 0 +} + +func (x *FsEntry) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *FsEntry) GetMode() uint32 { + if x != nil { + return x.Mode + } + return 0 +} + +func (x *FsEntry) GetDst() string { + if x != nil { + return x.Dst + } + return "" +} + +type FsStateResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FsEntries []*FsEntry `protobuf:"bytes,1,rep,name=fsEntries,proto3" json:"fsEntries,omitempty"` +} + +func (x *FsStateResp) Reset() { + *x = FsStateResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FsStateResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FsStateResp) ProtoMessage() {} + +func (x *FsStateResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[22] + 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 FsStateResp.ProtoReflect.Descriptor instead. +func (*FsStateResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{22} +} + +func (x *FsStateResp) GetFsEntries() []*FsEntry { + if x != nil { + return x.FsEntries + } + return nil +} + +type PauseReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *PauseReq) Reset() { + *x = PauseReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PauseReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PauseReq) ProtoMessage() {} + +func (x *PauseReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[23] + 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 PauseReq.ProtoReflect.Descriptor instead. +func (*PauseReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{23} +} + +func (x *PauseReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type PauseResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PauseResp) Reset() { + *x = PauseResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PauseResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PauseResp) ProtoMessage() {} + +func (x *PauseResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[24] + 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 PauseResp.ProtoReflect.Descriptor instead. +func (*PauseResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{24} +} + +type ResumeReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *ResumeReq) Reset() { + *x = ResumeReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResumeReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResumeReq) ProtoMessage() {} + +func (x *ResumeReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[25] + 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 ResumeReq.ProtoReflect.Descriptor instead. +func (*ResumeReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{25} +} + +func (x *ResumeReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type ResumeResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ResumeResp) Reset() { + *x = ResumeResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResumeResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResumeResp) ProtoMessage() {} + +func (x *ResumeResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[26] + 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 ResumeResp.ProtoReflect.Descriptor instead. +func (*ResumeResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{26} +} + +type CloneRootfsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *CloneRootfsReq) Reset() { + *x = CloneRootfsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloneRootfsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloneRootfsReq) ProtoMessage() {} + +func (x *CloneRootfsReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[27] + 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 CloneRootfsReq.ProtoReflect.Descriptor instead. +func (*CloneRootfsReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{27} +} + +func (x *CloneRootfsReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type CloneRootfsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rootfs string `protobuf:"bytes,1,opt,name=rootfs,proto3" json:"rootfs,omitempty"` +} + +func (x *CloneRootfsResp) Reset() { + *x = CloneRootfsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloneRootfsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloneRootfsResp) ProtoMessage() {} + +func (x *CloneRootfsResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[28] + 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 CloneRootfsResp.ProtoReflect.Descriptor instead. +func (*CloneRootfsResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{28} +} + +func (x *CloneRootfsResp) GetRootfs() string { + if x != nil { + return x.Rootfs + } + return "" +} + +type ChownClonedRootfsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + UidOffset int32 `protobuf:"varint,2,opt,name=uidOffset,proto3" json:"uidOffset,omitempty"` + GidOffset int32 `protobuf:"varint,3,opt,name=gidOffset,proto3" json:"gidOffset,omitempty"` +} + +func (x *ChownClonedRootfsReq) Reset() { + *x = ChownClonedRootfsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChownClonedRootfsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChownClonedRootfsReq) ProtoMessage() {} + +func (x *ChownClonedRootfsReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[29] + 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 ChownClonedRootfsReq.ProtoReflect.Descriptor instead. +func (*ChownClonedRootfsReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{29} +} + +func (x *ChownClonedRootfsReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ChownClonedRootfsReq) GetUidOffset() int32 { + if x != nil { + return x.UidOffset + } + return 0 +} + +func (x *ChownClonedRootfsReq) GetGidOffset() int32 { + if x != nil { + return x.GidOffset + } + return 0 +} + +type ChownClonedRootfsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ChownClonedRootfsResp) Reset() { + *x = ChownClonedRootfsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChownClonedRootfsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChownClonedRootfsResp) ProtoMessage() {} + +func (x *ChownClonedRootfsResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[30] + 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 ChownClonedRootfsResp.ProtoReflect.Descriptor instead. +func (*ChownClonedRootfsResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{30} +} + +type RevertClonedRootfsChownReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *RevertClonedRootfsChownReq) Reset() { + *x = RevertClonedRootfsChownReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RevertClonedRootfsChownReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RevertClonedRootfsChownReq) ProtoMessage() {} + +func (x *RevertClonedRootfsChownReq) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[31] + 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 RevertClonedRootfsChownReq.ProtoReflect.Descriptor instead. +func (*RevertClonedRootfsChownReq) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{31} +} + +func (x *RevertClonedRootfsChownReq) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type RevertClonedRootfsChownResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RevertClonedRootfsChownResp) Reset() { + *x = RevertClonedRootfsChownResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RevertClonedRootfsChownResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RevertClonedRootfsChownResp) ProtoMessage() {} + +func (x *RevertClonedRootfsChownResp) ProtoReflect() protoreflect.Message { + mi := &file_sysboxMgrProtobuf_proto_msgTypes[32] + 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 RevertClonedRootfsChownResp.ProtoReflect.Descriptor instead. +func (*RevertClonedRootfsChownResp) Descriptor() ([]byte, []int) { + return file_sysboxMgrProtobuf_proto_rawDescGZIP(), []int{32} +} + +var File_sysboxMgrProtobuf_proto protoreflect.FileDescriptor + +var file_sysboxMgrProtobuf_proto_rawDesc = []byte{ + 0x0a, 0x17, 0x73, 0x79, 0x73, 0x62, 0x6f, 0x78, 0x4d, 0x67, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x22, 0x59, 0x0a, 0x09, 0x49, 0x44, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0xd1, + 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x6e, 0x65, 0x74, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, + 0x65, 0x74, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x0b, 0x75, 0x69, 0x64, 0x4d, 0x61, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x44, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x0b, + 0x75, 0x69, 0x64, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x35, 0x0a, 0x0b, 0x67, + 0x69, 0x64, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x44, 0x4d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x67, 0x69, 0x64, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x73, 0x22, 0xd9, 0x05, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x44, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x44, + 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4f, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4f, 0x6b, + 0x12, 0x32, 0x0a, 0x14, 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4f, 0x6e, 0x4f, 0x76, 0x65, + 0x72, 0x6c, 0x61, 0x79, 0x66, 0x73, 0x4f, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, + 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, + 0x66, 0x73, 0x4f, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x44, 0x4d, 0x61, 0x70, 0x4d, 0x6f, 0x75, + 0x6e, 0x74, 0x4f, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x49, 0x44, 0x4d, 0x61, + 0x70, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x6b, 0x12, 0x38, 0x0a, 0x17, 0x4f, 0x76, 0x65, 0x72, + 0x6c, 0x61, 0x79, 0x66, 0x73, 0x4f, 0x6e, 0x49, 0x44, 0x4d, 0x61, 0x70, 0x4d, 0x6f, 0x75, 0x6e, + 0x74, 0x4f, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x4f, 0x76, 0x65, 0x72, 0x6c, + 0x61, 0x79, 0x66, 0x73, 0x4f, 0x6e, 0x49, 0x44, 0x4d, 0x61, 0x70, 0x4d, 0x6f, 0x75, 0x6e, 0x74, + 0x4f, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x6f, 0x52, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x43, 0x6c, + 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6e, 0x6f, 0x52, + 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x43, 0x6c, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x10, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x53, 0x79, 0x73, 0x66, 0x73, 0x43, 0x68, 0x6f, 0x77, 0x6e, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x53, 0x79, + 0x73, 0x66, 0x73, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x58, 0x61, 0x74, 0x74, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, + 0x64, 0x58, 0x61, 0x74, 0x74, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x43, + 0x61, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x6f, 0x6e, 0x6f, 0x72, + 0x43, 0x61, 0x70, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x63, 0x6f, 0x6e, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x63, 0x6f, + 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x35, + 0x0a, 0x0b, 0x75, 0x69, 0x64, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x44, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x75, 0x69, 0x64, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x35, 0x0a, 0x0b, 0x67, 0x69, 0x64, 0x4d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x44, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, + 0x0b, 0x67, 0x69, 0x64, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x11, + 0x66, 0x73, 0x75, 0x69, 0x64, 0x4d, 0x61, 0x70, 0x46, 0x61, 0x69, 0x6c, 0x4f, 0x6e, 0x45, 0x72, + 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x66, 0x73, 0x75, 0x69, 0x64, 0x4d, 0x61, + 0x70, 0x46, 0x61, 0x69, 0x6c, 0x4f, 0x6e, 0x45, 0x72, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x72, 0x6f, + 0x6f, 0x74, 0x66, 0x73, 0x55, 0x69, 0x64, 0x53, 0x68, 0x69, 0x66, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x55, 0x69, + 0x64, 0x53, 0x68, 0x69, 0x66, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x6f, + 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4f, 0x6e, 0x46, 0x75, 0x73, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6e, 0x6f, 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4f, 0x6e, + 0x46, 0x75, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, 0x52, + 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, + 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x53, + 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, + 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x22, 0xe7, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x65, 0x74, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x65, 0x74, 0x6e, 0x73, 0x12, + 0x35, 0x0a, 0x0b, 0x75, 0x69, 0x64, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x49, 0x44, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x75, 0x69, 0x64, 0x4d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x35, 0x0a, 0x0b, 0x67, 0x69, 0x64, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x44, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x52, 0x0b, 0x67, 0x69, 0x64, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2e, 0x0a, + 0x12, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x55, 0x69, 0x64, 0x53, 0x68, 0x69, 0x66, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x6f, 0x6f, 0x74, 0x66, + 0x73, 0x55, 0x69, 0x64, 0x53, 0x68, 0x69, 0x66, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x0c, 0x0a, + 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1f, 0x0a, 0x0d, 0x55, + 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x10, 0x0a, 0x0e, + 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x33, + 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x69, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x52, 0x65, 0x71, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, + 0x69, 0x7a, 0x65, 0x22, 0x34, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x69, 0x64, 0x41, 0x6c, 0x6c, 0x6f, + 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x67, 0x69, 0x64, 0x22, 0x45, 0x0a, 0x0d, 0x4d, 0x6f, 0x75, + 0x6e, 0x74, 0x50, 0x72, 0x65, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, + 0x22, 0x77, 0x0a, 0x0c, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x70, 0x52, 0x65, 0x71, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, + 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x67, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x70, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x08, 0x70, 0x72, 0x65, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x4d, 0x6f, 0x75, + 0x6e, 0x74, 0x50, 0x72, 0x65, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x36, 0x0a, 0x0c, 0x4d, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, + 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, + 0x73, 0x74, 0x22, 0x7c, 0x0a, 0x08, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e, + 0x0a, 0x12, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x55, 0x69, 0x64, 0x53, 0x68, 0x69, 0x66, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x6f, 0x6f, 0x74, + 0x66, 0x73, 0x55, 0x69, 0x64, 0x53, 0x68, 0x69, 0x66, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, + 0x0a, 0x07, 0x72, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x72, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, + 0x22, 0x59, 0x0a, 0x05, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x64, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x70, 0x74, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x70, 0x74, 0x22, 0x34, 0x0a, 0x09, 0x4d, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x22, 0x41, 0x0a, 0x0b, 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4d, 0x61, 0x72, 0x6b, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, + 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, + 0x6f, 0x6e, 0x6c, 0x79, 0x22, 0x5b, 0x0a, 0x0e, 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4d, + 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x66, + 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4d, + 0x61, 0x72, 0x6b, 0x52, 0x0c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4d, 0x61, 0x72, 0x6b, + 0x73, 0x22, 0x4c, 0x0a, 0x0f, 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4d, 0x61, 0x72, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4d, + 0x61, 0x72, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4d, 0x61, 0x72, + 0x6b, 0x52, 0x0c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x73, 0x22, + 0x34, 0x0a, 0x0a, 0x46, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x22, 0x57, 0x0a, 0x07, 0x46, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x64, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x74, 0x22, 0x3e, + 0x0a, 0x0b, 0x46, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, + 0x09, 0x66, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x09, 0x66, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x1a, + 0x0a, 0x08, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x0b, 0x0a, 0x09, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x1b, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x22, 0x0c, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x20, 0x0a, 0x0e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x66, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x0f, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x6f, 0x6f, + 0x74, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x66, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x22, + 0x62, 0x0a, 0x14, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x52, 0x6f, + 0x6f, 0x74, 0x66, 0x73, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x69, 0x64, 0x4f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x75, 0x69, 0x64, 0x4f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x69, 0x64, 0x4f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x69, 0x64, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x43, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2c, 0x0a, 0x1a, + 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, + 0x66, 0x73, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, + 0x76, 0x65, 0x72, 0x74, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x66, 0x73, + 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x32, 0x86, 0x07, 0x0a, 0x15, 0x73, 0x79, + 0x73, 0x62, 0x6f, 0x78, 0x4d, 0x67, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x3b, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, + 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x35, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x55, 0x6e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x18, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x53, 0x75, + 0x62, 0x69, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x12, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x52, 0x65, + 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x75, 0x62, + 0x69, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x3f, 0x0a, + 0x0a, 0x50, 0x72, 0x65, 0x70, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x70, + 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, + 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x36, + 0x0a, 0x09, 0x52, 0x65, 0x71, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x68, 0x69, + 0x66, 0x74, 0x66, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x68, 0x69, 0x66, 0x74, 0x66, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x52, + 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x68, + 0x69, 0x66, 0x74, 0x66, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, + 0x3b, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x46, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x05, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x35, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x13, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x43, 0x6c, + 0x6f, 0x6e, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x12, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x66, 0x73, + 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, + 0x6c, 0x6f, 0x6e, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, + 0x12, 0x56, 0x0a, 0x11, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x52, + 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, + 0x66, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, + 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x17, 0x52, 0x65, 0x76, 0x65, + 0x72, 0x74, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x43, 0x68, + 0x6f, 0x77, 0x6e, 0x12, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, + 0x65, 0x76, 0x65, 0x72, 0x74, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x66, + 0x73, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x43, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x00, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x3b, 0x73, 0x79, 0x73, 0x62, 0x6f, 0x78, 0x4d, + 0x67, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_sysboxMgrProtobuf_proto_rawDescOnce sync.Once + file_sysboxMgrProtobuf_proto_rawDescData = file_sysboxMgrProtobuf_proto_rawDesc +) + +func file_sysboxMgrProtobuf_proto_rawDescGZIP() []byte { + file_sysboxMgrProtobuf_proto_rawDescOnce.Do(func() { + file_sysboxMgrProtobuf_proto_rawDescData = protoimpl.X.CompressGZIP(file_sysboxMgrProtobuf_proto_rawDescData) + }) + return file_sysboxMgrProtobuf_proto_rawDescData +} + +var file_sysboxMgrProtobuf_proto_msgTypes = make([]protoimpl.MessageInfo, 33) +var file_sysboxMgrProtobuf_proto_goTypes = []interface{}{ + (*IDMapping)(nil), // 0: protobuf.IDMapping + (*RegisterReq)(nil), // 1: protobuf.RegisterReq + (*ContainerConfig)(nil), // 2: protobuf.ContainerConfig + (*RegisterResp)(nil), // 3: protobuf.RegisterResp + (*UpdateReq)(nil), // 4: protobuf.UpdateReq + (*UpdateResp)(nil), // 5: protobuf.UpdateResp + (*UnregisterReq)(nil), // 6: protobuf.UnregisterReq + (*UnregisterResp)(nil), // 7: protobuf.UnregisterResp + (*SubidAllocReq)(nil), // 8: protobuf.SubidAllocReq + (*SubidAllocResp)(nil), // 9: protobuf.SubidAllocResp + (*MountPrepInfo)(nil), // 10: protobuf.MountPrepInfo + (*MountPrepReq)(nil), // 11: protobuf.MountPrepReq + (*MountPrepResp)(nil), // 12: protobuf.MountPrepResp + (*MountReqInfo)(nil), // 13: protobuf.MountReqInfo + (*MountReq)(nil), // 14: protobuf.MountReq + (*Mount)(nil), // 15: protobuf.Mount + (*MountResp)(nil), // 16: protobuf.MountResp + (*ShiftfsMark)(nil), // 17: protobuf.ShiftfsMark + (*ShiftfsMarkReq)(nil), // 18: protobuf.ShiftfsMarkReq + (*ShiftfsMarkResp)(nil), // 19: protobuf.ShiftfsMarkResp + (*FsStateReq)(nil), // 20: protobuf.FsStateReq + (*FsEntry)(nil), // 21: protobuf.FsEntry + (*FsStateResp)(nil), // 22: protobuf.FsStateResp + (*PauseReq)(nil), // 23: protobuf.PauseReq + (*PauseResp)(nil), // 24: protobuf.PauseResp + (*ResumeReq)(nil), // 25: protobuf.ResumeReq + (*ResumeResp)(nil), // 26: protobuf.ResumeResp + (*CloneRootfsReq)(nil), // 27: protobuf.CloneRootfsReq + (*CloneRootfsResp)(nil), // 28: protobuf.CloneRootfsResp + (*ChownClonedRootfsReq)(nil), // 29: protobuf.ChownClonedRootfsReq + (*ChownClonedRootfsResp)(nil), // 30: protobuf.ChownClonedRootfsResp + (*RevertClonedRootfsChownReq)(nil), // 31: protobuf.RevertClonedRootfsChownReq + (*RevertClonedRootfsChownResp)(nil), // 32: protobuf.RevertClonedRootfsChownResp +} +var file_sysboxMgrProtobuf_proto_depIdxs = []int32{ + 0, // 0: protobuf.RegisterReq.uidMappings:type_name -> protobuf.IDMapping + 0, // 1: protobuf.RegisterReq.gidMappings:type_name -> protobuf.IDMapping + 0, // 2: protobuf.ContainerConfig.uidMappings:type_name -> protobuf.IDMapping + 0, // 3: protobuf.ContainerConfig.gidMappings:type_name -> protobuf.IDMapping + 2, // 4: protobuf.RegisterResp.containerConfig:type_name -> protobuf.ContainerConfig + 0, // 5: protobuf.UpdateReq.uidMappings:type_name -> protobuf.IDMapping + 0, // 6: protobuf.UpdateReq.gidMappings:type_name -> protobuf.IDMapping + 10, // 7: protobuf.MountPrepReq.prepList:type_name -> protobuf.MountPrepInfo + 13, // 8: protobuf.MountReq.reqList:type_name -> protobuf.MountReqInfo + 15, // 9: protobuf.MountResp.mounts:type_name -> protobuf.Mount + 17, // 10: protobuf.ShiftfsMarkReq.shiftfsMarks:type_name -> protobuf.ShiftfsMark + 17, // 11: protobuf.ShiftfsMarkResp.shiftfsMarks:type_name -> protobuf.ShiftfsMark + 21, // 12: protobuf.FsStateResp.fsEntries:type_name -> protobuf.FsEntry + 1, // 13: protobuf.sysboxMgrStateChannel.Register:input_type -> protobuf.RegisterReq + 4, // 14: protobuf.sysboxMgrStateChannel.Update:input_type -> protobuf.UpdateReq + 6, // 15: protobuf.sysboxMgrStateChannel.Unregister:input_type -> protobuf.UnregisterReq + 8, // 16: protobuf.sysboxMgrStateChannel.SubidAlloc:input_type -> protobuf.SubidAllocReq + 11, // 17: protobuf.sysboxMgrStateChannel.PrepMounts:input_type -> protobuf.MountPrepReq + 14, // 18: protobuf.sysboxMgrStateChannel.ReqMounts:input_type -> protobuf.MountReq + 18, // 19: protobuf.sysboxMgrStateChannel.ReqShiftfsMark:input_type -> protobuf.ShiftfsMarkReq + 20, // 20: protobuf.sysboxMgrStateChannel.ReqFsState:input_type -> protobuf.FsStateReq + 23, // 21: protobuf.sysboxMgrStateChannel.Pause:input_type -> protobuf.PauseReq + 25, // 22: protobuf.sysboxMgrStateChannel.Resume:input_type -> protobuf.ResumeReq + 27, // 23: protobuf.sysboxMgrStateChannel.ReqCloneRootfs:input_type -> protobuf.CloneRootfsReq + 29, // 24: protobuf.sysboxMgrStateChannel.ChownClonedRootfs:input_type -> protobuf.ChownClonedRootfsReq + 31, // 25: protobuf.sysboxMgrStateChannel.RevertClonedRootfsChown:input_type -> protobuf.RevertClonedRootfsChownReq + 3, // 26: protobuf.sysboxMgrStateChannel.Register:output_type -> protobuf.RegisterResp + 5, // 27: protobuf.sysboxMgrStateChannel.Update:output_type -> protobuf.UpdateResp + 7, // 28: protobuf.sysboxMgrStateChannel.Unregister:output_type -> protobuf.UnregisterResp + 9, // 29: protobuf.sysboxMgrStateChannel.SubidAlloc:output_type -> protobuf.SubidAllocResp + 12, // 30: protobuf.sysboxMgrStateChannel.PrepMounts:output_type -> protobuf.MountPrepResp + 16, // 31: protobuf.sysboxMgrStateChannel.ReqMounts:output_type -> protobuf.MountResp + 19, // 32: protobuf.sysboxMgrStateChannel.ReqShiftfsMark:output_type -> protobuf.ShiftfsMarkResp + 22, // 33: protobuf.sysboxMgrStateChannel.ReqFsState:output_type -> protobuf.FsStateResp + 24, // 34: protobuf.sysboxMgrStateChannel.Pause:output_type -> protobuf.PauseResp + 26, // 35: protobuf.sysboxMgrStateChannel.Resume:output_type -> protobuf.ResumeResp + 28, // 36: protobuf.sysboxMgrStateChannel.ReqCloneRootfs:output_type -> protobuf.CloneRootfsResp + 30, // 37: protobuf.sysboxMgrStateChannel.ChownClonedRootfs:output_type -> protobuf.ChownClonedRootfsResp + 32, // 38: protobuf.sysboxMgrStateChannel.RevertClonedRootfsChown:output_type -> protobuf.RevertClonedRootfsChownResp + 26, // [26:39] is the sub-list for method output_type + 13, // [13:26] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_sysboxMgrProtobuf_proto_init() } +func file_sysboxMgrProtobuf_proto_init() { + if File_sysboxMgrProtobuf_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_sysboxMgrProtobuf_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IDMapping); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContainerConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnregisterReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnregisterResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubidAllocReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubidAllocResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MountPrepInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MountPrepReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MountPrepResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MountReqInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MountReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Mount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MountResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShiftfsMark); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShiftfsMarkReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShiftfsMarkResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FsStateReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FsEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FsStateResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PauseReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PauseResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResumeReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResumeResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloneRootfsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloneRootfsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChownClonedRootfsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChownClonedRootfsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RevertClonedRootfsChownReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sysboxMgrProtobuf_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RevertClonedRootfsChownResp); 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_sysboxMgrProtobuf_proto_rawDesc, + NumEnums: 0, + NumMessages: 33, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_sysboxMgrProtobuf_proto_goTypes, + DependencyIndexes: file_sysboxMgrProtobuf_proto_depIdxs, + MessageInfos: file_sysboxMgrProtobuf_proto_msgTypes, + }.Build() + File_sysboxMgrProtobuf_proto = out.File + file_sysboxMgrProtobuf_proto_rawDesc = nil + file_sysboxMgrProtobuf_proto_goTypes = nil + file_sysboxMgrProtobuf_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// SysboxMgrStateChannelClient is the client API for SysboxMgrStateChannel service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type SysboxMgrStateChannelClient interface { + // Container registration + Register(ctx context.Context, in *RegisterReq, opts ...grpc.CallOption) (*RegisterResp, error) + // Container Update + Update(ctx context.Context, in *UpdateReq, opts ...grpc.CallOption) (*UpdateResp, error) + // Container Unregistration + Unregister(ctx context.Context, in *UnregisterReq, opts ...grpc.CallOption) (*UnregisterResp, error) + // Subuid(gid) allocation request + SubidAlloc(ctx context.Context, in *SubidAllocReq, opts ...grpc.CallOption) (*SubidAllocResp, error) + // Mount source prep request + PrepMounts(ctx context.Context, in *MountPrepReq, opts ...grpc.CallOption) (*MountPrepResp, error) + // Mount request + ReqMounts(ctx context.Context, in *MountReq, opts ...grpc.CallOption) (*MountResp, error) + // Shiftfs mark request + ReqShiftfsMark(ctx context.Context, in *ShiftfsMarkReq, opts ...grpc.CallOption) (*ShiftfsMarkResp, error) + // FsState request + ReqFsState(ctx context.Context, in *FsStateReq, opts ...grpc.CallOption) (*FsStateResp, error) + // Pause request + Pause(ctx context.Context, in *PauseReq, opts ...grpc.CallOption) (*PauseResp, error) + // Resume request + Resume(ctx context.Context, in *ResumeReq, opts ...grpc.CallOption) (*ResumeResp, error) + // Clone rootfs request + ReqCloneRootfs(ctx context.Context, in *CloneRootfsReq, opts ...grpc.CallOption) (*CloneRootfsResp, error) + // Chown cloned rootfs request + ChownClonedRootfs(ctx context.Context, in *ChownClonedRootfsReq, opts ...grpc.CallOption) (*ChownClonedRootfsResp, error) + // Revert cloned rootfs chown + RevertClonedRootfsChown(ctx context.Context, in *RevertClonedRootfsChownReq, opts ...grpc.CallOption) (*RevertClonedRootfsChownResp, error) +} + +type sysboxMgrStateChannelClient struct { + cc grpc.ClientConnInterface +} + +func NewSysboxMgrStateChannelClient(cc grpc.ClientConnInterface) SysboxMgrStateChannelClient { + return &sysboxMgrStateChannelClient{cc} +} + +func (c *sysboxMgrStateChannelClient) Register(ctx context.Context, in *RegisterReq, opts ...grpc.CallOption) (*RegisterResp, error) { + out := new(RegisterResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/Register", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) Update(ctx context.Context, in *UpdateReq, opts ...grpc.CallOption) (*UpdateResp, error) { + out := new(UpdateResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/Update", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) Unregister(ctx context.Context, in *UnregisterReq, opts ...grpc.CallOption) (*UnregisterResp, error) { + out := new(UnregisterResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/Unregister", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) SubidAlloc(ctx context.Context, in *SubidAllocReq, opts ...grpc.CallOption) (*SubidAllocResp, error) { + out := new(SubidAllocResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/SubidAlloc", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) PrepMounts(ctx context.Context, in *MountPrepReq, opts ...grpc.CallOption) (*MountPrepResp, error) { + out := new(MountPrepResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/PrepMounts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) ReqMounts(ctx context.Context, in *MountReq, opts ...grpc.CallOption) (*MountResp, error) { + out := new(MountResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/ReqMounts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) ReqShiftfsMark(ctx context.Context, in *ShiftfsMarkReq, opts ...grpc.CallOption) (*ShiftfsMarkResp, error) { + out := new(ShiftfsMarkResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/ReqShiftfsMark", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) ReqFsState(ctx context.Context, in *FsStateReq, opts ...grpc.CallOption) (*FsStateResp, error) { + out := new(FsStateResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/ReqFsState", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) Pause(ctx context.Context, in *PauseReq, opts ...grpc.CallOption) (*PauseResp, error) { + out := new(PauseResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/Pause", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) Resume(ctx context.Context, in *ResumeReq, opts ...grpc.CallOption) (*ResumeResp, error) { + out := new(ResumeResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/Resume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) ReqCloneRootfs(ctx context.Context, in *CloneRootfsReq, opts ...grpc.CallOption) (*CloneRootfsResp, error) { + out := new(CloneRootfsResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/ReqCloneRootfs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) ChownClonedRootfs(ctx context.Context, in *ChownClonedRootfsReq, opts ...grpc.CallOption) (*ChownClonedRootfsResp, error) { + out := new(ChownClonedRootfsResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/ChownClonedRootfs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sysboxMgrStateChannelClient) RevertClonedRootfsChown(ctx context.Context, in *RevertClonedRootfsChownReq, opts ...grpc.CallOption) (*RevertClonedRootfsChownResp, error) { + out := new(RevertClonedRootfsChownResp) + err := c.cc.Invoke(ctx, "/protobuf.sysboxMgrStateChannel/RevertClonedRootfsChown", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SysboxMgrStateChannelServer is the server API for SysboxMgrStateChannel service. +type SysboxMgrStateChannelServer interface { + // Container registration + Register(context.Context, *RegisterReq) (*RegisterResp, error) + // Container Update + Update(context.Context, *UpdateReq) (*UpdateResp, error) + // Container Unregistration + Unregister(context.Context, *UnregisterReq) (*UnregisterResp, error) + // Subuid(gid) allocation request + SubidAlloc(context.Context, *SubidAllocReq) (*SubidAllocResp, error) + // Mount source prep request + PrepMounts(context.Context, *MountPrepReq) (*MountPrepResp, error) + // Mount request + ReqMounts(context.Context, *MountReq) (*MountResp, error) + // Shiftfs mark request + ReqShiftfsMark(context.Context, *ShiftfsMarkReq) (*ShiftfsMarkResp, error) + // FsState request + ReqFsState(context.Context, *FsStateReq) (*FsStateResp, error) + // Pause request + Pause(context.Context, *PauseReq) (*PauseResp, error) + // Resume request + Resume(context.Context, *ResumeReq) (*ResumeResp, error) + // Clone rootfs request + ReqCloneRootfs(context.Context, *CloneRootfsReq) (*CloneRootfsResp, error) + // Chown cloned rootfs request + ChownClonedRootfs(context.Context, *ChownClonedRootfsReq) (*ChownClonedRootfsResp, error) + // Revert cloned rootfs chown + RevertClonedRootfsChown(context.Context, *RevertClonedRootfsChownReq) (*RevertClonedRootfsChownResp, error) +} + +// UnimplementedSysboxMgrStateChannelServer can be embedded to have forward compatible implementations. +type UnimplementedSysboxMgrStateChannelServer struct { +} + +func (*UnimplementedSysboxMgrStateChannelServer) Register(context.Context, *RegisterReq) (*RegisterResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Register not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) Update(context.Context, *UpdateReq) (*UpdateResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Update not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) Unregister(context.Context, *UnregisterReq) (*UnregisterResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Unregister not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) SubidAlloc(context.Context, *SubidAllocReq) (*SubidAllocResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SubidAlloc not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) PrepMounts(context.Context, *MountPrepReq) (*MountPrepResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method PrepMounts not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) ReqMounts(context.Context, *MountReq) (*MountResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReqMounts not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) ReqShiftfsMark(context.Context, *ShiftfsMarkReq) (*ShiftfsMarkResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReqShiftfsMark not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) ReqFsState(context.Context, *FsStateReq) (*FsStateResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReqFsState not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) Pause(context.Context, *PauseReq) (*PauseResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Pause not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) Resume(context.Context, *ResumeReq) (*ResumeResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Resume not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) ReqCloneRootfs(context.Context, *CloneRootfsReq) (*CloneRootfsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReqCloneRootfs not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) ChownClonedRootfs(context.Context, *ChownClonedRootfsReq) (*ChownClonedRootfsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ChownClonedRootfs not implemented") +} +func (*UnimplementedSysboxMgrStateChannelServer) RevertClonedRootfsChown(context.Context, *RevertClonedRootfsChownReq) (*RevertClonedRootfsChownResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RevertClonedRootfsChown not implemented") +} + +func RegisterSysboxMgrStateChannelServer(s *grpc.Server, srv SysboxMgrStateChannelServer) { + s.RegisterService(&_SysboxMgrStateChannel_serviceDesc, srv) +} + +func _SysboxMgrStateChannel_Register_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).Register(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/Register", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).Register(ctx, req.(*RegisterReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_Update_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).Update(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/Update", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).Update(ctx, req.(*UpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_Unregister_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UnregisterReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).Unregister(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/Unregister", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).Unregister(ctx, req.(*UnregisterReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_SubidAlloc_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SubidAllocReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).SubidAlloc(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/SubidAlloc", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).SubidAlloc(ctx, req.(*SubidAllocReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_PrepMounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MountPrepReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).PrepMounts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/PrepMounts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).PrepMounts(ctx, req.(*MountPrepReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_ReqMounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MountReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).ReqMounts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/ReqMounts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).ReqMounts(ctx, req.(*MountReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_ReqShiftfsMark_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ShiftfsMarkReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).ReqShiftfsMark(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/ReqShiftfsMark", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).ReqShiftfsMark(ctx, req.(*ShiftfsMarkReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_ReqFsState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FsStateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).ReqFsState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/ReqFsState", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).ReqFsState(ctx, req.(*FsStateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_Pause_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PauseReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).Pause(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/Pause", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).Pause(ctx, req.(*PauseReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_Resume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResumeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).Resume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/Resume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).Resume(ctx, req.(*ResumeReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_ReqCloneRootfs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CloneRootfsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).ReqCloneRootfs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/ReqCloneRootfs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).ReqCloneRootfs(ctx, req.(*CloneRootfsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_ChownClonedRootfs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ChownClonedRootfsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).ChownClonedRootfs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/ChownClonedRootfs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).ChownClonedRootfs(ctx, req.(*ChownClonedRootfsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _SysboxMgrStateChannel_RevertClonedRootfsChown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RevertClonedRootfsChownReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SysboxMgrStateChannelServer).RevertClonedRootfsChown(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/protobuf.sysboxMgrStateChannel/RevertClonedRootfsChown", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SysboxMgrStateChannelServer).RevertClonedRootfsChown(ctx, req.(*RevertClonedRootfsChownReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _SysboxMgrStateChannel_serviceDesc = grpc.ServiceDesc{ + ServiceName: "protobuf.sysboxMgrStateChannel", + HandlerType: (*SysboxMgrStateChannelServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Register", + Handler: _SysboxMgrStateChannel_Register_Handler, + }, + { + MethodName: "Update", + Handler: _SysboxMgrStateChannel_Update_Handler, + }, + { + MethodName: "Unregister", + Handler: _SysboxMgrStateChannel_Unregister_Handler, + }, + { + MethodName: "SubidAlloc", + Handler: _SysboxMgrStateChannel_SubidAlloc_Handler, + }, + { + MethodName: "PrepMounts", + Handler: _SysboxMgrStateChannel_PrepMounts_Handler, + }, + { + MethodName: "ReqMounts", + Handler: _SysboxMgrStateChannel_ReqMounts_Handler, + }, + { + MethodName: "ReqShiftfsMark", + Handler: _SysboxMgrStateChannel_ReqShiftfsMark_Handler, + }, + { + MethodName: "ReqFsState", + Handler: _SysboxMgrStateChannel_ReqFsState_Handler, + }, + { + MethodName: "Pause", + Handler: _SysboxMgrStateChannel_Pause_Handler, + }, + { + MethodName: "Resume", + Handler: _SysboxMgrStateChannel_Resume_Handler, + }, + { + MethodName: "ReqCloneRootfs", + Handler: _SysboxMgrStateChannel_ReqCloneRootfs_Handler, + }, + { + MethodName: "ChownClonedRootfs", + Handler: _SysboxMgrStateChannel_ChownClonedRootfs_Handler, + }, + { + MethodName: "RevertClonedRootfsChown", + Handler: _SysboxMgrStateChannel_RevertClonedRootfsChown_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "sysboxMgrProtobuf.proto", +} diff --git a/meta-dstack/recipes-core/images/dstack-rootfs-base.inc b/meta-dstack/recipes-core/images/dstack-rootfs-base.inc index 99ca19e..8998252 100644 --- a/meta-dstack/recipes-core/images/dstack-rootfs-base.inc +++ b/meta-dstack/recipes-core/images/dstack-rootfs-base.inc @@ -20,6 +20,7 @@ IMAGE_INSTALL = "\ chrony \ chronyc \ dstack-zfs \ + dstack-sysbox \ kernel-module-tun \ kernel-module-fuse \ kernel-module-br-netfilter \ diff --git a/meta-dstack/recipes-core/images/files/docker-daemon-nvidia.json b/meta-dstack/recipes-core/images/files/docker-daemon-nvidia.json index 7ed24bd..a235187 100644 --- a/meta-dstack/recipes-core/images/files/docker-daemon-nvidia.json +++ b/meta-dstack/recipes-core/images/files/docker-daemon-nvidia.json @@ -8,6 +8,9 @@ "nvidia": { "args": [], "path": "nvidia-container-runtime" + }, + "sysbox-runc": { + "path": "/usr/bin/sysbox-runc" } } } diff --git a/meta-dstack/recipes-core/images/files/docker-daemon.json b/meta-dstack/recipes-core/images/files/docker-daemon.json index 4d6c550..c4db4d4 100644 --- a/meta-dstack/recipes-core/images/files/docker-daemon.json +++ b/meta-dstack/recipes-core/images/files/docker-daemon.json @@ -3,5 +3,10 @@ "log-opts": { "max-size": "100m", "max-file": "10" + }, + "runtimes": { + "sysbox-runc": { + "path": "/usr/bin/sysbox-runc" + } } } diff --git a/meta-dstack/recipes-kernel/linux/files/dstack-sysbox.cfg b/meta-dstack/recipes-kernel/linux/files/dstack-sysbox.cfg new file mode 100644 index 0000000..5b4b8ab --- /dev/null +++ b/meta-dstack/recipes-kernel/linux/files/dstack-sysbox.cfg @@ -0,0 +1,2 @@ +CONFIG_USER_NS=y +CONFIG_CONFIGFS_FS=y diff --git a/meta-dstack/recipes-kernel/linux/files/dstack-sysbox.scc b/meta-dstack/recipes-kernel/linux/files/dstack-sysbox.scc new file mode 100644 index 0000000..3c3a825 --- /dev/null +++ b/meta-dstack/recipes-kernel/linux/files/dstack-sysbox.scc @@ -0,0 +1,3 @@ +define KFEATURE_DESCRIPTION "DStack Sysbox runtime configuration" + +kconf non-hardware dstack-sysbox.cfg diff --git a/meta-dstack/recipes-kernel/linux/linux-yocto%.bbappend b/meta-dstack/recipes-kernel/linux/linux-yocto%.bbappend index 22f4e13..5900c49 100644 --- a/meta-dstack/recipes-kernel/linux/linux-yocto%.bbappend +++ b/meta-dstack/recipes-kernel/linux/linux-yocto%.bbappend @@ -6,6 +6,8 @@ SRC_URI += "file://dstack-docker.cfg \ file://dstack-docker.scc \ file://dstack-tdx.cfg \ file://dstack-tdx.scc \ + file://dstack-sysbox.cfg \ + file://dstack-sysbox.scc \ file://dstack.cfg \ file://dstack.scc" @@ -16,6 +18,7 @@ KERNEL_FEATURES:append = " features/cgroups/cgroups.scc \ features/xfs/xfs.scc \ cfg/fs/squashfs.scc \ dstack-docker.scc \ + dstack-sysbox.scc \ dstack.scc" KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "dm-verity", " features/device-mapper/dm-verity.scc", "" ,d)}" From 963789befb4ff72f2ce1feb85f9d39013a40b918 Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Sun, 8 Feb 2026 03:14:31 +0000 Subject: [PATCH 2/7] fix(sysbox): adapt services for dm-verity read-only rootfs - Remove --log file paths (rootfs is read-only), output to journal+console - Add rsync and fuse to RDEPENDS (required by sysbox-mgr and sysbox-fs) - Pre-create /etc/subuid and /etc/subgid entries via pkg_postinst - Add After=dstack-prepare.service so sysbox starts after /etc overlay - Bind-mount sysbox data dir to persistent storage (overlayfs not allowed) --- .../recipes-core/dstack-sysbox/dstack-sysbox_0.6.7.bb | 11 ++++++++++- .../dstack-sysbox/files/sysbox-fs.service | 4 +++- .../dstack-sysbox/files/sysbox-mgr.service | 6 +++++- .../recipes-core/dstack-sysbox/files/sysbox.service | 3 ++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/meta-dstack/recipes-core/dstack-sysbox/dstack-sysbox_0.6.7.bb b/meta-dstack/recipes-core/dstack-sysbox/dstack-sysbox_0.6.7.bb index a8dddd0..9415bd2 100644 --- a/meta-dstack/recipes-core/dstack-sysbox/dstack-sysbox_0.6.7.bb +++ b/meta-dstack/recipes-core/dstack-sysbox/dstack-sysbox_0.6.7.bb @@ -42,7 +42,7 @@ S = "${UNPACKDIR}/sysbox" PV = "${SYSBOX_VERSION}+git${SRCPV}" DEPENDS += "libseccomp" -RDEPENDS:${PN} += "libseccomp" +RDEPENDS:${PN} += "libseccomp rsync fuse" inherit go goarch pkgconfig systemd @@ -167,6 +167,15 @@ FILES:${PN} += " \ /var/lib/sysbox \ " +# Pre-create subuid/subgid entries for sysbox user namespace mappings. +# sysbox-mgr tries to write these at startup, but rootfs is read-only (dm-verity). +# If the correct entry already exists, sysbox-mgr skips the write. +# This runs at rootfs creation time (not first boot). +pkg_postinst:${PN}() { + echo "sysbox:100000:65536" >> $D${sysconfdir}/subuid + echo "sysbox:100000:65536" >> $D${sysconfdir}/subgid +} + INSANE_SKIP:${PN} += "ldflags already-stripped" COMPATIBLE_HOST = "x86_64.*-linux" diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-fs.service b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-fs.service index 3ce213b..606f904 100644 --- a/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-fs.service +++ b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-fs.service @@ -5,7 +5,7 @@ After=sysbox-mgr.service [Service] Type=notify -ExecStart=/usr/bin/sysbox-fs --log /var/log/sysbox-fs.log +ExecStart=/usr/bin/sysbox-fs TimeoutStartSec=10 TimeoutStopSec=10 StartLimitInterval=0 @@ -13,6 +13,8 @@ NotifyAccess=main OOMScoreAdjust=-500 LimitNOFILE=infinity LimitNPROC=infinity +StandardOutput=journal+console +StandardError=journal+console [Install] WantedBy=sysbox.service diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service index 11dbd12..1d1288b 100644 --- a/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service +++ b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service @@ -1,10 +1,12 @@ [Unit] Description=sysbox-mgr (part of the Sysbox container runtime) PartOf=sysbox.service +After=dstack-prepare.service [Service] Type=notify -ExecStart=/usr/bin/sysbox-mgr --log /var/log/sysbox-mgr.log +ExecStartPre=/bin/sh -c "mkdir -p /var/volatile/dstack/persistent/sysbox /var/lib/sysbox && mount --bind /var/volatile/dstack/persistent/sysbox /var/lib/sysbox" +ExecStart=/usr/bin/sysbox-mgr --data-root /var/lib/sysbox TimeoutStartSec=45 TimeoutStopSec=90 StartLimitInterval=0 @@ -12,6 +14,8 @@ NotifyAccess=main OOMScoreAdjust=-500 LimitNOFILE=infinity LimitNPROC=infinity +StandardOutput=journal+console +StandardError=journal+console [Install] WantedBy=sysbox.service diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/sysbox.service b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox.service index 55e15a5..d6605f3 100644 --- a/meta-dstack/recipes-core/dstack-sysbox/files/sysbox.service +++ b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox.service @@ -1,8 +1,9 @@ [Unit] Description=Sysbox container runtime Documentation=https://github.com/nestybox/sysbox +Wants=dstack-prepare.service +After=dstack-prepare.service sysbox-mgr.service sysbox-fs.service BindsTo=sysbox-mgr.service sysbox-fs.service -After=sysbox-mgr.service sysbox-fs.service Before=docker.service containerd.service [Service] From 78d8314cb585be14c37ad47893df3d67be470ddf Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Sun, 8 Feb 2026 14:36:33 +0000 Subject: [PATCH 3/7] docs(sysbox): add comments explaining sysctl values --- .../dstack-sysbox/files/99-sysbox-sysctl.conf | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/99-sysbox-sysctl.conf b/meta-dstack/recipes-core/dstack-sysbox/files/99-sysbox-sysctl.conf index 96c18ee..17cccab 100644 --- a/meta-dstack/recipes-core/dstack-sysbox/files/99-sysbox-sysctl.conf +++ b/meta-dstack/recipes-core/dstack-sysbox/files/99-sysbox-sysctl.conf @@ -1,7 +1,19 @@ +# Sysbox recommended sysctl settings +# See: https://github.com/nestybox/sysbox/blob/master/docs/user-guide/install-package.md + +# Allow unprivileged users to create user namespaces (required for rootless containers) kernel.unprivileged_userns_clone = 1 + +# Raise inotify limits — each sysbox container runs its own init system (e.g. systemd) +# which uses inotify heavily; defaults (8192/128) exhaust quickly with multiple containers fs.inotify.max_queued_events = 1048576 fs.inotify.max_user_watches = 1048576 fs.inotify.max_user_instances = 1048576 + +# Raise kernel keyring limits — each user namespace consumes kernel keys for UID/GID mappings kernel.keys.maxkeys = 20000 kernel.keys.maxbytes = 1400000 + +# Raise max PID — sysbox containers share the host PID space; default 32768 exhausts +# quickly with many containers each running their own process trees kernel.pid_max = 4194304 From 69bb46e7f2a61fd03f2ef0b1d63b3c2976459332 Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Sun, 8 Feb 2026 14:42:33 +0000 Subject: [PATCH 4/7] refactor: move sysbox bind-mount from service into dstack-prepare Move the sysbox persistent storage bind-mount from sysbox-mgr.service ExecStartPre into dstack-prepare.sh, alongside docker and containerd mounts. This keeps all container runtime storage mounts in one place. --- meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service | 1 - 1 file changed, 1 deletion(-) diff --git a/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service index 1d1288b..659c433 100644 --- a/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service +++ b/meta-dstack/recipes-core/dstack-sysbox/files/sysbox-mgr.service @@ -5,7 +5,6 @@ After=dstack-prepare.service [Service] Type=notify -ExecStartPre=/bin/sh -c "mkdir -p /var/volatile/dstack/persistent/sysbox /var/lib/sysbox && mount --bind /var/volatile/dstack/persistent/sysbox /var/lib/sysbox" ExecStart=/usr/bin/sysbox-mgr --data-root /var/lib/sysbox TimeoutStartSec=45 TimeoutStopSec=90 From ea244e2dff91d79859d270086012e2140a5548ba Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Sun, 8 Feb 2026 14:47:20 +0000 Subject: [PATCH 5/7] refactor: move sysbox bind-mount from service into dstack-prepare Update dstack submodule to include sysbox persistent storage mount in dstack-prepare.sh alongside docker and containerd mounts. --- dstack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dstack b/dstack index 17c23e2..e971a27 160000 --- a/dstack +++ b/dstack @@ -1 +1 @@ -Subproject commit 17c23e2b6bfa3ffcdd929b7aad9095930b906d32 +Subproject commit e971a27efc15b89a68d5ad0bb057eacc5ffcf401 From 1e20cc0cdb117f4616028ae09dede5af6f6142c2 Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Sun, 8 Feb 2026 14:52:36 +0000 Subject: [PATCH 6/7] refactor: move sysbox bind-mount from service into dstack-prepare Update dstack submodule to include sysbox persistent storage mount in dstack-prepare.sh alongside docker and containerd mounts. --- dstack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dstack b/dstack index e971a27..b336092 160000 --- a/dstack +++ b/dstack @@ -1 +1 @@ -Subproject commit e971a27efc15b89a68d5ad0bb057eacc5ffcf401 +Subproject commit b336092d583e5749fc0b8e0376dd016a8d88615a From 3aba6f8fcd530e1a97ae74e10fa79eed2b428d08 Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Tue, 10 Feb 2026 02:18:56 +0000 Subject: [PATCH 7/7] Update dstack/ submodule --- dstack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dstack b/dstack index b336092..489136f 160000 --- a/dstack +++ b/dstack @@ -1 +1 @@ -Subproject commit b336092d583e5749fc0b8e0376dd016a8d88615a +Subproject commit 489136f8f8b1c1e5af3e7ca38e880bd0dd5079cf