diff --git a/Makefile b/Makefile index fa01aa8ca0..6889858c24 100644 --- a/Makefile +++ b/Makefile @@ -131,6 +131,7 @@ DEFENABLEDEBUG := false DEFDISABLENESTINGCHECKS := false DEFMSIZE9P := 8192 DEFHOTPLUGVFIOONROOTBUS := false +DEFGUESTHOOKPATH := SED = sed @@ -204,6 +205,7 @@ USER_VARS += DEFENABLEDEBUG USER_VARS += DEFDISABLENESTINGCHECKS USER_VARS += DEFMSIZE9P USER_VARS += DEFHOTPLUGVFIOONROOTBUS +USER_VARS += DEFGUESTHOOKPATH V = @ Q = $(V:1=) @@ -299,6 +301,7 @@ const defaultEnableDebug bool = $(DEFENABLEDEBUG) const defaultDisableNestingChecks bool = $(DEFDISABLENESTINGCHECKS) const defaultMsize9p uint32 = $(DEFMSIZE9P) const defaultHotplugVFIOOnRootBus bool = $(DEFHOTPLUGVFIOONROOTBUS) +const defaultGuestHookPath string = "$(DEFGUESTHOOKPATH)" // Default config file used by stateless systems. var defaultRuntimeConfiguration = "$(CONFIG_PATH)" @@ -386,6 +389,7 @@ $(GENERATED_FILES): %: %.in Makefile VERSION -e "s|@DEFDISABLENESTINGCHECKS@|$(DEFDISABLENESTINGCHECKS)|g" \ -e "s|@DEFMSIZE9P@|$(DEFMSIZE9P)|g" \ -e "s|@DEFHOTPLUGONROOTBUS@|$(DEFHOTPLUGVFIOONROOTBUS)|g" \ + -e "s|@DEFGUESTHOOKPATH@|$(DEFGUESTHOOKPATH)|g" \ $< > $@ generate-config: $(CONFIG) diff --git a/cli/config.go b/cli/config.go index ae4432c9dd..d1678a9b00 100644 --- a/cli/config.go +++ b/cli/config.go @@ -94,6 +94,7 @@ type hypervisor struct { EnableIOThreads bool `toml:"enable_iothreads"` UseVSock bool `toml:"use_vsock"` HotplugVFIOOnRootBus bool `toml:"hotplug_vfio_on_root_bus"` + GuestHookPath string `toml:"guest_hook_path"` } type proxy struct { @@ -275,6 +276,13 @@ func (h hypervisor) useVSock() bool { return h.UseVSock } +func (h hypervisor) guestHookPath() string { + if h.GuestHookPath == "" { + return defaultGuestHookPath + } + return h.GuestHookPath +} + func (p proxy) path() string { if p.Path == "" { return defaultProxyPath @@ -375,6 +383,7 @@ func newQemuHypervisorConfig(h hypervisor) (vc.HypervisorConfig, error) { Msize9p: h.msize9p(), UseVSock: useVSock, HotplugVFIOOnRootBus: h.HotplugVFIOOnRootBus, + GuestHookPath: h.guestHookPath(), }, nil } @@ -490,6 +499,7 @@ func loadConfiguration(configPath string, ignoreLogging bool) (resolvedConfigPat EnableIOThreads: defaultEnableIOThreads, Msize9p: defaultMsize9p, HotplugVFIOOnRootBus: defaultHotplugVFIOOnRootBus, + GuestHookPath: defaultGuestHookPath, } err = config.InterNetworkModel.SetModel(defaultInterNetworkingModel) diff --git a/cli/config/configuration.toml.in b/cli/config/configuration.toml.in index c93bc82597..1dc3177ca2 100644 --- a/cli/config/configuration.toml.in +++ b/cli/config/configuration.toml.in @@ -147,6 +147,11 @@ enable_iothreads = @DEFENABLEIOTHREADS@ # Default false #hotplug_vfio_on_root_bus = true +# If set to an absolute path within the guest rootfs, the agent +# will search this directory for OCI hooks and add them to the guest +# container's lifecycle. +#guest_hook_path = "@DEFGUESTHOOKPATH@" + [factory] # VM templating support. Once enabled, new VMs are created from template # using vm cloning. They will share the same initial kernel, initramfs and diff --git a/cli/config_test.go b/cli/config_test.go index 4b3a6ef4fb..e96aabe604 100644 --- a/cli/config_test.go +++ b/cli/config_test.go @@ -52,6 +52,7 @@ func makeRuntimeConfigFileData(hypervisor, hypervisorPath, kernelPath, imagePath enable_iothreads = ` + strconv.FormatBool(enableIOThreads) + ` hotplug_vfio_on_root_bus = ` + strconv.FormatBool(hotplugVFIOOnRootBus) + ` msize_9p = ` + strconv.FormatUint(uint64(defaultMsize9p), 10) + ` + guest_hook_path = "` + defaultGuestHookPath + `" [proxy.kata] path = "` + proxyPath + `" @@ -143,6 +144,7 @@ func createAllRuntimeConfigFiles(dir, hypervisor string) (config testRuntimeConf EnableIOThreads: enableIOThreads, HotplugVFIOOnRootBus: hotplugVFIOOnRootBus, Msize9p: defaultMsize9p, + GuestHookPath: defaultGuestHookPath, } agentConfig := vc.KataAgentConfig{} @@ -562,6 +564,7 @@ func TestMinimalRuntimeConfig(t *testing.T) { Mlock: !defaultEnableSwap, BlockDeviceDriver: defaultBlockDeviceDriver, Msize9p: defaultMsize9p, + GuestHookPath: defaultGuestHookPath, } expectedAgentConfig := vc.KataAgentConfig{} @@ -1035,6 +1038,21 @@ func TestHypervisorDefaultsImage(t *testing.T) { assert.Equal(p, "") } +func TestHypervisorDefaultsGuestHookPath(t *testing.T) { + assert := assert.New(t) + + h := hypervisor{} + guestHookPath := h.guestHookPath() + assert.Equal(guestHookPath, defaultGuestHookPath, "default guest hook path wrong") + + testGuestHookPath := "/test/guest/hook/path" + h = hypervisor{ + GuestHookPath: testGuestHookPath, + } + guestHookPath = h.guestHookPath() + assert.Equal(guestHookPath, testGuestHookPath, "custom guest hook path wrong") +} + func TestProxyDefaults(t *testing.T) { p := proxy{} diff --git a/vendor/github.com/kata-containers/agent/protocols/grpc/agent.pb.go b/vendor/github.com/kata-containers/agent/protocols/grpc/agent.pb.go index 07164f1360..6ca4ce5939 100644 --- a/vendor/github.com/kata-containers/agent/protocols/grpc/agent.pb.go +++ b/vendor/github.com/kata-containers/agent/protocols/grpc/agent.pb.go @@ -55,6 +55,8 @@ ListRoutesRequest OnlineCPUMemRequest ReseedRandomDevRequest + GuestDetailsRequest + GuestDetailsResponse Storage Device StringUser @@ -1084,7 +1086,8 @@ type CreateSandboxRequest struct { // SandboxId identifies which sandbox is using the agent. We allow only // one sandbox per agent and implicitly require that CreateSandbox is // called before other sandbox/network calls. - SandboxId string `protobuf:"bytes,5,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"` + SandboxId string `protobuf:"bytes,5,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"` + GuestHookPath string `protobuf:"bytes,6,opt,name=guest_hook_path,json=guestHookPath,proto3" json:"guest_hook_path,omitempty"` } func (m *CreateSandboxRequest) Reset() { *m = CreateSandboxRequest{} } @@ -1127,6 +1130,13 @@ func (m *CreateSandboxRequest) GetSandboxId() string { return "" } +func (m *CreateSandboxRequest) GetGuestHookPath() string { + if m != nil { + return m.GuestHookPath + } + return "" +} + type DestroySandboxRequest struct { } @@ -1173,6 +1183,10 @@ type Interface struct { IPAddresses []*IPAddress `protobuf:"bytes,3,rep,name=IPAddresses" json:"IPAddresses,omitempty"` Mtu uint64 `protobuf:"varint,4,opt,name=mtu,proto3" json:"mtu,omitempty"` HwAddr string `protobuf:"bytes,5,opt,name=hwAddr,proto3" json:"hwAddr,omitempty"` + // pciAddr is the PCI address in the format "bridgeAddr/deviceAddr". + // Here, bridgeAddr is the address at which the bridge is attached on the root bus, + // while deviceAddr is the address at which the network device is attached on the bridge. + PciAddr string `protobuf:"bytes,6,opt,name=pciAddr,proto3" json:"pciAddr,omitempty"` } func (m *Interface) Reset() { *m = Interface{} } @@ -1215,6 +1229,13 @@ func (m *Interface) GetHwAddr() string { return "" } +func (m *Interface) GetPciAddr() string { + if m != nil { + return m.PciAddr + } + return "" +} + type Interfaces struct { Interfaces []*Interface `protobuf:"bytes,1,rep,name=Interfaces" json:"Interfaces,omitempty"` } @@ -1382,6 +1403,8 @@ type OnlineCPUMemRequest struct { Wait bool `protobuf:"varint,1,opt,name=wait,proto3" json:"wait,omitempty"` // NbCpus specifies the number of CPUs that were added and the agent has to online. NbCpus uint32 `protobuf:"varint,2,opt,name=nb_cpus,json=nbCpus,proto3" json:"nb_cpus,omitempty"` + // CpuOnly specifies whether only online CPU or not. + CpuOnly bool `protobuf:"varint,3,opt,name=cpu_only,json=cpuOnly,proto3" json:"cpu_only,omitempty"` } func (m *OnlineCPUMemRequest) Reset() { *m = OnlineCPUMemRequest{} } @@ -1403,6 +1426,13 @@ func (m *OnlineCPUMemRequest) GetNbCpus() uint32 { return 0 } +func (m *OnlineCPUMemRequest) GetCpuOnly() bool { + if m != nil { + return m.CpuOnly + } + return false +} + type ReseedRandomDevRequest struct { // Data specifies the random data used to reseed the guest crng. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` @@ -1420,6 +1450,42 @@ func (m *ReseedRandomDevRequest) GetData() []byte { return nil } +type GuestDetailsRequest struct { + // MemBlockSize asks server to return the system memory block size that can be used + // for memory hotplug alignment. Typically the server returns what's in + // /sys/devices/system/memory/block_size_bytes. + MemBlockSize bool `protobuf:"varint,1,opt,name=mem_block_size,json=memBlockSize,proto3" json:"mem_block_size,omitempty"` +} + +func (m *GuestDetailsRequest) Reset() { *m = GuestDetailsRequest{} } +func (m *GuestDetailsRequest) String() string { return proto.CompactTextString(m) } +func (*GuestDetailsRequest) ProtoMessage() {} +func (*GuestDetailsRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{45} } + +func (m *GuestDetailsRequest) GetMemBlockSize() bool { + if m != nil { + return m.MemBlockSize + } + return false +} + +type GuestDetailsResponse struct { + // MemBlockSizeBytes returns the system memory block size in bytes. + MemBlockSizeBytes uint64 `protobuf:"varint,1,opt,name=mem_block_size_bytes,json=memBlockSizeBytes,proto3" json:"mem_block_size_bytes,omitempty"` +} + +func (m *GuestDetailsResponse) Reset() { *m = GuestDetailsResponse{} } +func (m *GuestDetailsResponse) String() string { return proto.CompactTextString(m) } +func (*GuestDetailsResponse) ProtoMessage() {} +func (*GuestDetailsResponse) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{46} } + +func (m *GuestDetailsResponse) GetMemBlockSizeBytes() uint64 { + if m != nil { + return m.MemBlockSizeBytes + } + return 0 +} + // Storage represents both the rootfs of the container, and any volume that // could have been defined through the Mount list of the OCI specification. type Storage struct { @@ -1453,7 +1519,7 @@ type Storage struct { func (m *Storage) Reset() { *m = Storage{} } func (m *Storage) String() string { return proto.CompactTextString(m) } func (*Storage) ProtoMessage() {} -func (*Storage) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{45} } +func (*Storage) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{47} } func (m *Storage) GetDriver() string { if m != nil { @@ -1536,7 +1602,7 @@ type Device struct { func (m *Device) Reset() { *m = Device{} } func (m *Device) String() string { return proto.CompactTextString(m) } func (*Device) ProtoMessage() {} -func (*Device) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{46} } +func (*Device) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{48} } func (m *Device) GetId() string { if m != nil { @@ -1582,7 +1648,7 @@ type StringUser struct { func (m *StringUser) Reset() { *m = StringUser{} } func (m *StringUser) String() string { return proto.CompactTextString(m) } func (*StringUser) ProtoMessage() {} -func (*StringUser) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{47} } +func (*StringUser) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{49} } func (m *StringUser) GetUid() string { if m != nil { @@ -1651,6 +1717,8 @@ func init() { proto.RegisterType((*ListRoutesRequest)(nil), "grpc.ListRoutesRequest") proto.RegisterType((*OnlineCPUMemRequest)(nil), "grpc.OnlineCPUMemRequest") proto.RegisterType((*ReseedRandomDevRequest)(nil), "grpc.ReseedRandomDevRequest") + proto.RegisterType((*GuestDetailsRequest)(nil), "grpc.GuestDetailsRequest") + proto.RegisterType((*GuestDetailsResponse)(nil), "grpc.GuestDetailsResponse") proto.RegisterType((*Storage)(nil), "grpc.Storage") proto.RegisterType((*Device)(nil), "grpc.Device") proto.RegisterType((*StringUser)(nil), "grpc.StringUser") @@ -1704,6 +1772,7 @@ type AgentServiceClient interface { DestroySandbox(ctx context.Context, in *DestroySandboxRequest, opts ...grpc1.CallOption) (*google_protobuf2.Empty, error) OnlineCPUMem(ctx context.Context, in *OnlineCPUMemRequest, opts ...grpc1.CallOption) (*google_protobuf2.Empty, error) ReseedRandomDev(ctx context.Context, in *ReseedRandomDevRequest, opts ...grpc1.CallOption) (*google_protobuf2.Empty, error) + GetGuestDetails(ctx context.Context, in *GuestDetailsRequest, opts ...grpc1.CallOption) (*GuestDetailsResponse, error) } type agentServiceClient struct { @@ -1948,6 +2017,15 @@ func (c *agentServiceClient) ReseedRandomDev(ctx context.Context, in *ReseedRand return out, nil } +func (c *agentServiceClient) GetGuestDetails(ctx context.Context, in *GuestDetailsRequest, opts ...grpc1.CallOption) (*GuestDetailsResponse, error) { + out := new(GuestDetailsResponse) + err := grpc1.Invoke(ctx, "/grpc.AgentService/GetGuestDetails", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for AgentService service type AgentServiceServer interface { @@ -1987,6 +2065,7 @@ type AgentServiceServer interface { DestroySandbox(context.Context, *DestroySandboxRequest) (*google_protobuf2.Empty, error) OnlineCPUMem(context.Context, *OnlineCPUMemRequest) (*google_protobuf2.Empty, error) ReseedRandomDev(context.Context, *ReseedRandomDevRequest) (*google_protobuf2.Empty, error) + GetGuestDetails(context.Context, *GuestDetailsRequest) (*GuestDetailsResponse, error) } func RegisterAgentServiceServer(s *grpc1.Server, srv AgentServiceServer) { @@ -2461,6 +2540,24 @@ func _AgentService_ReseedRandomDev_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _AgentService_GetGuestDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc1.UnaryServerInterceptor) (interface{}, error) { + in := new(GuestDetailsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AgentServiceServer).GetGuestDetails(ctx, in) + } + info := &grpc1.UnaryServerInfo{ + Server: srv, + FullMethod: "/grpc.AgentService/GetGuestDetails", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AgentServiceServer).GetGuestDetails(ctx, req.(*GuestDetailsRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _AgentService_serviceDesc = grpc1.ServiceDesc{ ServiceName: "grpc.AgentService", HandlerType: (*AgentServiceServer)(nil), @@ -2569,6 +2666,10 @@ var _AgentService_serviceDesc = grpc1.ServiceDesc{ MethodName: "ReseedRandomDev", Handler: _AgentService_ReseedRandomDev_Handler, }, + { + MethodName: "GetGuestDetails", + Handler: _AgentService_GetGuestDetails_Handler, + }, }, Streams: []grpc1.StreamDesc{}, Metadata: "agent.proto", @@ -3842,6 +3943,12 @@ func (m *CreateSandboxRequest) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintAgent(dAtA, i, uint64(len(m.SandboxId))) i += copy(dAtA[i:], m.SandboxId) } + if len(m.GuestHookPath) > 0 { + dAtA[i] = 0x32 + i++ + i = encodeVarintAgent(dAtA, i, uint64(len(m.GuestHookPath))) + i += copy(dAtA[i:], m.GuestHookPath) + } return i, nil } @@ -3948,6 +4055,12 @@ func (m *Interface) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintAgent(dAtA, i, uint64(len(m.HwAddr))) i += copy(dAtA[i:], m.HwAddr) } + if len(m.PciAddr) > 0 { + dAtA[i] = 0x32 + i++ + i = encodeVarintAgent(dAtA, i, uint64(len(m.PciAddr))) + i += copy(dAtA[i:], m.PciAddr) + } return i, nil } @@ -4236,6 +4349,16 @@ func (m *OnlineCPUMemRequest) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintAgent(dAtA, i, uint64(m.NbCpus)) } + if m.CpuOnly { + dAtA[i] = 0x18 + i++ + if m.CpuOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -4263,6 +4386,57 @@ func (m *ReseedRandomDevRequest) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *GuestDetailsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GuestDetailsRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.MemBlockSize { + dAtA[i] = 0x8 + i++ + if m.MemBlockSize { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } + return i, nil +} + +func (m *GuestDetailsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GuestDetailsResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.MemBlockSizeBytes != 0 { + dAtA[i] = 0x8 + i++ + i = encodeVarintAgent(dAtA, i, uint64(m.MemBlockSizeBytes)) + } + return i, nil +} + func (m *Storage) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5002,6 +5176,10 @@ func (m *CreateSandboxRequest) Size() (n int) { if l > 0 { n += 1 + l + sovAgent(uint64(l)) } + l = len(m.GuestHookPath) + if l > 0 { + n += 1 + l + sovAgent(uint64(l)) + } return n } @@ -5052,6 +5230,10 @@ func (m *Interface) Size() (n int) { if l > 0 { n += 1 + l + sovAgent(uint64(l)) } + l = len(m.PciAddr) + if l > 0 { + n += 1 + l + sovAgent(uint64(l)) + } return n } @@ -5165,6 +5347,9 @@ func (m *OnlineCPUMemRequest) Size() (n int) { if m.NbCpus != 0 { n += 1 + sovAgent(uint64(m.NbCpus)) } + if m.CpuOnly { + n += 2 + } return n } @@ -5178,6 +5363,24 @@ func (m *ReseedRandomDevRequest) Size() (n int) { return n } +func (m *GuestDetailsRequest) Size() (n int) { + var l int + _ = l + if m.MemBlockSize { + n += 2 + } + return n +} + +func (m *GuestDetailsResponse) Size() (n int) { + var l int + _ = l + if m.MemBlockSizeBytes != 0 { + n += 1 + sovAgent(uint64(m.MemBlockSizeBytes)) + } + return n +} + func (m *Storage) Size() (n int) { var l int _ = l @@ -9418,6 +9621,35 @@ func (m *CreateSandboxRequest) Unmarshal(dAtA []byte) error { } m.SandboxId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GuestHookPath", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAgent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAgent + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.GuestHookPath = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipAgent(dAtA[iNdEx:]) @@ -9782,6 +10014,35 @@ func (m *Interface) Unmarshal(dAtA []byte) error { } m.HwAddr = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PciAddr", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAgent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAgent + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PciAddr = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipAgent(dAtA[iNdEx:]) @@ -10650,6 +10911,26 @@ func (m *OnlineCPUMemRequest) Unmarshal(dAtA []byte) error { break } } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CpuOnly", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAgent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.CpuOnly = bool(v != 0) default: iNdEx = preIndex skippy, err := skipAgent(dAtA[iNdEx:]) @@ -10752,6 +11033,145 @@ func (m *ReseedRandomDevRequest) Unmarshal(dAtA []byte) error { } return nil } +func (m *GuestDetailsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAgent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GuestDetailsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GuestDetailsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MemBlockSize", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAgent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.MemBlockSize = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipAgent(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthAgent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GuestDetailsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAgent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GuestDetailsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GuestDetailsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MemBlockSizeBytes", wireType) + } + m.MemBlockSizeBytes = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAgent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MemBlockSizeBytes |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipAgent(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthAgent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *Storage) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -11416,152 +11836,160 @@ var ( func init() { proto.RegisterFile("agent.proto", fileDescriptorAgent) } var fileDescriptorAgent = []byte{ - // 2352 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x5f, 0x6f, 0x1c, 0x49, - 0x11, 0x67, 0xff, 0xda, 0x5b, 0xbb, 0x6b, 0x7b, 0xdb, 0x8e, 0xb3, 0xb7, 0x39, 0x82, 0x6f, 0x02, - 0x39, 0x73, 0x47, 0x1c, 0x9d, 0x13, 0xc1, 0x29, 0x51, 0x14, 0x62, 0xc7, 0x38, 0xe6, 0x2e, 0x64, - 0x19, 0xc7, 0x0a, 0x12, 0x0f, 0xab, 0xf1, 0x4c, 0x7b, 0xdd, 0x97, 0x9d, 0xe9, 0xb9, 0xee, 0x1e, - 0xdb, 0xcb, 0x49, 0x3c, 0xf2, 0x09, 0x78, 0xe5, 0x0b, 0x20, 0xde, 0xee, 0x2b, 0xf0, 0xc0, 0x23, - 0x9f, 0x00, 0xa1, 0x7c, 0x01, 0x24, 0x3e, 0x01, 0xea, 0x7f, 0xf3, 0x67, 0xff, 0x38, 0xe0, 0xb3, - 0xc4, 0xcb, 0xee, 0x54, 0x75, 0x75, 0xd5, 0xaf, 0xaa, 0xbb, 0xab, 0xab, 0x0b, 0x9a, 0xde, 0x10, - 0x47, 0x62, 0x2b, 0x66, 0x54, 0x50, 0x54, 0x1d, 0xb2, 0xd8, 0xef, 0x35, 0xa8, 0x4f, 0x34, 0xa3, - 0x77, 0x6b, 0x48, 0xe9, 0x70, 0x84, 0xef, 0x2b, 0xea, 0x38, 0x39, 0xb9, 0x8f, 0xc3, 0x58, 0x8c, - 0xf5, 0xa0, 0xf3, 0xa7, 0x32, 0xac, 0xef, 0x32, 0xec, 0x09, 0xbc, 0x4b, 0x23, 0xe1, 0x91, 0x08, - 0x33, 0x17, 0x7f, 0x9d, 0x60, 0x2e, 0xd0, 0x47, 0xd0, 0xf2, 0x2d, 0x6f, 0x40, 0x82, 0x6e, 0x69, - 0xa3, 0xb4, 0xd9, 0x70, 0x9b, 0x29, 0xef, 0x20, 0x40, 0x37, 0x61, 0x01, 0x5f, 0x60, 0x5f, 0x8e, - 0x96, 0xd5, 0x68, 0x5d, 0x92, 0x07, 0x01, 0xfa, 0x0c, 0x9a, 0x5c, 0x30, 0x12, 0x0d, 0x07, 0x09, - 0xc7, 0xac, 0x5b, 0xd9, 0x28, 0x6d, 0x36, 0xb7, 0x57, 0xb6, 0x24, 0xb4, 0xad, 0x43, 0x35, 0x70, - 0xc4, 0x31, 0x73, 0x81, 0xa7, 0xdf, 0xe8, 0x2e, 0x2c, 0x04, 0xf8, 0x8c, 0xf8, 0x98, 0x77, 0xab, - 0x1b, 0x95, 0xcd, 0xe6, 0x76, 0x4b, 0x8b, 0x3f, 0x57, 0x4c, 0xd7, 0x0e, 0xa2, 0x1f, 0xc3, 0x22, - 0x17, 0x94, 0x79, 0x43, 0xcc, 0xbb, 0x35, 0x25, 0xd8, 0xb6, 0x7a, 0x15, 0xd7, 0x4d, 0x87, 0xd1, - 0x87, 0x50, 0x79, 0xb5, 0x7b, 0xd0, 0xad, 0x2b, 0xeb, 0x60, 0xa4, 0x62, 0xec, 0xbb, 0x92, 0x8d, - 0xee, 0x40, 0x9b, 0x7b, 0x51, 0x70, 0x4c, 0x2f, 0x06, 0x31, 0x09, 0x22, 0xde, 0x5d, 0xd8, 0x28, - 0x6d, 0x2e, 0xba, 0x2d, 0xc3, 0xec, 0x4b, 0x9e, 0xf3, 0x08, 0x6e, 0x1c, 0x0a, 0x8f, 0x89, 0x2b, - 0x44, 0xc7, 0x39, 0x82, 0x75, 0x17, 0x87, 0xf4, 0xec, 0x4a, 0xa1, 0xed, 0xc2, 0x82, 0x20, 0x21, - 0xa6, 0x89, 0x50, 0xa1, 0x6d, 0xbb, 0x96, 0x74, 0xfe, 0x52, 0x02, 0xb4, 0x77, 0x81, 0xfd, 0x3e, - 0xa3, 0x3e, 0xe6, 0xfc, 0xff, 0xb4, 0x5c, 0x1f, 0xc3, 0x42, 0xac, 0x01, 0x74, 0xab, 0x4a, 0xdc, - 0xac, 0x82, 0x45, 0x65, 0x47, 0x9d, 0xaf, 0x60, 0xed, 0x90, 0x0c, 0x23, 0x6f, 0x74, 0x8d, 0x78, - 0xd7, 0xa1, 0xce, 0x95, 0x4e, 0x05, 0xb5, 0xed, 0x1a, 0xca, 0xe9, 0x03, 0x7a, 0xe3, 0x11, 0x71, - 0x7d, 0x96, 0x9c, 0x7b, 0xb0, 0x5a, 0xd0, 0xc8, 0x63, 0x1a, 0x71, 0xac, 0x00, 0x08, 0x4f, 0x24, - 0x5c, 0x29, 0xab, 0xb9, 0x86, 0x72, 0x30, 0xac, 0x7d, 0x49, 0xb8, 0x15, 0xc7, 0xff, 0x0b, 0x84, - 0x75, 0xa8, 0x9f, 0x50, 0x16, 0x7a, 0xc2, 0x22, 0xd0, 0x14, 0x42, 0x50, 0xf5, 0xd8, 0x90, 0x77, - 0x2b, 0x1b, 0x95, 0xcd, 0x86, 0xab, 0xbe, 0xe5, 0xae, 0x9c, 0x30, 0x63, 0x70, 0x7d, 0x04, 0x2d, - 0x13, 0xf7, 0xc1, 0x88, 0x70, 0xa1, 0xec, 0xb4, 0xdc, 0xa6, 0xe1, 0xc9, 0x39, 0x0e, 0x85, 0xf5, - 0xa3, 0x38, 0xb8, 0xe2, 0x81, 0xdf, 0x86, 0x06, 0xc3, 0x9c, 0x26, 0x4c, 0x1e, 0xd3, 0xb2, 0x5a, - 0xf7, 0x35, 0xbd, 0xee, 0x5f, 0x92, 0x28, 0xb9, 0x70, 0xed, 0x98, 0x9b, 0x89, 0x99, 0x23, 0x24, - 0xf8, 0x55, 0x8e, 0xd0, 0x23, 0xb8, 0xd1, 0xf7, 0x12, 0x7e, 0x15, 0xac, 0xce, 0x63, 0x79, 0xfc, - 0x78, 0x12, 0x5e, 0x69, 0xf2, 0x9f, 0x4b, 0xb0, 0xb8, 0x1b, 0x27, 0x47, 0xdc, 0x1b, 0x62, 0xf4, - 0x03, 0x68, 0x0a, 0x2a, 0xbc, 0xd1, 0x20, 0x91, 0xa4, 0x12, 0xaf, 0xba, 0xa0, 0x58, 0x5a, 0x40, - 0x86, 0x1d, 0x33, 0x3f, 0x4e, 0x8c, 0x44, 0x79, 0xa3, 0xb2, 0x59, 0x75, 0x9b, 0x9a, 0xa7, 0x45, - 0xb6, 0x60, 0x55, 0x8d, 0x0d, 0x48, 0x34, 0x78, 0x8b, 0x59, 0x84, 0x47, 0x21, 0x0d, 0xb0, 0xda, - 0xbf, 0x55, 0xb7, 0xa3, 0x86, 0x0e, 0xa2, 0x2f, 0xd2, 0x01, 0xf4, 0x09, 0x74, 0x52, 0x79, 0x79, - 0x28, 0x95, 0x74, 0x55, 0x49, 0x2f, 0x1b, 0xe9, 0x23, 0xc3, 0x76, 0x7e, 0x0f, 0x4b, 0xaf, 0x4f, - 0x19, 0x15, 0x62, 0x44, 0xa2, 0xe1, 0x73, 0x4f, 0x78, 0x32, 0x7b, 0xc4, 0x98, 0x11, 0x1a, 0x70, - 0x83, 0xd6, 0x92, 0xe8, 0x53, 0xe8, 0x08, 0x2d, 0x8b, 0x83, 0x81, 0x95, 0x29, 0x2b, 0x99, 0x95, - 0x74, 0xa0, 0x6f, 0x84, 0x7f, 0x04, 0x4b, 0x99, 0xb0, 0xcc, 0x3f, 0x06, 0x6f, 0x3b, 0xe5, 0xbe, - 0x26, 0x21, 0x76, 0xce, 0x54, 0xac, 0xd4, 0x22, 0xa3, 0x4f, 0xa1, 0x91, 0xc5, 0xa1, 0xa4, 0x76, - 0xc8, 0x92, 0xde, 0x21, 0x36, 0x9c, 0xee, 0x62, 0x1a, 0x94, 0x27, 0xb0, 0x2c, 0x52, 0xe0, 0x83, - 0xc0, 0x13, 0x5e, 0x71, 0x53, 0x15, 0xbd, 0x72, 0x97, 0x44, 0x81, 0x76, 0x1e, 0x43, 0xa3, 0x4f, - 0x02, 0xae, 0x0d, 0x77, 0x61, 0xc1, 0x4f, 0x18, 0xc3, 0x91, 0xb0, 0x2e, 0x1b, 0x12, 0xad, 0x41, - 0x6d, 0x44, 0x42, 0x22, 0x8c, 0x9b, 0x9a, 0x70, 0x28, 0xc0, 0x4b, 0x1c, 0x52, 0x36, 0x56, 0x01, - 0x5b, 0x83, 0x5a, 0x7e, 0x71, 0x35, 0x81, 0x6e, 0x41, 0x23, 0xf4, 0x2e, 0xd2, 0x45, 0x95, 0x23, - 0x8b, 0xa1, 0x77, 0xa1, 0xc1, 0x77, 0x61, 0xe1, 0xc4, 0x23, 0x23, 0x3f, 0x12, 0x26, 0x2a, 0x96, - 0xcc, 0x0c, 0x56, 0xf3, 0x06, 0xff, 0x5a, 0x86, 0xa6, 0xb6, 0xa8, 0x01, 0xaf, 0x41, 0xcd, 0xf7, - 0xfc, 0xd3, 0xd4, 0xa4, 0x22, 0xd0, 0x5d, 0x0b, 0xa4, 0x9c, 0x4f, 0xc2, 0x19, 0x52, 0x0b, 0xed, - 0x3e, 0x00, 0x3f, 0xf7, 0x62, 0x83, 0xad, 0x32, 0x47, 0xb8, 0x21, 0x65, 0x34, 0xdc, 0x07, 0xd0, - 0xd2, 0xfb, 0xce, 0x4c, 0xa9, 0xce, 0x99, 0xd2, 0xd4, 0x52, 0x7a, 0xd2, 0x1d, 0x68, 0x27, 0x1c, - 0x0f, 0x4e, 0x09, 0x66, 0x1e, 0xf3, 0x4f, 0xc7, 0xdd, 0x9a, 0xbe, 0x23, 0x13, 0x8e, 0x5f, 0x58, - 0x1e, 0xda, 0x86, 0x9a, 0x4c, 0x7f, 0xbc, 0x5b, 0x57, 0xd7, 0xf1, 0x87, 0x79, 0x95, 0xca, 0xd5, - 0x2d, 0xf5, 0xbb, 0x17, 0x09, 0x36, 0x76, 0xb5, 0x68, 0xef, 0x73, 0x80, 0x8c, 0x89, 0x56, 0xa0, - 0xf2, 0x16, 0x8f, 0xcd, 0x39, 0x94, 0x9f, 0x32, 0x38, 0x67, 0xde, 0x28, 0xb1, 0x51, 0xd7, 0xc4, - 0xa3, 0xf2, 0xe7, 0x25, 0xc7, 0x87, 0xe5, 0x9d, 0xd1, 0x5b, 0x42, 0x73, 0xd3, 0xd7, 0xa0, 0x16, - 0x7a, 0x5f, 0x51, 0x66, 0x23, 0xa9, 0x08, 0xc5, 0x25, 0x11, 0x65, 0x56, 0x85, 0x22, 0xd0, 0x12, - 0x94, 0x69, 0xac, 0xe2, 0xd5, 0x70, 0xcb, 0x34, 0xce, 0x0c, 0x55, 0x73, 0x86, 0x9c, 0x7f, 0x54, - 0x01, 0x32, 0x2b, 0xc8, 0x85, 0x1e, 0xa1, 0x03, 0x8e, 0x99, 0x2c, 0x41, 0x06, 0xc7, 0x63, 0x81, - 0xf9, 0x80, 0x61, 0x3f, 0x61, 0x9c, 0x9c, 0xc9, 0xf5, 0x93, 0x6e, 0xdf, 0xd0, 0x6e, 0x4f, 0x60, - 0x73, 0x6f, 0x12, 0x7a, 0xa8, 0xe7, 0xed, 0xc8, 0x69, 0xae, 0x9d, 0x85, 0x0e, 0xe0, 0x46, 0xa6, - 0x33, 0xc8, 0xa9, 0x2b, 0x5f, 0xa6, 0x6e, 0x35, 0x55, 0x17, 0x64, 0xaa, 0xf6, 0x60, 0x95, 0xd0, - 0xc1, 0xd7, 0x09, 0x4e, 0x0a, 0x8a, 0x2a, 0x97, 0x29, 0xea, 0x10, 0xfa, 0x6b, 0x35, 0x21, 0x53, - 0xd3, 0x87, 0x0f, 0x72, 0x5e, 0xca, 0xe3, 0x9e, 0x53, 0x56, 0xbd, 0x4c, 0xd9, 0x7a, 0x8a, 0x4a, - 0xe6, 0x83, 0x4c, 0xe3, 0x2f, 0x61, 0x9d, 0xd0, 0xc1, 0xb9, 0x47, 0xc4, 0xa4, 0xba, 0xda, 0x7b, - 0x9c, 0x94, 0x97, 0x6e, 0x51, 0x97, 0x76, 0x32, 0xc4, 0x6c, 0x58, 0x70, 0xb2, 0xfe, 0x1e, 0x27, - 0x5f, 0xaa, 0x09, 0x99, 0x9a, 0x67, 0xd0, 0x21, 0x74, 0x12, 0xcd, 0xc2, 0x65, 0x4a, 0x96, 0x09, - 0x2d, 0x22, 0xd9, 0x81, 0x0e, 0xc7, 0xbe, 0xa0, 0x2c, 0xbf, 0x09, 0x16, 0x2f, 0x53, 0xb1, 0x62, - 0xe4, 0x53, 0x1d, 0xce, 0x6f, 0xa1, 0xf5, 0x22, 0x19, 0x62, 0x31, 0x3a, 0x4e, 0x93, 0xc1, 0xb5, - 0xe5, 0x1f, 0xe7, 0xdf, 0x65, 0x68, 0xee, 0x0e, 0x19, 0x4d, 0xe2, 0x42, 0x4e, 0xd6, 0x87, 0x74, - 0x32, 0x27, 0x2b, 0x11, 0x95, 0x93, 0xb5, 0xf0, 0x43, 0x68, 0x85, 0xea, 0xe8, 0x1a, 0x79, 0x9d, - 0x87, 0x3a, 0x53, 0x87, 0xda, 0x6d, 0x86, 0xb9, 0x64, 0xb6, 0x05, 0x10, 0x93, 0x80, 0x9b, 0x39, - 0x3a, 0x1d, 0x2d, 0x9b, 0x8a, 0xd0, 0xa6, 0x68, 0xb7, 0x11, 0xa7, 0xd9, 0xfa, 0x33, 0x68, 0x1e, - 0xcb, 0x20, 0x99, 0x09, 0x85, 0x64, 0x94, 0x45, 0xcf, 0x85, 0xe3, 0xec, 0x10, 0xbe, 0x80, 0xf6, - 0xa9, 0x0e, 0x99, 0x99, 0xa4, 0xf7, 0xd0, 0x1d, 0xe3, 0x49, 0xe6, 0xef, 0x56, 0x3e, 0xb2, 0x7a, - 0x01, 0x5a, 0xa7, 0x39, 0x56, 0xef, 0x10, 0x3a, 0x53, 0x22, 0x33, 0x72, 0xd0, 0x66, 0x3e, 0x07, - 0x35, 0xb7, 0x91, 0x36, 0x94, 0x9f, 0x99, 0xcf, 0x4b, 0xbf, 0x82, 0xf5, 0xc9, 0x32, 0xc7, 0x14, - 0x65, 0x0f, 0xa1, 0xe5, 0x2b, 0x74, 0x85, 0x15, 0xe8, 0x4c, 0xe1, 0x76, 0x9b, 0x7e, 0x46, 0x38, - 0x01, 0xa0, 0x37, 0x8c, 0x08, 0x7c, 0x28, 0x18, 0xf6, 0xc2, 0xeb, 0xa8, 0x9a, 0x11, 0x54, 0xd5, - 0x15, 0x5b, 0x51, 0x45, 0xa1, 0xfa, 0x76, 0x3e, 0x86, 0xd5, 0x82, 0x15, 0x03, 0x79, 0x05, 0x2a, - 0x23, 0x1c, 0x29, 0xed, 0x6d, 0x57, 0x7e, 0x3a, 0x1e, 0x74, 0x5c, 0xec, 0x05, 0xd7, 0x87, 0xc6, - 0x98, 0xa8, 0x64, 0x26, 0x36, 0x01, 0xe5, 0x4d, 0x18, 0x28, 0x16, 0x75, 0x29, 0x87, 0xfa, 0x15, - 0x74, 0x76, 0x47, 0x94, 0xe3, 0x43, 0x11, 0x90, 0xe8, 0x3a, 0xca, 0xfc, 0x6f, 0x60, 0xf5, 0xb5, - 0x18, 0xbf, 0x91, 0xca, 0x38, 0xf9, 0x1d, 0xbe, 0x26, 0xff, 0x18, 0x3d, 0xb7, 0xfe, 0x31, 0x7a, - 0x2e, 0x2b, 0x7c, 0x9f, 0x8e, 0x92, 0x30, 0x52, 0xdb, 0xbd, 0xed, 0x1a, 0xca, 0xf9, 0xb6, 0x04, - 0x6b, 0xfa, 0x0d, 0x7e, 0xa8, 0x9f, 0x9e, 0xd6, 0x7c, 0x0f, 0x16, 0x4f, 0x29, 0x17, 0x91, 0x17, - 0x62, 0x63, 0x3a, 0xa5, 0xa5, 0x7a, 0xf9, 0x66, 0x2d, 0xab, 0x57, 0x81, 0xfc, 0x2c, 0x3c, 0x8c, - 0x2b, 0x97, 0x3f, 0x8c, 0xa7, 0x9e, 0xbe, 0xd5, 0xe9, 0xa7, 0x2f, 0xfa, 0x3e, 0x80, 0x15, 0x22, - 0x81, 0xba, 0xf8, 0x1b, 0x6e, 0xc3, 0x70, 0x0e, 0x02, 0xe7, 0x26, 0xdc, 0x78, 0x8e, 0xb9, 0x60, - 0x74, 0x5c, 0x44, 0xed, 0x78, 0xd0, 0x38, 0xe8, 0x3f, 0x0b, 0x02, 0x86, 0x39, 0x47, 0x77, 0xa1, - 0x7e, 0xe2, 0x85, 0x64, 0xa4, 0x0f, 0xd6, 0x92, 0xcd, 0x3b, 0x07, 0xfd, 0x5f, 0x28, 0xae, 0x6b, - 0x46, 0x65, 0x32, 0xf3, 0xf4, 0x14, 0x13, 0x46, 0x4b, 0xca, 0xf5, 0x0f, 0x3d, 0xfe, 0xd6, 0x5c, - 0xd9, 0xea, 0xdb, 0xf9, 0x63, 0x09, 0x1a, 0x07, 0x91, 0xc0, 0xec, 0xc4, 0xf3, 0xd5, 0x63, 0x4c, - 0x37, 0x07, 0x4c, 0x90, 0x0c, 0x25, 0x67, 0xaa, 0xd0, 0x69, 0x85, 0xea, 0x5b, 0xe6, 0x9d, 0x14, - 0x5c, 0x1a, 0xa7, 0x65, 0x0b, 0xca, 0x0c, 0xb8, 0x79, 0x19, 0x19, 0xe9, 0x50, 0x24, 0xa6, 0x3e, - 0x90, 0x9f, 0xd2, 0xe0, 0xe9, 0xb9, 0x14, 0x30, 0x51, 0x31, 0x94, 0xf3, 0x04, 0x20, 0x45, 0xc5, - 0x65, 0x85, 0x96, 0x51, 0xa6, 0x48, 0xb0, 0x96, 0x2c, 0xdf, 0xcd, 0x89, 0x38, 0xdf, 0x40, 0xcd, - 0xa5, 0x89, 0xd0, 0x5b, 0x1e, 0x9b, 0xd7, 0x5b, 0xc3, 0x55, 0xdf, 0x32, 0x40, 0x43, 0x4f, 0xe0, - 0x73, 0x6f, 0x6c, 0x03, 0x64, 0xc8, 0x9c, 0xfb, 0x95, 0x82, 0xfb, 0xf2, 0x8d, 0xaa, 0x9e, 0x60, - 0x0a, 0x7a, 0xc3, 0x35, 0x94, 0xbc, 0x6a, 0xb8, 0x4f, 0x63, 0xac, 0xc0, 0xb7, 0x5d, 0x4d, 0x38, - 0xf7, 0xa0, 0xae, 0x8c, 0xcb, 0xcd, 0x61, 0xbe, 0x0c, 0xe6, 0xa6, 0xc6, 0xac, 0x78, 0xae, 0x19, - 0x72, 0xf6, 0xed, 0x2b, 0x32, 0x73, 0xc5, 0x6c, 0xda, 0x7b, 0xd0, 0x20, 0x96, 0x67, 0x52, 0xdd, - 0x94, 0xd7, 0x99, 0x84, 0xf3, 0x1c, 0x56, 0x9f, 0x05, 0xc1, 0x77, 0xd5, 0xb2, 0x6f, 0x5b, 0x2d, - 0xdf, 0x55, 0xd1, 0x63, 0x58, 0xd5, 0x7e, 0x69, 0x3f, 0xad, 0x96, 0x1f, 0x42, 0x9d, 0xd9, 0x98, - 0x94, 0xb2, 0xde, 0x94, 0x11, 0x32, 0x63, 0xf2, 0x48, 0xc8, 0x27, 0x76, 0xb6, 0xa4, 0xf6, 0x48, - 0xac, 0x42, 0x47, 0x0e, 0x14, 0x74, 0x3a, 0x3b, 0xb0, 0xfa, 0x2a, 0x1a, 0x91, 0x08, 0xef, 0xf6, - 0x8f, 0x5e, 0xe2, 0x34, 0xa7, 0x22, 0xa8, 0xca, 0x82, 0x49, 0x19, 0x5a, 0x74, 0xd5, 0xb7, 0x4c, - 0x32, 0xd1, 0xf1, 0xc0, 0x8f, 0x13, 0x6e, 0x9a, 0x41, 0xf5, 0xe8, 0x78, 0x37, 0x4e, 0xb8, 0xf3, - 0x13, 0xf5, 0xc6, 0xc5, 0x38, 0x70, 0xbd, 0x28, 0xa0, 0xe1, 0x73, 0x7c, 0x96, 0x53, 0x93, 0xbe, - 0xa7, 0x6c, 0xda, 0xfc, 0xb6, 0x04, 0x0b, 0x26, 0x19, 0xa8, 0x5d, 0xc3, 0xc8, 0x19, 0x66, 0xe9, - 0xa1, 0x51, 0x94, 0x7c, 0xf2, 0xe9, 0xaf, 0x01, 0x8d, 0x05, 0xa1, 0x69, 0x8a, 0x69, 0x6b, 0xee, - 0x2b, 0xcd, 0xcc, 0x6d, 0xae, 0x4a, 0x61, 0x73, 0xad, 0x43, 0xfd, 0x84, 0x8b, 0x71, 0x9c, 0x6e, - 0x3a, 0x4d, 0xc9, 0xed, 0x6b, 0xf5, 0xd5, 0x94, 0x3e, 0x4b, 0xca, 0xc7, 0x75, 0x48, 0x93, 0x48, - 0x0c, 0x62, 0x4a, 0x22, 0xa1, 0x9a, 0x75, 0x0d, 0x17, 0x14, 0xab, 0x2f, 0x39, 0xce, 0x1f, 0x4a, - 0x50, 0xd7, 0x4d, 0x40, 0x59, 0xbc, 0xa7, 0x59, 0xb8, 0x4c, 0xd4, 0x8d, 0xa6, 0x6c, 0x99, 0x13, - 0xae, 0x2c, 0xdd, 0x84, 0x85, 0xb3, 0x70, 0x10, 0x7b, 0xe2, 0xd4, 0x42, 0x3b, 0x0b, 0xfb, 0x9e, - 0x38, 0x95, 0x9e, 0x65, 0xc9, 0x5c, 0x8d, 0x6b, 0x88, 0xed, 0x94, 0xab, 0xc4, 0xe6, 0x22, 0x75, - 0x7e, 0x23, 0xdf, 0x2c, 0x69, 0x03, 0x6c, 0x05, 0x2a, 0x49, 0x0a, 0x46, 0x7e, 0x4a, 0xce, 0x30, - 0xbd, 0x06, 0xe4, 0x27, 0xba, 0x0b, 0x4b, 0x5e, 0x10, 0x10, 0x39, 0xdd, 0x1b, 0xed, 0x93, 0xc0, - 0x76, 0x71, 0x26, 0xb8, 0x9f, 0xf4, 0x60, 0xd1, 0x66, 0x44, 0x54, 0x87, 0xf2, 0xd9, 0xc3, 0x95, - 0xef, 0xa9, 0xff, 0x9f, 0xae, 0x94, 0xb6, 0xff, 0xd5, 0x86, 0xd6, 0xb3, 0x21, 0x8e, 0x84, 0xa9, - 0xb0, 0xd1, 0x3e, 0x2c, 0x4f, 0x74, 0x6c, 0x91, 0x79, 0x72, 0xcd, 0x6e, 0xe4, 0xf6, 0xd6, 0xb7, - 0x74, 0x07, 0x78, 0xcb, 0x76, 0x80, 0xb7, 0xf6, 0xc2, 0x58, 0x8c, 0xd1, 0x1e, 0x2c, 0x15, 0x7b, - 0x9b, 0xe8, 0x96, 0xbd, 0x30, 0x66, 0x74, 0x3c, 0xe7, 0xaa, 0xd9, 0x87, 0xe5, 0x89, 0x36, 0xa7, - 0xc5, 0x33, 0xbb, 0xfb, 0x39, 0x57, 0xd1, 0x53, 0x68, 0xe6, 0xfa, 0x9a, 0xa8, 0xab, 0x95, 0x4c, - 0xb7, 0x3a, 0xe7, 0x2a, 0xd8, 0x85, 0x76, 0xa1, 0xd5, 0x88, 0x7a, 0xc6, 0x9f, 0x19, 0xfd, 0xc7, - 0xb9, 0x4a, 0x76, 0xa0, 0x99, 0xeb, 0xf8, 0x59, 0x14, 0xd3, 0x6d, 0xc5, 0xde, 0x07, 0x33, 0x46, - 0x4c, 0xcd, 0xf2, 0x02, 0xda, 0x85, 0xfe, 0x9c, 0x05, 0x32, 0xab, 0x37, 0xd8, 0xbb, 0x35, 0x73, - 0xcc, 0x68, 0xda, 0x87, 0xe5, 0x89, 0x6e, 0x9d, 0x0d, 0xee, 0xec, 0x26, 0xde, 0x5c, 0xb7, 0xbe, - 0x50, 0x8b, 0x9d, 0x2b, 0x4f, 0x73, 0x8b, 0x3d, 0xdd, 0x9b, 0xeb, 0x7d, 0x38, 0x7b, 0xd0, 0xa0, - 0xda, 0x83, 0xa5, 0x62, 0x5b, 0xce, 0x2a, 0x9b, 0xd9, 0xac, 0xbb, 0x7c, 0xe7, 0x14, 0x3a, 0x74, - 0xd9, 0xce, 0x99, 0xd5, 0xb8, 0x9b, 0xab, 0xe8, 0x19, 0x80, 0xa9, 0x62, 0x03, 0x12, 0xa5, 0x4b, - 0x36, 0x55, 0x3d, 0xa7, 0x4b, 0x36, 0xa3, 0xe2, 0x7d, 0x0a, 0xa0, 0x8b, 0xcf, 0x80, 0x26, 0x02, - 0xdd, 0xb4, 0x30, 0x26, 0x2a, 0xde, 0x5e, 0x77, 0x7a, 0x60, 0x4a, 0x01, 0x66, 0xec, 0x2a, 0x0a, - 0x9e, 0x00, 0x64, 0x45, 0xad, 0x55, 0x30, 0x55, 0xe6, 0x5e, 0x12, 0x83, 0x56, 0xbe, 0x84, 0x45, - 0xc6, 0xd7, 0x19, 0x65, 0xed, 0x5c, 0x15, 0x8f, 0xa0, 0x95, 0xbf, 0x8b, 0xad, 0x8a, 0x19, 0xf7, - 0x73, 0x6f, 0xf2, 0x0e, 0x45, 0x3f, 0xb7, 0x1b, 0x35, 0x63, 0x15, 0x36, 0xea, 0x7f, 0xa5, 0x61, - 0xe2, 0x0e, 0x2f, 0xe6, 0x91, 0xf7, 0x6b, 0xf8, 0x19, 0xb4, 0xf2, 0x97, 0xb7, 0xc5, 0x3f, 0xe3, - 0x42, 0xef, 0x15, 0x2e, 0x70, 0xf4, 0x14, 0x96, 0x8a, 0x17, 0x37, 0xca, 0x1d, 0xca, 0xa9, 0xeb, - 0xbc, 0xb7, 0x32, 0x61, 0x98, 0xa3, 0x07, 0x00, 0xd9, 0x05, 0x6f, 0xd7, 0x6e, 0xea, 0xca, 0x9f, - 0xb0, 0xba, 0x0b, 0xed, 0x42, 0xd9, 0x6f, 0xb3, 0xc4, 0xac, 0xb7, 0xc0, 0x65, 0x49, 0xbc, 0x58, - 0x86, 0x5b, 0xe8, 0x33, 0x8b, 0xf3, 0xcb, 0x76, 0x4f, 0xbe, 0x18, 0xb1, 0xa1, 0x9b, 0x51, 0xa0, - 0xbc, 0xe7, 0x34, 0xe7, 0x6b, 0x91, 0xdc, 0x69, 0x9e, 0x51, 0xa2, 0xcc, 0x53, 0xb4, 0xd3, 0xfa, - 0xdb, 0xbb, 0xdb, 0xa5, 0xbf, 0xbf, 0xbb, 0x5d, 0xfa, 0xe7, 0xbb, 0xdb, 0xa5, 0xe3, 0xba, 0x1a, - 0x7d, 0xf0, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2b, 0xc8, 0x6c, 0x30, 0xe5, 0x1c, 0x00, 0x00, + // 2477 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x38, 0x5b, 0x6f, 0x1c, 0x49, + 0xd5, 0xdf, 0x5c, 0x3c, 0xf6, 0x9c, 0xb9, 0xd8, 0x53, 0x76, 0x9c, 0xd9, 0x49, 0xbe, 0xac, 0xb7, + 0x03, 0x59, 0xb3, 0x4b, 0x1c, 0xad, 0x13, 0xc1, 0x2a, 0x51, 0x14, 0xe2, 0x0b, 0xb6, 0xd9, 0x0d, + 0x19, 0xda, 0xb1, 0x82, 0x84, 0x50, 0xab, 0xdd, 0x5d, 0x1e, 0xd7, 0x7a, 0xba, 0xab, 0xb7, 0xab, + 0xda, 0xf6, 0xec, 0x4a, 0x3c, 0xf2, 0x2f, 0xf8, 0x03, 0x08, 0xf1, 0xc2, 0x13, 0xef, 0x3c, 0xf0, + 0xc8, 0x3b, 0x12, 0x42, 0xf9, 0x09, 0xfc, 0x02, 0x54, 0xb7, 0xbe, 0xcc, 0xc5, 0x01, 0xaf, 0x25, + 0x5e, 0x66, 0xea, 0x5c, 0xea, 0xdc, 0xaa, 0xea, 0xf4, 0x39, 0x07, 0x1a, 0xee, 0x00, 0x87, 0x7c, + 0x23, 0x8a, 0x29, 0xa7, 0xa8, 0x3a, 0x88, 0x23, 0xaf, 0x57, 0xa7, 0x1e, 0x51, 0x88, 0xde, 0x9d, + 0x01, 0xa5, 0x83, 0x21, 0x7e, 0x24, 0xa1, 0xe3, 0xe4, 0xe4, 0x11, 0x0e, 0x22, 0x3e, 0x52, 0x44, + 0xeb, 0x77, 0x65, 0x58, 0xdd, 0x8e, 0xb1, 0xcb, 0xf1, 0x36, 0x0d, 0xb9, 0x4b, 0x42, 0x1c, 0xdb, + 0xf8, 0xeb, 0x04, 0x33, 0x8e, 0x3e, 0x82, 0xa6, 0x67, 0x70, 0x0e, 0xf1, 0xbb, 0xa5, 0xb5, 0xd2, + 0x7a, 0xdd, 0x6e, 0xa4, 0xb8, 0x03, 0x1f, 0xdd, 0x86, 0x79, 0x7c, 0x89, 0x3d, 0x41, 0x2d, 0x4b, + 0x6a, 0x4d, 0x80, 0x07, 0x3e, 0xfa, 0x0c, 0x1a, 0x8c, 0xc7, 0x24, 0x1c, 0x38, 0x09, 0xc3, 0x71, + 0xb7, 0xb2, 0x56, 0x5a, 0x6f, 0x6c, 0x2e, 0x6d, 0x08, 0xd3, 0x36, 0x0e, 0x25, 0xe1, 0x88, 0xe1, + 0xd8, 0x06, 0x96, 0xae, 0xd1, 0x03, 0x98, 0xf7, 0xf1, 0x39, 0xf1, 0x30, 0xeb, 0x56, 0xd7, 0x2a, + 0xeb, 0x8d, 0xcd, 0xa6, 0x62, 0xdf, 0x91, 0x48, 0xdb, 0x10, 0xd1, 0x0f, 0x60, 0x81, 0x71, 0x1a, + 0xbb, 0x03, 0xcc, 0xba, 0x73, 0x92, 0xb1, 0x65, 0xe4, 0x4a, 0xac, 0x9d, 0x92, 0xd1, 0x5d, 0xa8, + 0xbc, 0xde, 0x3e, 0xe8, 0xd6, 0xa4, 0x76, 0xd0, 0x5c, 0x11, 0xf6, 0x6c, 0x81, 0x46, 0xf7, 0xa1, + 0xc5, 0xdc, 0xd0, 0x3f, 0xa6, 0x97, 0x4e, 0x44, 0xfc, 0x90, 0x75, 0xe7, 0xd7, 0x4a, 0xeb, 0x0b, + 0x76, 0x53, 0x23, 0xfb, 0x02, 0x67, 0x3d, 0x85, 0x5b, 0x87, 0xdc, 0x8d, 0xf9, 0x35, 0xa2, 0x63, + 0x1d, 0xc1, 0xaa, 0x8d, 0x03, 0x7a, 0x7e, 0xad, 0xd0, 0x76, 0x61, 0x9e, 0x93, 0x00, 0xd3, 0x84, + 0xcb, 0xd0, 0xb6, 0x6c, 0x03, 0x5a, 0x7f, 0x28, 0x01, 0xda, 0xbd, 0xc4, 0x5e, 0x3f, 0xa6, 0x1e, + 0x66, 0xec, 0x7f, 0x74, 0x5c, 0x1f, 0xc3, 0x7c, 0xa4, 0x0c, 0xe8, 0x56, 0x25, 0xbb, 0x3e, 0x05, + 0x63, 0x95, 0xa1, 0x5a, 0x5f, 0xc1, 0xca, 0x21, 0x19, 0x84, 0xee, 0xf0, 0x06, 0xed, 0x5d, 0x85, + 0x1a, 0x93, 0x32, 0xa5, 0xa9, 0x2d, 0x5b, 0x43, 0x56, 0x1f, 0xd0, 0x5b, 0x97, 0xf0, 0x9b, 0xd3, + 0x64, 0x3d, 0x84, 0xe5, 0x82, 0x44, 0x16, 0xd1, 0x90, 0x61, 0x69, 0x00, 0x77, 0x79, 0xc2, 0xa4, + 0xb0, 0x39, 0x5b, 0x43, 0x16, 0x86, 0x95, 0x2f, 0x09, 0x33, 0xec, 0xf8, 0xbf, 0x31, 0x61, 0x15, + 0x6a, 0x27, 0x34, 0x0e, 0x5c, 0x6e, 0x2c, 0x50, 0x10, 0x42, 0x50, 0x75, 0xe3, 0x01, 0xeb, 0x56, + 0xd6, 0x2a, 0xeb, 0x75, 0x5b, 0xae, 0xc5, 0xad, 0x1c, 0x53, 0xa3, 0xed, 0xfa, 0x08, 0x9a, 0x3a, + 0xee, 0xce, 0x90, 0x30, 0x2e, 0xf5, 0x34, 0xed, 0x86, 0xc6, 0x89, 0x3d, 0x16, 0x85, 0xd5, 0xa3, + 0xc8, 0xbf, 0xe6, 0x83, 0xdf, 0x84, 0x7a, 0x8c, 0x19, 0x4d, 0x62, 0xf1, 0x4c, 0xcb, 0xf2, 0xdc, + 0x57, 0xd4, 0xb9, 0x7f, 0x49, 0xc2, 0xe4, 0xd2, 0x36, 0x34, 0x3b, 0x63, 0xd3, 0x4f, 0x88, 0xb3, + 0xeb, 0x3c, 0xa1, 0xa7, 0x70, 0xab, 0xef, 0x26, 0xec, 0x3a, 0xb6, 0x5a, 0xcf, 0xc4, 0xf3, 0x63, + 0x49, 0x70, 0xad, 0xcd, 0xbf, 0x2f, 0xc1, 0xc2, 0x76, 0x94, 0x1c, 0x31, 0x77, 0x80, 0xd1, 0x87, + 0xd0, 0xe0, 0x94, 0xbb, 0x43, 0x27, 0x11, 0xa0, 0x64, 0xaf, 0xda, 0x20, 0x51, 0x8a, 0x41, 0x84, + 0x1d, 0xc7, 0x5e, 0x94, 0x68, 0x8e, 0xf2, 0x5a, 0x65, 0xbd, 0x6a, 0x37, 0x14, 0x4e, 0xb1, 0x6c, + 0xc0, 0xb2, 0xa4, 0x39, 0x24, 0x74, 0xce, 0x70, 0x1c, 0xe2, 0x61, 0x40, 0x7d, 0x2c, 0xef, 0x6f, + 0xd5, 0xee, 0x48, 0xd2, 0x41, 0xf8, 0x45, 0x4a, 0x40, 0x9f, 0x40, 0x27, 0xe5, 0x17, 0x8f, 0x52, + 0x72, 0x57, 0x25, 0xf7, 0xa2, 0xe6, 0x3e, 0xd2, 0x68, 0xeb, 0x37, 0xd0, 0x7e, 0x73, 0x1a, 0x53, + 0xce, 0x87, 0x24, 0x1c, 0xec, 0xb8, 0xdc, 0x15, 0xd9, 0x23, 0xc2, 0x31, 0xa1, 0x3e, 0xd3, 0xd6, + 0x1a, 0x10, 0x7d, 0x0a, 0x1d, 0xae, 0x78, 0xb1, 0xef, 0x18, 0x9e, 0xb2, 0xe4, 0x59, 0x4a, 0x09, + 0x7d, 0xcd, 0xfc, 0x7d, 0x68, 0x67, 0xcc, 0x22, 0xff, 0x68, 0x7b, 0x5b, 0x29, 0xf6, 0x0d, 0x09, + 0xb0, 0x75, 0x2e, 0x63, 0x25, 0x0f, 0x19, 0x7d, 0x0a, 0xf5, 0x2c, 0x0e, 0x25, 0x79, 0x43, 0xda, + 0xea, 0x86, 0x98, 0x70, 0xda, 0x0b, 0x69, 0x50, 0x9e, 0xc3, 0x22, 0x4f, 0x0d, 0x77, 0x7c, 0x97, + 0xbb, 0xc5, 0x4b, 0x55, 0xf4, 0xca, 0x6e, 0xf3, 0x02, 0x6c, 0x3d, 0x83, 0x7a, 0x9f, 0xf8, 0x4c, + 0x29, 0xee, 0xc2, 0xbc, 0x97, 0xc4, 0x31, 0x0e, 0xb9, 0x71, 0x59, 0x83, 0x68, 0x05, 0xe6, 0x86, + 0x24, 0x20, 0x5c, 0xbb, 0xa9, 0x00, 0x8b, 0x02, 0xbc, 0xc2, 0x01, 0x8d, 0x47, 0x32, 0x60, 0x2b, + 0x30, 0x97, 0x3f, 0x5c, 0x05, 0xa0, 0x3b, 0x50, 0x0f, 0xdc, 0xcb, 0xf4, 0x50, 0x05, 0x65, 0x21, + 0x70, 0x2f, 0x95, 0xf1, 0x5d, 0x98, 0x3f, 0x71, 0xc9, 0xd0, 0x0b, 0xb9, 0x8e, 0x8a, 0x01, 0x33, + 0x85, 0xd5, 0xbc, 0xc2, 0xbf, 0x94, 0xa1, 0xa1, 0x34, 0x2a, 0x83, 0x57, 0x60, 0xce, 0x73, 0xbd, + 0xd3, 0x54, 0xa5, 0x04, 0xd0, 0x03, 0x63, 0x48, 0x39, 0x9f, 0x84, 0x33, 0x4b, 0x8d, 0x69, 0x8f, + 0x00, 0xd8, 0x85, 0x1b, 0x69, 0xdb, 0x2a, 0x33, 0x98, 0xeb, 0x82, 0x47, 0x99, 0xfb, 0x18, 0x9a, + 0xea, 0xde, 0xe9, 0x2d, 0xd5, 0x19, 0x5b, 0x1a, 0x8a, 0x4b, 0x6d, 0xba, 0x0f, 0xad, 0x84, 0x61, + 0xe7, 0x94, 0xe0, 0xd8, 0x8d, 0xbd, 0xd3, 0x51, 0x77, 0x4e, 0x7d, 0x23, 0x13, 0x86, 0xf7, 0x0d, + 0x0e, 0x6d, 0xc2, 0x9c, 0x48, 0x7f, 0xac, 0x5b, 0x93, 0x9f, 0xe3, 0xbb, 0x79, 0x91, 0xd2, 0xd5, + 0x0d, 0xf9, 0xbb, 0x1b, 0xf2, 0x78, 0x64, 0x2b, 0xd6, 0xde, 0xe7, 0x00, 0x19, 0x12, 0x2d, 0x41, + 0xe5, 0x0c, 0x8f, 0xf4, 0x3b, 0x14, 0x4b, 0x11, 0x9c, 0x73, 0x77, 0x98, 0x98, 0xa8, 0x2b, 0xe0, + 0x69, 0xf9, 0xf3, 0x92, 0xe5, 0xc1, 0xe2, 0xd6, 0xf0, 0x8c, 0xd0, 0xdc, 0xf6, 0x15, 0x98, 0x0b, + 0xdc, 0xaf, 0x68, 0x6c, 0x22, 0x29, 0x01, 0x89, 0x25, 0x21, 0x8d, 0x8d, 0x08, 0x09, 0xa0, 0x36, + 0x94, 0x69, 0x24, 0xe3, 0x55, 0xb7, 0xcb, 0x34, 0xca, 0x14, 0x55, 0x73, 0x8a, 0xac, 0x7f, 0x54, + 0x01, 0x32, 0x2d, 0xc8, 0x86, 0x1e, 0xa1, 0x0e, 0xc3, 0xb1, 0x28, 0x41, 0x9c, 0xe3, 0x11, 0xc7, + 0xcc, 0x89, 0xb1, 0x97, 0xc4, 0x8c, 0x9c, 0x8b, 0xf3, 0x13, 0x6e, 0xdf, 0x52, 0x6e, 0x8f, 0xd9, + 0x66, 0xdf, 0x26, 0xf4, 0x50, 0xed, 0xdb, 0x12, 0xdb, 0x6c, 0xb3, 0x0b, 0x1d, 0xc0, 0xad, 0x4c, + 0xa6, 0x9f, 0x13, 0x57, 0xbe, 0x4a, 0xdc, 0x72, 0x2a, 0xce, 0xcf, 0x44, 0xed, 0xc2, 0x32, 0xa1, + 0xce, 0xd7, 0x09, 0x4e, 0x0a, 0x82, 0x2a, 0x57, 0x09, 0xea, 0x10, 0xfa, 0x0b, 0xb9, 0x21, 0x13, + 0xd3, 0x87, 0x0f, 0x72, 0x5e, 0x8a, 0xe7, 0x9e, 0x13, 0x56, 0xbd, 0x4a, 0xd8, 0x6a, 0x6a, 0x95, + 0xc8, 0x07, 0x99, 0xc4, 0x9f, 0xc1, 0x2a, 0xa1, 0xce, 0x85, 0x4b, 0xf8, 0xb8, 0xb8, 0xb9, 0xf7, + 0x38, 0x29, 0x3e, 0xba, 0x45, 0x59, 0xca, 0xc9, 0x00, 0xc7, 0x83, 0x82, 0x93, 0xb5, 0xf7, 0x38, + 0xf9, 0x4a, 0x6e, 0xc8, 0xc4, 0xbc, 0x84, 0x0e, 0xa1, 0xe3, 0xd6, 0xcc, 0x5f, 0x25, 0x64, 0x91, + 0xd0, 0xa2, 0x25, 0x5b, 0xd0, 0x61, 0xd8, 0xe3, 0x34, 0xce, 0x5f, 0x82, 0x85, 0xab, 0x44, 0x2c, + 0x69, 0xfe, 0x54, 0x86, 0xf5, 0x2b, 0x68, 0xee, 0x27, 0x03, 0xcc, 0x87, 0xc7, 0x69, 0x32, 0xb8, + 0xb1, 0xfc, 0x63, 0xfd, 0xab, 0x0c, 0x8d, 0xed, 0x41, 0x4c, 0x93, 0xa8, 0x90, 0x93, 0xd5, 0x23, + 0x1d, 0xcf, 0xc9, 0x92, 0x45, 0xe6, 0x64, 0xc5, 0xfc, 0x04, 0x9a, 0x81, 0x7c, 0xba, 0x9a, 0x5f, + 0xe5, 0xa1, 0xce, 0xc4, 0xa3, 0xb6, 0x1b, 0x41, 0x2e, 0x99, 0x6d, 0x00, 0x44, 0xc4, 0x67, 0x7a, + 0x8f, 0x4a, 0x47, 0x8b, 0xba, 0x22, 0x34, 0x29, 0xda, 0xae, 0x47, 0x69, 0xb6, 0xfe, 0x0c, 0x1a, + 0xc7, 0x22, 0x48, 0x7a, 0x43, 0x21, 0x19, 0x65, 0xd1, 0xb3, 0xe1, 0x38, 0x7b, 0x84, 0xfb, 0xd0, + 0x3a, 0x55, 0x21, 0xd3, 0x9b, 0xd4, 0x1d, 0xba, 0xaf, 0x3d, 0xc9, 0xfc, 0xdd, 0xc8, 0x47, 0x56, + 0x1d, 0x40, 0xf3, 0x34, 0x87, 0xea, 0x1d, 0x42, 0x67, 0x82, 0x65, 0x4a, 0x0e, 0x5a, 0xcf, 0xe7, + 0xa0, 0xc6, 0x26, 0x52, 0x8a, 0xf2, 0x3b, 0xf3, 0x79, 0xe9, 0xe7, 0xb0, 0x3a, 0x5e, 0xe6, 0xe8, + 0xa2, 0xec, 0x09, 0x34, 0x3d, 0x69, 0x5d, 0xe1, 0x04, 0x3a, 0x13, 0x76, 0xdb, 0x0d, 0x2f, 0x03, + 0x2c, 0x1f, 0xd0, 0xdb, 0x98, 0x70, 0x7c, 0xc8, 0x63, 0xec, 0x06, 0x37, 0x51, 0x35, 0x23, 0xa8, + 0xca, 0x4f, 0x6c, 0x45, 0x16, 0x85, 0x72, 0x6d, 0x7d, 0x0c, 0xcb, 0x05, 0x2d, 0xda, 0xe4, 0x25, + 0xa8, 0x0c, 0x71, 0x28, 0xa5, 0xb7, 0x6c, 0xb1, 0xb4, 0x5c, 0xe8, 0xd8, 0xd8, 0xf5, 0x6f, 0xce, + 0x1a, 0xad, 0xa2, 0x92, 0xa9, 0x58, 0x07, 0x94, 0x57, 0xa1, 0x4d, 0x31, 0x56, 0x97, 0x72, 0x56, + 0xbf, 0x86, 0xce, 0xf6, 0x90, 0x32, 0x7c, 0xc8, 0x7d, 0x12, 0xde, 0x44, 0x99, 0xff, 0x2d, 0x2c, + 0xbf, 0xe1, 0xa3, 0xb7, 0x42, 0x18, 0x23, 0xdf, 0xe0, 0x1b, 0xf2, 0x2f, 0xa6, 0x17, 0xc6, 0xbf, + 0x98, 0x5e, 0x88, 0x0a, 0xdf, 0xa3, 0xc3, 0x24, 0x08, 0xe5, 0x75, 0x6f, 0xd9, 0x1a, 0xb2, 0xfe, + 0x5e, 0x82, 0x15, 0xd5, 0x83, 0x1f, 0xaa, 0xd6, 0xd3, 0xa8, 0xef, 0xc1, 0xc2, 0x29, 0x65, 0x3c, + 0x74, 0x03, 0xac, 0x55, 0xa7, 0xb0, 0x10, 0x2f, 0x7a, 0xd6, 0xb2, 0xec, 0x0a, 0xc4, 0xb2, 0xd0, + 0x18, 0x57, 0xae, 0x6e, 0x8c, 0x27, 0x5a, 0xdf, 0xea, 0x64, 0xeb, 0x8b, 0xfe, 0x1f, 0xc0, 0x30, + 0x11, 0x5f, 0x7e, 0xf8, 0xeb, 0x76, 0x5d, 0x63, 0x0e, 0x7c, 0xf4, 0x00, 0x16, 0x07, 0xc2, 0x4a, + 0xe7, 0x94, 0xd2, 0x33, 0x27, 0x72, 0xf9, 0xa9, 0x6c, 0xb4, 0xeb, 0x76, 0x4b, 0xa2, 0xf7, 0x29, + 0x3d, 0xeb, 0xbb, 0xfc, 0xd4, 0xba, 0x0d, 0xb7, 0x76, 0x30, 0xe3, 0x31, 0x1d, 0x15, 0xbd, 0xb3, + 0x5c, 0xa8, 0x1f, 0xf4, 0x5f, 0xfa, 0x7e, 0x8c, 0x19, 0x43, 0x0f, 0xa0, 0x76, 0xe2, 0x06, 0x64, + 0xa8, 0x1e, 0x60, 0xdb, 0xe4, 0xa7, 0x83, 0xfe, 0x4f, 0x25, 0xd6, 0xd6, 0x54, 0x91, 0xf4, 0x5c, + 0xb5, 0x45, 0x87, 0xdb, 0x80, 0xe2, 0x9e, 0x04, 0x2e, 0x3b, 0xd3, 0x9f, 0x76, 0xb9, 0xb6, 0xfe, + 0x58, 0x82, 0xfa, 0x41, 0xc8, 0x71, 0x7c, 0xe2, 0x7a, 0xb2, 0x69, 0x53, 0x43, 0x04, 0x1d, 0x4c, + 0x0d, 0x89, 0x9d, 0x32, 0xc4, 0x4a, 0xa0, 0x5c, 0x8b, 0xfc, 0x94, 0x1a, 0x97, 0xc6, 0x73, 0xd1, + 0x18, 0xa5, 0x09, 0x76, 0x9e, 0x47, 0x9c, 0x48, 0xc0, 0x13, 0x5d, 0x47, 0x88, 0xa5, 0x50, 0x78, + 0x7a, 0x21, 0x18, 0x74, 0xf4, 0x34, 0x24, 0xab, 0x73, 0x8f, 0x48, 0x82, 0x0a, 0x99, 0x01, 0xad, + 0xe7, 0x00, 0xa9, 0xbd, 0x4c, 0xd4, 0x78, 0x19, 0xa4, 0xcb, 0x0c, 0x63, 0x83, 0xc1, 0xdb, 0x39, + 0x16, 0xeb, 0x5b, 0x98, 0xb3, 0x69, 0xc2, 0xd5, 0xa3, 0xc1, 0xba, 0xff, 0xab, 0xdb, 0x72, 0x2d, + 0xb4, 0x0e, 0x5c, 0x8e, 0x2f, 0xdc, 0x91, 0x09, 0x9d, 0x06, 0x73, 0x81, 0xa9, 0x14, 0x02, 0x23, + 0xba, 0x5c, 0xd9, 0xc4, 0x49, 0xa7, 0xea, 0xb6, 0x86, 0xc4, 0xc7, 0x8a, 0x79, 0x34, 0xc2, 0xd2, + 0xad, 0x96, 0xad, 0x00, 0xeb, 0x21, 0xd4, 0xa4, 0x72, 0x71, 0xbd, 0xf4, 0x4a, 0xdb, 0xdc, 0x50, + 0x36, 0x4b, 0x9c, 0xad, 0x49, 0xd6, 0x9e, 0xe9, 0x43, 0x33, 0x57, 0xf4, 0xb5, 0x7f, 0x08, 0x75, + 0x62, 0x70, 0x3a, 0x59, 0x4e, 0x78, 0x9d, 0x71, 0x58, 0x3b, 0xb0, 0xfc, 0xd2, 0xf7, 0xbf, 0xab, + 0x94, 0x3d, 0x33, 0xac, 0xf9, 0xae, 0x82, 0x9e, 0xc1, 0xb2, 0xf2, 0x4b, 0xf9, 0x69, 0xa4, 0x7c, + 0x0f, 0x6a, 0xb1, 0x89, 0x49, 0x29, 0x9b, 0x6e, 0x69, 0x26, 0x4d, 0x13, 0x8f, 0x45, 0x34, 0xe9, + 0xd9, 0x91, 0x9a, 0xc7, 0xb2, 0x0c, 0x1d, 0x41, 0x28, 0xc8, 0xb4, 0x7e, 0x0d, 0xcb, 0xaf, 0xc3, + 0x21, 0x09, 0xf1, 0x76, 0xff, 0xe8, 0x15, 0x4e, 0xb3, 0x32, 0x82, 0xaa, 0x28, 0xb9, 0xa4, 0xa2, + 0x05, 0x5b, 0xae, 0x45, 0x9a, 0x0a, 0x8f, 0x1d, 0x2f, 0x4a, 0x98, 0x1e, 0x27, 0xd5, 0xc2, 0xe3, + 0xed, 0x28, 0x61, 0xe8, 0x03, 0x10, 0x9f, 0x7e, 0x87, 0x86, 0xc3, 0x91, 0x3c, 0xfd, 0x05, 0x7b, + 0xde, 0x8b, 0x92, 0xd7, 0xe1, 0x70, 0x64, 0xfd, 0x50, 0x36, 0xd0, 0x18, 0xfb, 0xb6, 0x1b, 0xfa, + 0x34, 0xd8, 0xc1, 0xe7, 0x39, 0x0d, 0x69, 0xb3, 0x66, 0x72, 0xf2, 0x33, 0x58, 0xde, 0x13, 0xc4, + 0x1d, 0xcc, 0x5d, 0x32, 0xcc, 0xf9, 0xdd, 0x0e, 0x70, 0xe0, 0x1c, 0x0f, 0xa9, 0x77, 0xe6, 0x88, + 0xdc, 0xaa, 0xcd, 0x12, 0x45, 0xc6, 0x96, 0x40, 0x1e, 0x92, 0x6f, 0x44, 0xf4, 0x57, 0x8a, 0x9b, + 0x75, 0xf2, 0x7f, 0x04, 0x2b, 0xc5, 0xdd, 0xaa, 0xf8, 0xd6, 0x55, 0x52, 0x27, 0x2f, 0x43, 0x96, + 0xd7, 0xd6, 0x9f, 0x4a, 0x30, 0xaf, 0xf3, 0x9d, 0xbc, 0xd6, 0x31, 0x39, 0xc7, 0x71, 0xfa, 0xde, + 0x25, 0x24, 0xba, 0x5a, 0xb5, 0x72, 0x68, 0xc4, 0x09, 0x4d, 0xb3, 0x68, 0x4b, 0x61, 0x5f, 0x2b, + 0x64, 0xee, 0xf6, 0x57, 0x0a, 0xb7, 0x7f, 0x15, 0x6a, 0x27, 0x8c, 0x8f, 0xa2, 0xf4, 0x55, 0x28, + 0x48, 0xbc, 0x2f, 0x23, 0x6f, 0x4e, 0xca, 0x33, 0x20, 0xfa, 0x10, 0x1a, 0x01, 0x4d, 0x42, 0xee, + 0x44, 0x94, 0x84, 0x5c, 0xbf, 0x79, 0x90, 0xa8, 0xbe, 0xc0, 0x58, 0xbf, 0x2d, 0x41, 0x4d, 0xcd, + 0x39, 0x45, 0x7f, 0x92, 0x7e, 0x68, 0xca, 0x44, 0x7e, 0xb4, 0xa5, 0x2e, 0x9d, 0x9c, 0xa4, 0xa6, + 0xdb, 0x30, 0x7f, 0x1e, 0xa8, 0x94, 0xab, 0x4d, 0x3b, 0x0f, 0x44, 0xae, 0x15, 0x9e, 0x65, 0xdf, + 0x2b, 0x49, 0x57, 0x26, 0xb6, 0x52, 0xac, 0x64, 0x9b, 0x69, 0xa9, 0xf5, 0x4b, 0xd1, 0x96, 0xa5, + 0x33, 0xbe, 0x25, 0xa8, 0x24, 0xa9, 0x31, 0x62, 0x29, 0x30, 0x83, 0xf4, 0x4b, 0x27, 0x96, 0xe8, + 0x01, 0xb4, 0x5d, 0xdf, 0x27, 0x62, 0xbb, 0x3b, 0xdc, 0x23, 0xbe, 0x19, 0x54, 0x8d, 0x61, 0x3f, + 0xe9, 0xc1, 0x82, 0x49, 0xe6, 0xa8, 0x06, 0xe5, 0xf3, 0x27, 0x4b, 0xff, 0x27, 0xff, 0x7f, 0xb4, + 0x54, 0xda, 0xfc, 0x73, 0x1b, 0x9a, 0x2f, 0x07, 0x38, 0xe4, 0xba, 0x89, 0x40, 0x7b, 0xb0, 0x38, + 0x36, 0x94, 0x46, 0xba, 0xab, 0x9c, 0x3e, 0xab, 0xee, 0xad, 0x6e, 0xa8, 0x21, 0xf7, 0x86, 0x19, + 0x72, 0x6f, 0xec, 0x06, 0x11, 0x1f, 0xa1, 0x5d, 0x68, 0x17, 0xc7, 0xb7, 0xe8, 0x8e, 0xf9, 0x26, + 0x4e, 0x19, 0xea, 0xce, 0x14, 0xb3, 0x07, 0x8b, 0x63, 0x93, 0x5c, 0x63, 0xcf, 0xf4, 0x01, 0xef, + 0x4c, 0x41, 0x2f, 0xa0, 0x91, 0x1b, 0xdd, 0xa2, 0xae, 0x12, 0x32, 0x39, 0xcd, 0x9d, 0x29, 0x60, + 0x1b, 0x5a, 0x85, 0x69, 0x2a, 0xea, 0x69, 0x7f, 0xa6, 0x8c, 0x58, 0x67, 0x0a, 0xd9, 0x82, 0x46, + 0x6e, 0xa8, 0x69, 0xac, 0x98, 0x9c, 0x9c, 0xf6, 0x3e, 0x98, 0x42, 0xd1, 0x2f, 0x73, 0x1f, 0x5a, + 0x85, 0x11, 0xa4, 0x31, 0x64, 0xda, 0xf8, 0xb3, 0x77, 0x67, 0x2a, 0x4d, 0x4b, 0xda, 0x83, 0xc5, + 0xb1, 0x81, 0xa4, 0x09, 0xee, 0xf4, 0x39, 0xe5, 0x4c, 0xb7, 0xbe, 0x90, 0x87, 0x9d, 0xab, 0xc0, + 0x73, 0x87, 0x3d, 0x39, 0x7e, 0xec, 0xdd, 0x9d, 0x4e, 0xd4, 0x56, 0xed, 0x42, 0xbb, 0x38, 0x79, + 0x34, 0xc2, 0xa6, 0xce, 0x23, 0xaf, 0xbe, 0x39, 0x85, 0x21, 0x64, 0x76, 0x73, 0xa6, 0xcd, 0x26, + 0x67, 0x0a, 0x7a, 0x09, 0xa0, 0x0b, 0x75, 0x9f, 0x84, 0xe9, 0x91, 0x4d, 0x34, 0x08, 0xe9, 0x91, + 0x4d, 0x29, 0xea, 0x5f, 0x00, 0xa8, 0xfa, 0xda, 0xa7, 0x09, 0x47, 0xb7, 0x8d, 0x19, 0x63, 0x45, + 0x7d, 0xaf, 0x3b, 0x49, 0x98, 0x10, 0x80, 0xe3, 0xf8, 0x3a, 0x02, 0x9e, 0x03, 0x64, 0x75, 0xbb, + 0x11, 0x30, 0x51, 0xc9, 0x5f, 0x11, 0x83, 0x66, 0xbe, 0x4a, 0x47, 0xda, 0xd7, 0x29, 0x95, 0xfb, + 0x4c, 0x11, 0x4f, 0xa1, 0x99, 0x2f, 0x16, 0x8c, 0x88, 0x29, 0x05, 0x44, 0x6f, 0xfc, 0x23, 0x8f, + 0x7e, 0x62, 0x2e, 0x6a, 0x86, 0x2a, 0x5c, 0xd4, 0xff, 0x48, 0xc2, 0x58, 0x91, 0x51, 0xcc, 0x23, + 0xef, 0x97, 0xf0, 0x63, 0x68, 0xe6, 0xab, 0x0b, 0x63, 0xff, 0x94, 0x8a, 0xa3, 0x57, 0xa8, 0x30, + 0xd0, 0x0b, 0x68, 0x17, 0x2b, 0x0b, 0x94, 0x7b, 0x94, 0x13, 0xf5, 0x46, 0x6f, 0x69, 0x4c, 0x31, + 0x43, 0x8f, 0x01, 0xb2, 0x0a, 0xc4, 0x9c, 0xdd, 0x44, 0x4d, 0x32, 0xa6, 0x75, 0x1b, 0x5a, 0x85, + 0xce, 0xc6, 0x64, 0x89, 0x69, 0xed, 0xce, 0x55, 0x49, 0xbc, 0xd8, 0x41, 0x18, 0xd3, 0xa7, 0xf6, + 0x15, 0x57, 0xdd, 0x9e, 0x7c, 0xb5, 0x64, 0x42, 0x37, 0xa5, 0x82, 0x7a, 0xcf, 0x6b, 0xce, 0x57, + 0x44, 0xb9, 0xd7, 0x3c, 0xa5, 0x50, 0x9a, 0x29, 0x68, 0x1f, 0x16, 0xf7, 0x30, 0xcf, 0x97, 0x3c, + 0xc6, 0x9c, 0x29, 0x35, 0x54, 0xaf, 0x37, 0x8d, 0xa4, 0x9e, 0xd4, 0x56, 0xf3, 0xaf, 0xef, 0xee, + 0x95, 0xfe, 0xf6, 0xee, 0x5e, 0xe9, 0x9f, 0xef, 0xee, 0x95, 0x8e, 0x6b, 0x52, 0xcf, 0xe3, 0x7f, + 0x07, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x19, 0x5e, 0x68, 0x12, 0x1e, 0x00, 0x00, } diff --git a/virtcontainers/hypervisor.go b/virtcontainers/hypervisor.go index 21474d49e9..a6fe8e3760 100644 --- a/virtcontainers/hypervisor.go +++ b/virtcontainers/hypervisor.go @@ -240,6 +240,9 @@ type HypervisorConfig struct { // DevicesStatePath is the VM device state file path. Used when either BootToBeTemplate or // BootFromTemplate is true. DevicesStatePath string + + // GuestHookPath is the path within the VM that will be used for 'drop-in' hooks + GuestHookPath string } func (conf *HypervisorConfig) checkTemplateConfig() error { diff --git a/virtcontainers/kata_agent.go b/virtcontainers/kata_agent.go index 41e0d1541a..68bcd2e783 100644 --- a/virtcontainers/kata_agent.go +++ b/virtcontainers/kata_agent.go @@ -578,10 +578,11 @@ func (k *kataAgent) startSandbox(sandbox *Sandbox) error { } req := &grpc.CreateSandboxRequest{ - Hostname: hostname, - Storages: storages, - SandboxPidns: sandbox.sharePidNs, - SandboxId: sandbox.id, + Hostname: hostname, + Storages: storages, + SandboxPidns: sandbox.sharePidNs, + SandboxId: sandbox.id, + GuestHookPath: sandbox.config.HypervisorConfig.GuestHookPath, } _, err = k.sendReq(req)