From b9ee03b2c13bfeb3a6e6cf7a3c73be56ebcd40bb Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Thu, 13 Dec 2018 14:41:31 -0800 Subject: [PATCH 1/6] protos --- drivers/shared/executor/proto/executor.pb.go | 38 +- plugins/drivers/proto/driver.pb.go | 624 ++++++++++--------- plugins/drivers/proto/driver.proto | 19 +- 3 files changed, 376 insertions(+), 305 deletions(-) diff --git a/drivers/shared/executor/proto/executor.pb.go b/drivers/shared/executor/proto/executor.pb.go index 6f57a0263..3c6d07947 100644 --- a/drivers/shared/executor/proto/executor.pb.go +++ b/drivers/shared/executor/proto/executor.pb.go @@ -47,7 +47,7 @@ func (m *LaunchRequest) Reset() { *m = LaunchRequest{} } func (m *LaunchRequest) String() string { return proto.CompactTextString(m) } func (*LaunchRequest) ProtoMessage() {} func (*LaunchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{0} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{0} } func (m *LaunchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LaunchRequest.Unmarshal(m, b) @@ -162,7 +162,7 @@ func (m *LaunchResponse) Reset() { *m = LaunchResponse{} } func (m *LaunchResponse) String() string { return proto.CompactTextString(m) } func (*LaunchResponse) ProtoMessage() {} func (*LaunchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{1} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{1} } func (m *LaunchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LaunchResponse.Unmarshal(m, b) @@ -199,7 +199,7 @@ func (m *WaitRequest) Reset() { *m = WaitRequest{} } func (m *WaitRequest) String() string { return proto.CompactTextString(m) } func (*WaitRequest) ProtoMessage() {} func (*WaitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{2} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{2} } func (m *WaitRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WaitRequest.Unmarshal(m, b) @@ -230,7 +230,7 @@ func (m *WaitResponse) Reset() { *m = WaitResponse{} } func (m *WaitResponse) String() string { return proto.CompactTextString(m) } func (*WaitResponse) ProtoMessage() {} func (*WaitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{3} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{3} } func (m *WaitResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WaitResponse.Unmarshal(m, b) @@ -269,7 +269,7 @@ func (m *ShutdownRequest) Reset() { *m = ShutdownRequest{} } func (m *ShutdownRequest) String() string { return proto.CompactTextString(m) } func (*ShutdownRequest) ProtoMessage() {} func (*ShutdownRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{4} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{4} } func (m *ShutdownRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ShutdownRequest.Unmarshal(m, b) @@ -313,7 +313,7 @@ func (m *ShutdownResponse) Reset() { *m = ShutdownResponse{} } func (m *ShutdownResponse) String() string { return proto.CompactTextString(m) } func (*ShutdownResponse) ProtoMessage() {} func (*ShutdownResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{5} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{5} } func (m *ShutdownResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ShutdownResponse.Unmarshal(m, b) @@ -344,7 +344,7 @@ func (m *UpdateResourcesRequest) Reset() { *m = UpdateResourcesRequest{} func (m *UpdateResourcesRequest) String() string { return proto.CompactTextString(m) } func (*UpdateResourcesRequest) ProtoMessage() {} func (*UpdateResourcesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{6} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{6} } func (m *UpdateResourcesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateResourcesRequest.Unmarshal(m, b) @@ -381,7 +381,7 @@ func (m *UpdateResourcesResponse) Reset() { *m = UpdateResourcesResponse func (m *UpdateResourcesResponse) String() string { return proto.CompactTextString(m) } func (*UpdateResourcesResponse) ProtoMessage() {} func (*UpdateResourcesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{7} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{7} } func (m *UpdateResourcesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateResourcesResponse.Unmarshal(m, b) @@ -411,7 +411,7 @@ func (m *VersionRequest) Reset() { *m = VersionRequest{} } func (m *VersionRequest) String() string { return proto.CompactTextString(m) } func (*VersionRequest) ProtoMessage() {} func (*VersionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{8} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{8} } func (m *VersionRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VersionRequest.Unmarshal(m, b) @@ -442,7 +442,7 @@ func (m *VersionResponse) Reset() { *m = VersionResponse{} } func (m *VersionResponse) String() string { return proto.CompactTextString(m) } func (*VersionResponse) ProtoMessage() {} func (*VersionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{9} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{9} } func (m *VersionResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_VersionResponse.Unmarshal(m, b) @@ -479,7 +479,7 @@ func (m *StatsRequest) Reset() { *m = StatsRequest{} } func (m *StatsRequest) String() string { return proto.CompactTextString(m) } func (*StatsRequest) ProtoMessage() {} func (*StatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{10} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{10} } func (m *StatsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StatsRequest.Unmarshal(m, b) @@ -510,7 +510,7 @@ func (m *StatsResponse) Reset() { *m = StatsResponse{} } func (m *StatsResponse) String() string { return proto.CompactTextString(m) } func (*StatsResponse) ProtoMessage() {} func (*StatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{11} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{11} } func (m *StatsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StatsResponse.Unmarshal(m, b) @@ -548,7 +548,7 @@ func (m *SignalRequest) Reset() { *m = SignalRequest{} } func (m *SignalRequest) String() string { return proto.CompactTextString(m) } func (*SignalRequest) ProtoMessage() {} func (*SignalRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{12} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{12} } func (m *SignalRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRequest.Unmarshal(m, b) @@ -585,7 +585,7 @@ func (m *SignalResponse) Reset() { *m = SignalResponse{} } func (m *SignalResponse) String() string { return proto.CompactTextString(m) } func (*SignalResponse) ProtoMessage() {} func (*SignalResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{13} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{13} } func (m *SignalResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResponse.Unmarshal(m, b) @@ -618,7 +618,7 @@ func (m *ExecRequest) Reset() { *m = ExecRequest{} } func (m *ExecRequest) String() string { return proto.CompactTextString(m) } func (*ExecRequest) ProtoMessage() {} func (*ExecRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{14} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{14} } func (m *ExecRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExecRequest.Unmarshal(m, b) @@ -671,7 +671,7 @@ func (m *ExecResponse) Reset() { *m = ExecResponse{} } func (m *ExecResponse) String() string { return proto.CompactTextString(m) } func (*ExecResponse) ProtoMessage() {} func (*ExecResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{15} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{15} } func (m *ExecResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExecResponse.Unmarshal(m, b) @@ -719,7 +719,7 @@ func (m *ProcessState) Reset() { *m = ProcessState{} } func (m *ProcessState) String() string { return proto.CompactTextString(m) } func (*ProcessState) ProtoMessage() {} func (*ProcessState) Descriptor() ([]byte, []int) { - return fileDescriptor_executor_b646d273b48eddd5, []int{16} + return fileDescriptor_executor_6afb14e0d1b270fe, []int{16} } func (m *ProcessState) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ProcessState.Unmarshal(m, b) @@ -1091,10 +1091,10 @@ var _Executor_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("drivers/shared/executor/proto/executor.proto", fileDescriptor_executor_b646d273b48eddd5) + proto.RegisterFile("drivers/shared/executor/proto/executor.proto", fileDescriptor_executor_6afb14e0d1b270fe) } -var fileDescriptor_executor_b646d273b48eddd5 = []byte{ +var fileDescriptor_executor_6afb14e0d1b270fe = []byte{ // 871 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x4b, 0x8f, 0xdc, 0x44, 0x10, 0xce, 0xac, 0x77, 0x5e, 0xe5, 0xd9, 0x87, 0x5a, 0x68, 0x71, 0xcc, 0x21, 0x83, 0x0f, 0x64, diff --git a/plugins/drivers/proto/driver.pb.go b/plugins/drivers/proto/driver.pb.go index 7199447ff..cdba16ecc 100644 --- a/plugins/drivers/proto/driver.pb.go +++ b/plugins/drivers/proto/driver.pb.go @@ -50,7 +50,7 @@ func (x TaskState) String() string { return proto.EnumName(TaskState_name, int32(x)) } func (TaskState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{0} + return fileDescriptor_driver_9320f8b051f51d4e, []int{0} } type FingerprintResponse_HealthState int32 @@ -76,7 +76,7 @@ func (x FingerprintResponse_HealthState) String() string { return proto.EnumName(FingerprintResponse_HealthState_name, int32(x)) } func (FingerprintResponse_HealthState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{5, 0} + return fileDescriptor_driver_9320f8b051f51d4e, []int{5, 0} } type StartTaskResponse_Result int32 @@ -102,7 +102,7 @@ func (x StartTaskResponse_Result) String() string { return proto.EnumName(StartTaskResponse_Result_name, int32(x)) } func (StartTaskResponse_Result) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{9, 0} + return fileDescriptor_driver_9320f8b051f51d4e, []int{9, 0} } type DriverCapabilities_FSIsolation int32 @@ -128,7 +128,7 @@ func (x DriverCapabilities_FSIsolation) String() string { return proto.EnumName(DriverCapabilities_FSIsolation_name, int32(x)) } func (DriverCapabilities_FSIsolation) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{25, 0} + return fileDescriptor_driver_9320f8b051f51d4e, []int{25, 0} } type CPUUsage_Fields int32 @@ -163,7 +163,7 @@ func (x CPUUsage_Fields) String() string { return proto.EnumName(CPUUsage_Fields_name, int32(x)) } func (CPUUsage_Fields) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{41, 0} + return fileDescriptor_driver_9320f8b051f51d4e, []int{43, 0} } type MemoryUsage_Fields int32 @@ -195,7 +195,7 @@ func (x MemoryUsage_Fields) String() string { return proto.EnumName(MemoryUsage_Fields_name, int32(x)) } func (MemoryUsage_Fields) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{42, 0} + return fileDescriptor_driver_9320f8b051f51d4e, []int{44, 0} } type TaskConfigSchemaRequest struct { @@ -208,7 +208,7 @@ func (m *TaskConfigSchemaRequest) Reset() { *m = TaskConfigSchemaRequest func (m *TaskConfigSchemaRequest) String() string { return proto.CompactTextString(m) } func (*TaskConfigSchemaRequest) ProtoMessage() {} func (*TaskConfigSchemaRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{0} + return fileDescriptor_driver_9320f8b051f51d4e, []int{0} } func (m *TaskConfigSchemaRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TaskConfigSchemaRequest.Unmarshal(m, b) @@ -240,7 +240,7 @@ func (m *TaskConfigSchemaResponse) Reset() { *m = TaskConfigSchemaRespon func (m *TaskConfigSchemaResponse) String() string { return proto.CompactTextString(m) } func (*TaskConfigSchemaResponse) ProtoMessage() {} func (*TaskConfigSchemaResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{1} + return fileDescriptor_driver_9320f8b051f51d4e, []int{1} } func (m *TaskConfigSchemaResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TaskConfigSchemaResponse.Unmarshal(m, b) @@ -277,7 +277,7 @@ func (m *CapabilitiesRequest) Reset() { *m = CapabilitiesRequest{} } func (m *CapabilitiesRequest) String() string { return proto.CompactTextString(m) } func (*CapabilitiesRequest) ProtoMessage() {} func (*CapabilitiesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{2} + return fileDescriptor_driver_9320f8b051f51d4e, []int{2} } func (m *CapabilitiesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CapabilitiesRequest.Unmarshal(m, b) @@ -312,7 +312,7 @@ func (m *CapabilitiesResponse) Reset() { *m = CapabilitiesResponse{} } func (m *CapabilitiesResponse) String() string { return proto.CompactTextString(m) } func (*CapabilitiesResponse) ProtoMessage() {} func (*CapabilitiesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{3} + return fileDescriptor_driver_9320f8b051f51d4e, []int{3} } func (m *CapabilitiesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CapabilitiesResponse.Unmarshal(m, b) @@ -349,7 +349,7 @@ func (m *FingerprintRequest) Reset() { *m = FingerprintRequest{} } func (m *FingerprintRequest) String() string { return proto.CompactTextString(m) } func (*FingerprintRequest) ProtoMessage() {} func (*FingerprintRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{4} + return fileDescriptor_driver_9320f8b051f51d4e, []int{4} } func (m *FingerprintRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FingerprintRequest.Unmarshal(m, b) @@ -392,7 +392,7 @@ func (m *FingerprintResponse) Reset() { *m = FingerprintResponse{} } func (m *FingerprintResponse) String() string { return proto.CompactTextString(m) } func (*FingerprintResponse) ProtoMessage() {} func (*FingerprintResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{5} + return fileDescriptor_driver_9320f8b051f51d4e, []int{5} } func (m *FingerprintResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FingerprintResponse.Unmarshal(m, b) @@ -447,7 +447,7 @@ func (m *RecoverTaskRequest) Reset() { *m = RecoverTaskRequest{} } func (m *RecoverTaskRequest) String() string { return proto.CompactTextString(m) } func (*RecoverTaskRequest) ProtoMessage() {} func (*RecoverTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{6} + return fileDescriptor_driver_9320f8b051f51d4e, []int{6} } func (m *RecoverTaskRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RecoverTaskRequest.Unmarshal(m, b) @@ -491,7 +491,7 @@ func (m *RecoverTaskResponse) Reset() { *m = RecoverTaskResponse{} } func (m *RecoverTaskResponse) String() string { return proto.CompactTextString(m) } func (*RecoverTaskResponse) ProtoMessage() {} func (*RecoverTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{7} + return fileDescriptor_driver_9320f8b051f51d4e, []int{7} } func (m *RecoverTaskResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RecoverTaskResponse.Unmarshal(m, b) @@ -523,7 +523,7 @@ func (m *StartTaskRequest) Reset() { *m = StartTaskRequest{} } func (m *StartTaskRequest) String() string { return proto.CompactTextString(m) } func (*StartTaskRequest) ProtoMessage() {} func (*StartTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{8} + return fileDescriptor_driver_9320f8b051f51d4e, []int{8} } func (m *StartTaskRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StartTaskRequest.Unmarshal(m, b) @@ -577,7 +577,7 @@ func (m *StartTaskResponse) Reset() { *m = StartTaskResponse{} } func (m *StartTaskResponse) String() string { return proto.CompactTextString(m) } func (*StartTaskResponse) ProtoMessage() {} func (*StartTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{9} + return fileDescriptor_driver_9320f8b051f51d4e, []int{9} } func (m *StartTaskResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StartTaskResponse.Unmarshal(m, b) @@ -637,7 +637,7 @@ func (m *WaitTaskRequest) Reset() { *m = WaitTaskRequest{} } func (m *WaitTaskRequest) String() string { return proto.CompactTextString(m) } func (*WaitTaskRequest) ProtoMessage() {} func (*WaitTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{10} + return fileDescriptor_driver_9320f8b051f51d4e, []int{10} } func (m *WaitTaskRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WaitTaskRequest.Unmarshal(m, b) @@ -678,7 +678,7 @@ func (m *WaitTaskResponse) Reset() { *m = WaitTaskResponse{} } func (m *WaitTaskResponse) String() string { return proto.CompactTextString(m) } func (*WaitTaskResponse) ProtoMessage() {} func (*WaitTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{11} + return fileDescriptor_driver_9320f8b051f51d4e, []int{11} } func (m *WaitTaskResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WaitTaskResponse.Unmarshal(m, b) @@ -730,7 +730,7 @@ func (m *StopTaskRequest) Reset() { *m = StopTaskRequest{} } func (m *StopTaskRequest) String() string { return proto.CompactTextString(m) } func (*StopTaskRequest) ProtoMessage() {} func (*StopTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{12} + return fileDescriptor_driver_9320f8b051f51d4e, []int{12} } func (m *StopTaskRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StopTaskRequest.Unmarshal(m, b) @@ -781,7 +781,7 @@ func (m *StopTaskResponse) Reset() { *m = StopTaskResponse{} } func (m *StopTaskResponse) String() string { return proto.CompactTextString(m) } func (*StopTaskResponse) ProtoMessage() {} func (*StopTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{13} + return fileDescriptor_driver_9320f8b051f51d4e, []int{13} } func (m *StopTaskResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StopTaskResponse.Unmarshal(m, b) @@ -815,7 +815,7 @@ func (m *DestroyTaskRequest) Reset() { *m = DestroyTaskRequest{} } func (m *DestroyTaskRequest) String() string { return proto.CompactTextString(m) } func (*DestroyTaskRequest) ProtoMessage() {} func (*DestroyTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{14} + return fileDescriptor_driver_9320f8b051f51d4e, []int{14} } func (m *DestroyTaskRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DestroyTaskRequest.Unmarshal(m, b) @@ -859,7 +859,7 @@ func (m *DestroyTaskResponse) Reset() { *m = DestroyTaskResponse{} } func (m *DestroyTaskResponse) String() string { return proto.CompactTextString(m) } func (*DestroyTaskResponse) ProtoMessage() {} func (*DestroyTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{15} + return fileDescriptor_driver_9320f8b051f51d4e, []int{15} } func (m *DestroyTaskResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DestroyTaskResponse.Unmarshal(m, b) @@ -891,7 +891,7 @@ func (m *InspectTaskRequest) Reset() { *m = InspectTaskRequest{} } func (m *InspectTaskRequest) String() string { return proto.CompactTextString(m) } func (*InspectTaskRequest) ProtoMessage() {} func (*InspectTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{16} + return fileDescriptor_driver_9320f8b051f51d4e, []int{16} } func (m *InspectTaskRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InspectTaskRequest.Unmarshal(m, b) @@ -934,7 +934,7 @@ func (m *InspectTaskResponse) Reset() { *m = InspectTaskResponse{} } func (m *InspectTaskResponse) String() string { return proto.CompactTextString(m) } func (*InspectTaskResponse) ProtoMessage() {} func (*InspectTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{17} + return fileDescriptor_driver_9320f8b051f51d4e, []int{17} } func (m *InspectTaskResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InspectTaskResponse.Unmarshal(m, b) @@ -987,7 +987,7 @@ func (m *TaskStatsRequest) Reset() { *m = TaskStatsRequest{} } func (m *TaskStatsRequest) String() string { return proto.CompactTextString(m) } func (*TaskStatsRequest) ProtoMessage() {} func (*TaskStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{18} + return fileDescriptor_driver_9320f8b051f51d4e, []int{18} } func (m *TaskStatsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TaskStatsRequest.Unmarshal(m, b) @@ -1026,7 +1026,7 @@ func (m *TaskStatsResponse) Reset() { *m = TaskStatsResponse{} } func (m *TaskStatsResponse) String() string { return proto.CompactTextString(m) } func (*TaskStatsResponse) ProtoMessage() {} func (*TaskStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{19} + return fileDescriptor_driver_9320f8b051f51d4e, []int{19} } func (m *TaskStatsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TaskStatsResponse.Unmarshal(m, b) @@ -1063,7 +1063,7 @@ func (m *TaskEventsRequest) Reset() { *m = TaskEventsRequest{} } func (m *TaskEventsRequest) String() string { return proto.CompactTextString(m) } func (*TaskEventsRequest) ProtoMessage() {} func (*TaskEventsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{20} + return fileDescriptor_driver_9320f8b051f51d4e, []int{20} } func (m *TaskEventsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TaskEventsRequest.Unmarshal(m, b) @@ -1097,7 +1097,7 @@ func (m *SignalTaskRequest) Reset() { *m = SignalTaskRequest{} } func (m *SignalTaskRequest) String() string { return proto.CompactTextString(m) } func (*SignalTaskRequest) ProtoMessage() {} func (*SignalTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{21} + return fileDescriptor_driver_9320f8b051f51d4e, []int{21} } func (m *SignalTaskRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalTaskRequest.Unmarshal(m, b) @@ -1141,7 +1141,7 @@ func (m *SignalTaskResponse) Reset() { *m = SignalTaskResponse{} } func (m *SignalTaskResponse) String() string { return proto.CompactTextString(m) } func (*SignalTaskResponse) ProtoMessage() {} func (*SignalTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{22} + return fileDescriptor_driver_9320f8b051f51d4e, []int{22} } func (m *SignalTaskResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalTaskResponse.Unmarshal(m, b) @@ -1178,7 +1178,7 @@ func (m *ExecTaskRequest) Reset() { *m = ExecTaskRequest{} } func (m *ExecTaskRequest) String() string { return proto.CompactTextString(m) } func (*ExecTaskRequest) ProtoMessage() {} func (*ExecTaskRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{23} + return fileDescriptor_driver_9320f8b051f51d4e, []int{23} } func (m *ExecTaskRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExecTaskRequest.Unmarshal(m, b) @@ -1235,7 +1235,7 @@ func (m *ExecTaskResponse) Reset() { *m = ExecTaskResponse{} } func (m *ExecTaskResponse) String() string { return proto.CompactTextString(m) } func (*ExecTaskResponse) ProtoMessage() {} func (*ExecTaskResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{24} + return fileDescriptor_driver_9320f8b051f51d4e, []int{24} } func (m *ExecTaskResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExecTaskResponse.Unmarshal(m, b) @@ -1294,7 +1294,7 @@ func (m *DriverCapabilities) Reset() { *m = DriverCapabilities{} } func (m *DriverCapabilities) String() string { return proto.CompactTextString(m) } func (*DriverCapabilities) ProtoMessage() {} func (*DriverCapabilities) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{25} + return fileDescriptor_driver_9320f8b051f51d4e, []int{25} } func (m *DriverCapabilities) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DriverCapabilities.Unmarshal(m, b) @@ -1375,7 +1375,7 @@ func (m *TaskConfig) Reset() { *m = TaskConfig{} } func (m *TaskConfig) String() string { return proto.CompactTextString(m) } func (*TaskConfig) ProtoMessage() {} func (*TaskConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{26} + return fileDescriptor_driver_9320f8b051f51d4e, []int{26} } func (m *TaskConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TaskConfig.Unmarshal(m, b) @@ -1494,8 +1494,8 @@ func (m *TaskConfig) GetAllocId() string { } type Resources struct { - // RawResources are the resources set for the task - RawResources *RawResources `protobuf:"bytes,1,opt,name=raw_resources,json=rawResources,proto3" json:"raw_resources,omitempty"` + // AllocatedResources are the resources set for the task + AllocatedResources *AllocatedTaskResources `protobuf:"bytes,1,opt,name=allocated_resources,json=allocatedResources,proto3" json:"allocated_resources,omitempty"` // LinuxResources are the computed values to set for specific Linux features LinuxResources *LinuxResources `protobuf:"bytes,2,opt,name=linux_resources,json=linuxResources,proto3" json:"linux_resources,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1507,7 +1507,7 @@ func (m *Resources) Reset() { *m = Resources{} } func (m *Resources) String() string { return proto.CompactTextString(m) } func (*Resources) ProtoMessage() {} func (*Resources) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{27} + return fileDescriptor_driver_9320f8b051f51d4e, []int{27} } func (m *Resources) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Resources.Unmarshal(m, b) @@ -1527,9 +1527,9 @@ func (m *Resources) XXX_DiscardUnknown() { var xxx_messageInfo_Resources proto.InternalMessageInfo -func (m *Resources) GetRawResources() *RawResources { +func (m *Resources) GetAllocatedResources() *AllocatedTaskResources { if m != nil { - return m.RawResources + return m.AllocatedResources } return nil } @@ -1541,76 +1541,136 @@ func (m *Resources) GetLinuxResources() *LinuxResources { return nil } -type RawResources struct { - Cpu int64 `protobuf:"varint,1,opt,name=cpu,proto3" json:"cpu,omitempty"` - Memory int64 `protobuf:"varint,2,opt,name=memory,proto3" json:"memory,omitempty"` - Disk int64 `protobuf:"varint,3,opt,name=disk,proto3" json:"disk,omitempty"` - Iops int64 `protobuf:"varint,4,opt,name=iops,proto3" json:"iops,omitempty"` - Networks []*NetworkResource `protobuf:"bytes,5,rep,name=networks,proto3" json:"networks,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type AllocatedTaskResources struct { + Cpu *AllocatedCpuResources `protobuf:"bytes,1,opt,name=cpu,proto3" json:"cpu,omitempty"` + Memory *AllocatedMemoryResources `protobuf:"bytes,2,opt,name=memory,proto3" json:"memory,omitempty"` + Networks []*NetworkResource `protobuf:"bytes,5,rep,name=networks,proto3" json:"networks,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *RawResources) Reset() { *m = RawResources{} } -func (m *RawResources) String() string { return proto.CompactTextString(m) } -func (*RawResources) ProtoMessage() {} -func (*RawResources) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{28} +func (m *AllocatedTaskResources) Reset() { *m = AllocatedTaskResources{} } +func (m *AllocatedTaskResources) String() string { return proto.CompactTextString(m) } +func (*AllocatedTaskResources) ProtoMessage() {} +func (*AllocatedTaskResources) Descriptor() ([]byte, []int) { + return fileDescriptor_driver_9320f8b051f51d4e, []int{28} } -func (m *RawResources) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RawResources.Unmarshal(m, b) +func (m *AllocatedTaskResources) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AllocatedTaskResources.Unmarshal(m, b) } -func (m *RawResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RawResources.Marshal(b, m, deterministic) +func (m *AllocatedTaskResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AllocatedTaskResources.Marshal(b, m, deterministic) } -func (dst *RawResources) XXX_Merge(src proto.Message) { - xxx_messageInfo_RawResources.Merge(dst, src) +func (dst *AllocatedTaskResources) XXX_Merge(src proto.Message) { + xxx_messageInfo_AllocatedTaskResources.Merge(dst, src) } -func (m *RawResources) XXX_Size() int { - return xxx_messageInfo_RawResources.Size(m) +func (m *AllocatedTaskResources) XXX_Size() int { + return xxx_messageInfo_AllocatedTaskResources.Size(m) } -func (m *RawResources) XXX_DiscardUnknown() { - xxx_messageInfo_RawResources.DiscardUnknown(m) +func (m *AllocatedTaskResources) XXX_DiscardUnknown() { + xxx_messageInfo_AllocatedTaskResources.DiscardUnknown(m) } -var xxx_messageInfo_RawResources proto.InternalMessageInfo +var xxx_messageInfo_AllocatedTaskResources proto.InternalMessageInfo -func (m *RawResources) GetCpu() int64 { +func (m *AllocatedTaskResources) GetCpu() *AllocatedCpuResources { if m != nil { return m.Cpu } - return 0 + return nil } -func (m *RawResources) GetMemory() int64 { +func (m *AllocatedTaskResources) GetMemory() *AllocatedMemoryResources { if m != nil { return m.Memory } - return 0 + return nil } -func (m *RawResources) GetDisk() int64 { - if m != nil { - return m.Disk - } - return 0 -} - -func (m *RawResources) GetIops() int64 { - if m != nil { - return m.Iops - } - return 0 -} - -func (m *RawResources) GetNetworks() []*NetworkResource { +func (m *AllocatedTaskResources) GetNetworks() []*NetworkResource { if m != nil { return m.Networks } return nil } +type AllocatedCpuResources struct { + CpuShares int64 `protobuf:"varint,1,opt,name=cpu_shares,json=cpuShares,proto3" json:"cpu_shares,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AllocatedCpuResources) Reset() { *m = AllocatedCpuResources{} } +func (m *AllocatedCpuResources) String() string { return proto.CompactTextString(m) } +func (*AllocatedCpuResources) ProtoMessage() {} +func (*AllocatedCpuResources) Descriptor() ([]byte, []int) { + return fileDescriptor_driver_9320f8b051f51d4e, []int{29} +} +func (m *AllocatedCpuResources) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AllocatedCpuResources.Unmarshal(m, b) +} +func (m *AllocatedCpuResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AllocatedCpuResources.Marshal(b, m, deterministic) +} +func (dst *AllocatedCpuResources) XXX_Merge(src proto.Message) { + xxx_messageInfo_AllocatedCpuResources.Merge(dst, src) +} +func (m *AllocatedCpuResources) XXX_Size() int { + return xxx_messageInfo_AllocatedCpuResources.Size(m) +} +func (m *AllocatedCpuResources) XXX_DiscardUnknown() { + xxx_messageInfo_AllocatedCpuResources.DiscardUnknown(m) +} + +var xxx_messageInfo_AllocatedCpuResources proto.InternalMessageInfo + +func (m *AllocatedCpuResources) GetCpuShares() int64 { + if m != nil { + return m.CpuShares + } + return 0 +} + +type AllocatedMemoryResources struct { + MemoryMb int64 `protobuf:"varint,2,opt,name=memory_mb,json=memoryMb,proto3" json:"memory_mb,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AllocatedMemoryResources) Reset() { *m = AllocatedMemoryResources{} } +func (m *AllocatedMemoryResources) String() string { return proto.CompactTextString(m) } +func (*AllocatedMemoryResources) ProtoMessage() {} +func (*AllocatedMemoryResources) Descriptor() ([]byte, []int) { + return fileDescriptor_driver_9320f8b051f51d4e, []int{30} +} +func (m *AllocatedMemoryResources) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AllocatedMemoryResources.Unmarshal(m, b) +} +func (m *AllocatedMemoryResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AllocatedMemoryResources.Marshal(b, m, deterministic) +} +func (dst *AllocatedMemoryResources) XXX_Merge(src proto.Message) { + xxx_messageInfo_AllocatedMemoryResources.Merge(dst, src) +} +func (m *AllocatedMemoryResources) XXX_Size() int { + return xxx_messageInfo_AllocatedMemoryResources.Size(m) +} +func (m *AllocatedMemoryResources) XXX_DiscardUnknown() { + xxx_messageInfo_AllocatedMemoryResources.DiscardUnknown(m) +} + +var xxx_messageInfo_AllocatedMemoryResources proto.InternalMessageInfo + +func (m *AllocatedMemoryResources) GetMemoryMb() int64 { + if m != nil { + return m.MemoryMb + } + return 0 +} + type NetworkResource struct { Device string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"` Cidr string `protobuf:"bytes,2,opt,name=cidr,proto3" json:"cidr,omitempty"` @@ -1627,7 +1687,7 @@ func (m *NetworkResource) Reset() { *m = NetworkResource{} } func (m *NetworkResource) String() string { return proto.CompactTextString(m) } func (*NetworkResource) ProtoMessage() {} func (*NetworkResource) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{29} + return fileDescriptor_driver_9320f8b051f51d4e, []int{31} } func (m *NetworkResource) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NetworkResource.Unmarshal(m, b) @@ -1701,7 +1761,7 @@ func (m *NetworkPort) Reset() { *m = NetworkPort{} } func (m *NetworkPort) String() string { return proto.CompactTextString(m) } func (*NetworkPort) ProtoMessage() {} func (*NetworkPort) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{30} + return fileDescriptor_driver_9320f8b051f51d4e, []int{32} } func (m *NetworkPort) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NetworkPort.Unmarshal(m, b) @@ -1761,7 +1821,7 @@ func (m *LinuxResources) Reset() { *m = LinuxResources{} } func (m *LinuxResources) String() string { return proto.CompactTextString(m) } func (*LinuxResources) ProtoMessage() {} func (*LinuxResources) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{31} + return fileDescriptor_driver_9320f8b051f51d4e, []int{33} } func (m *LinuxResources) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LinuxResources.Unmarshal(m, b) @@ -1853,7 +1913,7 @@ func (m *Mount) Reset() { *m = Mount{} } func (m *Mount) String() string { return proto.CompactTextString(m) } func (*Mount) ProtoMessage() {} func (*Mount) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{32} + return fileDescriptor_driver_9320f8b051f51d4e, []int{34} } func (m *Mount) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Mount.Unmarshal(m, b) @@ -1916,7 +1976,7 @@ func (m *Device) Reset() { *m = Device{} } func (m *Device) String() string { return proto.CompactTextString(m) } func (*Device) ProtoMessage() {} func (*Device) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{33} + return fileDescriptor_driver_9320f8b051f51d4e, []int{35} } func (m *Device) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Device.Unmarshal(m, b) @@ -1974,7 +2034,7 @@ func (m *TaskHandle) Reset() { *m = TaskHandle{} } func (m *TaskHandle) String() string { return proto.CompactTextString(m) } func (*TaskHandle) ProtoMessage() {} func (*TaskHandle) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{34} + return fileDescriptor_driver_9320f8b051f51d4e, []int{36} } func (m *TaskHandle) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TaskHandle.Unmarshal(m, b) @@ -2034,7 +2094,7 @@ func (m *NetworkOverride) Reset() { *m = NetworkOverride{} } func (m *NetworkOverride) String() string { return proto.CompactTextString(m) } func (*NetworkOverride) ProtoMessage() {} func (*NetworkOverride) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{35} + return fileDescriptor_driver_9320f8b051f51d4e, []int{37} } func (m *NetworkOverride) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NetworkOverride.Unmarshal(m, b) @@ -2092,7 +2152,7 @@ func (m *ExitResult) Reset() { *m = ExitResult{} } func (m *ExitResult) String() string { return proto.CompactTextString(m) } func (*ExitResult) ProtoMessage() {} func (*ExitResult) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{36} + return fileDescriptor_driver_9320f8b051f51d4e, []int{38} } func (m *ExitResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExitResult.Unmarshal(m, b) @@ -2155,7 +2215,7 @@ func (m *TaskStatus) Reset() { *m = TaskStatus{} } func (m *TaskStatus) String() string { return proto.CompactTextString(m) } func (*TaskStatus) ProtoMessage() {} func (*TaskStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{37} + return fileDescriptor_driver_9320f8b051f51d4e, []int{39} } func (m *TaskStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TaskStatus.Unmarshal(m, b) @@ -2230,7 +2290,7 @@ func (m *TaskDriverStatus) Reset() { *m = TaskDriverStatus{} } func (m *TaskDriverStatus) String() string { return proto.CompactTextString(m) } func (*TaskDriverStatus) ProtoMessage() {} func (*TaskDriverStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{38} + return fileDescriptor_driver_9320f8b051f51d4e, []int{40} } func (m *TaskDriverStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TaskDriverStatus.Unmarshal(m, b) @@ -2275,7 +2335,7 @@ func (m *TaskStats) Reset() { *m = TaskStats{} } func (m *TaskStats) String() string { return proto.CompactTextString(m) } func (*TaskStats) ProtoMessage() {} func (*TaskStats) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{39} + return fileDescriptor_driver_9320f8b051f51d4e, []int{41} } func (m *TaskStats) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TaskStats.Unmarshal(m, b) @@ -2337,7 +2397,7 @@ func (m *TaskResourceUsage) Reset() { *m = TaskResourceUsage{} } func (m *TaskResourceUsage) String() string { return proto.CompactTextString(m) } func (*TaskResourceUsage) ProtoMessage() {} func (*TaskResourceUsage) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{40} + return fileDescriptor_driver_9320f8b051f51d4e, []int{42} } func (m *TaskResourceUsage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TaskResourceUsage.Unmarshal(m, b) @@ -2389,7 +2449,7 @@ func (m *CPUUsage) Reset() { *m = CPUUsage{} } func (m *CPUUsage) String() string { return proto.CompactTextString(m) } func (*CPUUsage) ProtoMessage() {} func (*CPUUsage) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{41} + return fileDescriptor_driver_9320f8b051f51d4e, []int{43} } func (m *CPUUsage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CPUUsage.Unmarshal(m, b) @@ -2475,7 +2535,7 @@ func (m *MemoryUsage) Reset() { *m = MemoryUsage{} } func (m *MemoryUsage) String() string { return proto.CompactTextString(m) } func (*MemoryUsage) ProtoMessage() {} func (*MemoryUsage) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{42} + return fileDescriptor_driver_9320f8b051f51d4e, []int{44} } func (m *MemoryUsage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemoryUsage.Unmarshal(m, b) @@ -2555,7 +2615,7 @@ func (m *DriverTaskEvent) Reset() { *m = DriverTaskEvent{} } func (m *DriverTaskEvent) String() string { return proto.CompactTextString(m) } func (*DriverTaskEvent) ProtoMessage() {} func (*DriverTaskEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_driver_f8c1fd114dd6e6a4, []int{43} + return fileDescriptor_driver_9320f8b051f51d4e, []int{45} } func (m *DriverTaskEvent) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DriverTaskEvent.Unmarshal(m, b) @@ -2634,7 +2694,9 @@ func init() { proto.RegisterType((*TaskConfig)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskConfig") proto.RegisterMapType((map[string]string)(nil), "hashicorp.nomad.plugins.drivers.proto.TaskConfig.EnvEntry") proto.RegisterType((*Resources)(nil), "hashicorp.nomad.plugins.drivers.proto.Resources") - proto.RegisterType((*RawResources)(nil), "hashicorp.nomad.plugins.drivers.proto.RawResources") + proto.RegisterType((*AllocatedTaskResources)(nil), "hashicorp.nomad.plugins.drivers.proto.AllocatedTaskResources") + proto.RegisterType((*AllocatedCpuResources)(nil), "hashicorp.nomad.plugins.drivers.proto.AllocatedCpuResources") + proto.RegisterType((*AllocatedMemoryResources)(nil), "hashicorp.nomad.plugins.drivers.proto.AllocatedMemoryResources") proto.RegisterType((*NetworkResource)(nil), "hashicorp.nomad.plugins.drivers.proto.NetworkResource") proto.RegisterType((*NetworkPort)(nil), "hashicorp.nomad.plugins.drivers.proto.NetworkPort") proto.RegisterType((*LinuxResources)(nil), "hashicorp.nomad.plugins.drivers.proto.LinuxResources") @@ -3246,188 +3308,190 @@ var _Driver_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("plugins/drivers/proto/driver.proto", fileDescriptor_driver_f8c1fd114dd6e6a4) + proto.RegisterFile("plugins/drivers/proto/driver.proto", fileDescriptor_driver_9320f8b051f51d4e) } -var fileDescriptor_driver_f8c1fd114dd6e6a4 = []byte{ - // 2858 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x59, 0xcd, 0x6f, 0x23, 0xc7, - 0xb1, 0x17, 0x49, 0x91, 0x22, 0x8b, 0x14, 0x35, 0xdb, 0xbb, 0xfb, 0x4c, 0xd3, 0x78, 0xcf, 0xeb, - 0x01, 0xfc, 0xb0, 0xb0, 0xbd, 0x94, 0x2d, 0xe3, 0x79, 0x3f, 0x1e, 0xfc, 0x41, 0x53, 0xb3, 0x92, - 0xbc, 0x12, 0xa5, 0x34, 0x29, 0xac, 0x37, 0x89, 0x3d, 0x19, 0xcd, 0xb4, 0xc8, 0x59, 0x71, 0x3e, - 0xdc, 0x3d, 0xa3, 0x95, 0x10, 0x04, 0x09, 0x12, 0x20, 0x48, 0x0e, 0x01, 0x72, 0x09, 0x02, 0xe4, - 0x98, 0x9c, 0x82, 0x5c, 0x73, 0x4a, 0xe0, 0x4b, 0x80, 0xfc, 0x0f, 0x39, 0xe6, 0x12, 0x20, 0xd7, - 0xfc, 0x07, 0x41, 0x7f, 0xcc, 0x70, 0x28, 0x69, 0xbd, 0x43, 0x6e, 0x4e, 0x9c, 0xae, 0xee, 0xfa, - 0x75, 0xb1, 0xaa, 0xba, 0xaa, 0xba, 0x0b, 0xf4, 0x70, 0x12, 0x8f, 0x5c, 0x9f, 0xad, 0x3b, 0xd4, - 0x3d, 0x25, 0x94, 0xad, 0x87, 0x34, 0x88, 0x02, 0x35, 0xea, 0x88, 0x01, 0x7a, 0x73, 0x6c, 0xb1, - 0xb1, 0x6b, 0x07, 0x34, 0xec, 0xf8, 0x81, 0x67, 0x39, 0x1d, 0xc5, 0xd3, 0x51, 0x3c, 0x72, 0x59, - 0xfb, 0x7f, 0x46, 0x41, 0x30, 0x9a, 0x10, 0x89, 0x70, 0x14, 0x1f, 0xaf, 0x3b, 0x31, 0xb5, 0x22, - 0x37, 0xf0, 0xd5, 0xfc, 0xeb, 0x17, 0xe7, 0x23, 0xd7, 0x23, 0x2c, 0xb2, 0xbc, 0x50, 0x2d, 0xf8, - 0x64, 0xe4, 0x46, 0xe3, 0xf8, 0xa8, 0x63, 0x07, 0xde, 0x7a, 0xba, 0xe5, 0xba, 0xd8, 0x72, 0x3d, - 0x11, 0x93, 0x8d, 0x2d, 0x4a, 0x9c, 0xf5, 0xb1, 0x3d, 0x61, 0x21, 0xb1, 0xf9, 0xaf, 0xc9, 0x3f, - 0x14, 0xc2, 0x56, 0x7e, 0x04, 0x16, 0xd1, 0xd8, 0x8e, 0x92, 0xff, 0x6b, 0x45, 0x11, 0x75, 0x8f, - 0xe2, 0x88, 0x48, 0x20, 0xfd, 0x55, 0x78, 0x65, 0x68, 0xb1, 0x93, 0x5e, 0xe0, 0x1f, 0xbb, 0xa3, - 0x81, 0x3d, 0x26, 0x9e, 0x85, 0xc9, 0x57, 0x31, 0x61, 0x91, 0xfe, 0x5d, 0x68, 0x5d, 0x9e, 0x62, - 0x61, 0xe0, 0x33, 0x82, 0x3e, 0x81, 0x65, 0x2e, 0x4d, 0xab, 0x70, 0xab, 0x70, 0xbb, 0xbe, 0xf1, - 0x4e, 0xe7, 0x79, 0x8a, 0x93, 0x32, 0x74, 0xd4, 0xbf, 0xe8, 0x0c, 0x42, 0x62, 0x63, 0xc1, 0xa9, - 0xdf, 0x84, 0xeb, 0x3d, 0x2b, 0xb4, 0x8e, 0xdc, 0x89, 0x1b, 0xb9, 0x84, 0x25, 0x9b, 0xc6, 0x70, - 0x63, 0x96, 0xac, 0x36, 0xfc, 0x02, 0x1a, 0x76, 0x86, 0xae, 0x36, 0xbe, 0xdf, 0xc9, 0x65, 0xb1, - 0xce, 0xa6, 0x18, 0xcd, 0x00, 0xcf, 0xc0, 0xe9, 0x37, 0x00, 0x3d, 0x74, 0xfd, 0x11, 0xa1, 0x21, - 0x75, 0xfd, 0x28, 0x11, 0xe6, 0xeb, 0x12, 0x5c, 0x9f, 0x21, 0x2b, 0x61, 0x9e, 0x02, 0xa4, 0x7a, - 0xe4, 0xa2, 0x94, 0x6e, 0xd7, 0x37, 0x3e, 0xcb, 0x29, 0xca, 0x15, 0x78, 0x9d, 0x6e, 0x0a, 0x66, - 0xf8, 0x11, 0x3d, 0xc7, 0x19, 0x74, 0xf4, 0x25, 0x54, 0xc6, 0xc4, 0x9a, 0x44, 0xe3, 0x56, 0xf1, - 0x56, 0xe1, 0x76, 0x73, 0xe3, 0xe1, 0x4b, 0xec, 0xb3, 0x2d, 0x80, 0x06, 0x91, 0x15, 0x11, 0xac, - 0x50, 0xd1, 0x1d, 0x40, 0xf2, 0xcb, 0x74, 0x08, 0xb3, 0xa9, 0x1b, 0x72, 0x47, 0x6e, 0x95, 0x6e, - 0x15, 0x6e, 0xd7, 0xf0, 0x35, 0x39, 0xb3, 0x39, 0x9d, 0x68, 0x87, 0xb0, 0x76, 0x41, 0x5a, 0xa4, - 0x41, 0xe9, 0x84, 0x9c, 0x0b, 0x8b, 0xd4, 0x30, 0xff, 0x44, 0x5b, 0x50, 0x3e, 0xb5, 0x26, 0x31, - 0x11, 0x22, 0xd7, 0x37, 0xde, 0x7b, 0x91, 0x7b, 0x28, 0x17, 0x9d, 0xea, 0x01, 0x4b, 0xfe, 0x07, - 0xc5, 0x7b, 0x05, 0xfd, 0x3e, 0xd4, 0x33, 0x72, 0xa3, 0x26, 0xc0, 0x61, 0x7f, 0xd3, 0x18, 0x1a, - 0xbd, 0xa1, 0xb1, 0xa9, 0x2d, 0xa1, 0x55, 0xa8, 0x1d, 0xf6, 0xb7, 0x8d, 0xee, 0xee, 0x70, 0xfb, - 0x89, 0x56, 0x40, 0x75, 0x58, 0x49, 0x06, 0x45, 0xfd, 0x0c, 0x10, 0x26, 0x76, 0x70, 0x4a, 0x28, - 0x77, 0x64, 0x65, 0x55, 0xf4, 0x0a, 0xac, 0x44, 0x16, 0x3b, 0x31, 0x5d, 0x47, 0xc9, 0x5c, 0xe1, - 0xc3, 0x1d, 0x07, 0xed, 0x40, 0x65, 0x6c, 0xf9, 0xce, 0xe4, 0xc5, 0x72, 0xcf, 0xaa, 0x9a, 0x83, - 0x6f, 0x0b, 0x46, 0xac, 0x00, 0xb8, 0x77, 0xcf, 0xec, 0x2c, 0x0d, 0xa0, 0x3f, 0x01, 0x6d, 0x10, - 0x59, 0x34, 0xca, 0x8a, 0x63, 0xc0, 0x32, 0xdf, 0x5f, 0x79, 0xf4, 0x3c, 0x7b, 0xca, 0x93, 0x89, - 0x05, 0xbb, 0xfe, 0xaf, 0x22, 0x5c, 0xcb, 0x60, 0x2b, 0x4f, 0x7d, 0x0c, 0x15, 0x4a, 0x58, 0x3c, - 0x89, 0x04, 0x7c, 0x73, 0xe3, 0xe3, 0x9c, 0xf0, 0x97, 0x90, 0x3a, 0x58, 0xc0, 0x60, 0x05, 0x87, - 0x6e, 0x83, 0x26, 0x39, 0x4c, 0x42, 0x69, 0x40, 0x4d, 0x8f, 0x8d, 0x84, 0xd6, 0x6a, 0xb8, 0x29, - 0xe9, 0x06, 0x27, 0xef, 0xb1, 0x51, 0x46, 0xab, 0xa5, 0x97, 0xd4, 0x2a, 0xb2, 0x40, 0xf3, 0x49, - 0xf4, 0x2c, 0xa0, 0x27, 0x26, 0x57, 0x2d, 0x75, 0x1d, 0xd2, 0x5a, 0x16, 0xa0, 0x1f, 0xe4, 0x04, - 0xed, 0x4b, 0xf6, 0x7d, 0xc5, 0x8d, 0xd7, 0xfc, 0x59, 0x82, 0xfe, 0x36, 0x54, 0xe4, 0x3f, 0xe5, - 0x9e, 0x34, 0x38, 0xec, 0xf5, 0x8c, 0xc1, 0x40, 0x5b, 0x42, 0x35, 0x28, 0x63, 0x63, 0x88, 0xb9, - 0x87, 0xd5, 0xa0, 0xfc, 0xb0, 0x3b, 0xec, 0xee, 0x6a, 0x45, 0xfd, 0x2d, 0x58, 0x7b, 0x6c, 0xb9, - 0x51, 0x1e, 0xe7, 0xd2, 0x03, 0xd0, 0xa6, 0x6b, 0x95, 0x75, 0x76, 0x66, 0xac, 0x93, 0x5f, 0x35, - 0xc6, 0x99, 0x1b, 0x5d, 0xb0, 0x87, 0x06, 0x25, 0x42, 0xa9, 0x32, 0x01, 0xff, 0xd4, 0x9f, 0xc1, - 0xda, 0x20, 0x0a, 0xc2, 0x5c, 0x9e, 0xff, 0x3e, 0xac, 0xf0, 0x1c, 0x15, 0xc4, 0x91, 0x72, 0xfd, - 0x57, 0x3b, 0x32, 0x87, 0x75, 0x92, 0x1c, 0xd6, 0xd9, 0x54, 0x39, 0x0e, 0x27, 0x2b, 0xd1, 0x7f, - 0x41, 0x85, 0xb9, 0x23, 0xdf, 0x9a, 0xa8, 0x68, 0xa1, 0x46, 0x3a, 0xe2, 0x4e, 0x9e, 0x6c, 0xac, - 0x1c, 0xbf, 0x07, 0x68, 0x93, 0xb0, 0x88, 0x06, 0xe7, 0xb9, 0xe4, 0xb9, 0x01, 0xe5, 0xe3, 0x80, - 0xda, 0xf2, 0x20, 0x56, 0xb1, 0x1c, 0xf0, 0x43, 0x35, 0x03, 0xa2, 0xb0, 0xef, 0x00, 0xda, 0xf1, - 0x79, 0x4e, 0xc9, 0x67, 0x88, 0x5f, 0x16, 0xe1, 0xfa, 0xcc, 0x7a, 0x65, 0x8c, 0xc5, 0xcf, 0x21, - 0x0f, 0x4c, 0x31, 0x93, 0xe7, 0x10, 0xed, 0x43, 0x45, 0xae, 0x50, 0x9a, 0xbc, 0x3b, 0x07, 0x90, - 0x4c, 0x53, 0x0a, 0x4e, 0xc1, 0x5c, 0xe9, 0xf4, 0xa5, 0xff, 0xb4, 0xd3, 0x6b, 0xc9, 0xff, 0x60, - 0x2f, 0xd4, 0xdf, 0x77, 0xe0, 0x5a, 0x66, 0xb1, 0x52, 0xde, 0x43, 0x28, 0x33, 0x4e, 0x50, 0xda, - 0x7b, 0x77, 0x4e, 0xed, 0x31, 0x2c, 0xd9, 0xf5, 0xeb, 0x12, 0xdc, 0x38, 0x25, 0x7e, 0x2a, 0x8a, - 0xbe, 0x09, 0xd7, 0x06, 0xc2, 0xb5, 0x72, 0xf9, 0xce, 0xd4, 0x2d, 0x8b, 0x33, 0x6e, 0x79, 0x03, - 0x50, 0x16, 0x45, 0x39, 0xcf, 0x39, 0xac, 0x19, 0x67, 0xc4, 0xce, 0x85, 0xdc, 0x82, 0x15, 0x3b, - 0xf0, 0x3c, 0xcb, 0x77, 0x5a, 0xc5, 0x5b, 0xa5, 0xdb, 0x35, 0x9c, 0x0c, 0xb3, 0xe7, 0xa7, 0x94, - 0xf7, 0xfc, 0xe8, 0xbf, 0x28, 0x80, 0x36, 0xdd, 0x5b, 0x29, 0x92, 0x4b, 0x1f, 0x39, 0x1c, 0x88, - 0xef, 0xdd, 0xc0, 0x6a, 0xa4, 0xe8, 0xc9, 0x11, 0x97, 0x74, 0x42, 0x69, 0x26, 0x84, 0x94, 0x5e, - 0x32, 0x84, 0xe8, 0xff, 0x28, 0x00, 0xba, 0x5c, 0x28, 0xa1, 0x37, 0xa0, 0xc1, 0x88, 0xef, 0x98, - 0x52, 0x8d, 0xd2, 0xc2, 0x55, 0x5c, 0xe7, 0x34, 0xa9, 0x4f, 0x86, 0x10, 0x2c, 0x93, 0x33, 0x62, - 0xab, 0xd3, 0x2a, 0xbe, 0xd1, 0x18, 0x1a, 0xc7, 0xcc, 0x74, 0x59, 0x30, 0xb1, 0xd2, 0x8a, 0xa2, - 0xb9, 0x61, 0x2c, 0x5c, 0xb0, 0x75, 0x1e, 0x0e, 0x76, 0x12, 0x30, 0x5c, 0x3f, 0x66, 0xe9, 0x40, - 0xef, 0x40, 0x3d, 0x33, 0x87, 0xaa, 0xb0, 0xdc, 0xdf, 0xef, 0x1b, 0xda, 0x12, 0x02, 0xa8, 0xf4, - 0xb6, 0xf1, 0xfe, 0xfe, 0x50, 0x46, 0xed, 0x9d, 0xbd, 0xee, 0x96, 0xa1, 0x15, 0xf5, 0xdf, 0x94, - 0x01, 0xa6, 0xe9, 0x13, 0x35, 0xa1, 0x98, 0x5a, 0xba, 0xe8, 0x3a, 0xfc, 0xcf, 0xf8, 0x96, 0x47, - 0x94, 0xf7, 0x88, 0x6f, 0xb4, 0x01, 0x37, 0x3d, 0x36, 0x0a, 0x2d, 0xfb, 0xc4, 0x54, 0x59, 0xcf, - 0x16, 0xcc, 0xe2, 0x5f, 0x35, 0xf0, 0x75, 0x35, 0xa9, 0xa4, 0x96, 0xb8, 0xbb, 0x50, 0x22, 0xfe, - 0x69, 0x6b, 0x59, 0x54, 0x87, 0x0f, 0xe6, 0x4e, 0xeb, 0x1d, 0xc3, 0x3f, 0x95, 0xd5, 0x20, 0x87, - 0x41, 0x7d, 0xa8, 0x51, 0xc2, 0x82, 0x98, 0xda, 0x84, 0xb5, 0xca, 0x73, 0x1d, 0x32, 0x9c, 0xf0, - 0xe1, 0x29, 0x04, 0xda, 0x84, 0x8a, 0x17, 0xc4, 0x7e, 0xc4, 0x5a, 0x15, 0x21, 0xe0, 0x3b, 0x39, - 0xc1, 0xf6, 0x38, 0x13, 0x56, 0xbc, 0x68, 0x0b, 0x56, 0x1c, 0x72, 0xea, 0x72, 0x99, 0x56, 0x04, - 0xcc, 0x9d, 0xbc, 0xf6, 0x15, 0x5c, 0x38, 0xe1, 0xe6, 0x4a, 0x8f, 0x19, 0xa1, 0xad, 0xaa, 0x54, - 0x3a, 0xff, 0x46, 0xaf, 0x41, 0xcd, 0x9a, 0x4c, 0x02, 0xdb, 0x74, 0x5c, 0xda, 0xaa, 0x89, 0x89, - 0xaa, 0x20, 0x6c, 0xba, 0x14, 0xbd, 0x0e, 0x75, 0x79, 0x32, 0xcc, 0xd0, 0x8a, 0xc6, 0x2d, 0x10, - 0xd3, 0x20, 0x49, 0x07, 0x56, 0x34, 0x56, 0x0b, 0x08, 0xa5, 0x72, 0x41, 0x3d, 0x5d, 0x40, 0x28, - 0x15, 0x0b, 0xfe, 0x17, 0xd6, 0xc4, 0x31, 0x1f, 0xd1, 0x20, 0x0e, 0x4d, 0x61, 0xf2, 0x86, 0x58, - 0xb4, 0xca, 0xc9, 0x5b, 0x9c, 0xda, 0xe7, 0xb6, 0x7f, 0x15, 0xaa, 0x4f, 0x83, 0x23, 0xb9, 0x60, - 0x55, 0x2c, 0x58, 0x79, 0x1a, 0x1c, 0x25, 0x53, 0x52, 0x42, 0xd7, 0x69, 0x35, 0xe5, 0x94, 0x18, - 0xef, 0x38, 0xed, 0x0f, 0xa0, 0x9a, 0x18, 0xf0, 0x8a, 0x02, 0xf9, 0x46, 0xb6, 0x40, 0xae, 0x65, - 0xab, 0xdd, 0xbf, 0x16, 0xa0, 0x96, 0x1a, 0x0c, 0x7d, 0x0e, 0xab, 0xd4, 0x7a, 0x66, 0x4e, 0x2d, - 0x2f, 0xc3, 0xeb, 0xfb, 0x79, 0x2d, 0x6f, 0x3d, 0x9b, 0x1a, 0xbf, 0x41, 0x33, 0x23, 0xf4, 0x25, - 0xac, 0x4d, 0x5c, 0x3f, 0x3e, 0xcb, 0x60, 0xcb, 0x7c, 0xf5, 0x7f, 0x39, 0xb1, 0x77, 0x39, 0xf7, - 0x14, 0xbd, 0x39, 0x99, 0x19, 0xeb, 0x7f, 0x2c, 0x40, 0x23, 0xbb, 0x3d, 0x57, 0x82, 0x1d, 0xc6, - 0xe2, 0x0f, 0x94, 0x30, 0xff, 0xe4, 0x21, 0xcd, 0x23, 0x5e, 0x40, 0xcf, 0xc5, 0xce, 0x25, 0xac, - 0x46, 0xdc, 0x17, 0x1c, 0x97, 0x9d, 0x88, 0xb3, 0x55, 0xc2, 0xe2, 0x9b, 0xd3, 0xdc, 0x20, 0x64, - 0xa2, 0xda, 0x2b, 0x61, 0xf1, 0x8d, 0x30, 0x54, 0x55, 0x22, 0xe3, 0x27, 0xa2, 0x34, 0x7f, 0x42, - 0x4c, 0x84, 0xc3, 0x29, 0x8e, 0xfe, 0xeb, 0x22, 0xac, 0x5d, 0x98, 0xe5, 0x72, 0x4a, 0x37, 0x4d, - 0xd2, 0x81, 0x1c, 0x71, 0x99, 0x6c, 0xd7, 0x49, 0x6a, 0x2e, 0xf1, 0x2d, 0x82, 0x49, 0xa8, 0xea, - 0xa1, 0xa2, 0x1b, 0x72, 0x43, 0x7b, 0x47, 0x6e, 0x24, 0x05, 0x2f, 0x63, 0x39, 0x40, 0x4f, 0xa0, - 0x49, 0x09, 0x23, 0xf4, 0x94, 0x38, 0x66, 0x18, 0xd0, 0x28, 0x91, 0x7f, 0x63, 0x3e, 0xf9, 0x0f, - 0x02, 0x1a, 0xe1, 0xd5, 0x04, 0x89, 0x8f, 0x18, 0x7a, 0x0c, 0xab, 0xce, 0xb9, 0x6f, 0x79, 0xae, - 0xad, 0x90, 0x2b, 0x0b, 0x23, 0x37, 0x14, 0x90, 0x00, 0xe6, 0xd7, 0xb0, 0xcc, 0x24, 0xff, 0x63, - 0x13, 0xeb, 0x88, 0x4c, 0x94, 0x4e, 0xe4, 0x60, 0xd6, 0xaf, 0xcb, 0xca, 0xaf, 0xf5, 0xdf, 0x15, - 0xa1, 0x39, 0xeb, 0x2e, 0xe8, 0xbf, 0x01, 0xec, 0x30, 0x36, 0x43, 0x42, 0xdd, 0xc0, 0x51, 0x4e, - 0x51, 0xb3, 0xc3, 0xf8, 0x40, 0x10, 0xf8, 0xd1, 0xe7, 0xd3, 0x5f, 0xc5, 0x41, 0x64, 0x29, 0xef, - 0xa8, 0xda, 0x61, 0xfc, 0x2d, 0x3e, 0x4e, 0x78, 0xc5, 0xdd, 0x91, 0x29, 0x2f, 0xe1, 0xcb, 0x07, - 0x82, 0x80, 0xde, 0x01, 0x24, 0x1d, 0xc9, 0x9c, 0xb8, 0x9e, 0x1b, 0x99, 0x47, 0xe7, 0xfc, 0x92, - 0x2e, 0x1d, 0x47, 0x93, 0x33, 0xbb, 0x7c, 0xe2, 0x53, 0x4e, 0x47, 0x3a, 0xac, 0x06, 0x81, 0x67, - 0x32, 0x3b, 0xa0, 0xc4, 0xb4, 0x9c, 0xa7, 0x22, 0xb6, 0x96, 0x70, 0x3d, 0x08, 0xbc, 0x01, 0xa7, - 0x75, 0x9d, 0xa7, 0x3c, 0x94, 0xd8, 0x61, 0xcc, 0x48, 0x64, 0xf2, 0x9f, 0x56, 0x45, 0x86, 0x12, - 0x49, 0xea, 0x85, 0x31, 0xcb, 0x2c, 0xf0, 0x88, 0xc7, 0x43, 0x61, 0x66, 0xc1, 0x1e, 0xf1, 0xf8, - 0x2e, 0x8d, 0x03, 0x42, 0x6d, 0xe2, 0x47, 0x43, 0xd7, 0x3e, 0x61, 0x22, 0xcc, 0x15, 0xf0, 0x0c, - 0x4d, 0xff, 0x02, 0xca, 0x22, 0xb8, 0xf2, 0x3f, 0x2f, 0x02, 0x93, 0x88, 0x5b, 0x52, 0xbd, 0x55, - 0x4e, 0x10, 0x51, 0xeb, 0x35, 0xa8, 0x8d, 0x03, 0xa6, 0xa2, 0x9e, 0xf4, 0xbc, 0x2a, 0x27, 0x88, - 0xc9, 0x36, 0x54, 0x29, 0xb1, 0x9c, 0xc0, 0x9f, 0x9c, 0x0b, 0xbd, 0x54, 0x71, 0x3a, 0xd6, 0xbf, - 0x82, 0x8a, 0x0c, 0xba, 0x2f, 0x81, 0x7f, 0x07, 0x90, 0x2d, 0xc3, 0x65, 0x48, 0xa8, 0xe7, 0x32, - 0xe6, 0x06, 0x3e, 0x4b, 0xde, 0x0a, 0xe4, 0xcc, 0xc1, 0x74, 0x42, 0xff, 0x4b, 0x41, 0x26, 0x5a, - 0x79, 0x8b, 0xe3, 0xa5, 0x8a, 0xca, 0x9a, 0x0b, 0x5f, 0x75, 0x15, 0x40, 0x52, 0x6e, 0x12, 0xf5, - 0x26, 0x32, 0x6f, 0xb9, 0x49, 0x64, 0xb9, 0x49, 0x78, 0x6d, 0xa3, 0xf2, 0xb9, 0x84, 0x93, 0xe9, - 0xbc, 0xee, 0xa4, 0x75, 0x38, 0xd1, 0xff, 0x59, 0x48, 0x23, 0x42, 0x52, 0x2f, 0xa3, 0x2f, 0xa1, - 0xca, 0x0f, 0x97, 0xe9, 0x59, 0xa1, 0x7a, 0xfd, 0xe9, 0x2d, 0x56, 0x8a, 0x77, 0xf8, 0x59, 0xda, - 0xb3, 0x42, 0x99, 0xe8, 0x57, 0x42, 0x39, 0xe2, 0x91, 0xc5, 0x72, 0xa6, 0x91, 0x85, 0x7f, 0xa3, - 0x37, 0xa1, 0x69, 0xc5, 0x51, 0x60, 0x5a, 0xce, 0x29, 0xa1, 0x91, 0xcb, 0x88, 0xb2, 0xf0, 0x2a, - 0xa7, 0x76, 0x13, 0x62, 0xfb, 0x01, 0x34, 0xb2, 0x98, 0x2f, 0xca, 0x3d, 0xe5, 0x6c, 0xee, 0xf9, - 0x1e, 0xc0, 0xb4, 0x2c, 0xe4, 0x9e, 0x40, 0xce, 0xdc, 0xc8, 0xb4, 0x03, 0x47, 0x46, 0xbe, 0x32, - 0xae, 0x72, 0x42, 0x2f, 0x70, 0xc8, 0x85, 0x22, 0xbb, 0x9c, 0x14, 0xd9, 0xfc, 0x6c, 0xf2, 0xe3, - 0x74, 0xe2, 0x4e, 0x26, 0xc4, 0x51, 0x12, 0xd6, 0x82, 0xc0, 0x7b, 0x24, 0x08, 0xfa, 0xd7, 0x45, - 0xe9, 0x11, 0xf2, 0x8a, 0x93, 0xab, 0xf4, 0x4a, 0x4d, 0x5d, 0x7a, 0x39, 0x53, 0xdf, 0x07, 0x60, - 0x91, 0x45, 0x23, 0xe2, 0x98, 0x56, 0xa4, 0x5e, 0x0d, 0xda, 0x97, 0xaa, 0xf4, 0x61, 0xf2, 0x52, - 0x8b, 0x6b, 0x6a, 0x75, 0x37, 0x42, 0x1f, 0x42, 0xc3, 0x0e, 0xbc, 0x70, 0x42, 0x14, 0x73, 0xf9, - 0x85, 0xcc, 0xf5, 0x74, 0x7d, 0x37, 0xca, 0x94, 0xe8, 0x95, 0x97, 0x2d, 0xd1, 0xff, 0x54, 0x90, - 0x37, 0xb5, 0xec, 0x45, 0x11, 0x8d, 0xae, 0x78, 0x8d, 0xdc, 0x5a, 0xf0, 0xd6, 0xf9, 0x4d, 0x4f, - 0x91, 0xed, 0x0f, 0xf3, 0xbc, 0xfd, 0x3d, 0xbf, 0xb4, 0xf9, 0x73, 0x09, 0x6a, 0xe9, 0x85, 0xef, - 0x92, 0xed, 0xef, 0x41, 0x2d, 0x7d, 0x26, 0x57, 0xa5, 0xc8, 0x37, 0x9a, 0x27, 0x5d, 0x8c, 0x8e, - 0x01, 0x59, 0xa3, 0x51, 0x5a, 0xc8, 0x98, 0x31, 0xb3, 0x46, 0xc9, 0x15, 0xf9, 0xde, 0x1c, 0x7a, - 0x48, 0xb2, 0xd3, 0x21, 0xe7, 0xc7, 0x9a, 0x35, 0x1a, 0xcd, 0x50, 0xd0, 0xf7, 0xe1, 0xe6, 0xec, - 0x1e, 0xe6, 0xd1, 0xb9, 0x19, 0xba, 0x8e, 0x2a, 0xf1, 0xb7, 0xe7, 0xbd, 0xf3, 0x76, 0x66, 0xe0, - 0x3f, 0x3d, 0x3f, 0x70, 0x1d, 0xa9, 0x73, 0x44, 0x2f, 0x4d, 0xb4, 0x7f, 0x08, 0xaf, 0x3c, 0x67, - 0xf9, 0x15, 0x36, 0xe8, 0xcf, 0xbe, 0xbf, 0x2e, 0xae, 0x84, 0x8c, 0xf5, 0x7e, 0x5b, 0x90, 0x57, - 0xf3, 0x59, 0x9d, 0x74, 0xa7, 0x55, 0x5d, 0x7d, 0x63, 0x3d, 0xe7, 0x3e, 0xbd, 0x83, 0x43, 0x09, - 0x2f, 0xca, 0xc0, 0xcf, 0x66, 0xca, 0xc0, 0xfc, 0xa5, 0xca, 0x9e, 0x60, 0x92, 0x40, 0x0a, 0x41, - 0xff, 0x43, 0x09, 0xaa, 0x09, 0xba, 0xb8, 0x01, 0x9c, 0xb3, 0x88, 0x78, 0xa6, 0x97, 0x84, 0xb0, - 0x02, 0x06, 0x49, 0xda, 0xe3, 0x41, 0xec, 0x35, 0xa8, 0xf1, 0x8b, 0x86, 0x9c, 0x2e, 0x8a, 0xe9, - 0x2a, 0x27, 0x88, 0xc9, 0xd7, 0xa1, 0x1e, 0x05, 0x91, 0x35, 0x31, 0x23, 0x91, 0xb1, 0x4b, 0x92, - 0x5b, 0x90, 0x44, 0xbe, 0x46, 0x6f, 0xc3, 0xb5, 0x68, 0x4c, 0x83, 0x28, 0x9a, 0xf0, 0x2a, 0x4e, - 0xd4, 0x2d, 0xb2, 0xcc, 0x58, 0xc6, 0x5a, 0x3a, 0x21, 0xeb, 0x19, 0xc6, 0xa3, 0xf7, 0x74, 0x31, - 0x77, 0x5d, 0x11, 0x44, 0x96, 0xf1, 0x6a, 0x4a, 0xe5, 0xae, 0x8d, 0x5a, 0xb0, 0x12, 0xca, 0x9a, - 0x40, 0xc4, 0x8a, 0x02, 0x4e, 0x86, 0xc8, 0x84, 0x35, 0x8f, 0x58, 0x2c, 0xa6, 0xc4, 0x31, 0x8f, - 0x5d, 0x32, 0x71, 0xe4, 0x8d, 0xab, 0x99, 0xbb, 0xe6, 0x4d, 0xd4, 0xd2, 0x79, 0x28, 0xb8, 0x71, - 0x33, 0x81, 0x93, 0x63, 0x5e, 0x1f, 0xc8, 0x2f, 0xb4, 0x06, 0xf5, 0xc1, 0x93, 0xc1, 0xd0, 0xd8, - 0x33, 0xf7, 0xf6, 0x37, 0x0d, 0xf5, 0xc4, 0x3e, 0x30, 0xb0, 0x1c, 0x16, 0xf8, 0xfc, 0x70, 0x7f, - 0xd8, 0xdd, 0x35, 0x87, 0x3b, 0xbd, 0x47, 0x03, 0xad, 0x88, 0x6e, 0xc2, 0xb5, 0xe1, 0x36, 0xde, - 0x1f, 0x0e, 0x77, 0x8d, 0x4d, 0xf3, 0xc0, 0xc0, 0x3b, 0xfb, 0x9b, 0x03, 0xad, 0x84, 0x10, 0x34, - 0xa7, 0xe4, 0xe1, 0xce, 0x9e, 0xa1, 0x2d, 0xa3, 0x3a, 0xac, 0x1c, 0x18, 0xb8, 0x67, 0xf4, 0x87, - 0x5a, 0x59, 0xff, 0x5b, 0x11, 0xea, 0x19, 0x2b, 0x72, 0x47, 0xa6, 0x4c, 0xde, 0x71, 0x96, 0x31, - 0xff, 0xe4, 0xc1, 0xc4, 0xb6, 0xec, 0xb1, 0xb4, 0xce, 0x32, 0x96, 0x03, 0x6e, 0x37, 0xcf, 0x3a, - 0xcb, 0x9c, 0xf3, 0x65, 0x5c, 0xf5, 0xac, 0x33, 0x09, 0xf2, 0x06, 0x34, 0x4e, 0x08, 0xf5, 0xc9, - 0x44, 0xcd, 0x4b, 0x8b, 0xd4, 0x25, 0x4d, 0x2e, 0xb9, 0x0d, 0x9a, 0x5a, 0x32, 0x85, 0x91, 0xe6, - 0x68, 0x4a, 0xfa, 0x5e, 0x02, 0x76, 0x74, 0x59, 0xeb, 0x15, 0xa1, 0xf5, 0xfb, 0xf3, 0x3b, 0xe9, - 0xf3, 0x14, 0x3f, 0x48, 0x15, 0xbf, 0x02, 0x25, 0x9c, 0xbc, 0x36, 0xf7, 0xba, 0xbd, 0x6d, 0xae, - 0xec, 0x55, 0xa8, 0xed, 0x75, 0x3f, 0x37, 0x0f, 0x07, 0xe2, 0xed, 0x02, 0x69, 0xd0, 0x78, 0x64, - 0xe0, 0xbe, 0xb1, 0xab, 0x28, 0x25, 0x74, 0x03, 0x34, 0x45, 0x99, 0xae, 0x5b, 0xd6, 0x7f, 0x5f, - 0x84, 0x35, 0x19, 0xd7, 0xd3, 0xe7, 0xb4, 0xe7, 0xbf, 0x6b, 0x2d, 0x1e, 0x7a, 0x5b, 0xb0, 0xe2, - 0x11, 0x96, 0xda, 0xa1, 0x86, 0x93, 0x21, 0x72, 0xa1, 0x6e, 0xf9, 0x7e, 0x10, 0x89, 0x37, 0x19, - 0xa6, 0x42, 0xe4, 0xd6, 0x5c, 0xaf, 0x3f, 0xa9, 0xe4, 0x9d, 0xee, 0x14, 0x49, 0x46, 0xc8, 0x2c, - 0x76, 0xfb, 0x23, 0xd0, 0x2e, 0x2e, 0x98, 0x27, 0x2f, 0xbd, 0xf5, 0xde, 0x34, 0x2d, 0x11, 0xee, - 0xa0, 0x87, 0xfd, 0x47, 0xfd, 0xfd, 0xc7, 0x7d, 0x6d, 0x89, 0x0f, 0xf0, 0x61, 0xbf, 0xbf, 0xd3, - 0xdf, 0xd2, 0x0a, 0x08, 0xa0, 0x62, 0x7c, 0xbe, 0x33, 0x34, 0x36, 0xb5, 0xe2, 0xc6, 0xdf, 0x57, - 0xa1, 0x22, 0x85, 0x44, 0xbf, 0x52, 0x29, 0x39, 0xdb, 0x26, 0x45, 0x1f, 0xcd, 0x5d, 0xda, 0xce, - 0xb4, 0x5e, 0xdb, 0x1f, 0x2f, 0xcc, 0xaf, 0x9e, 0x35, 0x97, 0xd0, 0xcf, 0x0b, 0xd0, 0x98, 0x79, - 0xc7, 0xcb, 0xfb, 0x04, 0x75, 0x45, 0x57, 0xb6, 0xfd, 0xff, 0x0b, 0xf1, 0xa6, 0xb2, 0xfc, 0xac, - 0x00, 0xf5, 0x4c, 0x3f, 0x12, 0xdd, 0x5f, 0xa4, 0x87, 0x29, 0x25, 0x79, 0xb0, 0x78, 0xfb, 0x53, - 0x5f, 0x7a, 0xb7, 0x80, 0x7e, 0x5a, 0x80, 0x7a, 0xa6, 0x33, 0x97, 0x5b, 0x94, 0xcb, 0x7d, 0xc4, - 0xdc, 0xa2, 0x5c, 0xd5, 0x08, 0x5c, 0x42, 0x3f, 0x2a, 0x40, 0x2d, 0xed, 0xb2, 0xa1, 0xbb, 0xf3, - 0xf7, 0xe5, 0xa4, 0x10, 0xf7, 0x16, 0x6d, 0xe8, 0xe9, 0x4b, 0xe8, 0x07, 0x50, 0x4d, 0x5a, 0x52, - 0x28, 0x6f, 0x1a, 0xb9, 0xd0, 0xef, 0x6a, 0xdf, 0x9d, 0x9b, 0x2f, 0xbb, 0x7d, 0xd2, 0x27, 0xca, - 0xbd, 0xfd, 0x85, 0x8e, 0x56, 0xfb, 0xee, 0xdc, 0x7c, 0xe9, 0xf6, 0xdc, 0x13, 0x32, 0xed, 0xa4, - 0xdc, 0x9e, 0x70, 0xb9, 0x8f, 0x95, 0xdb, 0x13, 0xae, 0xea, 0x5e, 0x49, 0x41, 0x32, 0x0d, 0xa9, - 0xdc, 0x82, 0x5c, 0x6e, 0x7a, 0xe5, 0x16, 0xe4, 0x8a, 0xfe, 0x97, 0x72, 0xc9, 0x69, 0x81, 0x7e, - 0x77, 0xee, 0x1e, 0xce, 0x9c, 0x2e, 0x79, 0xa9, 0x8b, 0xa4, 0x2f, 0xa1, 0x1f, 0xab, 0x27, 0x03, - 0xd9, 0x00, 0x42, 0xf3, 0x40, 0xcd, 0xf4, 0x8c, 0xda, 0x1f, 0x2c, 0x96, 0x6a, 0x44, 0x8c, 0xf8, - 0x49, 0x01, 0x60, 0xda, 0x2a, 0xca, 0x2d, 0xc4, 0xa5, 0x1e, 0x55, 0xfb, 0xfe, 0x02, 0x9c, 0xd9, - 0xe3, 0x91, 0x74, 0x87, 0x72, 0x1f, 0x8f, 0x0b, 0xad, 0xac, 0xdc, 0xc7, 0xe3, 0x62, 0x1b, 0x4a, - 0x5f, 0xfa, 0x74, 0xe5, 0xdb, 0x65, 0x99, 0xfb, 0x2b, 0xe2, 0xe7, 0xfd, 0x7f, 0x07, 0x00, 0x00, - 0xff, 0xff, 0xf3, 0x57, 0x35, 0x86, 0x41, 0x25, 0x00, 0x00, +var fileDescriptor_driver_9320f8b051f51d4e = []byte{ + // 2888 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x59, 0x4b, 0x6f, 0x23, 0xc7, + 0xf1, 0x17, 0x49, 0x91, 0x22, 0x8b, 0x12, 0x35, 0xdb, 0xbb, 0x6b, 0xd3, 0x34, 0xfe, 0x7f, 0xaf, + 0x07, 0x70, 0x20, 0xd8, 0x5e, 0xca, 0x96, 0x91, 0x7d, 0x25, 0x7e, 0xd0, 0xd4, 0xac, 0x24, 0xaf, + 0x44, 0x29, 0x4d, 0x0a, 0xeb, 0x4d, 0x62, 0x4f, 0x46, 0x33, 0x2d, 0x72, 0x56, 0x9c, 0x87, 0xa7, + 0x7b, 0x64, 0x09, 0x41, 0x90, 0x20, 0x01, 0x82, 0xe4, 0x10, 0x20, 0x17, 0x23, 0x40, 0x8e, 0xc9, + 0x29, 0xc8, 0x37, 0x48, 0xe0, 0x4b, 0x3e, 0x45, 0x80, 0x5c, 0x72, 0x09, 0x90, 0x6b, 0xbe, 0x41, + 0xd0, 0x8f, 0x19, 0x0e, 0x25, 0xad, 0x77, 0xc8, 0xcd, 0x89, 0xec, 0xea, 0xae, 0x5f, 0xd7, 0x54, + 0x55, 0x57, 0x55, 0x77, 0x81, 0x1e, 0x8e, 0xe3, 0xa1, 0xeb, 0xd3, 0x75, 0x27, 0x72, 0x4f, 0x49, + 0x44, 0xd7, 0xc3, 0x28, 0x60, 0x81, 0x1a, 0xb5, 0xc5, 0x00, 0xbd, 0x31, 0xb2, 0xe8, 0xc8, 0xb5, + 0x83, 0x28, 0x6c, 0xfb, 0x81, 0x67, 0x39, 0x6d, 0xc5, 0xd3, 0x56, 0x3c, 0x72, 0x59, 0xeb, 0xff, + 0x87, 0x41, 0x30, 0x1c, 0x13, 0x89, 0x70, 0x14, 0x1f, 0xaf, 0x3b, 0x71, 0x64, 0x31, 0x37, 0xf0, + 0xd5, 0xfc, 0x6b, 0x17, 0xe7, 0x99, 0xeb, 0x11, 0xca, 0x2c, 0x2f, 0x54, 0x0b, 0x3e, 0x1a, 0xba, + 0x6c, 0x14, 0x1f, 0xb5, 0xed, 0xc0, 0x5b, 0x4f, 0xb7, 0x5c, 0x17, 0x5b, 0xae, 0x27, 0x62, 0xd2, + 0x91, 0x15, 0x11, 0x67, 0x7d, 0x64, 0x8f, 0x69, 0x48, 0x6c, 0xfe, 0x6b, 0xf2, 0x3f, 0x0a, 0x61, + 0x2b, 0x3f, 0x02, 0x65, 0x51, 0x6c, 0xb3, 0xe4, 0x7b, 0x2d, 0xc6, 0x22, 0xf7, 0x28, 0x66, 0x44, + 0x02, 0xe9, 0xaf, 0xc0, 0xcb, 0x03, 0x8b, 0x9e, 0x74, 0x03, 0xff, 0xd8, 0x1d, 0xf6, 0xed, 0x11, + 0xf1, 0x2c, 0x4c, 0xbe, 0x88, 0x09, 0x65, 0xfa, 0x0f, 0xa1, 0x79, 0x79, 0x8a, 0x86, 0x81, 0x4f, + 0x09, 0xfa, 0x08, 0x16, 0xb9, 0x34, 0xcd, 0xc2, 0xad, 0xc2, 0x5a, 0x7d, 0xe3, 0xed, 0xf6, 0xb3, + 0x14, 0x27, 0x65, 0x68, 0xab, 0xaf, 0x68, 0xf7, 0x43, 0x62, 0x63, 0xc1, 0xa9, 0xdf, 0x84, 0xeb, + 0x5d, 0x2b, 0xb4, 0x8e, 0xdc, 0xb1, 0xcb, 0x5c, 0x42, 0x93, 0x4d, 0x63, 0xb8, 0x31, 0x4d, 0x56, + 0x1b, 0x7e, 0x06, 0xcb, 0x76, 0x86, 0xae, 0x36, 0xbe, 0xdf, 0xce, 0x65, 0xb1, 0xf6, 0xa6, 0x18, + 0x4d, 0x01, 0x4f, 0xc1, 0xe9, 0x37, 0x00, 0x3d, 0x74, 0xfd, 0x21, 0x89, 0xc2, 0xc8, 0xf5, 0x59, + 0x22, 0xcc, 0xd7, 0x25, 0xb8, 0x3e, 0x45, 0x56, 0xc2, 0x3c, 0x05, 0x48, 0xf5, 0xc8, 0x45, 0x29, + 0xad, 0xd5, 0x37, 0x3e, 0xc9, 0x29, 0xca, 0x15, 0x78, 0xed, 0x4e, 0x0a, 0x66, 0xf8, 0x2c, 0x3a, + 0xc7, 0x19, 0x74, 0xf4, 0x39, 0x54, 0x46, 0xc4, 0x1a, 0xb3, 0x51, 0xb3, 0x78, 0xab, 0xb0, 0xd6, + 0xd8, 0x78, 0xf8, 0x02, 0xfb, 0x6c, 0x0b, 0xa0, 0x3e, 0xb3, 0x18, 0xc1, 0x0a, 0x15, 0xdd, 0x06, + 0x24, 0xff, 0x99, 0x0e, 0xa1, 0x76, 0xe4, 0x86, 0xdc, 0x91, 0x9b, 0xa5, 0x5b, 0x85, 0xb5, 0x1a, + 0xbe, 0x26, 0x67, 0x36, 0x27, 0x13, 0xad, 0x10, 0x56, 0x2f, 0x48, 0x8b, 0x34, 0x28, 0x9d, 0x90, + 0x73, 0x61, 0x91, 0x1a, 0xe6, 0x7f, 0xd1, 0x16, 0x94, 0x4f, 0xad, 0x71, 0x4c, 0x84, 0xc8, 0xf5, + 0x8d, 0x77, 0x9f, 0xe7, 0x1e, 0xca, 0x45, 0x27, 0x7a, 0xc0, 0x92, 0xff, 0x41, 0xf1, 0x5e, 0x41, + 0xbf, 0x0f, 0xf5, 0x8c, 0xdc, 0xa8, 0x01, 0x70, 0xd8, 0xdb, 0x34, 0x06, 0x46, 0x77, 0x60, 0x6c, + 0x6a, 0x0b, 0x68, 0x05, 0x6a, 0x87, 0xbd, 0x6d, 0xa3, 0xb3, 0x3b, 0xd8, 0x7e, 0xa2, 0x15, 0x50, + 0x1d, 0x96, 0x92, 0x41, 0x51, 0x3f, 0x03, 0x84, 0x89, 0x1d, 0x9c, 0x92, 0x88, 0x3b, 0xb2, 0xb2, + 0x2a, 0x7a, 0x19, 0x96, 0x98, 0x45, 0x4f, 0x4c, 0xd7, 0x51, 0x32, 0x57, 0xf8, 0x70, 0xc7, 0x41, + 0x3b, 0x50, 0x19, 0x59, 0xbe, 0x33, 0x7e, 0xbe, 0xdc, 0xd3, 0xaa, 0xe6, 0xe0, 0xdb, 0x82, 0x11, + 0x2b, 0x00, 0xee, 0xdd, 0x53, 0x3b, 0x4b, 0x03, 0xe8, 0x4f, 0x40, 0xeb, 0x33, 0x2b, 0x62, 0x59, + 0x71, 0x0c, 0x58, 0xe4, 0xfb, 0x2b, 0x8f, 0x9e, 0x65, 0x4f, 0x79, 0x32, 0xb1, 0x60, 0xd7, 0xff, + 0x53, 0x84, 0x6b, 0x19, 0x6c, 0xe5, 0xa9, 0x8f, 0xa1, 0x12, 0x11, 0x1a, 0x8f, 0x99, 0x80, 0x6f, + 0x6c, 0x7c, 0x98, 0x13, 0xfe, 0x12, 0x52, 0x1b, 0x0b, 0x18, 0xac, 0xe0, 0xd0, 0x1a, 0x68, 0x92, + 0xc3, 0x24, 0x51, 0x14, 0x44, 0xa6, 0x47, 0x87, 0x42, 0x6b, 0x35, 0xdc, 0x90, 0x74, 0x83, 0x93, + 0xf7, 0xe8, 0x30, 0xa3, 0xd5, 0xd2, 0x0b, 0x6a, 0x15, 0x59, 0xa0, 0xf9, 0x84, 0x7d, 0x19, 0x44, + 0x27, 0x26, 0x57, 0x6d, 0xe4, 0x3a, 0xa4, 0xb9, 0x28, 0x40, 0xef, 0xe4, 0x04, 0xed, 0x49, 0xf6, + 0x7d, 0xc5, 0x8d, 0x57, 0xfd, 0x69, 0x82, 0xfe, 0x16, 0x54, 0xe4, 0x97, 0x72, 0x4f, 0xea, 0x1f, + 0x76, 0xbb, 0x46, 0xbf, 0xaf, 0x2d, 0xa0, 0x1a, 0x94, 0xb1, 0x31, 0xc0, 0xdc, 0xc3, 0x6a, 0x50, + 0x7e, 0xd8, 0x19, 0x74, 0x76, 0xb5, 0xa2, 0xfe, 0x26, 0xac, 0x3e, 0xb6, 0x5c, 0x96, 0xc7, 0xb9, + 0xf4, 0x00, 0xb4, 0xc9, 0x5a, 0x65, 0x9d, 0x9d, 0x29, 0xeb, 0xe4, 0x57, 0x8d, 0x71, 0xe6, 0xb2, + 0x0b, 0xf6, 0xd0, 0xa0, 0x44, 0xa2, 0x48, 0x99, 0x80, 0xff, 0xd5, 0xbf, 0x84, 0xd5, 0x3e, 0x0b, + 0xc2, 0x5c, 0x9e, 0xff, 0x1e, 0x2c, 0xf1, 0x1c, 0x15, 0xc4, 0x4c, 0xb9, 0xfe, 0x2b, 0x6d, 0x99, + 0xc3, 0xda, 0x49, 0x0e, 0x6b, 0x6f, 0xaa, 0x1c, 0x87, 0x93, 0x95, 0xe8, 0x25, 0xa8, 0x50, 0x77, + 0xe8, 0x5b, 0x63, 0x15, 0x2d, 0xd4, 0x48, 0x47, 0xdc, 0xc9, 0x93, 0x8d, 0x95, 0xe3, 0x77, 0x01, + 0x6d, 0x12, 0xca, 0xa2, 0xe0, 0x3c, 0x97, 0x3c, 0x37, 0xa0, 0x7c, 0x1c, 0x44, 0xb6, 0x3c, 0x88, + 0x55, 0x2c, 0x07, 0xfc, 0x50, 0x4d, 0x81, 0x28, 0xec, 0xdb, 0x80, 0x76, 0x7c, 0x9e, 0x53, 0xf2, + 0x19, 0xe2, 0xb7, 0x45, 0xb8, 0x3e, 0xb5, 0x5e, 0x19, 0x63, 0xfe, 0x73, 0xc8, 0x03, 0x53, 0x4c, + 0xe5, 0x39, 0x44, 0xfb, 0x50, 0x91, 0x2b, 0x94, 0x26, 0xef, 0xce, 0x00, 0x24, 0xd3, 0x94, 0x82, + 0x53, 0x30, 0x57, 0x3a, 0x7d, 0xe9, 0x7f, 0xed, 0xf4, 0x5a, 0xf2, 0x1d, 0xf4, 0xb9, 0xfa, 0xfb, + 0x01, 0x5c, 0xcb, 0x2c, 0x56, 0xca, 0x7b, 0x08, 0x65, 0xca, 0x09, 0x4a, 0x7b, 0xef, 0xcc, 0xa8, + 0x3d, 0x8a, 0x25, 0xbb, 0x7e, 0x5d, 0x82, 0x1b, 0xa7, 0xc4, 0x4f, 0x45, 0xd1, 0x37, 0xe1, 0x5a, + 0x5f, 0xb8, 0x56, 0x2e, 0xdf, 0x99, 0xb8, 0x65, 0x71, 0xca, 0x2d, 0x6f, 0x00, 0xca, 0xa2, 0x28, + 0xe7, 0x39, 0x87, 0x55, 0xe3, 0x8c, 0xd8, 0xb9, 0x90, 0x9b, 0xb0, 0x64, 0x07, 0x9e, 0x67, 0xf9, + 0x4e, 0xb3, 0x78, 0xab, 0xb4, 0x56, 0xc3, 0xc9, 0x30, 0x7b, 0x7e, 0x4a, 0x79, 0xcf, 0x8f, 0xfe, + 0x9b, 0x02, 0x68, 0x93, 0xbd, 0x95, 0x22, 0xb9, 0xf4, 0xcc, 0xe1, 0x40, 0x7c, 0xef, 0x65, 0xac, + 0x46, 0x8a, 0x9e, 0x1c, 0x71, 0x49, 0x27, 0x51, 0x94, 0x09, 0x21, 0xa5, 0x17, 0x0c, 0x21, 0xfa, + 0xbf, 0x0a, 0x80, 0x2e, 0x17, 0x4a, 0xe8, 0x75, 0x58, 0xa6, 0xc4, 0x77, 0x4c, 0xa9, 0x46, 0x69, + 0xe1, 0x2a, 0xae, 0x73, 0x9a, 0xd4, 0x27, 0x45, 0x08, 0x16, 0xc9, 0x19, 0xb1, 0xd5, 0x69, 0x15, + 0xff, 0xd1, 0x08, 0x96, 0x8f, 0xa9, 0xe9, 0xd2, 0x60, 0x6c, 0xa5, 0x15, 0x45, 0x63, 0xc3, 0x98, + 0xbb, 0x60, 0x6b, 0x3f, 0xec, 0xef, 0x24, 0x60, 0xb8, 0x7e, 0x4c, 0xd3, 0x81, 0xde, 0x86, 0x7a, + 0x66, 0x0e, 0x55, 0x61, 0xb1, 0xb7, 0xdf, 0x33, 0xb4, 0x05, 0x04, 0x50, 0xe9, 0x6e, 0xe3, 0xfd, + 0xfd, 0x81, 0x8c, 0xda, 0x3b, 0x7b, 0x9d, 0x2d, 0x43, 0x2b, 0xea, 0xbf, 0x2f, 0x03, 0x4c, 0xd2, + 0x27, 0x6a, 0x40, 0x31, 0xb5, 0x74, 0xd1, 0x75, 0xf8, 0xc7, 0xf8, 0x96, 0x47, 0x94, 0xf7, 0x88, + 0xff, 0x68, 0x03, 0x6e, 0x7a, 0x74, 0x18, 0x5a, 0xf6, 0x89, 0xa9, 0xb2, 0x9e, 0x2d, 0x98, 0xc5, + 0x57, 0x2d, 0xe3, 0xeb, 0x6a, 0x52, 0x49, 0x2d, 0x71, 0x77, 0xa1, 0x44, 0xfc, 0xd3, 0xe6, 0xa2, + 0xa8, 0x0e, 0x1f, 0xcc, 0x9c, 0xd6, 0xdb, 0x86, 0x7f, 0x2a, 0xab, 0x41, 0x0e, 0x83, 0x7a, 0x50, + 0x8b, 0x08, 0x0d, 0xe2, 0xc8, 0x26, 0xb4, 0x59, 0x9e, 0xe9, 0x90, 0xe1, 0x84, 0x0f, 0x4f, 0x20, + 0xd0, 0x26, 0x54, 0xbc, 0x20, 0xf6, 0x19, 0x6d, 0x56, 0x84, 0x80, 0x6f, 0xe7, 0x04, 0xdb, 0xe3, + 0x4c, 0x58, 0xf1, 0xa2, 0x2d, 0x58, 0x72, 0xc8, 0xa9, 0xcb, 0x65, 0x5a, 0x12, 0x30, 0xb7, 0xf3, + 0xda, 0x57, 0x70, 0xe1, 0x84, 0x9b, 0x2b, 0x3d, 0xa6, 0x24, 0x6a, 0x56, 0xa5, 0xd2, 0xf9, 0x7f, + 0xf4, 0x2a, 0xd4, 0xac, 0xf1, 0x38, 0xb0, 0x4d, 0xc7, 0x8d, 0x9a, 0x35, 0x31, 0x51, 0x15, 0x84, + 0x4d, 0x37, 0x42, 0xaf, 0x41, 0x5d, 0x9e, 0x0c, 0x33, 0xb4, 0xd8, 0xa8, 0x09, 0x62, 0x1a, 0x24, + 0xe9, 0xc0, 0x62, 0x23, 0xb5, 0x80, 0x44, 0x91, 0x5c, 0x50, 0x4f, 0x17, 0x90, 0x28, 0x12, 0x0b, + 0xbe, 0x05, 0xab, 0xe2, 0x98, 0x0f, 0xa3, 0x20, 0x0e, 0x4d, 0x61, 0xf2, 0x65, 0xb1, 0x68, 0x85, + 0x93, 0xb7, 0x38, 0xb5, 0xc7, 0x6d, 0xff, 0x0a, 0x54, 0x9f, 0x06, 0x47, 0x72, 0xc1, 0x8a, 0x58, + 0xb0, 0xf4, 0x34, 0x38, 0x4a, 0xa6, 0xa4, 0x84, 0xae, 0xd3, 0x6c, 0xc8, 0x29, 0x31, 0xde, 0x71, + 0x5a, 0x77, 0xa0, 0x9a, 0x18, 0xf0, 0x8a, 0x02, 0xf9, 0x46, 0xb6, 0x40, 0xae, 0x65, 0xab, 0xdd, + 0x7f, 0x14, 0xa0, 0x96, 0x1a, 0x0c, 0xf9, 0x70, 0x5d, 0x00, 0x5a, 0x8c, 0x38, 0xe6, 0xc4, 0xfe, + 0x32, 0xc8, 0xbe, 0x9f, 0x53, 0xd7, 0x9d, 0x04, 0x41, 0x05, 0x1a, 0xe5, 0x0c, 0x28, 0x45, 0x9e, + 0xec, 0xf7, 0x39, 0xac, 0x8e, 0x5d, 0x3f, 0x3e, 0xcb, 0xec, 0x25, 0xb3, 0xd8, 0xb7, 0x73, 0xee, + 0xb5, 0xcb, 0xb9, 0x27, 0x7b, 0x34, 0xc6, 0x53, 0x63, 0xfd, 0xab, 0x22, 0xbc, 0x74, 0xb5, 0x38, + 0xa8, 0x07, 0x25, 0x3b, 0x8c, 0xd5, 0xa7, 0x7d, 0x77, 0xd6, 0x4f, 0xeb, 0x86, 0xf1, 0x64, 0x57, + 0x0e, 0xc4, 0x2b, 0x5f, 0x8f, 0x78, 0x41, 0x74, 0xae, 0xbe, 0xe0, 0xc3, 0x59, 0x21, 0xf7, 0x04, + 0xf7, 0x04, 0x55, 0xc1, 0x21, 0x0c, 0x55, 0x95, 0x3f, 0xf9, 0x41, 0x2c, 0xcd, 0x9e, 0x87, 0x13, + 0x48, 0x9c, 0xe2, 0xe8, 0x77, 0xe0, 0xe6, 0x95, 0x9f, 0x82, 0xfe, 0x0f, 0xc0, 0x0e, 0x63, 0x53, + 0xdc, 0x93, 0xa4, 0xdd, 0x4b, 0xb8, 0x66, 0x87, 0x71, 0x5f, 0x10, 0xf4, 0xbb, 0xd0, 0x7c, 0x96, + 0xbc, 0xfc, 0xf8, 0x48, 0x89, 0x4d, 0xef, 0x48, 0xe8, 0xa0, 0x84, 0xab, 0x92, 0xb0, 0x77, 0xa4, + 0xff, 0xae, 0x08, 0xab, 0x17, 0xc4, 0xe1, 0x29, 0x46, 0x1e, 0xc7, 0x24, 0xed, 0xc9, 0x11, 0x3f, + 0x9b, 0xb6, 0xeb, 0x24, 0xb5, 0xa5, 0xf8, 0x2f, 0x82, 0x66, 0xa8, 0xea, 0xbe, 0xa2, 0x1b, 0x72, + 0x87, 0xf6, 0x8e, 0x5c, 0x46, 0x45, 0x39, 0x5e, 0xc6, 0x72, 0x80, 0x9e, 0x40, 0x23, 0x22, 0x94, + 0x44, 0xa7, 0xc4, 0x31, 0xc3, 0x20, 0x62, 0x89, 0xc2, 0x36, 0x66, 0x53, 0xd8, 0x41, 0x10, 0x31, + 0xbc, 0x92, 0x20, 0xf1, 0x11, 0x45, 0x8f, 0x61, 0xc5, 0x39, 0xf7, 0x2d, 0xcf, 0xb5, 0x15, 0x72, + 0x65, 0x6e, 0xe4, 0x65, 0x05, 0x24, 0x80, 0xf9, 0x75, 0x33, 0x33, 0xc9, 0x3f, 0x6c, 0x6c, 0x1d, + 0x91, 0xb1, 0xd2, 0x89, 0x1c, 0x4c, 0x9f, 0xdf, 0xb2, 0x3a, 0xbf, 0xfa, 0x1f, 0x8b, 0xd0, 0x98, + 0x3e, 0x00, 0x89, 0xfd, 0x42, 0x12, 0xb9, 0x81, 0x93, 0xb1, 0xdf, 0x81, 0x20, 0x70, 0x1b, 0xf1, + 0xe9, 0x2f, 0xe2, 0x80, 0x59, 0x89, 0x8d, 0xec, 0x30, 0xfe, 0x1e, 0x1f, 0x5f, 0xb0, 0x7d, 0xe9, + 0x82, 0xed, 0xd1, 0xdb, 0x80, 0x94, 0x7d, 0xc7, 0xae, 0xe7, 0x32, 0xf3, 0xe8, 0x9c, 0x11, 0xa9, + 0xff, 0x12, 0xd6, 0xe4, 0xcc, 0x2e, 0x9f, 0xf8, 0x98, 0xd3, 0x91, 0x0e, 0x2b, 0x41, 0xe0, 0x99, + 0xd4, 0x0e, 0x22, 0x62, 0x5a, 0xce, 0x53, 0x91, 0x43, 0x4a, 0xb8, 0x1e, 0x04, 0x5e, 0x9f, 0xd3, + 0x3a, 0xce, 0x53, 0x1e, 0x32, 0xed, 0x30, 0xa6, 0x84, 0x99, 0xfc, 0xa7, 0x59, 0x91, 0x21, 0x53, + 0x92, 0xba, 0x61, 0x4c, 0x33, 0x0b, 0x3c, 0xe2, 0xf1, 0x90, 0x9f, 0x59, 0xb0, 0x47, 0x3c, 0xbe, + 0xcb, 0xf2, 0x01, 0x89, 0x6c, 0xe2, 0xb3, 0x81, 0x6b, 0x9f, 0x50, 0x11, 0xce, 0x0b, 0x78, 0x8a, + 0xa6, 0x7f, 0x06, 0x65, 0x91, 0x44, 0xf8, 0xc7, 0x8b, 0x00, 0x2c, 0xe2, 0xb3, 0x54, 0x6f, 0x95, + 0x13, 0x44, 0x74, 0x7e, 0x15, 0x6a, 0xa3, 0x80, 0xaa, 0xe8, 0x2e, 0x3d, 0xaf, 0xca, 0x09, 0x62, + 0xb2, 0x05, 0xd5, 0x88, 0x58, 0x4e, 0xe0, 0x8f, 0xcf, 0x85, 0x5e, 0xaa, 0x38, 0x1d, 0xeb, 0x5f, + 0x40, 0x45, 0x26, 0x97, 0x17, 0xc0, 0xbf, 0x0d, 0xc8, 0x96, 0x69, 0x21, 0x24, 0x91, 0xe7, 0x52, + 0xea, 0x06, 0x3e, 0x4d, 0xde, 0x44, 0xe4, 0xcc, 0xc1, 0x64, 0x42, 0xff, 0x5b, 0x41, 0x16, 0x14, + 0xf2, 0xb6, 0xca, 0x4b, 0x32, 0x55, 0x1d, 0xcc, 0x7d, 0xa5, 0x57, 0x00, 0x49, 0x59, 0x4d, 0xd4, + 0xdb, 0xcf, 0xac, 0x65, 0x35, 0x91, 0x65, 0x35, 0xe1, 0x35, 0x9c, 0xaa, 0x5b, 0x24, 0x9c, 0x2c, + 0x5b, 0xea, 0x4e, 0x7a, 0xdf, 0x20, 0xfa, 0xbf, 0x0b, 0x69, 0x44, 0x48, 0xee, 0x05, 0xe8, 0x73, + 0xa8, 0xf2, 0xc3, 0x65, 0x7a, 0x56, 0xa8, 0x5e, 0xb9, 0xba, 0xf3, 0x5d, 0x39, 0xda, 0xfc, 0x2c, + 0xed, 0x59, 0xa1, 0x2c, 0x68, 0x96, 0x42, 0x39, 0xe2, 0x91, 0xc5, 0x72, 0x26, 0x91, 0x85, 0xff, + 0x47, 0x6f, 0x40, 0xc3, 0x8a, 0x59, 0x60, 0x5a, 0xce, 0x29, 0x89, 0x98, 0x4b, 0x89, 0xb2, 0xf0, + 0x0a, 0xa7, 0x76, 0x12, 0x62, 0xeb, 0x01, 0x2c, 0x67, 0x31, 0x9f, 0x97, 0x63, 0xcb, 0xd9, 0x1c, + 0xfb, 0x23, 0x80, 0x49, 0xf9, 0xcb, 0x3d, 0x81, 0x9c, 0xb9, 0xcc, 0xb4, 0x03, 0x47, 0x46, 0xbe, + 0x32, 0xae, 0x72, 0x42, 0x37, 0x70, 0xc8, 0x85, 0xcb, 0x44, 0x39, 0xb9, 0x4c, 0xf0, 0xb3, 0xc9, + 0x8f, 0xd3, 0x89, 0x3b, 0x1e, 0x13, 0x47, 0x49, 0x58, 0x0b, 0x02, 0xef, 0x91, 0x20, 0xe8, 0x5f, + 0x17, 0xa5, 0x47, 0xc8, 0xab, 0x5c, 0xae, 0x12, 0x33, 0x35, 0x75, 0xe9, 0xc5, 0x4c, 0x7d, 0x1f, + 0x80, 0x32, 0x2b, 0xe2, 0x05, 0x83, 0xc5, 0xd4, 0xeb, 0x48, 0xeb, 0xd2, 0x6d, 0x64, 0x90, 0xbc, + 0x48, 0xe3, 0x9a, 0x5a, 0xdd, 0x61, 0xe8, 0x7d, 0x58, 0xb6, 0x03, 0x2f, 0x1c, 0x13, 0xc5, 0x5c, + 0x7e, 0x2e, 0x73, 0x3d, 0x5d, 0xdf, 0x61, 0x99, 0xab, 0x48, 0xe5, 0x45, 0xaf, 0x22, 0x7f, 0x29, + 0xc8, 0x1b, 0x69, 0xf6, 0x42, 0x8c, 0x86, 0x57, 0xbc, 0xba, 0x6e, 0xcd, 0x79, 0xbb, 0xfe, 0xa6, + 0x27, 0xd7, 0xd6, 0xfb, 0x79, 0xde, 0x38, 0x9f, 0x5d, 0xc2, 0xfd, 0xb5, 0x04, 0xb5, 0xf4, 0x62, + 0x7b, 0xc9, 0xf6, 0xf7, 0xa0, 0x96, 0xb6, 0x03, 0x54, 0x69, 0xf2, 0x8d, 0xe6, 0x49, 0x17, 0xa3, + 0x63, 0x40, 0xd6, 0x70, 0x98, 0x96, 0x66, 0x66, 0x4c, 0xad, 0x61, 0xf2, 0x14, 0x70, 0x6f, 0x06, + 0x3d, 0x24, 0xd9, 0xe9, 0x90, 0xf3, 0x63, 0xcd, 0x1a, 0x0e, 0xa7, 0x28, 0xe8, 0xc7, 0x70, 0x73, + 0x7a, 0x0f, 0xf3, 0xe8, 0xdc, 0x0c, 0x5d, 0x47, 0x5d, 0x65, 0xb6, 0x67, 0xbd, 0xdb, 0xb7, 0xa7, + 0xe0, 0x3f, 0x3e, 0x3f, 0x70, 0x1d, 0xa9, 0x73, 0x14, 0x5d, 0x9a, 0x68, 0xfd, 0x14, 0x5e, 0x7e, + 0xc6, 0xf2, 0x2b, 0x6c, 0xd0, 0x9b, 0x7e, 0x67, 0x9e, 0x5f, 0x09, 0x19, 0xeb, 0xfd, 0xa1, 0x20, + 0x9f, 0x20, 0xa6, 0x75, 0xd2, 0xc9, 0x56, 0xa7, 0xeb, 0x39, 0xf7, 0xe9, 0x1e, 0x1c, 0x4a, 0x78, + 0x51, 0x90, 0x7e, 0x72, 0xa1, 0x20, 0xcd, 0x5b, 0xaa, 0xc8, 0xba, 0x4e, 0x02, 0x29, 0x04, 0xfd, + 0xcf, 0x25, 0xa8, 0x26, 0xe8, 0xe2, 0xa6, 0x73, 0x4e, 0x19, 0xf1, 0x4c, 0x2f, 0x09, 0x61, 0x05, + 0x0c, 0x92, 0xb4, 0xc7, 0x83, 0xd8, 0xab, 0x50, 0xe3, 0x17, 0x2a, 0x39, 0x5d, 0x14, 0xd3, 0x55, + 0x4e, 0x10, 0x93, 0xaf, 0x41, 0x9d, 0x05, 0xcc, 0x1a, 0x9b, 0x4c, 0x64, 0xec, 0x92, 0xe4, 0x16, + 0x24, 0x91, 0xaf, 0xd1, 0x5b, 0x70, 0x8d, 0x8d, 0xa2, 0x80, 0xb1, 0x31, 0xaf, 0xe2, 0x44, 0xdd, + 0x22, 0xcb, 0x8c, 0x45, 0xac, 0xa5, 0x13, 0xb2, 0x9e, 0xa1, 0x3c, 0x7a, 0x4f, 0x16, 0x73, 0xd7, + 0x15, 0x41, 0x64, 0x11, 0xaf, 0xa4, 0x54, 0xee, 0xda, 0xa8, 0x09, 0x4b, 0xa1, 0xac, 0x09, 0x44, + 0xac, 0x28, 0xe0, 0x64, 0x88, 0x4c, 0x58, 0xf5, 0x88, 0x45, 0xe3, 0x88, 0x38, 0xe6, 0xb1, 0x4b, + 0xc6, 0x8e, 0xbc, 0x59, 0x36, 0x72, 0x17, 0xd9, 0x89, 0x5a, 0xda, 0x0f, 0x05, 0x37, 0x6e, 0x24, + 0x70, 0x72, 0xcc, 0xeb, 0x03, 0xf9, 0x0f, 0xad, 0x42, 0xbd, 0xff, 0xa4, 0x3f, 0x30, 0xf6, 0xcc, + 0xbd, 0xfd, 0x4d, 0x43, 0xb5, 0x12, 0xfa, 0x06, 0x96, 0xc3, 0x02, 0x9f, 0x1f, 0xec, 0x0f, 0x3a, + 0xbb, 0xe6, 0x60, 0xa7, 0xfb, 0xa8, 0xaf, 0x15, 0xd1, 0x4d, 0xb8, 0x36, 0xd8, 0xc6, 0xfb, 0x83, + 0xc1, 0xae, 0xb1, 0x69, 0x1e, 0x18, 0x78, 0x67, 0x7f, 0xb3, 0xaf, 0x95, 0x10, 0x82, 0xc6, 0x84, + 0x3c, 0xd8, 0xd9, 0x33, 0xb4, 0x45, 0x54, 0x87, 0xa5, 0x03, 0x03, 0x77, 0x8d, 0xde, 0x40, 0x2b, + 0xeb, 0x7f, 0x2f, 0x42, 0x3d, 0x63, 0x45, 0xee, 0xc8, 0x11, 0x95, 0xd5, 0xfc, 0x22, 0xe6, 0x7f, + 0x79, 0x30, 0xb1, 0x2d, 0x7b, 0x24, 0xad, 0xb3, 0x88, 0xe5, 0x40, 0x54, 0xf0, 0xd6, 0x59, 0xe6, + 0x9c, 0x2f, 0xe2, 0xaa, 0x67, 0x9d, 0x49, 0x90, 0xd7, 0x61, 0xf9, 0x84, 0x44, 0x3e, 0x19, 0xab, + 0x79, 0x69, 0x91, 0xba, 0xa4, 0xc9, 0x25, 0x6b, 0xa0, 0xa9, 0x25, 0x13, 0x18, 0x69, 0x8e, 0x86, + 0xa4, 0xef, 0x25, 0x60, 0x47, 0x97, 0xb5, 0x5e, 0x11, 0x5a, 0xbf, 0x3f, 0xbb, 0x93, 0x3e, 0x4b, + 0xf1, 0xfd, 0x54, 0xf1, 0x4b, 0x50, 0xc2, 0xc9, 0xab, 0x7a, 0xb7, 0xd3, 0xdd, 0xe6, 0xca, 0x5e, + 0x81, 0xda, 0x5e, 0xe7, 0x53, 0xf3, 0xb0, 0x2f, 0xde, 0x68, 0x90, 0x06, 0xcb, 0x8f, 0x0c, 0xdc, + 0x33, 0x76, 0x15, 0xa5, 0x84, 0x6e, 0x80, 0xa6, 0x28, 0x93, 0x75, 0x8b, 0xfa, 0x9f, 0x8a, 0xb0, + 0x2a, 0xe3, 0x7a, 0xfa, 0x6c, 0xf8, 0xec, 0xf7, 0xbb, 0xf9, 0x43, 0x6f, 0x13, 0x96, 0x3c, 0x42, + 0x53, 0x3b, 0xd4, 0x70, 0x32, 0x44, 0x2e, 0xd4, 0x2d, 0xdf, 0x0f, 0x98, 0x78, 0x7b, 0xa2, 0x2a, + 0x44, 0x6e, 0xcd, 0xf4, 0xca, 0x95, 0x4a, 0xde, 0xee, 0x4c, 0x90, 0x64, 0x84, 0xcc, 0x62, 0xb7, + 0x3e, 0x00, 0xed, 0xe2, 0x82, 0x59, 0xf2, 0xd2, 0x9b, 0xef, 0x4e, 0xd2, 0x12, 0xe1, 0x0e, 0x7a, + 0xd8, 0x7b, 0xd4, 0xdb, 0x7f, 0xdc, 0xd3, 0x16, 0xf8, 0x00, 0x1f, 0xf6, 0x7a, 0x3b, 0xbd, 0x2d, + 0xad, 0x80, 0x00, 0x2a, 0xc6, 0xa7, 0x3b, 0x03, 0x63, 0x53, 0x2b, 0x6e, 0xfc, 0x73, 0x05, 0x2a, + 0x52, 0x48, 0xf4, 0x95, 0x4a, 0xc9, 0xd9, 0x76, 0x30, 0xfa, 0x60, 0xe6, 0xd2, 0x76, 0xaa, 0xc5, + 0xdc, 0xfa, 0x70, 0x6e, 0x7e, 0xf5, 0x7c, 0xbb, 0x80, 0x7e, 0x5d, 0x80, 0xe5, 0xa9, 0xf7, 0xca, + 0xbc, 0x4f, 0x6d, 0x57, 0x74, 0x9f, 0x5b, 0xdf, 0x99, 0x8b, 0x37, 0x95, 0xe5, 0x57, 0x05, 0xa8, + 0x67, 0xfa, 0xae, 0xe8, 0xfe, 0x3c, 0xbd, 0x5a, 0x29, 0xc9, 0x83, 0xf9, 0xdb, 0xbc, 0xfa, 0xc2, + 0x3b, 0x05, 0xf4, 0xcb, 0x02, 0xd4, 0x33, 0x1d, 0xc8, 0xdc, 0xa2, 0x5c, 0xee, 0x97, 0xe6, 0x16, + 0xe5, 0xaa, 0x86, 0xe7, 0x02, 0xfa, 0x59, 0x01, 0x6a, 0x69, 0x37, 0x11, 0xdd, 0x9d, 0xbd, 0xff, + 0x28, 0x85, 0xb8, 0x37, 0x6f, 0xe3, 0x52, 0x5f, 0x40, 0x3f, 0x81, 0x6a, 0xd2, 0x7a, 0x43, 0x79, + 0xd3, 0xc8, 0x85, 0xbe, 0x5e, 0xeb, 0xee, 0xcc, 0x7c, 0xd9, 0xed, 0x93, 0x7e, 0x58, 0xee, 0xed, + 0x2f, 0x74, 0xee, 0x5a, 0x77, 0x67, 0xe6, 0x4b, 0xb7, 0xe7, 0x9e, 0x90, 0x69, 0x9b, 0xe5, 0xf6, + 0x84, 0xcb, 0xfd, 0xba, 0xdc, 0x9e, 0x70, 0x55, 0x97, 0x4e, 0x0a, 0x92, 0x69, 0xbc, 0xe5, 0x16, + 0xe4, 0x72, 0x73, 0x2f, 0xb7, 0x20, 0x57, 0xf4, 0xf9, 0x94, 0x4b, 0x4e, 0x0a, 0xf4, 0xbb, 0x33, + 0xf7, 0xaa, 0x66, 0x74, 0xc9, 0x4b, 0xdd, 0x32, 0x7d, 0x01, 0xfd, 0x5c, 0x3d, 0x19, 0xc8, 0x46, + 0x17, 0x9a, 0x05, 0x6a, 0xaa, 0x37, 0xd6, 0xba, 0x33, 0x5f, 0xaa, 0x11, 0x31, 0xe2, 0x17, 0x05, + 0x80, 0x49, 0x4b, 0x2c, 0xb7, 0x10, 0x97, 0x7a, 0x71, 0xad, 0xfb, 0x73, 0x70, 0x66, 0x8f, 0x47, + 0xd2, 0x05, 0xcb, 0x7d, 0x3c, 0x2e, 0xb4, 0xec, 0x72, 0x1f, 0x8f, 0x8b, 0xed, 0x36, 0x7d, 0xe1, + 0xe3, 0xa5, 0xef, 0x97, 0x65, 0xee, 0xaf, 0x88, 0x9f, 0xf7, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, + 0xdc, 0x12, 0xd9, 0x00, 0x29, 0x26, 0x00, 0x00, } diff --git a/plugins/drivers/proto/driver.proto b/plugins/drivers/proto/driver.proto index a24ebb0b9..bbb93e104 100644 --- a/plugins/drivers/proto/driver.proto +++ b/plugins/drivers/proto/driver.proto @@ -345,20 +345,27 @@ message TaskConfig { message Resources { - // RawResources are the resources set for the task - RawResources raw_resources = 1; + // AllocatedResources are the resources set for the task + AllocatedTaskResources allocated_resources = 1; // LinuxResources are the computed values to set for specific Linux features LinuxResources linux_resources = 2; } -message RawResources { - int64 cpu = 1; - int64 memory = 2; - int64 disk = 3; +message AllocatedTaskResources { + AllocatedCpuResources cpu = 1; + AllocatedMemoryResources memory = 2; repeated NetworkResource networks = 5; } +message AllocatedCpuResources { + int64 cpu_shares = 1; +} + +message AllocatedMemoryResources { + int64 memory_mb = 2; +} + message NetworkResource { string device = 1; string cidr = 2; From b653ae2af7ab39a1abd03c3889f6db765ad80f6d Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Thu, 13 Dec 2018 15:06:48 -0800 Subject: [PATCH 2/6] utilities --- client/allocrunner/taskrunner/task_runner.go | 2 ++ plugins/drivers/driver.go | 2 +- plugins/drivers/testutils/testing.go | 8 ++++-- plugins/drivers/utils.go | 30 +++++++++++++------- 4 files changed, 28 insertions(+), 14 deletions(-) diff --git a/client/allocrunner/taskrunner/task_runner.go b/client/allocrunner/taskrunner/task_runner.go index 9226f6734..174d11bba 100644 --- a/client/allocrunner/taskrunner/task_runner.go +++ b/client/allocrunner/taskrunner/task_runner.go @@ -698,6 +698,8 @@ func (tr *TaskRunner) buildTaskConfig() *drivers.TaskConfig { alloc := tr.Alloc() invocationid := uuid.Generate()[:8] + // TODO This shouldn't use the task resources + return &drivers.TaskConfig{ ID: fmt.Sprintf("%s/%s/%s", alloc.ID, task.Name, invocationid), Name: task.Name, diff --git a/plugins/drivers/driver.go b/plugins/drivers/driver.go index a9afc8e19..25d60787e 100644 --- a/plugins/drivers/driver.go +++ b/plugins/drivers/driver.go @@ -173,7 +173,7 @@ func (tc *TaskConfig) EncodeConcreteDriverConfig(t interface{}) error { } type Resources struct { - NomadResources *structs.Resources + NomadResources *structs.AllocatedTaskResources LinuxResources *LinuxResources } diff --git a/plugins/drivers/testutils/testing.go b/plugins/drivers/testutils/testing.go index d8d0b354f..2394b4f1b 100644 --- a/plugins/drivers/testutils/testing.go +++ b/plugins/drivers/testutils/testing.go @@ -110,10 +110,14 @@ func (h *DriverHarness) MkAllocDir(t *drivers.TaskConfig, enableLogs bool) func( Name: t.Name, Env: t.Env, } + + // Create the mock allocation + alloc := mock.Alloc() if t.Resources != nil { - task.Resources = t.Resources.NomadResources + alloc.AllocatedResources.Tasks[task.Name] = t.Resources.NomadResources } - taskBuilder := taskenv.NewBuilder(mock.Node(), mock.Alloc(), task, "global") + + taskBuilder := taskenv.NewBuilder(mock.Node(), alloc, task, "global") utils.SetEnvvars(taskBuilder, fsi, taskDir, config.DefaultConfig()) taskEnv := taskBuilder.Build() diff --git a/plugins/drivers/utils.go b/plugins/drivers/utils.go index 4b104bec0..9cc010b4f 100644 --- a/plugins/drivers/utils.go +++ b/plugins/drivers/utils.go @@ -96,14 +96,18 @@ func ResourcesFromProto(pb *proto.Resources) *Resources { return &r } - if pb.RawResources != nil { - r.NomadResources = &structs.Resources{ - CPU: int(pb.RawResources.Cpu), - MemoryMB: int(pb.RawResources.Memory), - DiskMB: int(pb.RawResources.Disk), + if pb.AllocatedResources != nil { + r.NomadResources = &structs.AllocatedTaskResources{} + + if pb.AllocatedResources.Cpu != nil { + r.NomadResources.Cpu.CpuShares = pb.AllocatedResources.Cpu.CpuShares } - for _, network := range pb.RawResources.Networks { + if pb.AllocatedResources.Memory != nil { + r.NomadResources.Memory.MemoryMB = pb.AllocatedResources.Memory.MemoryMb + } + + for _, network := range pb.AllocatedResources.Networks { var n structs.NetworkResource n.Device = network.Device n.IP = network.Ip @@ -145,12 +149,16 @@ func ResourcesToProto(r *Resources) *proto.Resources { if r == nil { return nil } + var pb proto.Resources if r.NomadResources != nil { - pb.RawResources = &proto.RawResources{ - Cpu: int64(r.NomadResources.CPU), - Memory: int64(r.NomadResources.MemoryMB), - Disk: int64(r.NomadResources.DiskMB), + pb.AllocatedResources = &proto.AllocatedTaskResources{ + Cpu: &proto.AllocatedCpuResources{ + CpuShares: r.NomadResources.Cpu.CpuShares, + }, + Memory: &proto.AllocatedMemoryResources{ + MemoryMb: r.NomadResources.Memory.MemoryMB, + }, Networks: make([]*proto.NetworkResource, len(r.NomadResources.Networks)), } @@ -173,7 +181,7 @@ func ResourcesToProto(r *Resources) *proto.Resources { Value: int32(port.Value), }) } - pb.RawResources.Networks[i] = &n + pb.AllocatedResources.Networks[i] = &n } } From 327b551b390a31056d4ca443210fbffecdb0b3fd Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Thu, 13 Dec 2018 16:21:41 -0800 Subject: [PATCH 3/6] Drivers --- client/allocrunner/taskrunner/task_runner.go | 5 +- drivers/docker/driver_test.go | 26 ++-- drivers/exec/driver_test.go | 10 +- drivers/java/driver_test.go | 10 +- drivers/lxc/driver_test.go | 20 ++- drivers/lxc/lxc.go | 2 +- drivers/lxc/lxc_test.go | 10 +- drivers/qemu/driver.go | 5 +- drivers/qemu/driver_test.go | 58 ++++++--- drivers/rkt/driver_test.go | 115 ++++++++++++------ drivers/shared/executor/executor_linux.go | 13 +- .../shared/executor/executor_linux_test.go | 4 +- drivers/shared/executor/executor_test.go | 7 +- 13 files changed, 186 insertions(+), 99 deletions(-) diff --git a/client/allocrunner/taskrunner/task_runner.go b/client/allocrunner/taskrunner/task_runner.go index 174d11bba..bbeb5726e 100644 --- a/client/allocrunner/taskrunner/task_runner.go +++ b/client/allocrunner/taskrunner/task_runner.go @@ -697,15 +697,14 @@ func (tr *TaskRunner) buildTaskConfig() *drivers.TaskConfig { task := tr.Task() alloc := tr.Alloc() invocationid := uuid.Generate()[:8] - - // TODO This shouldn't use the task resources + taskResources := tr.taskResources return &drivers.TaskConfig{ ID: fmt.Sprintf("%s/%s/%s", alloc.ID, task.Name, invocationid), Name: task.Name, JobName: alloc.Job.Name, Resources: &drivers.Resources{ - NomadResources: task.Resources, + NomadResources: taskResources, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: int64(task.Resources.MemoryMB) * 1024 * 1024, CPUShares: int64(task.Resources.CPU), diff --git a/drivers/docker/driver_test.go b/drivers/docker/driver_test.go index e2906f3e4..8335ff97d 100644 --- a/drivers/docker/driver_test.go +++ b/drivers/docker/driver_test.go @@ -17,8 +17,6 @@ import ( "testing" "time" - dtestutil "github.com/hashicorp/nomad/plugins/drivers/testutils" - docker "github.com/fsouza/go-dockerclient" "github.com/hashicorp/consul/lib/freeport" hclog "github.com/hashicorp/go-hclog" @@ -30,6 +28,7 @@ import ( "github.com/hashicorp/nomad/nomad/structs" "github.com/hashicorp/nomad/plugins/base" "github.com/hashicorp/nomad/plugins/drivers" + dtestutil "github.com/hashicorp/nomad/plugins/drivers/testutils" "github.com/hashicorp/nomad/plugins/shared/loader" tu "github.com/hashicorp/nomad/testutil" "github.com/stretchr/testify/assert" @@ -38,10 +37,13 @@ import ( var ( basicResources = &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 256, - CPU: 512, - DiskMB: 20, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 256, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 250, + }, }, LinuxResources: &drivers.LinuxResources{ CPUShares: 512, @@ -96,9 +98,13 @@ func dockerTask(t *testing.T) (*drivers.TaskConfig, *TaskConfig, []int) { ID: uuid.Generate(), Name: "redis-demo", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 256, - CPU: 512, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 256, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 512, + }, Networks: []*structs.NetworkResource{ { IP: "127.0.0.1", @@ -2259,7 +2265,7 @@ func TestDockerDriver_OOMKilled(t *testing.T) { Resources: basicResources, } task.Resources.LinuxResources.MemoryLimitBytes = 10 * 1024 * 1024 - task.Resources.NomadResources.MemoryMB = 10 + task.Resources.NomadResources.Memory.MemoryMB = 10 require.NoError(t, task.EncodeConcreteDriverConfig(&taskCfg)) diff --git a/drivers/exec/driver_test.go b/drivers/exec/driver_test.go index bb7322ba8..eee5c426e 100644 --- a/drivers/exec/driver_test.go +++ b/drivers/exec/driver_test.go @@ -35,9 +35,13 @@ func TestMain(m *testing.M) { } var testResources = &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, diff --git a/drivers/java/driver_test.go b/drivers/java/driver_test.go index 34ba1fb1e..89966c571 100644 --- a/drivers/java/driver_test.go +++ b/drivers/java/driver_test.go @@ -249,9 +249,13 @@ func basicTask(t *testing.T, name string, taskConfig map[string]interface{}) *dr ID: uuid.Generate(), Name: name, Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, diff --git a/drivers/lxc/driver_test.go b/drivers/lxc/driver_test.go index f031c103f..8a79510a1 100644 --- a/drivers/lxc/driver_test.go +++ b/drivers/lxc/driver_test.go @@ -102,9 +102,13 @@ func TestLXCDriver_Start_Wait(t *testing.T) { ID: uuid.Generate(), Name: "test", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - CPU: 1, - MemoryMB: 2, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 2, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 1024, + }, }, LinuxResources: &drivers.LinuxResources{ CPUShares: 1024, @@ -196,9 +200,13 @@ func TestLXCDriver_Start_Stop(t *testing.T) { ID: uuid.Generate(), Name: "test", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - CPU: 1, - MemoryMB: 2, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 2, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 1024, + }, }, LinuxResources: &drivers.LinuxResources{ CPUShares: 1024, diff --git a/drivers/lxc/lxc.go b/drivers/lxc/lxc.go index 721752342..c1431591b 100644 --- a/drivers/lxc/lxc.go +++ b/drivers/lxc/lxc.go @@ -209,7 +209,7 @@ func (d *Driver) formatMount(hostPath, taskPath string, readOnly bool) string { } func (d *Driver) setResourceLimits(c *lxc.Container, cfg *drivers.TaskConfig) error { - if err := c.SetMemoryLimit(lxc.ByteSize(cfg.Resources.NomadResources.MemoryMB) * lxc.MB); err != nil { + if err := c.SetMemoryLimit(lxc.ByteSize(cfg.Resources.NomadResources.Memory.MemoryMB) * lxc.MB); err != nil { return fmt.Errorf("unable to set memory limits: %v", err) } diff --git a/drivers/lxc/lxc_test.go b/drivers/lxc/lxc_test.go index 99f4d2ac6..2aed490a7 100644 --- a/drivers/lxc/lxc_test.go +++ b/drivers/lxc/lxc_test.go @@ -19,9 +19,13 @@ func TestLXCDriver_Mounts(t *testing.T) { ID: uuid.Generate(), Name: "test", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - CPU: 1, - MemoryMB: 2, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 2, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 1024, + }, }, LinuxResources: &drivers.LinuxResources{ CPUShares: 1024, diff --git a/drivers/qemu/driver.go b/drivers/qemu/driver.go index 8b07ce298..17ccf7f11 100644 --- a/drivers/qemu/driver.go +++ b/drivers/qemu/driver.go @@ -318,10 +318,11 @@ func (d *Driver) StartTask(cfg *drivers.TaskConfig) (*drivers.TaskHandle, *cstru accelerator = driverConfig.Accelerator } - if cfg.Resources.NomadResources.MemoryMB < 128 || cfg.Resources.NomadResources.MemoryMB > 4000000 { + mb := cfg.Resources.NomadResources.Memory.MemoryMB + if mb < 128 || mb > 4000000 { return nil, nil, fmt.Errorf("Qemu memory assignment out of bounds") } - mem := fmt.Sprintf("%dM", cfg.Resources.NomadResources.MemoryMB) + mem := fmt.Sprintf("%dM", mb) absPath, err := GetAbsolutePath("qemu-system-x86_64") if err != nil { diff --git a/drivers/qemu/driver_test.go b/drivers/qemu/driver_test.go index 545fa43e8..53901f0b7 100644 --- a/drivers/qemu/driver_test.go +++ b/drivers/qemu/driver_test.go @@ -1,24 +1,22 @@ package qemu import ( + "context" + "fmt" "io" "os" "path/filepath" "strings" "testing" - - "context" - "fmt" "time" - dtestutil "github.com/hashicorp/nomad/plugins/drivers/testutils" - "github.com/hashicorp/hcl2/hcl" ctestutil "github.com/hashicorp/nomad/client/testutil" "github.com/hashicorp/nomad/helper/testlog" "github.com/hashicorp/nomad/helper/uuid" "github.com/hashicorp/nomad/nomad/structs" "github.com/hashicorp/nomad/plugins/drivers" + dtestutil "github.com/hashicorp/nomad/plugins/drivers/testutils" "github.com/hashicorp/nomad/plugins/shared" "github.com/hashicorp/nomad/plugins/shared/hclspec" pstructs "github.com/hashicorp/nomad/plugins/shared/structs" @@ -44,9 +42,13 @@ func TestQemuDriver_Start_Wait_Stop(t *testing.T) { ID: uuid.Generate(), Name: "linux", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 512, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 512, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, Networks: []*structs.NetworkResource{ { ReservedPorts: []structs.Port{{Label: "main", Value: 22000}, {Label: "web", Value: 80}}, @@ -102,9 +104,13 @@ func TestQemuDriver_GetMonitorPathOldQemu(t *testing.T) { ID: uuid.Generate(), Name: "linux", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 512, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 512, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, Networks: []*structs.NetworkResource{ { ReservedPorts: []structs.Port{{Label: "main", Value: 22000}, {Label: "web", Value: 80}}, @@ -153,9 +159,13 @@ func TestQemuDriver_GetMonitorPathNewQemu(t *testing.T) { ID: uuid.Generate(), Name: "linux", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 512, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 512, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, Networks: []*structs.NetworkResource{ { ReservedPorts: []structs.Port{{Label: "main", Value: 22000}, {Label: "web", Value: 80}}, @@ -243,9 +253,13 @@ func TestQemuDriver_User(t *testing.T) { Name: "linux", User: "alice", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 512, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 512, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, Networks: []*structs.NetworkResource{ { ReservedPorts: []structs.Port{{Label: "main", Value: 22000}, {Label: "web", Value: 80}}, @@ -295,9 +309,13 @@ func TestQemuDriver_Stats(t *testing.T) { ID: uuid.Generate(), Name: "linux", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 512, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 512, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, Networks: []*structs.NetworkResource{ { ReservedPorts: []structs.Port{{Label: "main", Value: 22000}, {Label: "web", Value: 80}}, diff --git a/drivers/rkt/driver_test.go b/drivers/rkt/driver_test.go index b58eb3ddf..9ac402dd7 100644 --- a/drivers/rkt/driver_test.go +++ b/drivers/rkt/driver_test.go @@ -13,9 +13,6 @@ import ( "testing" "time" - dtestutil "github.com/hashicorp/nomad/plugins/drivers/testutils" - "golang.org/x/sys/unix" - "github.com/hashicorp/hcl2/hcl" ctestutil "github.com/hashicorp/nomad/client/testutil" "github.com/hashicorp/nomad/helper/testlog" @@ -24,10 +21,12 @@ import ( "github.com/hashicorp/nomad/nomad/structs" basePlug "github.com/hashicorp/nomad/plugins/base" "github.com/hashicorp/nomad/plugins/drivers" + dtestutil "github.com/hashicorp/nomad/plugins/drivers/testutils" "github.com/hashicorp/nomad/plugins/shared" "github.com/hashicorp/nomad/plugins/shared/hclspec" "github.com/hashicorp/nomad/testutil" "github.com/stretchr/testify/require" + "golang.org/x/sys/unix" ) var _ drivers.DriverPlugin = (*Driver)(nil) @@ -93,9 +92,13 @@ func TestRktDriver_Start_Wait_Stop_DNS(t *testing.T) { AllocID: uuid.Generate(), Name: "etcd", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, @@ -173,9 +176,13 @@ func TestRktDriver_Start_Wait_Stop(t *testing.T) { AllocID: uuid.Generate(), Name: "etcd", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, @@ -228,9 +235,13 @@ func TestRktDriver_Start_Wait_Skip_Trust(t *testing.T) { AllocID: uuid.Generate(), Name: "etcd", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, @@ -283,9 +294,13 @@ func TestRktDriver_InvalidTrustPrefix(t *testing.T) { AllocID: uuid.Generate(), Name: "etcd", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, @@ -334,9 +349,13 @@ func TestRktDriver_StartWaitRecoverWaitStop(t *testing.T) { AllocID: uuid.Generate(), Name: "etcd", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, @@ -434,9 +453,13 @@ func TestRktDriver_Start_Wait_Volume(t *testing.T) { AllocID: uuid.Generate(), Name: "rkttest_alpine", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, @@ -518,9 +541,13 @@ func TestRktDriver_Start_Wait_TaskMounts(t *testing.T) { AllocID: uuid.Generate(), Name: "rkttest_alpine", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, @@ -586,9 +613,13 @@ func TestRktDriver_PortMapping(t *testing.T) { AllocID: uuid.Generate(), Name: "redis", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, Networks: []*structs.NetworkResource{ { IP: "127.0.0.1", @@ -640,9 +671,13 @@ func TestRktDriver_UserGroup(t *testing.T) { User: "nobody", Name: "rkttest_alpine", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, @@ -702,9 +737,13 @@ func TestRktDriver_Exec(t *testing.T) { AllocID: uuid.Generate(), Name: "etcd", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, @@ -780,9 +819,13 @@ func TestRktDriver_Stats(t *testing.T) { AllocID: uuid.Generate(), Name: "etcd", Resources: &drivers.Resources{ - NomadResources: &structs.Resources{ - MemoryMB: 128, - CPU: 100, + NomadResources: &structs.AllocatedTaskResources{ + Memory: structs.AllocatedMemoryResources{ + MemoryMB: 128, + }, + Cpu: structs.AllocatedCpuResources{ + CpuShares: 100, + }, }, LinuxResources: &drivers.LinuxResources{ MemoryLimitBytes: 134217728, diff --git a/drivers/shared/executor/executor_linux.go b/drivers/shared/executor/executor_linux.go index 07197c1f4..83f405f8e 100644 --- a/drivers/shared/executor/executor_linux.go +++ b/drivers/shared/executor/executor_linux.go @@ -105,7 +105,7 @@ func (l *LibcontainerExecutor) Launch(command *ExecCommand) (*ProcessState, erro if command.Resources == nil { command.Resources = &drivers.Resources{ - NomadResources: &structs.Resources{}, + NomadResources: &structs.AllocatedTaskResources{}, } } @@ -578,20 +578,21 @@ func configureCgroups(cfg *lconfigs.Config, command *ExecCommand) error { return nil } - if command.Resources.NomadResources.MemoryMB > 0 { + if mb := command.Resources.NomadResources.Memory.MemoryMB; mb > 0 { // Total amount of memory allowed to consume - cfg.Cgroups.Resources.Memory = int64(command.Resources.NomadResources.MemoryMB * 1024 * 1024) + cfg.Cgroups.Resources.Memory = int64(mb * 1024 * 1024) // Disable swap to avoid issues on the machine var memSwappiness uint64 cfg.Cgroups.Resources.MemorySwappiness = &memSwappiness } - if command.Resources.NomadResources.CPU < 2 { - return fmt.Errorf("resources.CPU must be equal to or greater than 2: %v", command.Resources.NomadResources.CPU) + cpuShares := command.Resources.NomadResources.Cpu.CpuShares + if cpuShares < 2 { + return fmt.Errorf("resources.Cpu.CpuShares must be equal to or greater than 2: %v", cpuShares) } // Set the relative CPU shares for this cgroup. - cfg.Cgroups.Resources.CpuShares = uint64(command.Resources.NomadResources.CPU) + cfg.Cgroups.Resources.CpuShares = uint64(cpuShares) return nil } diff --git a/drivers/shared/executor/executor_linux_test.go b/drivers/shared/executor/executor_linux_test.go index f3ee4b596..7da6d6838 100644 --- a/drivers/shared/executor/executor_linux_test.go +++ b/drivers/shared/executor/executor_linux_test.go @@ -69,7 +69,7 @@ func testExecutorCommandWithChroot(t *testing.T) (*ExecCommand, *allocdir.AllocD Env: taskEnv.List(), TaskDir: td.Dir, Resources: &drivers.Resources{ - NomadResources: task.Resources, + NomadResources: alloc.AllocatedResources.Tasks[task.Name], }, } configureTLogging(cmd) @@ -109,7 +109,7 @@ func TestExecutor_IsolationAndConstraints(t *testing.T) { data, err := ioutil.ReadFile(memLimits) require.NoError(err) - expectedMemLim := strconv.Itoa(execCmd.Resources.NomadResources.MemoryMB * 1024 * 1024) + expectedMemLim := strconv.Itoa(int(execCmd.Resources.NomadResources.Memory.MemoryMB * 1024 * 1024)) actualMemLim := strings.TrimSpace(string(data)) require.Equal(actualMemLim, expectedMemLim) require.NoError(executor.Shutdown("", 0)) diff --git a/drivers/shared/executor/executor_test.go b/drivers/shared/executor/executor_test.go index 273fa2bfc..f5794b75c 100644 --- a/drivers/shared/executor/executor_test.go +++ b/drivers/shared/executor/executor_test.go @@ -13,15 +13,14 @@ import ( "testing" "time" - "github.com/hashicorp/nomad/plugins/drivers" - tu "github.com/hashicorp/nomad/testutil" - hclog "github.com/hashicorp/go-hclog" "github.com/hashicorp/nomad/client/allocdir" cstructs "github.com/hashicorp/nomad/client/structs" "github.com/hashicorp/nomad/client/taskenv" "github.com/hashicorp/nomad/helper/testlog" "github.com/hashicorp/nomad/nomad/mock" + "github.com/hashicorp/nomad/plugins/drivers" + tu "github.com/hashicorp/nomad/testutil" "github.com/stretchr/testify/require" ) @@ -55,7 +54,7 @@ func testExecutorCommand(t *testing.T) (*ExecCommand, *allocdir.AllocDir) { Env: taskEnv.List(), TaskDir: td.Dir, Resources: &drivers.Resources{ - NomadResources: task.Resources, + NomadResources: alloc.AllocatedResources.Tasks[task.Name], }, } From 66cf3156b2cc0607231b578abd71e9230360b2ff Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Tue, 18 Dec 2018 14:47:54 -0800 Subject: [PATCH 4/6] LinuxResources doesn't use task.Resources --- client/allocrunner/taskrunner/task_runner.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/allocrunner/taskrunner/task_runner.go b/client/allocrunner/taskrunner/task_runner.go index bbeb5726e..c72ed4c5a 100644 --- a/client/allocrunner/taskrunner/task_runner.go +++ b/client/allocrunner/taskrunner/task_runner.go @@ -706,9 +706,9 @@ func (tr *TaskRunner) buildTaskConfig() *drivers.TaskConfig { Resources: &drivers.Resources{ NomadResources: taskResources, LinuxResources: &drivers.LinuxResources{ - MemoryLimitBytes: int64(task.Resources.MemoryMB) * 1024 * 1024, - CPUShares: int64(task.Resources.CPU), - PercentTicks: float64(task.Resources.CPU) / float64(tr.clientConfig.Node.NodeResources.Cpu.CpuShares), + MemoryLimitBytes: int64(taskResources.Memory.MemoryMB) * 1024 * 1024, + CPUShares: int64(taskResources.Cpu.CpuShares), + PercentTicks: float64(taskResources.Cpu.CpuShares) / float64(tr.clientConfig.Node.NodeResources.Cpu.CpuShares), }, }, Devices: tr.hookResources.getDevices(), From b8268d9a46d3efc86198b2cd3f640138434d4d89 Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Tue, 18 Dec 2018 15:10:13 -0800 Subject: [PATCH 5/6] Lint --- client/allocrunner/taskrunner/task_runner.go | 4 ++-- drivers/shared/executor/executor_linux.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/allocrunner/taskrunner/task_runner.go b/client/allocrunner/taskrunner/task_runner.go index c72ed4c5a..826e34480 100644 --- a/client/allocrunner/taskrunner/task_runner.go +++ b/client/allocrunner/taskrunner/task_runner.go @@ -706,8 +706,8 @@ func (tr *TaskRunner) buildTaskConfig() *drivers.TaskConfig { Resources: &drivers.Resources{ NomadResources: taskResources, LinuxResources: &drivers.LinuxResources{ - MemoryLimitBytes: int64(taskResources.Memory.MemoryMB) * 1024 * 1024, - CPUShares: int64(taskResources.Cpu.CpuShares), + MemoryLimitBytes: taskResources.Memory.MemoryMB * 1024 * 1024, + CPUShares: taskResources.Cpu.CpuShares, PercentTicks: float64(taskResources.Cpu.CpuShares) / float64(tr.clientConfig.Node.NodeResources.Cpu.CpuShares), }, }, diff --git a/drivers/shared/executor/executor_linux.go b/drivers/shared/executor/executor_linux.go index 83f405f8e..9a06e1140 100644 --- a/drivers/shared/executor/executor_linux.go +++ b/drivers/shared/executor/executor_linux.go @@ -580,7 +580,7 @@ func configureCgroups(cfg *lconfigs.Config, command *ExecCommand) error { if mb := command.Resources.NomadResources.Memory.MemoryMB; mb > 0 { // Total amount of memory allowed to consume - cfg.Cgroups.Resources.Memory = int64(mb * 1024 * 1024) + cfg.Cgroups.Resources.Memory = mb * 1024 * 1024 // Disable swap to avoid issues on the machine var memSwappiness uint64 cfg.Cgroups.Resources.MemorySwappiness = &memSwappiness From 8efac7ec8152be39d5218e00835ebf10968bc23f Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Tue, 18 Dec 2018 15:47:40 -0800 Subject: [PATCH 6/6] Fix unit tests + upgrade pathing resources --- client/allocrunner/alloc_runner_test.go | 13 +++++++--- client/allocrunner/taskrunner/service_hook.go | 22 +++++++++++++--- client/allocrunner/taskrunner/task_runner.go | 25 ++++++++++++++++--- 3 files changed, 49 insertions(+), 11 deletions(-) diff --git a/client/allocrunner/alloc_runner_test.go b/client/allocrunner/alloc_runner_test.go index 3c1464560..3e0cbf1d6 100644 --- a/client/allocrunner/alloc_runner_test.go +++ b/client/allocrunner/alloc_runner_test.go @@ -37,6 +37,7 @@ func TestAllocRunner_TaskLeader_KillTG(t *testing.T) { t.Parallel() alloc := mock.BatchAlloc() + tr := alloc.AllocatedResources.Tasks[alloc.Job.TaskGroups[0].Tasks[0].Name] alloc.Job.TaskGroups[0].RestartPolicy.Attempts = 0 // Create two tasks in the task group @@ -56,7 +57,8 @@ func TestAllocRunner_TaskLeader_KillTG(t *testing.T) { "run_for": "1s", } alloc.Job.TaskGroups[0].Tasks = append(alloc.Job.TaskGroups[0].Tasks, task2) - alloc.TaskResources[task2.Name] = task2.Resources + alloc.AllocatedResources.Tasks[task.Name] = tr + alloc.AllocatedResources.Tasks[task2.Name] = tr conf, cleanup := testAllocRunnerConfig(t, alloc) defer cleanup() @@ -121,6 +123,7 @@ func TestAllocRunner_TaskLeader_StopTG(t *testing.T) { t.Parallel() alloc := mock.Alloc() + tr := alloc.AllocatedResources.Tasks[alloc.Job.TaskGroups[0].Tasks[0].Name] alloc.Job.TaskGroups[0].RestartPolicy.Attempts = 0 // Create 3 tasks in the task group @@ -146,7 +149,9 @@ func TestAllocRunner_TaskLeader_StopTG(t *testing.T) { "run_for": "10s", } alloc.Job.TaskGroups[0].Tasks = append(alloc.Job.TaskGroups[0].Tasks, task2, task3) - alloc.TaskResources[task2.Name] = task2.Resources + alloc.AllocatedResources.Tasks[task.Name] = tr + alloc.AllocatedResources.Tasks[task2.Name] = tr + alloc.AllocatedResources.Tasks[task3.Name] = tr conf, cleanup := testAllocRunnerConfig(t, alloc) defer cleanup() @@ -216,6 +221,7 @@ func TestAllocRunner_TaskLeader_StopRestoredTG(t *testing.T) { t.Parallel() alloc := mock.Alloc() + tr := alloc.AllocatedResources.Tasks[alloc.Job.TaskGroups[0].Tasks[0].Name] alloc.Job.TaskGroups[0].RestartPolicy.Attempts = 0 // Create a leader and follower task in the task group @@ -237,7 +243,8 @@ func TestAllocRunner_TaskLeader_StopRestoredTG(t *testing.T) { } alloc.Job.TaskGroups[0].Tasks = append(alloc.Job.TaskGroups[0].Tasks, task2) - alloc.TaskResources[task2.Name] = task2.Resources + alloc.AllocatedResources.Tasks[task.Name] = tr + alloc.AllocatedResources.Tasks[task2.Name] = tr conf, cleanup := testAllocRunnerConfig(t, alloc) defer cleanup() diff --git a/client/allocrunner/taskrunner/service_hook.go b/client/allocrunner/taskrunner/service_hook.go index c7feeaa95..0c1d7368a 100644 --- a/client/allocrunner/taskrunner/service_hook.go +++ b/client/allocrunner/taskrunner/service_hook.go @@ -58,8 +58,15 @@ func newServiceHook(c serviceHookConfig) *serviceHook { delay: c.task.ShutdownDelay, } - if res := c.alloc.TaskResources[c.task.Name]; res != nil { - h.networks = res.Networks + // COMPAT(0.10): Just use the AllocatedResources + if c.alloc.AllocatedResources != nil { + if res := c.alloc.AllocatedResources.Tasks[c.task.Name]; res != nil { + h.networks = res.Networks + } + } else { + if res := c.alloc.TaskResources[c.task.Name]; res != nil { + h.networks = res.Networks + } } if c.alloc.DeploymentStatus != nil && c.alloc.DeploymentStatus.Canary { @@ -103,9 +110,16 @@ func (h *serviceHook) Update(ctx context.Context, req *interfaces.TaskUpdateRequ canary = req.Alloc.DeploymentStatus.Canary } + // COMPAT(0.10): Just use the AllocatedResources var networks structs.Networks - if res := req.Alloc.TaskResources[h.taskName]; res != nil { - networks = res.Networks + if req.Alloc.AllocatedResources != nil { + if res := req.Alloc.AllocatedResources.Tasks[h.taskName]; res != nil { + networks = res.Networks + } + } else { + if res := req.Alloc.TaskResources[h.taskName]; res != nil { + networks = res.Networks + } } task := req.Alloc.LookupTask(h.taskName) diff --git a/client/allocrunner/taskrunner/task_runner.go b/client/allocrunner/taskrunner/task_runner.go index 826e34480..92ef7b067 100644 --- a/client/allocrunner/taskrunner/task_runner.go +++ b/client/allocrunner/taskrunner/task_runner.go @@ -265,12 +265,29 @@ func NewTaskRunner(config *Config) (*TaskRunner, error) { // Pull out the task's resources ares := tr.alloc.AllocatedResources if ares != nil { - if tres, ok := ares.Tasks[tr.taskName]; ok { - tr.taskResources = tres + tres, ok := ares.Tasks[tr.taskName] + if !ok { + return nil, fmt.Errorf("no task resources found on allocation") + } + tr.taskResources = tres + } else { + // COMPAT(0.10): Upgrade from old resources to new resources + // Grab the old task resources + oldTr, ok := tr.alloc.TaskResources[tr.taskName] + if !ok { + return nil, fmt.Errorf("no task resources found on allocation") } - // TODO in the else case should we do a migration from resources as an - // upgrade path + // Convert the old to new + tr.taskResources = &structs.AllocatedTaskResources{ + Cpu: structs.AllocatedCpuResources{ + CpuShares: int64(oldTr.CPU), + }, + Memory: structs.AllocatedMemoryResources{ + MemoryMB: int64(oldTr.MemoryMB), + }, + Networks: oldTr.Networks, + } } // Build the restart tracker.