diff --git a/client/DotNet/Armada.Client/ClientGenerated.cs b/client/DotNet/Armada.Client/ClientGenerated.cs index 8129eae56a0..119c543b917 100644 --- a/client/DotNet/Armada.Client/ClientGenerated.cs +++ b/client/DotNet/Armada.Client/ClientGenerated.cs @@ -1756,6 +1756,15 @@ public enum ApiJobState [System.Runtime.Serialization.EnumMember(Value = @"RUNNING")] RUNNING = 2, + [System.Runtime.Serialization.EnumMember(Value = @"SUCCEEDED")] + SUCCEEDED = 3, + + [System.Runtime.Serialization.EnumMember(Value = @"FAILED")] + FAILED = 4, + + [System.Runtime.Serialization.EnumMember(Value = @"UNKNOWN")] + UNKNOWN = 5, + } [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "10.0.27.0 (Newtonsoft.Json v12.0.0.0)")] diff --git a/client/python/tests/unit/test_gen.py b/client/python/tests/unit/test_gen.py index 7246e7dd9e5..9339fb53ba7 100644 --- a/client/python/tests/unit/test_gen.py +++ b/client/python/tests/unit/test_gen.py @@ -146,6 +146,9 @@ class JobState(Enum): QUEUED = 0 PENDING = 1 RUNNING = 2 + SUCCEEDED = 3 + FAILED = 4 + UNKNOWN = 5 ''' @@ -153,6 +156,9 @@ class JobState(Enum): ("QUEUED", 0), ("PENDING", 1), ("RUNNING", 2), + ("SUCCEEDED", 3), + ("FAILED", 4), + ("UNKNOWN", 5), ] diff --git a/config/executor/config.yaml b/config/executor/config.yaml index 7c09de9332c..ff5c73454e9 100644 --- a/config/executor/config.yaml +++ b/config/executor/config.yaml @@ -31,6 +31,7 @@ kubernetes: minimumAvailable: 2 QPS: 10000 Burst: 10000 + nodeIdLabel: kubernetes.io/hostname minimumPodAge: 3m failedPodExpiry: 10m maxTerminatedPods: 1000 # Should be lower than kube-controller-managed terminated-pod-gc-threshold (default 12500) diff --git a/internal/executor/application.go b/internal/executor/application.go index 248b84c1036..7d5a2bc62a5 100644 --- a/internal/executor/application.go +++ b/internal/executor/application.go @@ -144,6 +144,7 @@ func StartUpWithContext( nodeInfoService, usageClient, config.Kubernetes.TrackedNodeLabels, + config.Kubernetes.NodeIdLabel, config.Kubernetes.NodeReservedResources, ) diff --git a/internal/executor/configuration/types.go b/internal/executor/configuration/types.go index e4bfc1da9ad..34fc2cec673 100644 --- a/internal/executor/configuration/types.go +++ b/internal/executor/configuration/types.go @@ -42,6 +42,7 @@ type KubernetesConfiguration struct { QPS float32 Burst int Etcd EtcdConfiguration + NodeIdLabel string TrackedNodeLabels []string AvoidNodeLabelsOnRetry []string ToleratedTaints []string diff --git a/internal/executor/utilisation/cluster_utilisation.go b/internal/executor/utilisation/cluster_utilisation.go index ced7125c314..846e6fcbb45 100644 --- a/internal/executor/utilisation/cluster_utilisation.go +++ b/internal/executor/utilisation/cluster_utilisation.go @@ -5,11 +5,9 @@ import ( "time" "github.com/pkg/errors" - - "k8s.io/apimachinery/pkg/api/resource" - log "github.com/sirupsen/logrus" v1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" "github.com/armadaproject/armada/internal/common" armadaresource "github.com/armadaproject/armada/internal/common/resource" @@ -32,6 +30,7 @@ type ClusterUtilisationService struct { nodeInfoService node.NodeInfoService usageClient api.UsageClient trackedNodeLabels []string + nodeIdLabel string nodeReservedResources armadaresource.ComputeResources } @@ -41,6 +40,7 @@ func NewClusterUtilisationService( nodeInfoService node.NodeInfoService, usageClient api.UsageClient, trackedNodeLabels []string, + nodeIdLabel string, nodeReservedResources armadaresource.ComputeResources, ) *ClusterUtilisationService { return &ClusterUtilisationService{ @@ -49,6 +49,7 @@ func NewClusterUtilisationService( nodeInfoService: nodeInfoService, usageClient: usageClient, trackedNodeLabels: trackedNodeLabels, + nodeIdLabel: nodeIdLabel, nodeReservedResources: nodeReservedResources, } } @@ -140,6 +141,7 @@ func (clusterUtilisationService *ClusterUtilisationService) GetAvailableClusterC nodesUsage := getAllocatedResourceByNodeName(allNonCompletePodsRequiringResource) podsByNodes := groupPodsByNodes(allNonCompletePodsRequiringResource) nodes := make([]api.NodeInfo, 0, len(processingNodes)) + runIdsByNode := clusterUtilisationService.getRunIdsByNode(processingNodes, allPods, useLegacyIds) for _, n := range processingNodes { allocatable := armadaresource.FromResourceList(n.Status.Allocatable) available := allocatable.DeepCopy() @@ -159,7 +161,7 @@ func (clusterUtilisationService *ClusterUtilisationService) GetAvailableClusterC AvailableResources: available, TotalResources: allocatable, AllocatedResources: allocated, - RunIds: getRunIds(nodePods, useLegacyIds), + RunIdsByState: runIdsByNode[n.Name], }) } @@ -169,13 +171,60 @@ func (clusterUtilisationService *ClusterUtilisationService) GetAvailableClusterC }, nil } -// This is required until we transition to the Executor API -// The server api expects job ids whereas the executor api expects run ids -func getRunIds(pods []*v1.Pod, useLegacyIds bool) []string { - if useLegacyIds { - util.ExtractJobIds(pods) +// This returns all the pods assigned the node or soon to be assigned (via node-selector) +// The server api expects job ids, the executor api expects run ids - the legacy flag controls which this returns +func (clusterUtilisationService *ClusterUtilisationService) getRunIdsByNode(nodes []*v1.Node, pods []*v1.Pod, legacy bool) map[string]map[string]api.JobState { + nodeIdToNodeName := make(map[string]string, len(nodes)) + for _, n := range nodes { + if nodeId, nodeIdPresent := n.Labels[clusterUtilisationService.nodeIdLabel]; nodeIdPresent { + nodeIdToNodeName[nodeId] = n.Name + } + } + noLongerNeedsReportingFunc := util.IsReportedDone + + result := map[string]map[string]api.JobState{} + for _, pod := range pods { + // Skip pods that are not armada pods or "complete" from the servers point of view + if !util.IsManagedPod(pod) || noLongerNeedsReportingFunc(pod) { + continue + } + nodeIdNodeSelector, nodeSelectorPresent := pod.Spec.NodeSelector[clusterUtilisationService.nodeIdLabel] + runId := util.ExtractJobRunId(pod) + if legacy { + runId = util.ExtractJobId(pod) + } + + nodeName := pod.Spec.NodeName + if nodeName == "" && nodeSelectorPresent { + targetedNodeName, present := nodeIdToNodeName[nodeIdNodeSelector] + // Not scheduled on a node, but has node selector matching the current node + if present { + nodeName = targetedNodeName + } + } + + if nodeName != "" { + if _, present := result[nodeName]; !present { + result[nodeName] = map[string]api.JobState{} + } + result[nodeName][runId] = getJobRunState(pod) + } + } + return result +} + +func getJobRunState(pod *v1.Pod) api.JobState { + switch { + case pod.Status.Phase == v1.PodPending: + return api.JobState_PENDING + case pod.Status.Phase == v1.PodRunning: + return api.JobState_RUNNING + case pod.Status.Phase == v1.PodSucceeded: + return api.JobState_SUCCEEDED + case pod.Status.Phase == v1.PodFailed: + return api.JobState_FAILED } - return util.ExtractJobRunIds(pods) + return api.JobState_UNKNOWN } func getAllocatedResourceByNodeName(pods []*v1.Pod) map[string]armadaresource.ComputeResources { diff --git a/internal/executor/utilisation/cluster_utilisation_test.go b/internal/executor/utilisation/cluster_utilisation_test.go index a30a6364188..5096a90b1d8 100644 --- a/internal/executor/utilisation/cluster_utilisation_test.go +++ b/internal/executor/utilisation/cluster_utilisation_test.go @@ -11,8 +11,11 @@ import ( armadaresource "github.com/armadaproject/armada/internal/common/resource" util2 "github.com/armadaproject/armada/internal/common/util" "github.com/armadaproject/armada/internal/executor/domain" + "github.com/armadaproject/armada/pkg/api" ) +const nodeIdLabel = "node-id" + func TestCreateReportsOfQueueUsages(t *testing.T) { utilisationService := &ClusterUtilisationService{ queueUtilisationService: NewPodUtilisationService(nil, nil, nil, nil), @@ -304,6 +307,108 @@ func TestGetAllocationByQueueAndPriority_AggregatesResources(t *testing.T) { assert.Equal(t, result, expectedResult) } +func TestGetRunIdsByNode(t *testing.T) { + utilisationService := &ClusterUtilisationService{ + nodeIdLabel: nodeIdLabel, + } + node1 := &v1.Node{ObjectMeta: metav1.ObjectMeta{Name: "node-1", Labels: map[string]string{nodeIdLabel: "node-1-id"}}} + node2 := &v1.Node{ObjectMeta: metav1.ObjectMeta{Name: "node-2", Labels: map[string]string{nodeIdLabel: "node-2-id"}}} + + tests := map[string]struct { + inputPods []*v1.Pod + legacyIds bool + expectedOutput map[string]map[string]api.JobState + }{ + "MatchesOnNodeName": { + inputPods: []*v1.Pod{ + createPodOnNode("job-1", "run-1", v1.PodRunning, "node-1", ""), + createPodOnNode("job-2", "run-2", v1.PodRunning, "node-1", ""), + createPodOnNode("job-3", "run-3", v1.PodRunning, "node-2", ""), + }, + expectedOutput: map[string]map[string]api.JobState{ + "node-1": {"run-1": api.JobState_RUNNING, "run-2": api.JobState_RUNNING}, + "node-2": {"run-3": api.JobState_RUNNING}, + }, + }, + "LegacyGivesJobIds": { + inputPods: []*v1.Pod{ + createPodOnNode("job-1", "run-1", v1.PodRunning, "node-1", ""), + createPodOnNode("job-2", "run-2", v1.PodRunning, "node-2", ""), + }, + expectedOutput: map[string]map[string]api.JobState{ + "node-1": {"job-1": api.JobState_RUNNING}, + "node-2": {"job-2": api.JobState_RUNNING}, + }, + legacyIds: true, + }, + "HandlesAllPodPhases": { + inputPods: []*v1.Pod{ + createPodOnNode("job-1", "run-1", v1.PodPending, "node-1", ""), + createPodOnNode("job-2", "run-2", v1.PodRunning, "node-1", ""), + createPodOnNode("job-3", "run-3", v1.PodSucceeded, "node-1", ""), + createPodOnNode("job-4", "run-4", v1.PodFailed, "node-1", ""), + }, + expectedOutput: map[string]map[string]api.JobState{ + "node-1": {"run-1": api.JobState_PENDING, "run-2": api.JobState_RUNNING, "run-3": api.JobState_SUCCEEDED, "run-4": api.JobState_FAILED}, + }, + }, + "PodWithNodeSelectorTargetingNode": { + inputPods: []*v1.Pod{ + // Node selector matches node-1 label + createPodOnNode("job-1", "run-1", v1.PodPending, "", "node-1-id"), + }, + expectedOutput: map[string]map[string]api.JobState{ + "node-1": {"run-1": api.JobState_PENDING}, + }, + }, + "PodWithNodeSelectorTargetingInvalidNode": { + inputPods: []*v1.Pod{ + // Node selector does not match any node + createPodOnNode("job-1", "run-1", v1.PodPending, "", "node-3-id"), + }, + // No matches + expectedOutput: map[string]map[string]api.JobState{}, + }, + "Mixed": { + inputPods: []*v1.Pod{ + createPodOnNode("job-1", "run-1", v1.PodRunning, "node-1", ""), + createPodOnNode("job-2", "run-2", v1.PodPending, "", "node-1-id"), + }, + expectedOutput: map[string]map[string]api.JobState{ + "node-1": {"run-1": api.JobState_RUNNING, "run-2": api.JobState_PENDING}, + }, + }, + } + + for name, tc := range tests { + t.Run(name, func(t *testing.T) { + result := utilisationService.getRunIdsByNode([]*v1.Node{node1, node2}, tc.inputPods, tc.legacyIds) + assert.Equal(t, tc.expectedOutput, result) + }) + } +} + +func createPodOnNode(jobId string, runId string, phase v1.PodPhase, nodeName string, nodeIdSelector string) *v1.Pod { + pod := &v1.Pod{ + Status: v1.PodStatus{ + Phase: phase, + }, + Spec: v1.PodSpec{ + NodeName: nodeName, + }, + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + domain.JobId: jobId, + domain.JobRunId: runId, + }, + }, + } + if nodeIdSelector != "" { + pod.Spec.NodeSelector = map[string]string{nodeIdLabel: nodeIdSelector} + } + return pod +} + func TestGetAllocationByQueueAndPriority_HandlesEmptyList(t *testing.T) { var pods []*v1.Pod diff --git a/internal/scheduler/api.go b/internal/scheduler/api.go index 0e04904b3a1..b5a415365a9 100644 --- a/internal/scheduler/api.go +++ b/internal/scheduler/api.go @@ -206,7 +206,7 @@ func extractRunIds(req *executorapi.LeaseRequest) ([]uuid.UUID, error) { runIds := make([]uuid.UUID, 0) // add all runids from nodes for _, node := range req.Nodes { - for _, runIdStr := range node.RunIds { + for runIdStr := range node.RunIdsByState { runId, err := uuid.Parse(runIdStr) if err != nil { return nil, errors.WithStack(err) diff --git a/internal/scheduler/api_test.go b/internal/scheduler/api_test.go index 32b718ab64c..7583e13c39f 100644 --- a/internal/scheduler/api_test.go +++ b/internal/scheduler/api_test.go @@ -38,8 +38,11 @@ func TestExecutorApi_LeaseJobRuns(t *testing.T) { Pool: "test-pool", Nodes: []*api.NodeInfo{ { - Name: "test-node", - RunIds: []string{runId1.String(), runId2.String()}, + Name: "test-node", + RunIdsByState: map[string]api.JobState{ + runId1.String(): api.JobState_RUNNING, + runId2.String(): api.JobState_RUNNING, + }, }, }, UnassignedJobRunIds: []armadaevents.Uuid{*armadaevents.ProtoUuidFromUuid(runId3)}, @@ -51,7 +54,7 @@ func TestExecutorApi_LeaseJobRuns(t *testing.T) { { Id: "test-executor-test-node", TotalResources: schedulerobjects.ResourceList{}, - JobRuns: []string{runId1.String(), runId2.String()}, + JobRunsByState: map[string]schedulerobjects.JobRunState{runId1.String(): schedulerobjects.JobRunState_RUNNING, runId2.String(): schedulerobjects.JobRunState_RUNNING}, AllocatableByPriorityAndResource: map[int32]schedulerobjects.ResourceList{ 1000: { Resources: map[string]resource.Quantity{}, @@ -144,7 +147,7 @@ func TestExecutorApi_LeaseJobRuns(t *testing.T) { assert.Equal(t, tc.expectedExecutor, executor) return nil }).Times(1) - mockJobRepository.EXPECT().FindInactiveRuns(gomock.Any(), runIds).Return(tc.runsToCancel, nil).Times(1) + mockJobRepository.EXPECT().FindInactiveRuns(gomock.Any(), schedulermocks.SliceMatcher[uuid.UUID]{Expected: runIds}).Return(tc.runsToCancel, nil).Times(1) mockJobRepository.EXPECT().FetchJobRunLeases(gomock.Any(), tc.request.ExecutorId, maxJobsPerCall, runIds).Return(tc.leases, nil).Times(1) // capture all sent messages diff --git a/internal/scheduler/mocks/matchers.go b/internal/scheduler/mocks/matchers.go new file mode 100644 index 00000000000..cacc6cdb5b2 --- /dev/null +++ b/internal/scheduler/mocks/matchers.go @@ -0,0 +1,45 @@ +package schedulermocks + +import ( + "sort" + "strings" +) + +type Stringer interface { + String() string +} + +type SliceMatcher[T Stringer] struct { + Expected []T +} + +// Matches +// Matches input against provided expected input +// This matching ignores the input ordering, so args don't need to be passed in a known order +func (s SliceMatcher[T]) Matches(x interface{}) bool { + inputs, ok := x.([]T) + if !ok { + return false + } + expected := s.Expected + if len(inputs) != len(expected) { + return false + } + sort.Slice(inputs, func(i, j int) bool { + return strings.Compare(inputs[i].String(), inputs[j].String()) < 0 + }) + sort.Slice(expected, func(i, j int) bool { + return strings.Compare(expected[i].String(), expected[j].String()) < 0 + }) + for i, inputValue := range inputs { + if inputValue.String() != expected[i].String() { + return false + } + } + return true +} + +// String describes what the matcher matches. +func (s SliceMatcher[T]) String() string { + return "checks provided matches expected uuid list" +} diff --git a/internal/scheduler/schedulerobjects/executor.go b/internal/scheduler/schedulerobjects/executor.go index 158828cefcb..a5c5fbe5019 100644 --- a/internal/scheduler/schedulerobjects/executor.go +++ b/internal/scheduler/schedulerobjects/executor.go @@ -9,7 +9,7 @@ func (m *Executor) AllRuns() ([]uuid.UUID, error) { runIds := make([]uuid.UUID, 0) // add all runids from nodes for _, node := range m.Nodes { - for _, runIdStr := range node.JobRuns { + for runIdStr := range node.JobRunsByState { runId, err := uuid.Parse(runIdStr) if err != nil { return nil, errors.WithStack(err) diff --git a/internal/scheduler/schedulerobjects/node.go b/internal/scheduler/schedulerobjects/node.go index 03eea28afbc..2b3aad09b7d 100644 --- a/internal/scheduler/schedulerobjects/node.go +++ b/internal/scheduler/schedulerobjects/node.go @@ -26,7 +26,7 @@ func (node *Node) DeepCopy() *Node { Taints: slices.Clone(node.Taints), Labels: maps.Clone(node.Labels), TotalResources: node.TotalResources.DeepCopy(), - JobRuns: slices.Clone(node.JobRuns), + JobRunsByState: maps.Clone(node.JobRunsByState), AllocatableByPriorityAndResource: AllocatableByPriorityAndResourceType( node.AllocatableByPriorityAndResource, ).DeepCopy(), diff --git a/internal/scheduler/schedulerobjects/schedulerobjects.pb.go b/internal/scheduler/schedulerobjects/schedulerobjects.pb.go index 8abcbc918ed..bf30ea7ca40 100644 --- a/internal/scheduler/schedulerobjects/schedulerobjects.pb.go +++ b/internal/scheduler/schedulerobjects/schedulerobjects.pb.go @@ -30,6 +30,40 @@ var _ = time.Kitchen // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +type JobRunState int32 + +const ( + JobRunState_UNKNOWN JobRunState = 0 + JobRunState_PENDING JobRunState = 1 + JobRunState_RUNNING JobRunState = 2 + JobRunState_SUCCEEDED JobRunState = 3 + JobRunState_FAILED JobRunState = 4 +) + +var JobRunState_name = map[int32]string{ + 0: "UNKNOWN", + 1: "PENDING", + 2: "RUNNING", + 3: "SUCCEEDED", + 4: "FAILED", +} + +var JobRunState_value = map[string]int32{ + "UNKNOWN": 0, + "PENDING": 1, + "RUNNING": 2, + "SUCCEEDED": 3, + "FAILED": 4, +} + +func (x JobRunState) String() string { + return proto.EnumName(JobRunState_name, int32(x)) +} + +func (JobRunState) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_97dadc5fbd620721, []int{0} +} + // Executor represents an executor running on a worker cluster type Executor struct { // Name of the executor. @@ -145,8 +179,8 @@ type Node struct { // E.g., AvailableResources[5]["cpu"] is the amount of CPU available to jobs with priority 5, // where available resources = unused resources + resources assigned to lower-priority jobs. AllocatableByPriorityAndResource map[int32]ResourceList `protobuf:"bytes,8,rep,name=AllocatableByPriorityAndResource,proto3" json:"AllocatableByPriorityAndResource" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // Ids of the jobs runs currently assigned to this this. - JobRuns []string `protobuf:"bytes,9,rep,name=job_runs,json=jobRuns,proto3" json:"jobRuns,omitempty"` + // Ids of the jobs runs currently assigned to this node mapped to the jobs runs current state. + JobRunsByState map[string]JobRunState `protobuf:"bytes,9,rep,name=job_runs_by_state,json=jobRunsByState,proto3" json:"jobRunsByState,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=schedulerobjects.JobRunState"` // Resource allocated to jobs on this node. // TODO: Reconcile with job_runs. AllocatedByJobId map[string]ResourceList `protobuf:"bytes,10,rep,name=AllocatedByJobId,proto3" json:"AllocatedByJobId" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` @@ -241,9 +275,9 @@ func (m *Node) GetAllocatableByPriorityAndResource() map[int32]ResourceList { return nil } -func (m *Node) GetJobRuns() []string { +func (m *Node) GetJobRunsByState() map[string]JobRunState { if m != nil { - return m.JobRuns + return m.JobRunsByState } return nil } @@ -827,10 +861,12 @@ func (m *PulsarSchedulerJobDetails) GetJobSet() string { } func init() { + proto.RegisterEnum("schedulerobjects.JobRunState", JobRunState_name, JobRunState_value) proto.RegisterType((*Executor)(nil), "schedulerobjects.Executor") proto.RegisterType((*Node)(nil), "schedulerobjects.Node") proto.RegisterMapType((map[int32]ResourceList)(nil), "schedulerobjects.Node.AllocatableByPriorityAndResourceEntry") proto.RegisterMapType((map[string]ResourceList)(nil), "schedulerobjects.Node.AllocatedByJobIdEntry") + proto.RegisterMapType((map[string]JobRunState)(nil), "schedulerobjects.Node.JobRunsByStateEntry") proto.RegisterMapType((map[string]string)(nil), "schedulerobjects.Node.LabelsEntry") proto.RegisterType((*NodeType)(nil), "schedulerobjects.NodeType") proto.RegisterMapType((map[string]string)(nil), "schedulerobjects.NodeType.LabelsEntry") @@ -854,108 +890,115 @@ func init() { } var fileDescriptor_97dadc5fbd620721 = []byte{ - // 1605 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0xdb, 0xc6, - 0x12, 0x37, 0x25, 0x7f, 0xc8, 0x6b, 0xc7, 0x1f, 0xeb, 0x8f, 0x47, 0x2b, 0x79, 0xa2, 0x9f, 0xde, - 0x7b, 0x81, 0x8b, 0x26, 0x54, 0xe3, 0xf4, 0x10, 0xa4, 0xbd, 0x98, 0x49, 0xd0, 0xca, 0x70, 0x13, - 0x87, 0xb6, 0x0b, 0xb4, 0x40, 0x13, 0xac, 0xc4, 0xb5, 0xb2, 0x31, 0xc5, 0x65, 0xc8, 0xa5, 0x11, - 0xe5, 0xdc, 0x9e, 0x0a, 0x04, 0x41, 0xdb, 0x43, 0x81, 0x02, 0xed, 0xb5, 0xe7, 0x5e, 0xfb, 0x0f, - 0xe4, 0x98, 0x63, 0x4f, 0x4c, 0x91, 0xdc, 0x04, 0xf4, 0xd2, 0x7f, 0xa0, 0x05, 0x77, 0x49, 0x71, - 0x45, 0x4a, 0x96, 0xd3, 0x36, 0xed, 0xc9, 0xde, 0xd9, 0x99, 0xdf, 0x7c, 0xee, 0xcc, 0x50, 0xe0, - 0x2a, 0x71, 0x18, 0xf6, 0x1c, 0x64, 0xd7, 0xfc, 0xe6, 0x3d, 0x6c, 0x05, 0x36, 0xf6, 0xd2, 0xff, - 0x68, 0xe3, 0x3e, 0x6e, 0x32, 0x3f, 0x47, 0xd0, 0x5d, 0x8f, 0x32, 0x0a, 0x17, 0xb2, 0xf4, 0xb2, - 0xd6, 0xa2, 0xb4, 0x65, 0xe3, 0x1a, 0xbf, 0x6f, 0x04, 0x87, 0x35, 0x46, 0xda, 0xd8, 0x67, 0xa8, - 0xed, 0x0a, 0x91, 0x72, 0xf5, 0xe8, 0x8a, 0xaf, 0x13, 0x5a, 0x43, 0x2e, 0xa9, 0x35, 0xa9, 0x87, - 0x6b, 0xc7, 0x97, 0x6a, 0x2d, 0xec, 0x60, 0x0f, 0x31, 0x6c, 0xc5, 0x3c, 0x6f, 0xa7, 0x3c, 0x6d, - 0xd4, 0xbc, 0x47, 0x1c, 0xec, 0x75, 0x6a, 0xee, 0x51, 0x8b, 0x0b, 0x79, 0xd8, 0xa7, 0x81, 0xd7, - 0xc4, 0x39, 0xa9, 0x8b, 0x2d, 0xc2, 0xee, 0x05, 0x0d, 0xbd, 0x49, 0xdb, 0xb5, 0x16, 0x6d, 0xd1, - 0xd4, 0x86, 0xe8, 0xc4, 0x0f, 0xfc, 0x3f, 0xc1, 0x5e, 0xfd, 0xbe, 0x08, 0x4a, 0x37, 0x1e, 0xe2, - 0x66, 0xc0, 0xa8, 0x07, 0xd7, 0x41, 0x81, 0x58, 0xaa, 0xb2, 0xae, 0x6c, 0x4c, 0x1b, 0x0b, 0xdd, - 0x50, 0x9b, 0x25, 0xd6, 0x05, 0xda, 0x26, 0x0c, 0xb7, 0x5d, 0xd6, 0x31, 0x0b, 0xc4, 0x82, 0xe7, - 0xc1, 0xb8, 0x4b, 0xa9, 0xad, 0x16, 0x38, 0x0f, 0xec, 0x86, 0xda, 0x5c, 0x74, 0x96, 0xb8, 0xf8, - 0x3d, 0xdc, 0x02, 0x13, 0x0e, 0xb5, 0xb0, 0xaf, 0x16, 0xd7, 0x8b, 0x1b, 0x33, 0x9b, 0xab, 0x7a, - 0x2e, 0x74, 0x37, 0xa9, 0x85, 0x8d, 0xa5, 0x6e, 0xa8, 0xcd, 0x73, 0x46, 0x09, 0x41, 0x48, 0xc2, - 0x3b, 0x60, 0xae, 0x4d, 0x1c, 0xd2, 0x0e, 0xda, 0xdb, 0xb4, 0xb1, 0x47, 0x1e, 0x61, 0x75, 0x7c, - 0x5d, 0xd9, 0x98, 0xd9, 0xac, 0xe4, 0xb1, 0xcc, 0x38, 0x18, 0x3b, 0xc4, 0x67, 0xc6, 0xea, 0xd3, - 0x50, 0x1b, 0x8b, 0x0c, 0xeb, 0x97, 0x36, 0x33, 0xe7, 0x08, 0xdf, 0x46, 0x3e, 0x3b, 0x70, 0x2d, - 0xc4, 0xf0, 0x3e, 0x69, 0x63, 0x75, 0x82, 0xe3, 0x97, 0x75, 0x91, 0x3c, 0x3d, 0x09, 0x9c, 0xbe, - 0x9f, 0x24, 0xcf, 0x28, 0x27, 0xd8, 0xfd, 0x92, 0x4f, 0x9e, 0x6b, 0x8a, 0x99, 0xa1, 0xc1, 0x5b, - 0x60, 0x29, 0x70, 0x90, 0xef, 0x93, 0x96, 0x83, 0xad, 0xbb, 0xf7, 0x69, 0xe3, 0xae, 0x17, 0x38, - 0xbe, 0x3a, 0xbd, 0x5e, 0xdc, 0x98, 0x36, 0xb4, 0x6e, 0xa8, 0x9d, 0x4d, 0xaf, 0xb7, 0x69, 0xc3, - 0x0c, 0x1c, 0x39, 0x08, 0x8b, 0xb9, 0xcb, 0xea, 0xf3, 0x69, 0x30, 0x1e, 0x45, 0x2d, 0x4a, 0x53, - 0xbd, 0x2f, 0x4d, 0xf5, 0xbe, 0x34, 0xd5, 0x2d, 0xb8, 0x03, 0x4a, 0x3b, 0xc8, 0x67, 0x7b, 0x18, - 0x3b, 0x3c, 0x55, 0x27, 0x7b, 0xb5, 0x1c, 0x7b, 0xd5, 0x93, 0xe1, 0xfe, 0xf4, 0x4e, 0xf0, 0x26, - 0x28, 0x45, 0x29, 0xd9, 0xef, 0xb8, 0x58, 0x2d, 0xc6, 0x68, 0x03, 0xf3, 0x19, 0x71, 0x18, 0xab, - 0xdd, 0x50, 0x83, 0x09, 0xbf, 0x64, 0x57, 0x0f, 0x03, 0x5e, 0x01, 0x20, 0xe1, 0xae, 0x5b, 0x3c, - 0xab, 0xd3, 0x86, 0xda, 0x0d, 0xb5, 0xe5, 0x94, 0x2a, 0xc9, 0x49, 0xbc, 0x70, 0x0b, 0x4c, 0x32, - 0x44, 0x1c, 0xe6, 0xab, 0x13, 0xbc, 0xae, 0xd6, 0x74, 0xf1, 0x46, 0x74, 0xe4, 0x12, 0x3d, 0x7a, - 0x47, 0xfa, 0xf1, 0x25, 0x7d, 0x3f, 0xe2, 0x30, 0xe6, 0x62, 0xa7, 0x62, 0x01, 0x33, 0xfe, 0x0b, - 0x77, 0xc1, 0xa4, 0x8d, 0x1a, 0xd8, 0xf6, 0xd5, 0x49, 0x0e, 0x51, 0x1d, 0xec, 0x8a, 0xbe, 0xc3, - 0x99, 0x6e, 0x38, 0xcc, 0xeb, 0x18, 0xcb, 0xdd, 0x50, 0x5b, 0x10, 0x52, 0x92, 0x61, 0x31, 0x4e, - 0x54, 0x48, 0xfb, 0x94, 0x21, 0x3b, 0xa9, 0x42, 0x5f, 0x9d, 0x7a, 0xb5, 0x42, 0xed, 0x97, 0x36, - 0x33, 0x67, 0xf8, 0x83, 0x02, 0xd6, 0xb7, 0x6c, 0x9b, 0x36, 0x11, 0x43, 0x0d, 0x1b, 0x1b, 0x9d, - 0x5d, 0x8f, 0x50, 0x8f, 0xb0, 0xce, 0x96, 0x63, 0x25, 0x5c, 0x6a, 0x89, 0x3b, 0xf3, 0xee, 0x10, - 0x67, 0x46, 0x89, 0x0b, 0x37, 0x37, 0x62, 0x83, 0x46, 0x6a, 0x33, 0x47, 0x72, 0xc0, 0xb7, 0x40, - 0x29, 0x53, 0xf2, 0x2b, 0xdd, 0x50, 0x5b, 0xbc, 0x9f, 0x2b, 0xf4, 0xa9, 0x98, 0x04, 0x3d, 0xb0, - 0x10, 0xa3, 0x62, 0xcb, 0xe8, 0x6c, 0xd3, 0x46, 0xdd, 0x52, 0x01, 0xf7, 0xea, 0xc2, 0xc9, 0x5e, - 0xf5, 0xd8, 0x85, 0x17, 0x6a, 0xec, 0x45, 0x0e, 0xcd, 0xcc, 0x51, 0xca, 0x08, 0xcc, 0x48, 0x79, - 0x86, 0xff, 0x05, 0xc5, 0x23, 0xdc, 0x89, 0x5f, 0xd6, 0x62, 0x37, 0xd4, 0xce, 0x1c, 0xe1, 0x8e, - 0x64, 0x6b, 0x74, 0x0b, 0xdf, 0x00, 0x13, 0xc7, 0xc8, 0x0e, 0x70, 0xdc, 0x03, 0x79, 0x0b, 0xe3, - 0x04, 0xb9, 0x85, 0x71, 0xc2, 0xd5, 0xc2, 0x15, 0xa5, 0xfc, 0x8d, 0x02, 0xfe, 0x7f, 0xaa, 0xf0, - 0xcb, 0xda, 0x27, 0x86, 0x6a, 0xaf, 0xcb, 0xda, 0x47, 0xd7, 0xd8, 0x28, 0xeb, 0x3e, 0x57, 0xc0, - 0xca, 0xc0, 0x30, 0x9e, 0x2e, 0x16, 0x7f, 0xad, 0x35, 0xd5, 0x6f, 0xc7, 0x41, 0x29, 0x79, 0xed, - 0xa7, 0xe8, 0x72, 0x69, 0x37, 0x28, 0xfc, 0xd1, 0x6e, 0xb0, 0xdf, 0xeb, 0x06, 0x62, 0x50, 0x9d, - 0x1f, 0xde, 0xd8, 0x5e, 0xa1, 0x23, 0x7c, 0xaa, 0x00, 0x18, 0x38, 0x3e, 0x66, 0x75, 0xc7, 0xc2, - 0x0f, 0xb1, 0x25, 0x24, 0xd5, 0x71, 0xae, 0x62, 0xf3, 0x04, 0x15, 0x07, 0x39, 0x21, 0xa1, 0x6e, - 0xbd, 0x1b, 0x6a, 0xe7, 0xf2, 0x88, 0x92, 0xea, 0x01, 0xfa, 0xfe, 0x8e, 0xea, 0x6e, 0x83, 0x7f, - 0x0d, 0xb1, 0xf9, 0x75, 0xa8, 0xab, 0xfe, 0x5a, 0x04, 0x6b, 0xb7, 0x03, 0x1c, 0xe0, 0x6b, 0x76, - 0xe0, 0x33, 0xec, 0x25, 0xd5, 0x75, 0xe0, 0xa3, 0x16, 0x86, 0x75, 0x30, 0xd5, 0xf4, 0x70, 0x54, - 0xc9, 0x5c, 0xeb, 0xc9, 0x43, 0x6f, 0x29, 0xae, 0x88, 0x44, 0x84, 0xcf, 0xbc, 0xe4, 0x10, 0xd9, - 0xf5, 0x20, 0xd2, 0x23, 0xdb, 0xc5, 0x09, 0xb2, 0x5d, 0x9c, 0x10, 0x4d, 0x33, 0x1c, 0x2f, 0x50, - 0x75, 0x8b, 0xcf, 0xc7, 0x78, 0x9a, 0xa5, 0x54, 0x79, 0x9a, 0xa5, 0x54, 0xf8, 0xa5, 0x02, 0x96, - 0x92, 0x3d, 0xce, 0x4f, 0x1b, 0x43, 0x5c, 0x27, 0xd7, 0xf3, 0x75, 0x32, 0xd4, 0xf5, 0xde, 0x33, - 0x93, 0x60, 0x44, 0xe5, 0x9c, 0x8d, 0xdd, 0x1c, 0xa4, 0xc8, 0x1c, 0x44, 0x2c, 0x3f, 0x56, 0x80, - 0x3a, 0x0c, 0xee, 0x9f, 0xe8, 0x51, 0xd5, 0x1f, 0x8b, 0xa0, 0x3c, 0xc8, 0x69, 0x13, 0xbb, 0xd4, - 0x63, 0xbd, 0x95, 0x54, 0x19, 0xb1, 0x92, 0x4a, 0xd5, 0x51, 0xf8, 0x93, 0xd5, 0xf1, 0x58, 0x01, - 0x0b, 0x52, 0xe8, 0x78, 0x5a, 0xe2, 0x06, 0x62, 0xe4, 0x9d, 0x1d, 0x6e, 0xbb, 0x9c, 0x36, 0x0e, - 0x22, 0x72, 0x56, 0xe9, 0x86, 0x5a, 0x39, 0x8b, 0x2f, 0xf9, 0x93, 0xd3, 0x5d, 0xfe, 0x5a, 0x01, - 0x2b, 0x03, 0xb1, 0x4e, 0xf7, 0x0a, 0x3f, 0xec, 0x4f, 0xd8, 0x9b, 0xaf, 0x50, 0x79, 0x23, 0xb3, - 0xf7, 0x59, 0x01, 0xcc, 0xca, 0xe9, 0x86, 0x77, 0xc0, 0x74, 0xcf, 0x7e, 0x55, 0xe1, 0x41, 0xbb, - 0x78, 0x72, 0x85, 0xa4, 0x61, 0x12, 0xf1, 0x59, 0x8c, 0x93, 0x93, 0xe2, 0x98, 0xe9, 0xbf, 0xe5, - 0xaf, 0x14, 0x30, 0xd7, 0x2f, 0x70, 0xba, 0x20, 0x7c, 0xd4, 0x1f, 0x04, 0x5d, 0x1a, 0x26, 0xbd, - 0xcf, 0x2f, 0xdd, 0x3d, 0x6a, 0xf1, 0xe9, 0x92, 0xa8, 0xd3, 0x6f, 0x07, 0xc8, 0x61, 0x84, 0x75, - 0x46, 0xc6, 0xe1, 0xb7, 0x02, 0x58, 0x8c, 0x3e, 0x3d, 0x84, 0xa3, 0xc4, 0x69, 0xd5, 0x9d, 0x43, - 0x0a, 0x37, 0x41, 0xc9, 0x26, 0x87, 0x38, 0xfa, 0x3c, 0xe4, 0xe6, 0x9d, 0x11, 0xeb, 0x73, 0x42, - 0x93, 0xd7, 0xe7, 0x84, 0x16, 0x35, 0x1c, 0xc4, 0x3e, 0xa0, 0x3e, 0xbb, 0xe5, 0x34, 0x85, 0xb5, - 0x25, 0xd1, 0x70, 0x52, 0xaa, 0xdc, 0x70, 0x52, 0x2a, 0x7c, 0x07, 0xcc, 0xb8, 0x1e, 0x8e, 0xe8, - 0xa4, 0x61, 0x8b, 0x5d, 0xbe, 0x64, 0xac, 0x75, 0x43, 0x6d, 0x45, 0x22, 0x4b, 0xb2, 0x32, 0x37, - 0x7c, 0x0f, 0xcc, 0x37, 0xa9, 0xd3, 0x0c, 0x3c, 0x0f, 0x3b, 0xcd, 0xce, 0x1e, 0x3a, 0x14, 0x1f, - 0x64, 0x25, 0xe3, 0xdf, 0xdd, 0x50, 0x5b, 0xcb, 0x5c, 0x49, 0x20, 0x59, 0x29, 0x78, 0x0c, 0xa0, - 0xc8, 0xb2, 0x89, 0x1f, 0x04, 0xc4, 0xc3, 0x6d, 0x9c, 0x2e, 0xf4, 0xff, 0xcb, 0x57, 0xc2, 0xad, - 0x1c, 0xaf, 0x18, 0x87, 0x79, 0x0c, 0x79, 0x1c, 0xe6, 0x6f, 0xab, 0x5f, 0x28, 0x00, 0xe6, 0xc1, - 0xa0, 0x0d, 0xe6, 0x5d, 0x6a, 0xf5, 0xd9, 0x22, 0xa6, 0xc7, 0x7f, 0xf2, 0xb6, 0xec, 0xf6, 0x33, - 0x0a, 0xd7, 0x33, 0xd2, 0xa9, 0x15, 0xef, 0x8f, 0x99, 0x59, 0x68, 0x63, 0x0e, 0xcc, 0x7a, 0xb2, - 0x51, 0xbf, 0x4c, 0x82, 0xf9, 0x0c, 0x2a, 0xf4, 0xc1, 0x6c, 0xf4, 0xad, 0xb4, 0x87, 0x6d, 0xdc, - 0x64, 0xd4, 0x8b, 0x1f, 0xc9, 0xe5, 0x91, 0xe6, 0xf0, 0x3d, 0x22, 0x91, 0x12, 0x4f, 0xa5, 0xdc, - 0x0d, 0xb5, 0x55, 0x19, 0x4c, 0x8a, 0x51, 0x9f, 0x12, 0xb8, 0x0b, 0x4a, 0xe8, 0xf0, 0x90, 0x38, - 0xd1, 0x00, 0x12, 0x2f, 0xe0, 0xdc, 0xa0, 0x75, 0x6a, 0x2b, 0xe6, 0x11, 0x75, 0x9a, 0x48, 0xc8, - 0x75, 0x9a, 0xd0, 0xe0, 0x01, 0x98, 0x61, 0xd4, 0xc6, 0x1e, 0x62, 0x84, 0x3a, 0xc9, 0x82, 0x55, - 0x19, 0xb8, 0xa3, 0xf5, 0xd8, 0x7a, 0x8d, 0x57, 0x16, 0x35, 0xe5, 0x03, 0xa4, 0x60, 0x06, 0x39, - 0x0e, 0x65, 0x31, 0xec, 0xd4, 0xb0, 0xa5, 0x2a, 0x1b, 0x9c, 0xad, 0x54, 0x48, 0xc4, 0x86, 0x17, - 0xbe, 0x04, 0x25, 0x17, 0xbe, 0x44, 0x8e, 0xde, 0xa8, 0x9b, 0x8e, 0xe6, 0x68, 0xf0, 0x71, 0xdf, - 0x13, 0x9a, 0xec, 0x7b, 0x42, 0x83, 0xdb, 0x60, 0x21, 0x79, 0x3b, 0xd4, 0xd9, 0xa5, 0x36, 0x69, - 0x76, 0xf8, 0xcf, 0x0b, 0xd3, 0xa2, 0xb9, 0x67, 0xef, 0xe4, 0xe6, 0x9e, 0xbd, 0x83, 0x8f, 0xc0, - 0x72, 0xd2, 0x6e, 0xfa, 0xaa, 0x74, 0x92, 0x67, 0x69, 0x63, 0x50, 0x40, 0xcd, 0x01, 0xfc, 0xc6, - 0xb9, 0x38, 0xb4, 0x03, 0xd1, 0xcc, 0x81, 0xd4, 0x72, 0x0b, 0x2c, 0xe6, 0x8a, 0xea, 0xb5, 0x2c, - 0x92, 0x87, 0x60, 0x21, 0x9b, 0xa0, 0xd7, 0xb2, 0x41, 0x7e, 0xa7, 0x80, 0xb5, 0xdd, 0xc0, 0xf6, - 0x91, 0xb7, 0x97, 0x14, 0xcc, 0x36, 0x6d, 0x5c, 0xc7, 0x0c, 0x11, 0xdb, 0x8f, 0xc0, 0xc4, 0x87, - 0xa7, 0x92, 0x82, 0x71, 0x82, 0x0c, 0xc6, 0x09, 0x11, 0xeb, 0xed, 0xec, 0x86, 0x98, 0x1d, 0xd4, - 0x82, 0x03, 0x5e, 0x00, 0x93, 0x51, 0xe7, 0xc7, 0x2c, 0xde, 0x0e, 0xf9, 0xc7, 0x83, 0xa0, 0xc8, - 0x1f, 0x0f, 0x82, 0x62, 0x7c, 0xf2, 0xf4, 0x45, 0x45, 0x79, 0xf6, 0xa2, 0xa2, 0xfc, 0xfc, 0xa2, - 0xa2, 0x3c, 0x79, 0x59, 0x19, 0x7b, 0xf6, 0xb2, 0x32, 0xf6, 0xd3, 0xcb, 0xca, 0xd8, 0xc7, 0xd7, - 0xa4, 0x9f, 0xf6, 0x90, 0xd7, 0x46, 0x16, 0x72, 0x3d, 0x1a, 0x15, 0x7b, 0x7c, 0xaa, 0x9d, 0xe2, - 0x37, 0xcc, 0xc6, 0x24, 0xdf, 0x76, 0x2e, 0xff, 0x1e, 0x00, 0x00, 0xff, 0xff, 0x3d, 0x8a, 0x48, - 0x6d, 0xf1, 0x14, 0x00, 0x00, + // 1721 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x4f, 0x6f, 0xdb, 0x46, + 0x16, 0x37, 0x25, 0x5b, 0x96, 0x47, 0x8e, 0x2d, 0x8f, 0x1d, 0x2f, 0xad, 0x38, 0xa2, 0x57, 0xbb, + 0x1b, 0x78, 0xb3, 0x09, 0x85, 0x38, 0x7b, 0x08, 0xb2, 0x7b, 0x31, 0x6d, 0x6f, 0x22, 0xaf, 0x57, + 0x76, 0x68, 0x7b, 0x8b, 0x16, 0x68, 0x0c, 0x4a, 0x1c, 0x2b, 0x8c, 0x29, 0x8e, 0x42, 0x0e, 0x8d, + 0x28, 0xe7, 0x16, 0x28, 0x50, 0x20, 0x08, 0xda, 0x1e, 0x0a, 0x14, 0x68, 0xaf, 0xbd, 0xf4, 0xd2, + 0x6b, 0xbf, 0x40, 0x8e, 0x39, 0xf6, 0xa4, 0x16, 0xc9, 0x4d, 0x40, 0x2f, 0xfd, 0x02, 0x2d, 0x66, + 0x86, 0x14, 0x47, 0xa4, 0x64, 0x39, 0x6d, 0xd3, 0x9e, 0xa4, 0x79, 0xf3, 0xde, 0xef, 0xfd, 0x9d, + 0xf7, 0x66, 0x08, 0x6e, 0x5b, 0x0e, 0x41, 0xae, 0x63, 0xd8, 0x65, 0xaf, 0xfe, 0x00, 0x99, 0xbe, + 0x8d, 0xdc, 0xe8, 0x1f, 0xae, 0x3d, 0x44, 0x75, 0xe2, 0x25, 0x08, 0x6a, 0xcb, 0xc5, 0x04, 0xc3, + 0x7c, 0x9c, 0x5e, 0x50, 0x1a, 0x18, 0x37, 0x6c, 0x54, 0x66, 0xfb, 0x35, 0xff, 0xb8, 0x4c, 0xac, + 0x26, 0xf2, 0x88, 0xd1, 0x6c, 0x71, 0x91, 0x42, 0xe9, 0xe4, 0x96, 0xa7, 0x5a, 0xb8, 0x6c, 0xb4, + 0xac, 0x72, 0x1d, 0xbb, 0xa8, 0x7c, 0x7a, 0xa3, 0xdc, 0x40, 0x0e, 0x72, 0x0d, 0x82, 0xcc, 0x80, + 0xe7, 0x9f, 0x11, 0x4f, 0xd3, 0xa8, 0x3f, 0xb0, 0x1c, 0xe4, 0xb6, 0xcb, 0xad, 0x93, 0x06, 0x13, + 0x72, 0x91, 0x87, 0x7d, 0xb7, 0x8e, 0x12, 0x52, 0xd7, 0x1b, 0x16, 0x79, 0xe0, 0xd7, 0xd4, 0x3a, + 0x6e, 0x96, 0x1b, 0xb8, 0x81, 0x23, 0x1b, 0xe8, 0x8a, 0x2d, 0xd8, 0x3f, 0xce, 0x5e, 0xfa, 0x32, + 0x0d, 0xb2, 0x5b, 0x8f, 0x51, 0xdd, 0x27, 0xd8, 0x85, 0x2b, 0x20, 0x65, 0x99, 0xb2, 0xb4, 0x22, + 0xad, 0x4e, 0x69, 0xf9, 0x6e, 0x47, 0x99, 0xb6, 0xcc, 0x6b, 0xb8, 0x69, 0x11, 0xd4, 0x6c, 0x91, + 0xb6, 0x9e, 0xb2, 0x4c, 0x78, 0x05, 0x8c, 0xb7, 0x30, 0xb6, 0xe5, 0x14, 0xe3, 0x81, 0xdd, 0x8e, + 0x32, 0x43, 0xd7, 0x02, 0x17, 0xdb, 0x87, 0xeb, 0x60, 0xc2, 0xc1, 0x26, 0xf2, 0xe4, 0xf4, 0x4a, + 0x7a, 0x35, 0xb7, 0xb6, 0xa8, 0x26, 0x42, 0x57, 0xc5, 0x26, 0xd2, 0xe6, 0xbb, 0x1d, 0x65, 0x96, + 0x31, 0x0a, 0x08, 0x5c, 0x12, 0xde, 0x07, 0x33, 0x4d, 0xcb, 0xb1, 0x9a, 0x7e, 0x73, 0x1b, 0xd7, + 0xf6, 0xad, 0x27, 0x48, 0x1e, 0x5f, 0x91, 0x56, 0x73, 0x6b, 0xc5, 0x24, 0x96, 0x1e, 0x04, 0x63, + 0xc7, 0xf2, 0x88, 0xb6, 0xf8, 0xbc, 0xa3, 0x8c, 0x51, 0xc3, 0xfa, 0xa5, 0xf5, 0xd8, 0x9a, 0xe2, + 0xdb, 0x86, 0x47, 0x0e, 0x5b, 0xa6, 0x41, 0xd0, 0x81, 0xd5, 0x44, 0xf2, 0x04, 0xc3, 0x2f, 0xa8, + 0x3c, 0x79, 0x6a, 0x18, 0x38, 0xf5, 0x20, 0x4c, 0x9e, 0x56, 0x08, 0xb1, 0xfb, 0x25, 0x9f, 0x7d, + 0xa7, 0x48, 0x7a, 0x8c, 0x06, 0x77, 0xc1, 0xbc, 0xef, 0x18, 0x9e, 0x67, 0x35, 0x1c, 0x64, 0x1e, + 0x3d, 0xc4, 0xb5, 0x23, 0xd7, 0x77, 0x3c, 0x79, 0x6a, 0x25, 0xbd, 0x3a, 0xa5, 0x29, 0xdd, 0x8e, + 0x72, 0x29, 0xda, 0xde, 0xc6, 0x35, 0xdd, 0x77, 0xc4, 0x20, 0xcc, 0x25, 0x36, 0x4b, 0x5f, 0xe5, + 0xc0, 0x38, 0x8d, 0x1a, 0x4d, 0x53, 0xa5, 0x2f, 0x4d, 0x95, 0xbe, 0x34, 0x55, 0x4c, 0xb8, 0x03, + 0xb2, 0x3b, 0x86, 0x47, 0xf6, 0x11, 0x72, 0x58, 0xaa, 0xce, 0xf6, 0x6a, 0x21, 0xf0, 0xaa, 0x27, + 0xc3, 0xfc, 0xe9, 0xad, 0x60, 0x15, 0x64, 0x69, 0x4a, 0x0e, 0xda, 0x2d, 0x24, 0xa7, 0x03, 0xb4, + 0x81, 0xf9, 0xa4, 0x1c, 0xda, 0x62, 0xb7, 0xa3, 0xc0, 0x90, 0x5f, 0xb0, 0xab, 0x87, 0x01, 0x6f, + 0x01, 0x10, 0x72, 0x57, 0x4c, 0x96, 0xd5, 0x29, 0x4d, 0xee, 0x76, 0x94, 0x85, 0x88, 0x2a, 0xc8, + 0x09, 0xbc, 0x70, 0x1d, 0x64, 0x88, 0x61, 0x39, 0xc4, 0x93, 0x27, 0x58, 0x5d, 0x2d, 0xa9, 0xfc, + 0x8c, 0xa8, 0x46, 0xcb, 0x52, 0xe9, 0x39, 0x52, 0x4f, 0x6f, 0xa8, 0x07, 0x94, 0x43, 0x9b, 0x09, + 0x9c, 0x0a, 0x04, 0xf4, 0xe0, 0x17, 0xee, 0x81, 0x8c, 0x6d, 0xd4, 0x90, 0xed, 0xc9, 0x19, 0x06, + 0x51, 0x1a, 0xec, 0x8a, 0xba, 0xc3, 0x98, 0xb6, 0x1c, 0xe2, 0xb6, 0xb5, 0x85, 0x6e, 0x47, 0xc9, + 0x73, 0x29, 0xc1, 0xb0, 0x00, 0x87, 0x16, 0xd2, 0x01, 0x26, 0x86, 0x1d, 0x56, 0xa1, 0x27, 0x4f, + 0xbe, 0x5e, 0xa1, 0xf6, 0x4b, 0xeb, 0xb1, 0x35, 0xfc, 0x5a, 0x02, 0x2b, 0xeb, 0xb6, 0x8d, 0xeb, + 0x06, 0x31, 0x6a, 0x36, 0xd2, 0xda, 0x7b, 0xae, 0x85, 0x5d, 0x8b, 0xb4, 0xd7, 0x1d, 0x33, 0xe4, + 0x92, 0xb3, 0xcc, 0x99, 0x7f, 0x0f, 0x71, 0x66, 0x94, 0x38, 0x77, 0x73, 0x35, 0x30, 0x68, 0xa4, + 0x36, 0x7d, 0x24, 0x07, 0xf4, 0xc0, 0x5c, 0x58, 0xf2, 0x47, 0xb5, 0xf6, 0x91, 0x47, 0x0c, 0x82, + 0x58, 0xed, 0xe7, 0xd6, 0xae, 0x0e, 0x31, 0x32, 0xa8, 0x73, 0xad, 0xbd, 0x4f, 0x99, 0xb9, 0x49, + 0xcb, 0xdd, 0x8e, 0x22, 0x3f, 0xec, 0xdb, 0x10, 0x32, 0x30, 0xd3, 0xbf, 0x03, 0x5d, 0x90, 0x0f, + 0x0c, 0x43, 0xa6, 0xd6, 0xde, 0xc6, 0xb5, 0x8a, 0x29, 0x03, 0xa6, 0xf3, 0xda, 0xd9, 0x81, 0xe9, + 0xb1, 0x73, 0xad, 0x72, 0x10, 0x88, 0x04, 0x9a, 0x9e, 0xa0, 0x14, 0x0c, 0x90, 0x13, 0x4a, 0x05, + 0xfe, 0x05, 0xa4, 0x4f, 0x50, 0x3b, 0x38, 0x9c, 0x73, 0xdd, 0x8e, 0x72, 0xe1, 0x04, 0xb5, 0x05, + 0x93, 0xe9, 0x2e, 0xfc, 0x3b, 0x98, 0x38, 0x35, 0x6c, 0x1f, 0x05, 0x6d, 0x94, 0x75, 0x41, 0x46, + 0x10, 0xbb, 0x20, 0x23, 0xdc, 0x4e, 0xdd, 0x92, 0x0a, 0x9f, 0x49, 0xe0, 0x6f, 0xe7, 0xca, 0xa0, + 0xa8, 0x7d, 0x62, 0xa8, 0xf6, 0x8a, 0xa8, 0x7d, 0x74, 0x99, 0x8e, 0xb2, 0xee, 0x03, 0x09, 0xcc, + 0x0f, 0x48, 0xdd, 0xf9, 0x22, 0x71, 0x57, 0xb4, 0x65, 0x66, 0xed, 0x72, 0xd2, 0x16, 0x0e, 0xcd, + 0x70, 0x47, 0x9a, 0xf2, 0xa1, 0x04, 0x2e, 0x0e, 0xcc, 0xe8, 0xf9, 0x8c, 0xf9, 0x6d, 0x03, 0x53, + 0xfa, 0x7c, 0x1c, 0x64, 0xc3, 0xde, 0x75, 0x8e, 0x9e, 0x1d, 0xf5, 0xb6, 0xd4, 0x2f, 0xed, 0x6d, + 0x07, 0xbd, 0xde, 0xc6, 0xc7, 0xee, 0x95, 0xe1, 0x6d, 0xfa, 0x35, 0xfa, 0xdb, 0x7b, 0x12, 0x80, + 0xbe, 0xe3, 0x21, 0x52, 0x71, 0x4c, 0xf4, 0x18, 0x99, 0x5c, 0x52, 0x1e, 0x67, 0x2a, 0xd6, 0xce, + 0x50, 0x71, 0x98, 0x10, 0xe2, 0xea, 0x56, 0xba, 0x1d, 0x65, 0x39, 0x89, 0x28, 0xa8, 0x1e, 0xa0, + 0xef, 0xf7, 0x38, 0x68, 0x4d, 0xf0, 0xa7, 0x21, 0x36, 0xbf, 0x09, 0x75, 0xa5, 0x1f, 0xd3, 0x60, + 0xe9, 0x9e, 0x8f, 0x7c, 0xb4, 0x61, 0xfb, 0x1e, 0x41, 0x6e, 0x58, 0x5d, 0x87, 0x9e, 0xd1, 0x40, + 0xb0, 0x02, 0x26, 0xeb, 0x2e, 0xa2, 0x95, 0xcc, 0xb4, 0x9e, 0x3d, 0xc2, 0xe7, 0x83, 0x8a, 0x08, + 0x45, 0xd8, 0x04, 0x0f, 0x17, 0xd4, 0xae, 0x47, 0x54, 0x8f, 0x68, 0x17, 0x23, 0x88, 0x76, 0x31, + 0x02, 0x9d, 0xcd, 0x28, 0xb8, 0x0e, 0x56, 0x4c, 0x36, 0xed, 0x83, 0xd9, 0x1c, 0x51, 0xc5, 0xd9, + 0x1c, 0x51, 0xe1, 0xc7, 0x12, 0x98, 0x0f, 0x6f, 0xa5, 0x5e, 0xd4, 0xa3, 0x82, 0x3a, 0xd9, 0x4c, + 0xd6, 0xc9, 0x50, 0xd7, 0x7b, 0xc7, 0x4c, 0x80, 0xe1, 0x95, 0x73, 0x29, 0x70, 0x73, 0x90, 0x22, + 0x7d, 0x10, 0xb1, 0xf0, 0x54, 0x02, 0xf2, 0x30, 0xb8, 0x3f, 0xa2, 0x5d, 0x96, 0xbe, 0x49, 0x83, + 0xc2, 0x20, 0xa7, 0x75, 0xd4, 0xc2, 0x2e, 0xe9, 0x5d, 0xb0, 0xa5, 0x11, 0x17, 0x6c, 0xa1, 0x3a, + 0x52, 0xbf, 0xb2, 0x3a, 0x9e, 0x4a, 0x20, 0x2f, 0x84, 0x8e, 0xa5, 0x25, 0x68, 0x20, 0x5a, 0xd2, + 0xd9, 0xe1, 0xb6, 0x8b, 0x69, 0x63, 0x20, 0x3c, 0x67, 0xc5, 0x6e, 0x47, 0x29, 0xc4, 0xf1, 0x05, + 0x7f, 0x12, 0xba, 0x0b, 0x9f, 0x4a, 0xe0, 0xe2, 0x40, 0xac, 0xf3, 0x9d, 0xc2, 0xff, 0xf7, 0x27, + 0xec, 0x1f, 0xaf, 0x51, 0x79, 0x23, 0xb3, 0xf7, 0x7e, 0x0a, 0x4c, 0x8b, 0xe9, 0x86, 0xf7, 0xc1, + 0x54, 0xcf, 0x7e, 0x59, 0x62, 0x41, 0xbb, 0x7e, 0x76, 0x85, 0x44, 0x61, 0xe2, 0xf1, 0x99, 0x0b, + 0x92, 0x13, 0xe1, 0xe8, 0xd1, 0xdf, 0xc2, 0x27, 0x12, 0x98, 0xe9, 0x17, 0x38, 0x5f, 0x10, 0xde, + 0xee, 0x0f, 0x82, 0x2a, 0x0c, 0x93, 0xde, 0x63, 0x52, 0x6d, 0x9d, 0x34, 0xd8, 0x74, 0x09, 0xd5, + 0xa9, 0xf7, 0x7c, 0xc3, 0x21, 0x16, 0x69, 0x8f, 0x8c, 0xc3, 0x4f, 0x29, 0x30, 0x47, 0x1f, 0x52, + 0xdc, 0x51, 0xcb, 0x69, 0x54, 0x9c, 0x63, 0x0c, 0xd7, 0x40, 0xd6, 0xb6, 0x8e, 0x11, 0x7d, 0xec, + 0x32, 0xf3, 0x2e, 0xf0, 0xc7, 0x40, 0x48, 0x13, 0x1f, 0x03, 0x21, 0x8d, 0x36, 0x1c, 0x83, 0xfc, + 0x0f, 0x7b, 0x64, 0xd7, 0xa9, 0x73, 0x6b, 0xb3, 0xbc, 0xe1, 0x44, 0x54, 0xb1, 0xe1, 0x44, 0x54, + 0xf8, 0x2f, 0x90, 0x6b, 0xb9, 0x88, 0xd2, 0xad, 0x9a, 0xcd, 0x5f, 0x26, 0x59, 0x6d, 0xa9, 0xdb, + 0x51, 0x2e, 0x0a, 0x64, 0x41, 0x56, 0xe4, 0x86, 0x77, 0xc0, 0x6c, 0x1d, 0x3b, 0x75, 0xdf, 0x75, + 0x91, 0x53, 0x6f, 0xef, 0x1b, 0xc7, 0xfc, 0x79, 0x99, 0xd5, 0x2e, 0x77, 0x3b, 0xca, 0x52, 0x6c, + 0x4b, 0x00, 0x89, 0x4b, 0xc1, 0x53, 0x00, 0x79, 0x96, 0x75, 0xf4, 0xc8, 0xb7, 0x5c, 0xd4, 0x44, + 0xd1, 0xf3, 0xe4, 0xaf, 0xc9, 0x4a, 0xd8, 0x4d, 0xf0, 0xf2, 0x71, 0x98, 0xc4, 0x10, 0xc7, 0x61, + 0x72, 0xb7, 0xf4, 0x91, 0x04, 0x60, 0x12, 0x0c, 0xda, 0x60, 0xb6, 0x85, 0xcd, 0x3e, 0x5b, 0xf8, + 0xf4, 0xf8, 0x73, 0xd2, 0x96, 0xbd, 0x7e, 0x46, 0xee, 0x7a, 0x4c, 0x3a, 0xb2, 0xe2, 0xee, 0x98, + 0x1e, 0x87, 0xd6, 0x66, 0xc0, 0xb4, 0x2b, 0x1a, 0xf5, 0x43, 0x06, 0xcc, 0xc6, 0x50, 0xa1, 0x07, + 0xa6, 0xe9, 0xcb, 0x6f, 0x1f, 0xd9, 0xa8, 0x4e, 0xb0, 0x1b, 0x1c, 0x92, 0x9b, 0x23, 0xcd, 0x61, + 0xf7, 0x88, 0x50, 0x8a, 0x1f, 0x95, 0x42, 0xb7, 0xa3, 0x2c, 0x8a, 0x60, 0x42, 0x8c, 0xfa, 0x94, + 0xc0, 0x3d, 0x90, 0x35, 0x8e, 0x8f, 0x2d, 0x87, 0x0e, 0x20, 0x7e, 0x02, 0x96, 0x07, 0x5d, 0xa7, + 0xd6, 0x03, 0x1e, 0x5e, 0xa7, 0xa1, 0x84, 0x58, 0xa7, 0x21, 0x0d, 0x1e, 0x82, 0x1c, 0xc1, 0x36, + 0x72, 0x0d, 0x62, 0x61, 0x27, 0xbc, 0x60, 0x15, 0x07, 0xde, 0xd1, 0x7a, 0x6c, 0xbd, 0xc6, 0x2b, + 0x8a, 0xea, 0xe2, 0x02, 0x62, 0x90, 0x33, 0x1c, 0x07, 0x93, 0x00, 0x76, 0x72, 0xd8, 0xa5, 0x2a, + 0x1e, 0x9c, 0xf5, 0x48, 0x88, 0xc7, 0x86, 0x15, 0xbe, 0x00, 0x25, 0x16, 0xbe, 0x40, 0xa6, 0x67, + 0xb4, 0x15, 0x8d, 0x66, 0x3a, 0xf8, 0x98, 0xef, 0x21, 0x4d, 0xf4, 0x3d, 0xa4, 0xc1, 0x6d, 0x90, + 0x0f, 0xcf, 0x0e, 0x76, 0xf6, 0xb0, 0x6d, 0xd5, 0xdb, 0xec, 0x63, 0xc9, 0x14, 0x6f, 0xee, 0xf1, + 0x3d, 0xb1, 0xb9, 0xc7, 0xf7, 0xe0, 0x13, 0xb0, 0x10, 0xb6, 0x9b, 0xbe, 0x2a, 0xcd, 0xb0, 0x2c, + 0xad, 0x0e, 0x0a, 0xa8, 0x3e, 0x80, 0x5f, 0x5b, 0x0e, 0x42, 0x3b, 0x10, 0x4d, 0x1f, 0x48, 0x2d, + 0x34, 0xc0, 0x5c, 0xa2, 0xa8, 0xde, 0xc8, 0x45, 0xf2, 0x18, 0xe4, 0xe3, 0x09, 0x7a, 0x23, 0x37, + 0xc8, 0x2f, 0x24, 0xb0, 0xb4, 0xe7, 0xdb, 0x9e, 0xe1, 0xee, 0x87, 0x05, 0xb3, 0x8d, 0x6b, 0x9b, + 0x88, 0x18, 0x96, 0xed, 0x51, 0x30, 0xfe, 0x06, 0x96, 0x22, 0x30, 0x46, 0x10, 0xc1, 0x18, 0x81, + 0xb2, 0xde, 0x8b, 0xdf, 0x10, 0xe3, 0x83, 0x9a, 0x73, 0xc0, 0x6b, 0x20, 0x43, 0x3b, 0x3f, 0x22, + 0xc1, 0xed, 0x90, 0x3d, 0x1e, 0x38, 0x45, 0x7c, 0x3c, 0x70, 0xca, 0xd5, 0x5d, 0x90, 0x13, 0x5e, + 0x70, 0x30, 0x07, 0x26, 0x0f, 0xab, 0xff, 0xad, 0xee, 0xbe, 0x55, 0xcd, 0x8f, 0xd1, 0xc5, 0xde, + 0x56, 0x75, 0xb3, 0x52, 0xbd, 0x93, 0x97, 0xe8, 0x42, 0x3f, 0xac, 0x56, 0xe9, 0x22, 0x05, 0x2f, + 0x80, 0xa9, 0xfd, 0xc3, 0x8d, 0x8d, 0xad, 0xad, 0xcd, 0xad, 0xcd, 0x7c, 0x1a, 0x02, 0x90, 0xf9, + 0xcf, 0x7a, 0x65, 0x67, 0x6b, 0x33, 0x3f, 0xae, 0xbd, 0xfb, 0xfc, 0x65, 0x51, 0x7a, 0xf1, 0xb2, + 0x28, 0x7d, 0xff, 0xb2, 0x28, 0x3d, 0x7b, 0x55, 0x1c, 0x7b, 0xf1, 0xaa, 0x38, 0xf6, 0xed, 0xab, + 0xe2, 0xd8, 0x3b, 0x1b, 0xc2, 0x97, 0x4f, 0xc3, 0x6d, 0x1a, 0xa6, 0xd1, 0x72, 0x31, 0x3d, 0x3d, + 0xc1, 0xaa, 0x7c, 0x8e, 0x4f, 0xbc, 0xb5, 0x0c, 0xbb, 0x3e, 0xdd, 0xfc, 0x39, 0x00, 0x00, 0xff, + 0xff, 0xd0, 0xcb, 0x50, 0xe6, 0x10, 0x16, 0x00, 0x00, } func (m *Executor) Marshal() (dAtA []byte, err error) { @@ -1080,11 +1123,19 @@ func (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x52 } } - if len(m.JobRuns) > 0 { - for iNdEx := len(m.JobRuns) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.JobRuns[iNdEx]) - copy(dAtA[i:], m.JobRuns[iNdEx]) - i = encodeVarintSchedulerobjects(dAtA, i, uint64(len(m.JobRuns[iNdEx]))) + if len(m.JobRunsByState) > 0 { + for k := range m.JobRunsByState { + v := m.JobRunsByState[k] + baseI := i + i = encodeVarintSchedulerobjects(dAtA, i, uint64(v)) + i-- + dAtA[i] = 0x10 + i -= len(k) + copy(dAtA[i:], k) + i = encodeVarintSchedulerobjects(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = encodeVarintSchedulerobjects(dAtA, i, uint64(baseI-i)) i-- dAtA[i] = 0x4a } @@ -1818,10 +1869,12 @@ func (m *Node) Size() (n int) { n += mapEntrySize + 1 + sovSchedulerobjects(uint64(mapEntrySize)) } } - if len(m.JobRuns) > 0 { - for _, s := range m.JobRuns { - l = len(s) - n += 1 + l + sovSchedulerobjects(uint64(l)) + if len(m.JobRunsByState) > 0 { + for k, v := range m.JobRunsByState { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovSchedulerobjects(uint64(len(k))) + 1 + sovSchedulerobjects(uint64(v)) + n += mapEntrySize + 1 + sovSchedulerobjects(uint64(mapEntrySize)) } } if len(m.AllocatedByJobId) > 0 { @@ -2786,9 +2839,9 @@ func (m *Node) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobRuns", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field JobRunsByState", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowSchedulerobjects @@ -2798,23 +2851,104 @@ func (m *Node) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthSchedulerobjects } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthSchedulerobjects } if postIndex > l { return io.ErrUnexpectedEOF } - m.JobRuns = append(m.JobRuns, string(dAtA[iNdEx:postIndex])) + if m.JobRunsByState == nil { + m.JobRunsByState = make(map[string]JobRunState) + } + var mapkey string + var mapvalue JobRunState + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulerobjects + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulerobjects + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthSchedulerobjects + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthSchedulerobjects + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulerobjects + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= JobRunState(b&0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipSchedulerobjects(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulerobjects + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.JobRunsByState[mapkey] = mapvalue iNdEx = postIndex case 10: if wireType != 2 { diff --git a/internal/scheduler/schedulerobjects/schedulerobjects.proto b/internal/scheduler/schedulerobjects/schedulerobjects.proto index 8bf89bd0406..c44803298e1 100644 --- a/internal/scheduler/schedulerobjects/schedulerobjects.proto +++ b/internal/scheduler/schedulerobjects/schedulerobjects.proto @@ -47,13 +47,21 @@ message Node { // E.g., AvailableResources[5]["cpu"] is the amount of CPU available to jobs with priority 5, // where available resources = unused resources + resources assigned to lower-priority jobs. map AllocatableByPriorityAndResource = 8 [(gogoproto.nullable) = false]; - // Ids of the jobs runs currently assigned to this this. - repeated string job_runs = 9; + // Ids of the jobs runs currently assigned to this node mapped to the jobs runs current state. + map job_runs_by_state = 9; // Resource allocated to jobs on this node. // TODO: Reconcile with job_runs. map AllocatedByJobId = 10 [(gogoproto.nullable) = false]; } +enum JobRunState { + UNKNOWN = 0; + PENDING = 1; + RUNNING= 2; + SUCCEEDED = 3; + FAILED = 4; +} + // NodeType represents a particular combination of taints and labels. // The scheduler groups nodes by node type. When assigning pods to nodes, // the scheduler only considers nodes with a NodeType for which the taints and labels match. diff --git a/internal/scheduler/scheduling_algo_test.go b/internal/scheduler/scheduling_algo_test.go index c657a7bea90..158c54fa7d0 100644 --- a/internal/scheduler/scheduling_algo_test.go +++ b/internal/scheduler/scheduling_algo_test.go @@ -13,7 +13,6 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/util/clock" - "github.com/armadaproject/armada/internal/common/slices" "github.com/armadaproject/armada/internal/common/util" "github.com/armadaproject/armada/internal/scheduler/database" schedulermocks "github.com/armadaproject/armada/internal/scheduler/mocks" @@ -194,6 +193,10 @@ func twoCoreNode(jobs []*SchedulerJob) *schedulerobjects.Node { allocatableCpu := resource.MustParse("2") (&allocatableCpu).Sub(usedCpu) id := uuid.NewString() + jobRunsByState := make(map[string]schedulerobjects.JobRunState, len(jobs)) + for _, job := range jobs { + jobRunsByState[job.Runs[0].RunID.String()] = schedulerobjects.JobRunState_RUNNING + } return &schedulerobjects.Node{ Id: id, TotalResources: schedulerobjects.ResourceList{ @@ -212,9 +215,7 @@ func twoCoreNode(jobs []*SchedulerJob) *schedulerobjects.Node { "memory": resource.MustParse("256Gi"), }, ), - JobRuns: slices.Map(jobs, func(j *SchedulerJob) string { - return j.Runs[0].RunID.String() - }), + JobRunsByState: jobRunsByState, } } diff --git a/pkg/api/api.swagger.go b/pkg/api/api.swagger.go index 09f4b62707d..c27c247563f 100644 --- a/pkg/api/api.swagger.go +++ b/pkg/api/api.swagger.go @@ -1274,7 +1274,10 @@ func SwaggerJsonTemplate() string { " \"enum\": [\n" + " \"QUEUED\",\n" + " \"PENDING\",\n" + - " \"RUNNING\"\n" + + " \"RUNNING\",\n" + + " \"SUCCEEDED\",\n" + + " \"FAILED\",\n" + + " \"UNKNOWN\"\n" + " ]\n" + " },\n" + " \"apiJobSubmitRequest\": {\n" + diff --git a/pkg/api/api.swagger.json b/pkg/api/api.swagger.json index 20016372d51..6373867500a 100644 --- a/pkg/api/api.swagger.json +++ b/pkg/api/api.swagger.json @@ -1263,7 +1263,10 @@ "enum": [ "QUEUED", "PENDING", - "RUNNING" + "RUNNING", + "SUCCEEDED", + "FAILED", + "UNKNOWN" ] }, "apiJobSubmitRequest": { diff --git a/pkg/api/deserialize_test.go b/pkg/api/deserialize_test.go index f7ec60c8999..9c73e38f83f 100644 --- a/pkg/api/deserialize_test.go +++ b/pkg/api/deserialize_test.go @@ -108,7 +108,7 @@ func TestDeserializeJobStateInt(t *testing.T) { func TestDeserializeJobState_WhenInputInvalid(t *testing.T) { assert.Error(t, testDeserializeJobStateString(t, "INVALID")) - assert.Error(t, testDeserializeJobStateInt(t, 3)) + assert.Error(t, testDeserializeJobStateInt(t, 99)) } func testDeserializeJobStateString(t *testing.T, input string) error { diff --git a/pkg/api/queue.pb.go b/pkg/api/queue.pb.go index 9f1071ebf0e..6817cf5c4b0 100644 --- a/pkg/api/queue.pb.go +++ b/pkg/api/queue.pb.go @@ -364,10 +364,10 @@ type NodeInfo struct { // In particular, jobs may be sent to an executor even if all resources are allocated // if the sent jobs are of higher priority. AllocatedResources map[int32]ComputeResource `protobuf:"bytes,7,rep,name=allocated_resources,json=allocatedResources,proto3" json:"allocatedResources" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // ids of all job runs current allocated to this node + // All run ids of jobs on the node, mapped to their current state // this should be of type armadaevents.uuid, but this creates a circular loop // once the old scheduler has gone, we can correct this - RunIds []string `protobuf:"bytes,8,rep,name=run_ids,json=runIds,proto3" json:"runIds"` + RunIdsByState map[string]JobState `protobuf:"bytes,8,rep,name=run_ids_by_state,json=runIdsByState,proto3" json:"runIdsByState" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=api.JobState"` } func (m *NodeInfo) Reset() { *m = NodeInfo{} } @@ -451,9 +451,9 @@ func (m *NodeInfo) GetAllocatedResources() map[int32]ComputeResource { return nil } -func (m *NodeInfo) GetRunIds() []string { +func (m *NodeInfo) GetRunIdsByState() map[string]JobState { if m != nil { - return m.RunIds + return m.RunIdsByState } return nil } @@ -1194,6 +1194,7 @@ func init() { proto.RegisterMapType((map[int32]ComputeResource)(nil), "api.NodeInfo.AllocatedResourcesEntry") proto.RegisterMapType((map[string]resource.Quantity)(nil), "api.NodeInfo.AvailableResourcesEntry") proto.RegisterMapType((map[string]string)(nil), "api.NodeInfo.LabelsEntry") + proto.RegisterMapType((map[string]JobState)(nil), "api.NodeInfo.RunIdsByStateEntry") proto.RegisterMapType((map[string]resource.Quantity)(nil), "api.NodeInfo.TotalResourcesEntry") proto.RegisterType((*NodeType)(nil), "api.NodeType") proto.RegisterMapType((map[string]resource.Quantity)(nil), "api.NodeType.AllocatableResourcesEntry") @@ -1220,144 +1221,146 @@ func init() { func init() { proto.RegisterFile("pkg/api/queue.proto", fileDescriptor_d92c0c680df9617a) } var fileDescriptor_d92c0c680df9617a = []byte{ - // 2185 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcf, 0x6f, 0x1b, 0xc7, - 0xf5, 0xf7, 0x8a, 0x12, 0x49, 0x3d, 0x5a, 0x96, 0x34, 0xfa, 0xb5, 0xa6, 0x1d, 0x51, 0x61, 0xf0, - 0xb5, 0x95, 0x6f, 0x6d, 0x2a, 0x56, 0x9c, 0xc2, 0xed, 0xa1, 0x81, 0x68, 0xbb, 0x29, 0x15, 0xa7, - 0x56, 0x56, 0x6a, 0x80, 0x06, 0x01, 0x98, 0x5d, 0xee, 0x98, 0x1e, 0x91, 0xdc, 0xd9, 0xcc, 0xee, - 0xca, 0xa0, 0x4f, 0x05, 0xda, 0x53, 0x4f, 0x39, 0x04, 0x28, 0x52, 0xa0, 0xe8, 0xb1, 0x40, 0x81, - 0xfe, 0x0b, 0x3d, 0xe7, 0x98, 0x63, 0x2e, 0x65, 0x5b, 0xfb, 0x52, 0xf0, 0xd8, 0x43, 0x0b, 0xf4, - 0x50, 0x14, 0xf3, 0x63, 0x97, 0xc3, 0x25, 0x29, 0x29, 0xb5, 0x6c, 0xe8, 0xd0, 0x13, 0x39, 0x9f, - 0x79, 0xf3, 0x7e, 0xcc, 0xbc, 0xf7, 0xe6, 0xcd, 0x5b, 0x58, 0xf2, 0x5b, 0xcd, 0x2d, 0xdb, 0x27, - 0x5b, 0x9f, 0x45, 0x38, 0xc2, 0x15, 0x9f, 0xd1, 0x90, 0xa2, 0x8c, 0xed, 0x93, 0x62, 0xa9, 0x49, - 0x69, 0xb3, 0x8d, 0xb7, 0x04, 0xe4, 0x44, 0x8f, 0xb6, 0x42, 0xd2, 0xc1, 0x41, 0x68, 0x77, 0x7c, - 0x49, 0x55, 0x2c, 0xb7, 0xee, 0x04, 0x15, 0x42, 0xc5, 0xea, 0x06, 0x65, 0x78, 0xeb, 0xe8, 0xd6, - 0x56, 0x13, 0x7b, 0x98, 0xd9, 0x21, 0x76, 0x15, 0xcd, 0xed, 0x01, 0x4d, 0xc7, 0x6e, 0x3c, 0x26, - 0x1e, 0x66, 0xdd, 0xad, 0x58, 0x24, 0xc3, 0x01, 0x8d, 0x58, 0x03, 0x8f, 0xac, 0xba, 0xd9, 0x24, - 0xe1, 0xe3, 0xc8, 0xa9, 0x34, 0x68, 0x67, 0xab, 0x49, 0x9b, 0x74, 0xa0, 0x03, 0x1f, 0x89, 0x81, - 0xf8, 0xa7, 0xc8, 0xaf, 0xa4, 0x35, 0xc5, 0x1d, 0x3f, 0xec, 0xaa, 0xc9, 0xe5, 0x58, 0x5a, 0x10, - 0x39, 0x1d, 0x12, 0x2a, 0x74, 0x53, 0xd3, 0xdd, 0xc3, 0xe1, 0x13, 0xca, 0x5a, 0xc4, 0x6b, 0x8e, - 0xb1, 0xa0, 0xfc, 0xcf, 0x39, 0xc8, 0xec, 0x52, 0x07, 0x6d, 0xc0, 0x14, 0x71, 0x4d, 0x63, 0xc3, - 0xd8, 0x9c, 0xad, 0x2e, 0xf4, 0x7b, 0xa5, 0x8b, 0xc4, 0xbd, 0x41, 0x3b, 0x24, 0x14, 0xb2, 0xac, - 0x29, 0xe2, 0xa2, 0xb7, 0x61, 0xb6, 0xd1, 0x26, 0xd8, 0x0b, 0xeb, 0xc4, 0x35, 0xe7, 0x04, 0xe1, - 0x6a, 0xbf, 0x57, 0x42, 0x12, 0xac, 0xe9, 0xe4, 0xf9, 0x18, 0x43, 0xb7, 0x01, 0x0e, 0xa9, 0x53, - 0x0f, 0xb0, 0x58, 0x35, 0x35, 0x58, 0x75, 0x48, 0x9d, 0x7d, 0x9c, 0x5a, 0x15, 0x63, 0xe8, 0x4d, - 0x98, 0x11, 0xe7, 0x65, 0x66, 0xc4, 0x82, 0xa5, 0x7e, 0xaf, 0x34, 0x2f, 0x00, 0x8d, 0x5a, 0x52, - 0xa0, 0x77, 0x60, 0xd6, 0xb3, 0x3b, 0x38, 0xf0, 0xed, 0x06, 0x36, 0x73, 0x82, 0x7c, 0xad, 0xdf, - 0x2b, 0x2d, 0x25, 0xa0, 0xb6, 0x64, 0x40, 0x89, 0xaa, 0x90, 0x6d, 0xdb, 0x0e, 0x6e, 0x07, 0xe6, - 0xec, 0x46, 0x66, 0xb3, 0xb0, 0xbd, 0x5c, 0xb1, 0x7d, 0x52, 0xd9, 0xa5, 0x4e, 0xe5, 0x81, 0x80, - 0xef, 0x7b, 0x21, 0xeb, 0x56, 0x97, 0xfb, 0xbd, 0xd2, 0x82, 0xa4, 0xd3, 0xd8, 0xa8, 0x95, 0xe8, - 0x23, 0x28, 0xd8, 0x9e, 0x47, 0x43, 0x3b, 0x24, 0xd4, 0x0b, 0x4c, 0x10, 0x8c, 0x2e, 0x27, 0x8c, - 0x76, 0x06, 0x73, 0x92, 0xdb, 0xe5, 0x7e, 0xaf, 0xb4, 0xa2, 0xad, 0xd0, 0x58, 0xea, 0x8c, 0xd0, - 0x11, 0x2c, 0x33, 0xfc, 0x59, 0x44, 0x18, 0x76, 0xeb, 0x1e, 0x75, 0x71, 0x5d, 0x69, 0x5a, 0x10, - 0x02, 0x36, 0x12, 0x01, 0x96, 0x22, 0xfa, 0x31, 0x75, 0xb1, 0xae, 0x75, 0xb9, 0xdf, 0x2b, 0x5d, - 0x65, 0x23, 0x93, 0x03, 0x71, 0xa6, 0x61, 0xa1, 0xd1, 0x79, 0xbe, 0xeb, 0xf4, 0x89, 0x87, 0x99, - 0x99, 0x1f, 0xec, 0xba, 0x00, 0xf4, 0x5d, 0x17, 0x00, 0xc2, 0x70, 0x45, 0x6c, 0x7f, 0x5d, 0x0c, - 0x83, 0xc7, 0xc4, 0xaf, 0x47, 0x01, 0x66, 0xf5, 0x26, 0xa3, 0x91, 0x1f, 0x98, 0xf3, 0x1b, 0x99, - 0xcd, 0xd9, 0xea, 0xb5, 0x7e, 0xaf, 0x54, 0x16, 0x64, 0x0f, 0x63, 0xaa, 0x9f, 0x04, 0x98, 0xbd, - 0x27, 0x68, 0x34, 0x9e, 0xe6, 0x24, 0x1a, 0xf4, 0x0b, 0x03, 0xae, 0x35, 0x68, 0xc7, 0x67, 0x38, - 0x08, 0xb0, 0x5b, 0x3f, 0x4e, 0xe4, 0xd2, 0x86, 0xb1, 0x79, 0xb1, 0xfa, 0x56, 0xbf, 0x57, 0xba, - 0x31, 0x58, 0xf1, 0xe1, 0xc9, 0xc2, 0xcb, 0x27, 0x53, 0xa3, 0x6d, 0xc8, 0xfb, 0x8c, 0x50, 0x46, - 0xc2, 0xae, 0x39, 0xbd, 0x61, 0x6c, 0x1a, 0xd2, 0x85, 0x63, 0x4c, 0x77, 0xe1, 0x18, 0x43, 0x0f, - 0x21, 0xef, 0x53, 0xb7, 0x1e, 0xf8, 0xb8, 0x61, 0xce, 0x6c, 0x18, 0x9b, 0x85, 0xed, 0x2b, 0x15, - 0x19, 0x94, 0xe2, 0xfc, 0x78, 0x42, 0xa9, 0x1c, 0xdd, 0xaa, 0xec, 0x51, 0x77, 0xdf, 0xc7, 0x0d, - 0xe1, 0xb3, 0x8b, 0xbe, 0x1c, 0x0c, 0x1d, 0x54, 0x4e, 0x81, 0x68, 0x0f, 0x66, 0x63, 0x86, 0x81, - 0x79, 0x51, 0xb8, 0xc2, 0xb1, 0x1c, 0xa5, 0x8a, 0x72, 0x10, 0x0c, 0xa9, 0xa8, 0x30, 0x54, 0x83, - 0x5c, 0x83, 0x61, 0x9e, 0x0b, 0xcc, 0xac, 0xd0, 0xb0, 0x58, 0x91, 0x99, 0xa6, 0x12, 0x67, 0x9a, - 0xca, 0x41, 0x9c, 0x13, 0xab, 0x4b, 0x5f, 0xf5, 0x4a, 0x17, 0xfa, 0xbd, 0x52, 0xbc, 0xe4, 0xf3, - 0x3f, 0x97, 0x0c, 0x2b, 0x1e, 0xa0, 0xbb, 0x90, 0x23, 0x5e, 0x93, 0x6f, 0xa3, 0x79, 0x49, 0xa8, - 0x86, 0x84, 0x4e, 0x35, 0x89, 0xdd, 0xa5, 0xde, 0x23, 0xd2, 0xac, 0xae, 0x70, 0x1b, 0x15, 0x99, - 0xa6, 0x50, 0xbc, 0x12, 0xfd, 0x10, 0xf2, 0x01, 0x66, 0x47, 0xa4, 0x81, 0x03, 0x73, 0x41, 0xe3, - 0xb2, 0x2f, 0x41, 0xc5, 0x45, 0xd8, 0x15, 0xd3, 0xe9, 0x76, 0xc5, 0x18, 0xfa, 0x04, 0x0a, 0xad, - 0x3b, 0x41, 0x3d, 0x56, 0x68, 0x51, 0xb0, 0x7a, 0x5d, 0xdf, 0xab, 0x41, 0x4a, 0xe4, 0x3b, 0xa6, - 0xb4, 0xac, 0x9a, 0xfd, 0x5e, 0x69, 0xb9, 0x75, 0x27, 0xa8, 0x8d, 0xa8, 0x08, 0x03, 0x94, 0x47, - 0x3d, 0xe7, 0xae, 0xa4, 0x99, 0x68, 0xf2, 0x49, 0x28, 0xbd, 0x13, 0xbe, 0x6a, 0x9c, 0xe2, 0xab, - 0x50, 0x9e, 0xc8, 0x82, 0xc6, 0x63, 0xec, 0x46, 0x6d, 0xcc, 0xcc, 0xe5, 0x41, 0x22, 0x4b, 0x40, - 0x3d, 0x91, 0x25, 0x60, 0xd1, 0x86, 0x82, 0x16, 0xfb, 0xe8, 0x0d, 0xc8, 0xb4, 0x70, 0x57, 0xe5, - 0xf1, 0xc5, 0x7e, 0xaf, 0x34, 0xd7, 0xc2, 0xba, 0x83, 0xf2, 0x59, 0x1e, 0xe8, 0x47, 0x76, 0x3b, - 0xc2, 0x2a, 0x1f, 0x8b, 0x40, 0x17, 0x80, 0x1e, 0xe8, 0x02, 0xf8, 0xfe, 0xd4, 0x1d, 0xa3, 0xf8, - 0x08, 0x16, 0xd2, 0xb9, 0xec, 0xa5, 0xc8, 0xe9, 0xc0, 0xda, 0x84, 0x94, 0xf6, 0x32, 0xc4, 0x95, - 0xff, 0x94, 0x85, 0x95, 0xfd, 0x90, 0x61, 0xbb, 0x43, 0xbc, 0xe6, 0x03, 0x6c, 0x07, 0x98, 0x4b, - 0xc7, 0x41, 0x88, 0xbe, 0x0b, 0xd0, 0x68, 0x47, 0x41, 0x88, 0x59, 0x3d, 0xb9, 0x13, 0xc5, 0x59, - 0x28, 0x74, 0xe8, 0xd6, 0x9a, 0x4d, 0x40, 0x74, 0x0d, 0xa6, 0x7d, 0x4a, 0xdb, 0x4a, 0x3e, 0xea, - 0xf7, 0x4a, 0x97, 0xf8, 0x58, 0x23, 0x16, 0xf3, 0xe8, 0x63, 0x98, 0x8d, 0x6b, 0x83, 0xc0, 0xcc, - 0x08, 0x07, 0x7a, 0x53, 0x7a, 0xfa, 0x38, 0x75, 0x2a, 0x56, 0x4c, 0x2b, 0xd3, 0xfb, 0xa2, 0x8a, - 0xc4, 0x01, 0x0f, 0x6b, 0xf0, 0x17, 0x11, 0x58, 0x89, 0x75, 0x6f, 0x73, 0x26, 0x6e, 0x9d, 0x61, - 0x9f, 0xb2, 0x50, 0x24, 0xae, 0xc2, 0xb6, 0x29, 0xe4, 0xdc, 0x95, 0x14, 0x42, 0x8a, 0x6b, 0x89, - 0xf9, 0xea, 0x15, 0xc5, 0x36, 0x36, 0x52, 0x9f, 0xb4, 0xc6, 0x81, 0xc8, 0x87, 0x85, 0x0e, 0xf1, - 0x48, 0x27, 0xea, 0xd4, 0xc5, 0x1d, 0x4f, 0x9e, 0x62, 0x73, 0x46, 0x58, 0x53, 0x39, 0xc6, 0x9a, - 0x0f, 0xe4, 0x92, 0x5d, 0xea, 0xec, 0x93, 0xa7, 0x58, 0x9a, 0xb4, 0xaa, 0x64, 0x5f, 0xea, 0x0c, - 0x4d, 0x5a, 0xa9, 0x31, 0xda, 0x86, 0x19, 0x7e, 0x21, 0x06, 0x66, 0x56, 0x88, 0x99, 0x13, 0x62, - 0xb8, 0xaf, 0xd4, 0xbc, 0x47, 0xb4, 0x3a, 0xa7, 0xb8, 0x48, 0x1a, 0x4b, 0xfe, 0xa0, 0x7b, 0x70, - 0xc9, 0xc2, 0x0d, 0x4c, 0x8e, 0xb0, 0xbb, 0x4b, 0x9d, 0x9a, 0x1b, 0x98, 0x39, 0x71, 0x3b, 0x5d, - 0xed, 0xf7, 0x4a, 0xe6, 0xf0, 0x8c, 0x76, 0x50, 0xa9, 0x35, 0xc5, 0x2f, 0x0c, 0xce, 0x46, 0x3f, - 0x87, 0xd3, 0xf9, 0xe4, 0x4f, 0x75, 0x9f, 0xe4, 0x1b, 0x33, 0xc8, 0x13, 0x49, 0xc1, 0x58, 0xf1, - 0x5b, 0x4d, 0x61, 0x49, 0x7c, 0x8a, 0x95, 0x0f, 0x23, 0xdb, 0x0b, 0x49, 0xd8, 0x3d, 0x31, 0x64, - 0xbe, 0x34, 0x60, 0x69, 0xcc, 0x86, 0x9e, 0x07, 0xdd, 0xca, 0xff, 0x00, 0xc8, 0xc7, 0x67, 0xc3, - 0x43, 0x83, 0x17, 0x5f, 0x4a, 0x23, 0x11, 0x1a, 0x7c, 0xac, 0x87, 0x06, 0x1f, 0xa3, 0x1d, 0xc8, - 0x86, 0x36, 0xf1, 0xc2, 0xc0, 0x9c, 0x52, 0xe5, 0xd4, 0x98, 0xc4, 0x7a, 0xc0, 0x29, 0xaa, 0x97, - 0xd4, 0x71, 0xab, 0x05, 0x96, 0xfa, 0x45, 0xef, 0x25, 0xa5, 0x5d, 0x46, 0xab, 0xc8, 0x62, 0x4d, - 0xbe, 0x45, 0x7d, 0xf7, 0x14, 0x56, 0xec, 0x76, 0x9b, 0x36, 0xec, 0xd0, 0x76, 0xda, 0xb8, 0x3e, - 0x08, 0xd9, 0x69, 0xc1, 0xf7, 0xfa, 0x30, 0xdf, 0x9d, 0x01, 0x69, 0x2a, 0x60, 0xaf, 0x2a, 0x45, - 0x97, 0xed, 0x31, 0x24, 0xd6, 0x58, 0x14, 0x31, 0x58, 0xb2, 0x8f, 0x6c, 0xd2, 0x4e, 0x49, 0x96, - 0xe1, 0xf5, 0x7f, 0x29, 0xc9, 0x31, 0x61, 0x4a, 0x6e, 0x51, 0xc9, 0x45, 0xf6, 0x08, 0x81, 0x35, - 0x06, 0x43, 0x0e, 0xcc, 0x87, 0x34, 0xb4, 0xdb, 0x9a, 0xbc, 0xac, 0xba, 0x3b, 0x87, 0xe4, 0x1d, - 0x70, 0xa2, 0x94, 0xac, 0x24, 0x82, 0xc3, 0xa1, 0x49, 0x2b, 0x35, 0x16, 0x76, 0x49, 0x7b, 0x45, - 0x66, 0x8a, 0xe5, 0xe4, 0xc6, 0xda, 0x15, 0x13, 0x4e, 0xb4, 0x6b, 0x84, 0xc0, 0x1a, 0x83, 0xa1, - 0xeb, 0x90, 0x63, 0x91, 0x57, 0x27, 0x6e, 0x60, 0xe6, 0x45, 0xe8, 0x27, 0x9e, 0xc3, 0x22, 0xaf, - 0xe6, 0x06, 0x96, 0xfa, 0x7d, 0x15, 0x77, 0xe9, 0x6f, 0x0d, 0xb8, 0x3c, 0xd1, 0x53, 0xce, 0x45, - 0x4a, 0xf9, 0x8d, 0x01, 0x6b, 0x13, 0x3c, 0xea, 0xdc, 0xa4, 0xbc, 0x31, 0x1e, 0x78, 0x2e, 0x74, - 0xfb, 0x39, 0xdf, 0xbb, 0xf1, 0x5e, 0xab, 0xeb, 0x37, 0x33, 0x51, 0xbf, 0x77, 0x87, 0xf5, 0x93, - 0xaf, 0xd2, 0xbb, 0xb4, 0xe3, 0x47, 0x61, 0x72, 0x16, 0x27, 0x26, 0xde, 0x5f, 0x4d, 0xcb, 0xc4, - 0x7b, 0xd0, 0xf5, 0xf5, 0x84, 0x6a, 0xbc, 0x78, 0x42, 0x9d, 0x4a, 0x25, 0x54, 0x2e, 0xe1, 0x2c, - 0x12, 0x6a, 0x26, 0x95, 0x50, 0x05, 0xdf, 0x33, 0x4d, 0xa8, 0xff, 0x8b, 0x6d, 0xee, 0x19, 0x7f, - 0x98, 0x86, 0x2b, 0xaa, 0xf6, 0xdb, 0x97, 0x2f, 0x08, 0xe2, 0x35, 0x79, 0xae, 0x55, 0x15, 0xdd, - 0x8b, 0x16, 0xbe, 0xb9, 0x13, 0x0a, 0xdf, 0x7d, 0x28, 0xc8, 0x6a, 0xb4, 0x1e, 0x92, 0x4e, 0x6c, - 0xe4, 0x71, 0xaf, 0xce, 0xf8, 0x5a, 0x01, 0xb9, 0x8c, 0x4f, 0x88, 0x87, 0xa7, 0x36, 0x46, 0xf7, - 0x01, 0x44, 0x97, 0x24, 0xec, 0xfa, 0xc9, 0x0d, 0x39, 0x37, 0xe4, 0x4a, 0xaa, 0x23, 0xa4, 0x46, - 0xc1, 0x50, 0x47, 0x28, 0x06, 0xd1, 0xd1, 0x98, 0x6a, 0x56, 0x5e, 0x7f, 0xb7, 0xf5, 0x9a, 0x79, - 0xdc, 0xbe, 0xbd, 0x48, 0x4d, 0x7b, 0xae, 0x4b, 0xb8, 0xbf, 0x4f, 0xc3, 0xa2, 0xe8, 0x8a, 0x0c, - 0xd5, 0xfd, 0xa7, 0xad, 0xe5, 0x28, 0x2c, 0x24, 0x21, 0xae, 0x1e, 0x23, 0x2a, 0x83, 0x7c, 0x47, - 0xe8, 0x33, 0xc2, 0x79, 0xf0, 0xd2, 0x91, 0xa8, 0xdc, 0xc8, 0x35, 0xb5, 0x91, 0xf3, 0x6c, 0x78, - 0xd6, 0x4a, 0x03, 0xe8, 0x4b, 0x03, 0xae, 0xa6, 0x25, 0xd6, 0x9d, 0x6e, 0x3d, 0x69, 0xde, 0xc8, - 0x3c, 0xf3, 0xce, 0xe9, 0xa4, 0x57, 0xbb, 0x7b, 0x6a, 0x9d, 0xd4, 0xe3, 0x75, 0xa5, 0xc7, 0x65, - 0x36, 0x89, 0xce, 0x9a, 0x3c, 0x55, 0xfc, 0xb5, 0x01, 0xcb, 0xe3, 0xcc, 0x3b, 0x17, 0xf7, 0xd6, - 0x2f, 0x0d, 0x58, 0x3f, 0xde, 0xfa, 0x57, 0x78, 0x7d, 0xfd, 0xcd, 0x80, 0xa5, 0x31, 0x0f, 0xd4, - 0xff, 0x3a, 0x39, 0xbd, 0x94, 0xa4, 0x73, 0x0f, 0xb2, 0xa2, 0x1b, 0x19, 0xdf, 0x5d, 0xab, 0xe3, - 0x7d, 0x4a, 0x5e, 0x88, 0x92, 0x52, 0xbf, 0x10, 0x25, 0x52, 0xfe, 0xb7, 0x01, 0xf3, 0xa9, 0xed, - 0x41, 0x07, 0x7a, 0x73, 0x40, 0xde, 0xd9, 0x6f, 0x8c, 0xdb, 0xc7, 0x6f, 0xd5, 0x16, 0x38, 0xa7, - 0xef, 0xd7, 0xf2, 0x1f, 0x0d, 0xb8, 0x98, 0xf4, 0x7a, 0x88, 0xd7, 0x44, 0xef, 0xa7, 0x1e, 0x6f, - 0xaf, 0x25, 0x89, 0x3c, 0x26, 0x39, 0x7d, 0xbd, 0xf1, 0x0a, 0xee, 0xfc, 0xf2, 0xf7, 0x20, 0xbf, - 0x4b, 0x1d, 0x71, 0xe4, 0xe8, 0x26, 0x64, 0x0e, 0xa9, 0xa3, 0xce, 0x2c, 0x1f, 0xb7, 0xe9, 0xa5, - 0xa4, 0x43, 0xea, 0xe8, 0x92, 0x0e, 0xa9, 0x53, 0xfe, 0x9d, 0x01, 0x8b, 0x49, 0x8b, 0x64, 0x94, - 0x89, 0x71, 0x1a, 0x26, 0x68, 0x0b, 0x72, 0x9e, 0xb8, 0x38, 0x02, 0xa1, 0xf0, 0x9c, 0x6c, 0xb2, - 0x2a, 0x48, 0x6f, 0xb2, 0x2a, 0x08, 0x6d, 0x43, 0xde, 0x8b, 0x3a, 0x3b, 0x8d, 0x16, 0x76, 0xc5, - 0xd7, 0x95, 0x39, 0xd9, 0x50, 0x8d, 0x31, 0xbd, 0xa1, 0x1a, 0x63, 0xe5, 0x9b, 0x90, 0xad, 0xb9, - 0x0f, 0x48, 0x10, 0xf2, 0x2d, 0xe4, 0xcf, 0x28, 0x43, 0x3c, 0xa3, 0x84, 0x4e, 0x64, 0xa8, 0x6d, - 0xc2, 0x67, 0xcb, 0x3e, 0x2c, 0x5a, 0xd8, 0xc3, 0x4f, 0xce, 0xa4, 0xa7, 0xa6, 0x24, 0x4e, 0x1d, - 0x2b, 0xf1, 0x8b, 0x0c, 0x20, 0x0b, 0x87, 0x11, 0xf3, 0xce, 0x44, 0xe6, 0xff, 0x43, 0x96, 0x97, - 0x00, 0xc9, 0x07, 0x2b, 0xe1, 0x04, 0x87, 0xd4, 0x19, 0xa2, 0x9f, 0x11, 0x00, 0xfa, 0x14, 0x16, - 0xed, 0x23, 0x4a, 0x86, 0xbf, 0xd4, 0xc8, 0x5e, 0xdb, 0x8a, 0x38, 0xbd, 0x87, 0xcc, 0xc5, 0x0c, - 0xbb, 0xfb, 0x21, 0x23, 0x5e, 0xf3, 0x03, 0xdb, 0xaf, 0xbe, 0xc6, 0xef, 0x10, 0xb1, 0x66, 0xdc, - 0xb7, 0x19, 0x6b, 0x3e, 0x35, 0x85, 0x6e, 0x40, 0x96, 0x61, 0x3b, 0xa0, 0x9e, 0xf8, 0x8e, 0x30, - 0x2b, 0x7d, 0x5e, 0x22, 0xba, 0xcf, 0x4b, 0x04, 0xbd, 0x0b, 0x73, 0xad, 0xc8, 0xc1, 0xcc, 0xc3, - 0x21, 0x0e, 0xb8, 0x09, 0x59, 0xb1, 0xa8, 0xd8, 0xef, 0x95, 0x56, 0x07, 0x13, 0x43, 0x96, 0x5c, - 0xd4, 0x71, 0x54, 0x83, 0x45, 0x6e, 0x3c, 0x7f, 0x31, 0xdb, 0xa1, 0xa0, 0xc0, 0xae, 0x28, 0xec, - 0xf2, 0x52, 0xf3, 0x43, 0xea, 0x58, 0x91, 0xb7, 0x13, 0x4f, 0xe9, 0x9a, 0xa7, 0xa6, 0xca, 0x2e, - 0x20, 0x69, 0xf6, 0xfb, 0xb8, 0xfb, 0x11, 0x0f, 0x99, 0x3d, 0x9b, 0xb0, 0xb3, 0x0e, 0xc3, 0xf2, - 0x27, 0xb0, 0x90, 0xde, 0x63, 0xf4, 0x23, 0xc8, 0x61, 0x2f, 0x64, 0x24, 0x49, 0xa1, 0x6b, 0x71, - 0x47, 0x32, 0xa5, 0x8d, 0x8c, 0x17, 0x45, 0xab, 0xc7, 0x8b, 0x82, 0xb6, 0xff, 0x65, 0xc0, 0xfc, - 0x4e, 0xb3, 0xc9, 0x70, 0x93, 0xbf, 0xe9, 0x44, 0x82, 0x47, 0x0f, 0x84, 0x5d, 0x5a, 0x6f, 0x53, - 0x44, 0x56, 0x71, 0x72, 0xd3, 0xb3, 0xb8, 0x3a, 0x3c, 0x17, 0x47, 0xfb, 0xa6, 0xf1, 0x96, 0x81, - 0x6e, 0x01, 0x0c, 0xc2, 0x05, 0x49, 0xca, 0x91, 0xf8, 0x29, 0x16, 0xe4, 0x07, 0x15, 0x19, 0x86, - 0x3f, 0x80, 0x82, 0xe6, 0xee, 0x68, 0x4d, 0xad, 0x49, 0x07, 0x40, 0x71, 0x75, 0xe4, 0x96, 0xbb, - 0xcf, 0xad, 0x43, 0xd7, 0xb8, 0x48, 0x7e, 0x3f, 0xdd, 0xa3, 0x1e, 0x46, 0x3a, 0xeb, 0x21, 0x39, - 0xd5, 0x4f, 0xbf, 0xf9, 0xeb, 0xfa, 0x85, 0x9f, 0x3d, 0x5b, 0x37, 0xbe, 0x7a, 0xb6, 0x6e, 0x7c, - 0xfd, 0x6c, 0xdd, 0xf8, 0xcb, 0xb3, 0x75, 0xe3, 0xf3, 0xe7, 0xeb, 0x17, 0xbe, 0x7e, 0xbe, 0x7e, - 0xe1, 0x9b, 0xe7, 0xeb, 0x17, 0x3e, 0xbe, 0xae, 0x7d, 0xca, 0xb6, 0x59, 0xc7, 0x76, 0x6d, 0x9f, - 0xd1, 0x43, 0xdc, 0x08, 0xd5, 0x28, 0xfe, 0x18, 0xfe, 0xfb, 0xa9, 0xe5, 0x1d, 0x01, 0xec, 0xc9, - 0xe9, 0x4a, 0x8d, 0x56, 0x76, 0x7c, 0xe2, 0x64, 0x85, 0x66, 0x6f, 0xff, 0x27, 0x00, 0x00, 0xff, - 0xff, 0x5b, 0x11, 0xd9, 0xdb, 0xa8, 0x1f, 0x00, 0x00, + // 2221 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcb, 0x6f, 0x1b, 0xc7, + 0xfd, 0xf7, 0x8a, 0x12, 0x45, 0x7d, 0x25, 0xea, 0x31, 0x7a, 0xad, 0x69, 0x47, 0x54, 0x18, 0xfc, + 0x1c, 0xe5, 0x57, 0x9b, 0x8a, 0x15, 0xa7, 0x70, 0x7b, 0x68, 0x20, 0xda, 0x6e, 0x4a, 0xc7, 0xa9, + 0x9d, 0x95, 0x1b, 0xa0, 0x41, 0x00, 0x7a, 0x97, 0x3b, 0xa6, 0x47, 0x24, 0x77, 0x36, 0xb3, 0xbb, + 0x32, 0xe8, 0x53, 0x81, 0xf6, 0xd4, 0x53, 0x0e, 0x01, 0x8a, 0x14, 0x28, 0x7a, 0x6c, 0x51, 0xa0, + 0xff, 0x42, 0xcf, 0x39, 0xe6, 0x98, 0x4b, 0xd9, 0xd6, 0xbe, 0x14, 0x3c, 0xf6, 0x52, 0xa0, 0x87, + 0xa2, 0x98, 0xc7, 0x2e, 0x67, 0x97, 0xa4, 0xa4, 0xd4, 0x0f, 0xe8, 0xd0, 0x13, 0x39, 0x9f, 0xf9, + 0xce, 0xf7, 0x31, 0xf3, 0x7d, 0xcd, 0x2c, 0xac, 0xfa, 0xed, 0xd6, 0xae, 0xed, 0x93, 0xdd, 0xcf, + 0x22, 0x1c, 0xe1, 0xaa, 0xcf, 0x68, 0x48, 0x51, 0xce, 0xf6, 0x49, 0xa9, 0xdc, 0xa2, 0xb4, 0xd5, + 0xc1, 0xbb, 0x02, 0x72, 0xa2, 0x87, 0xbb, 0x21, 0xe9, 0xe2, 0x20, 0xb4, 0xbb, 0xbe, 0xa4, 0x2a, + 0x55, 0xda, 0xd7, 0x83, 0x2a, 0xa1, 0x62, 0x75, 0x93, 0x32, 0xbc, 0x7b, 0x74, 0x75, 0xb7, 0x85, + 0x3d, 0xcc, 0xec, 0x10, 0xbb, 0x8a, 0x66, 0x47, 0xa3, 0xf1, 0x70, 0xf8, 0x98, 0xb2, 0x36, 0xf1, + 0x5a, 0xe3, 0x28, 0xaf, 0x0d, 0x29, 0xbb, 0x76, 0xf3, 0x11, 0xf1, 0x30, 0xeb, 0xed, 0xc6, 0xca, + 0x31, 0x1c, 0xd0, 0x88, 0x35, 0xf1, 0xc8, 0xaa, 0x2b, 0x2d, 0x12, 0x3e, 0x8a, 0x9c, 0x6a, 0x93, + 0x76, 0x77, 0x5b, 0xb4, 0x45, 0x87, 0xda, 0xf2, 0x91, 0x18, 0x88, 0x7f, 0x8a, 0xfc, 0x42, 0xd6, + 0x26, 0xdc, 0xf5, 0xc3, 0x9e, 0x9a, 0x5c, 0x8b, 0xa5, 0x05, 0x91, 0xd3, 0x25, 0xa1, 0x44, 0x2b, + 0xff, 0x2c, 0x42, 0xee, 0x36, 0x75, 0xd0, 0x36, 0x4c, 0x11, 0xd7, 0x34, 0xb6, 0x8d, 0x9d, 0xb9, + 0xda, 0xf2, 0xa0, 0x5f, 0x5e, 0x20, 0xee, 0x65, 0xda, 0x25, 0xa1, 0xe0, 0x60, 0x4d, 0x11, 0x17, + 0xbd, 0x03, 0x73, 0xcd, 0x0e, 0xc1, 0x5e, 0xd8, 0x20, 0xae, 0x59, 0x14, 0x84, 0x1b, 0x83, 0x7e, + 0x19, 0x49, 0xb0, 0xae, 0x93, 0x17, 0x62, 0x0c, 0x5d, 0x03, 0x38, 0xa4, 0x4e, 0x23, 0xc0, 0x62, + 0xd5, 0xd4, 0x70, 0xd5, 0x21, 0x75, 0x0e, 0x70, 0x66, 0x55, 0x8c, 0xa1, 0xb7, 0x60, 0x46, 0x9c, + 0x97, 0x99, 0x13, 0x0b, 0x56, 0x07, 0xfd, 0xf2, 0x92, 0x00, 0x34, 0x6a, 0x49, 0x81, 0xde, 0x85, + 0x39, 0xcf, 0xee, 0xe2, 0xc0, 0xb7, 0x9b, 0xd8, 0x9c, 0x15, 0xe4, 0x9b, 0x83, 0x7e, 0x79, 0x35, + 0x01, 0xb5, 0x25, 0x43, 0x4a, 0x54, 0x83, 0x7c, 0xc7, 0x76, 0x70, 0x27, 0x30, 0xe7, 0xb6, 0x73, + 0x3b, 0xf3, 0x7b, 0x6b, 0x55, 0xdb, 0x27, 0xd5, 0xdb, 0xd4, 0xa9, 0xde, 0x11, 0xf0, 0x2d, 0x2f, + 0x64, 0xbd, 0xda, 0xda, 0xa0, 0x5f, 0x5e, 0x96, 0x74, 0x1a, 0x1b, 0xb5, 0x12, 0x7d, 0x0c, 0xf3, + 0xb6, 0xe7, 0xd1, 0xd0, 0x0e, 0x09, 0xf5, 0x02, 0x13, 0x04, 0xa3, 0xf3, 0x09, 0xa3, 0xfd, 0xe1, + 0x9c, 0xe4, 0x76, 0x7e, 0xd0, 0x2f, 0xaf, 0x6b, 0x2b, 0x34, 0x96, 0x3a, 0x23, 0x74, 0x04, 0x6b, + 0x0c, 0x7f, 0x16, 0x11, 0x86, 0xdd, 0x86, 0x47, 0x5d, 0xdc, 0x50, 0x9a, 0xce, 0x0b, 0x01, 0xdb, + 0x89, 0x00, 0x4b, 0x11, 0xfd, 0x98, 0xba, 0x58, 0xd7, 0xba, 0x32, 0xe8, 0x97, 0x2f, 0xb2, 0x91, + 0xc9, 0xa1, 0x38, 0xd3, 0xb0, 0xd0, 0xe8, 0x3c, 0xdf, 0x75, 0xfa, 0xd8, 0xc3, 0xcc, 0x2c, 0x0c, + 0x77, 0x5d, 0x00, 0xfa, 0xae, 0x0b, 0x00, 0x61, 0xb8, 0x20, 0xb6, 0xbf, 0x21, 0x86, 0xc1, 0x23, + 0xe2, 0x37, 0xa2, 0x00, 0xb3, 0x46, 0x8b, 0xd1, 0xc8, 0x0f, 0xcc, 0xa5, 0xed, 0xdc, 0xce, 0x5c, + 0xed, 0xd2, 0xa0, 0x5f, 0xae, 0x08, 0xb2, 0xbb, 0x31, 0xd5, 0x4f, 0x02, 0xcc, 0xde, 0x17, 0x34, + 0x1a, 0x4f, 0x73, 0x12, 0x0d, 0xfa, 0x85, 0x01, 0x97, 0x9a, 0xb4, 0xeb, 0x33, 0x1c, 0x04, 0xd8, + 0x6d, 0x1c, 0x27, 0x72, 0x75, 0xdb, 0xd8, 0x59, 0xa8, 0xbd, 0x3d, 0xe8, 0x97, 0x2f, 0x0f, 0x57, + 0x7c, 0x74, 0xb2, 0xf0, 0xca, 0xc9, 0xd4, 0x68, 0x0f, 0x0a, 0x3e, 0x23, 0x94, 0x91, 0xb0, 0x67, + 0x4e, 0x6f, 0x1b, 0x3b, 0x86, 0x74, 0xe1, 0x18, 0xd3, 0x5d, 0x38, 0xc6, 0xd0, 0x5d, 0x28, 0xf8, + 0xd4, 0x6d, 0x04, 0x3e, 0x6e, 0x9a, 0x33, 0xdb, 0xc6, 0xce, 0xfc, 0xde, 0x85, 0xaa, 0x4c, 0x01, + 0xe2, 0xfc, 0x78, 0x42, 0xa9, 0x1e, 0x5d, 0xad, 0xde, 0xa3, 0xee, 0x81, 0x8f, 0x9b, 0xc2, 0x67, + 0x57, 0x7c, 0x39, 0x48, 0x1d, 0xd4, 0xac, 0x02, 0xd1, 0x3d, 0x98, 0x8b, 0x19, 0x06, 0xe6, 0x82, + 0x70, 0x85, 0x63, 0x39, 0x4a, 0x15, 0xe5, 0x20, 0x48, 0xa9, 0xa8, 0x30, 0x54, 0x87, 0xd9, 0x26, + 0xc3, 0x3c, 0xdb, 0x98, 0x79, 0xa1, 0x61, 0xa9, 0x2a, 0xf3, 0x47, 0x35, 0xce, 0x1f, 0xd5, 0xfb, + 0x71, 0x4e, 0xac, 0xad, 0x7e, 0xd5, 0x2f, 0x9f, 0x1b, 0xf4, 0xcb, 0xf1, 0x92, 0xcf, 0xff, 0x52, + 0x36, 0xac, 0x78, 0x80, 0x6e, 0xc0, 0x2c, 0xf1, 0x5a, 0x7c, 0x1b, 0xcd, 0x45, 0xa1, 0x1a, 0x12, + 0x3a, 0xd5, 0x25, 0x76, 0x83, 0x7a, 0x0f, 0x49, 0xab, 0xb6, 0xce, 0x6d, 0x54, 0x64, 0x9a, 0x42, + 0xf1, 0x4a, 0xf4, 0x43, 0x28, 0x04, 0x98, 0x1d, 0x91, 0x26, 0x0e, 0xcc, 0x65, 0x8d, 0xcb, 0x81, + 0x04, 0x15, 0x17, 0x61, 0x57, 0x4c, 0xa7, 0xdb, 0x15, 0x63, 0xe8, 0x53, 0x98, 0x6f, 0x5f, 0x0f, + 0x1a, 0xb1, 0x42, 0x2b, 0x82, 0xd5, 0xeb, 0xfa, 0x5e, 0x0d, 0x53, 0x35, 0xdf, 0x31, 0xa5, 0x65, + 0xcd, 0x1c, 0xf4, 0xcb, 0x6b, 0xed, 0xeb, 0x41, 0x7d, 0x44, 0x45, 0x18, 0xa2, 0x3c, 0xea, 0x39, + 0x77, 0x25, 0xcd, 0x44, 0x93, 0x4f, 0x42, 0xe9, 0x9d, 0xf0, 0x55, 0xe3, 0x0c, 0x5f, 0x85, 0xf2, + 0x44, 0x16, 0x34, 0x1f, 0x61, 0x37, 0xea, 0x60, 0x66, 0xae, 0x0d, 0x13, 0x59, 0x02, 0xea, 0x89, + 0x2c, 0x01, 0x4b, 0x36, 0xcc, 0x6b, 0xb1, 0x8f, 0xde, 0x80, 0x5c, 0x1b, 0xf7, 0x54, 0x1e, 0x5f, + 0x19, 0xf4, 0xcb, 0xc5, 0x36, 0xd6, 0x1d, 0x94, 0xcf, 0xf2, 0x40, 0x3f, 0xb2, 0x3b, 0x11, 0x56, + 0xf9, 0x58, 0x04, 0xba, 0x00, 0xf4, 0x40, 0x17, 0xc0, 0xf7, 0xa7, 0xae, 0x1b, 0xa5, 0x87, 0xb0, + 0x9c, 0xcd, 0x65, 0x2f, 0x45, 0x4e, 0x17, 0x36, 0x27, 0xa4, 0xb4, 0x97, 0x21, 0xae, 0xf2, 0xe7, + 0x3c, 0xac, 0x1f, 0x84, 0x0c, 0xdb, 0x5d, 0xe2, 0xb5, 0xee, 0x60, 0x3b, 0xc0, 0x5c, 0x3a, 0x0e, + 0x42, 0xf4, 0x5d, 0x80, 0x66, 0x27, 0x0a, 0x42, 0xcc, 0x1a, 0x49, 0x4d, 0x14, 0x67, 0xa1, 0xd0, + 0x54, 0xd5, 0x9a, 0x4b, 0x40, 0x74, 0x09, 0xa6, 0x7d, 0x4a, 0x3b, 0x4a, 0x3e, 0x1a, 0xf4, 0xcb, + 0x8b, 0x7c, 0xac, 0x11, 0x8b, 0x79, 0xf4, 0x09, 0xcc, 0xc5, 0x15, 0x3f, 0x30, 0x73, 0xc2, 0x81, + 0xde, 0x92, 0x9e, 0x3e, 0x4e, 0x9d, 0xaa, 0x15, 0xd3, 0xca, 0xf4, 0xbe, 0xa2, 0x22, 0x71, 0xc8, + 0xc3, 0x1a, 0xfe, 0x45, 0x04, 0xd6, 0x63, 0xdd, 0x3b, 0x9c, 0x89, 0xdb, 0x60, 0xd8, 0xa7, 0x2c, + 0x14, 0x89, 0x6b, 0x7e, 0xcf, 0x14, 0x72, 0x6e, 0x48, 0x0a, 0x21, 0xc5, 0xb5, 0xc4, 0x7c, 0xed, + 0x82, 0x62, 0x1b, 0x1b, 0xa9, 0x4f, 0x5a, 0xe3, 0x40, 0xe4, 0xc3, 0x72, 0x97, 0x78, 0xa4, 0x1b, + 0x75, 0x1b, 0xa2, 0xc6, 0x93, 0x27, 0xd8, 0x9c, 0x11, 0xd6, 0x54, 0x8f, 0xb1, 0xe6, 0x43, 0xb9, + 0xe4, 0x36, 0x75, 0x0e, 0xc8, 0x13, 0x2c, 0x4d, 0xda, 0x50, 0xb2, 0x17, 0xbb, 0xa9, 0x49, 0x2b, + 0x33, 0x46, 0x7b, 0x30, 0xc3, 0x0b, 0x62, 0x60, 0xe6, 0x85, 0x98, 0xa2, 0x10, 0xc3, 0x7d, 0xa5, + 0xee, 0x3d, 0xa4, 0xb5, 0xa2, 0xe2, 0x22, 0x69, 0x2c, 0xf9, 0x83, 0x6e, 0xc2, 0xa2, 0x85, 0x9b, + 0x98, 0x1c, 0x61, 0xf7, 0x36, 0x75, 0xea, 0x6e, 0x60, 0xce, 0x8a, 0xea, 0x74, 0x71, 0xd0, 0x2f, + 0x9b, 0xe9, 0x19, 0xed, 0xa0, 0x32, 0x6b, 0x4a, 0x5f, 0x18, 0x9c, 0x8d, 0x7e, 0x0e, 0xa7, 0xf3, + 0xc9, 0x9f, 0xea, 0x3e, 0xc9, 0x37, 0x66, 0x98, 0x27, 0x92, 0x36, 0xb0, 0xea, 0xb7, 0x5b, 0xc2, + 0x92, 0xf8, 0x14, 0xab, 0x1f, 0x45, 0xb6, 0x17, 0x92, 0xb0, 0x77, 0x62, 0xc8, 0x7c, 0x69, 0xc0, + 0xea, 0x98, 0x0d, 0x3d, 0x0b, 0xba, 0x55, 0x7e, 0xbf, 0x00, 0x85, 0xf8, 0x6c, 0x78, 0x68, 0xf0, + 0xe6, 0x4b, 0x69, 0x24, 0x42, 0x83, 0x8f, 0xf5, 0xd0, 0xe0, 0x63, 0xb4, 0x0f, 0xf9, 0xd0, 0x26, + 0x5e, 0x18, 0x98, 0x53, 0xaa, 0x9d, 0x1a, 0x93, 0x58, 0xef, 0x73, 0x8a, 0xda, 0xa2, 0x3a, 0x6e, + 0xb5, 0xc0, 0x52, 0xbf, 0xe8, 0xfd, 0xa4, 0xb5, 0xcb, 0x69, 0x1d, 0x59, 0xac, 0xc9, 0xb7, 0xe8, + 0xef, 0x9e, 0xc0, 0xba, 0xdd, 0xe9, 0xd0, 0xa6, 0x1d, 0xda, 0x4e, 0x07, 0x37, 0x86, 0x21, 0x3b, + 0x2d, 0xf8, 0xbe, 0x99, 0xe6, 0xbb, 0x3f, 0x24, 0xcd, 0x04, 0xec, 0x45, 0xa5, 0xe8, 0x9a, 0x3d, + 0x86, 0xc4, 0x1a, 0x8b, 0x22, 0x06, 0xab, 0xf6, 0x91, 0x4d, 0x3a, 0x19, 0xc9, 0x32, 0xbc, 0xfe, + 0x2f, 0x23, 0x39, 0x26, 0xcc, 0xc8, 0x2d, 0x29, 0xb9, 0xc8, 0x1e, 0x21, 0xb0, 0xc6, 0x60, 0xc8, + 0x81, 0xa5, 0x90, 0x86, 0x76, 0x47, 0x93, 0x97, 0x57, 0xb5, 0x33, 0x25, 0xef, 0x3e, 0x27, 0xca, + 0xc8, 0x4a, 0x22, 0x38, 0x4c, 0x4d, 0x5a, 0x99, 0xb1, 0xb0, 0x4b, 0xda, 0x2b, 0x32, 0x53, 0x2c, + 0x67, 0x76, 0xac, 0x5d, 0x31, 0xe1, 0x44, 0xbb, 0x46, 0x08, 0xac, 0x31, 0x18, 0x7a, 0x00, 0xcb, + 0x2c, 0xf2, 0x1a, 0xc4, 0x0d, 0x1a, 0x4e, 0xaf, 0x11, 0x84, 0x76, 0x88, 0xcd, 0x82, 0xd6, 0x4b, + 0x27, 0x02, 0xad, 0xc8, 0xab, 0xbb, 0x41, 0xad, 0x77, 0xc0, 0x49, 0xa4, 0xac, 0x75, 0x25, 0xab, + 0xc8, 0xf4, 0x39, 0x2b, 0x3d, 0x7c, 0x15, 0x45, 0xf8, 0xb7, 0x06, 0x9c, 0x9f, 0xe8, 0x62, 0x67, + 0x22, 0x17, 0xfd, 0xc6, 0x80, 0xcd, 0x09, 0xae, 0x78, 0x66, 0x72, 0xe5, 0x18, 0xd7, 0x3d, 0x13, + 0xba, 0xfd, 0x9c, 0xef, 0xdd, 0x78, 0x77, 0xd7, 0xf5, 0x9b, 0x99, 0xa8, 0xdf, 0x7b, 0x69, 0xfd, + 0xe4, 0x75, 0xf6, 0x06, 0xed, 0xfa, 0x51, 0x98, 0x9c, 0xc5, 0x89, 0x5a, 0x3c, 0x06, 0x34, 0x1a, + 0x02, 0xa7, 0xdb, 0x9f, 0xeb, 0xba, 0xfc, 0x45, 0x55, 0x99, 0x79, 0x49, 0xe2, 0x7c, 0x4e, 0x2c, + 0x15, 0xbf, 0x9a, 0x96, 0xa5, 0xe2, 0x7e, 0xcf, 0xd7, 0x4b, 0x80, 0xf1, 0xfc, 0x25, 0x60, 0x2a, + 0x53, 0x02, 0xb8, 0x84, 0x17, 0x51, 0x02, 0x72, 0x99, 0x12, 0x20, 0xf8, 0xbe, 0xd0, 0x12, 0xf0, + 0xbf, 0xa4, 0xc2, 0x3d, 0xe3, 0x8f, 0xd3, 0x70, 0x41, 0x75, 0xab, 0x07, 0xf2, 0xce, 0x43, 0xbc, + 0x16, 0x4f, 0xd6, 0xaa, 0x07, 0x7d, 0xde, 0x56, 0x7d, 0xf6, 0x84, 0x56, 0xfd, 0x00, 0xe6, 0x65, + 0xff, 0xdc, 0x08, 0x49, 0x37, 0x36, 0xf2, 0xb8, 0x7b, 0x72, 0x5c, 0x08, 0x41, 0x2e, 0xe3, 0x13, + 0xe2, 0xaa, 0xac, 0x8d, 0xd1, 0x2d, 0x00, 0xf1, 0xae, 0x13, 0xf6, 0xfc, 0xa4, 0xa6, 0x17, 0x53, + 0xae, 0xa4, 0xde, 0xb0, 0xd4, 0x28, 0x48, 0xbd, 0x61, 0xc5, 0x20, 0x3a, 0x1a, 0xd3, 0x7f, 0xcb, + 0x82, 0x7d, 0x4d, 0xef, 0xf2, 0xc7, 0xed, 0xdb, 0xf3, 0x74, 0xe1, 0x67, 0xba, 0xe9, 0xfc, 0xc7, + 0x34, 0xac, 0x88, 0x77, 0x9c, 0xd4, 0x4d, 0xe5, 0xb4, 0xdd, 0x27, 0x85, 0xe5, 0x24, 0xc4, 0xd5, + 0xf5, 0x49, 0x65, 0x90, 0xef, 0x08, 0x7d, 0x46, 0x38, 0x0f, 0xef, 0x66, 0x12, 0x95, 0x1b, 0xb9, + 0xa9, 0x36, 0x72, 0x89, 0xa5, 0x67, 0xad, 0x2c, 0x80, 0xbe, 0x34, 0xe0, 0x62, 0x56, 0x22, 0x6f, + 0x52, 0x92, 0xe7, 0x26, 0x99, 0x67, 0xde, 0x3d, 0x9d, 0xf4, 0x5a, 0xef, 0x9e, 0x5a, 0x27, 0xf5, + 0x78, 0x5d, 0xe9, 0x71, 0x9e, 0x4d, 0xa2, 0xb3, 0x26, 0x4f, 0x95, 0x7e, 0x6d, 0xc0, 0xda, 0x38, + 0xf3, 0xce, 0x44, 0xc1, 0xfc, 0xa5, 0x01, 0x5b, 0xc7, 0x5b, 0xff, 0xea, 0xea, 0x66, 0xe5, 0xef, + 0x06, 0xac, 0x8e, 0xb9, 0x52, 0xff, 0xd7, 0xc9, 0xe9, 0xa5, 0x24, 0x9d, 0x9b, 0x90, 0x17, 0xef, + 0xa7, 0x71, 0xed, 0xda, 0x18, 0xef, 0x53, 0xb2, 0x20, 0x4a, 0x4a, 0xbd, 0x20, 0x4a, 0xa4, 0xf2, + 0x6f, 0x03, 0x96, 0x32, 0xdb, 0x83, 0xee, 0xeb, 0xcf, 0x19, 0xb2, 0x66, 0xbf, 0x31, 0x6e, 0x1f, + 0xbf, 0xd5, 0x43, 0xc6, 0x19, 0xbd, 0x71, 0x57, 0xfe, 0x64, 0xc0, 0x42, 0xf2, 0x3a, 0x45, 0xbc, + 0x16, 0xfa, 0x20, 0x73, 0xdd, 0x7c, 0x2d, 0x49, 0xe4, 0x31, 0xc9, 0xe9, 0xfb, 0x8d, 0x57, 0x50, + 0xf3, 0x2b, 0xdf, 0x83, 0xc2, 0x6d, 0xea, 0x88, 0x23, 0x47, 0x57, 0x20, 0x77, 0x48, 0x1d, 0x75, + 0x66, 0x85, 0xb8, 0x67, 0x93, 0x92, 0x0e, 0xa9, 0xa3, 0x4b, 0x3a, 0xa4, 0x4e, 0xe5, 0x77, 0x06, + 0xac, 0x24, 0x8f, 0x3a, 0xa3, 0x4c, 0x8c, 0xd3, 0x30, 0x41, 0xbb, 0x30, 0xeb, 0x89, 0xc2, 0x11, + 0x08, 0x85, 0x8b, 0xf2, 0x59, 0x58, 0x41, 0xfa, 0xb3, 0xb0, 0x82, 0xd0, 0x1e, 0x14, 0xbc, 0xa8, + 0xbb, 0xdf, 0x6c, 0x63, 0x57, 0x7c, 0x0f, 0x2a, 0xca, 0x27, 0xe0, 0x18, 0xd3, 0x9f, 0x80, 0x63, + 0xac, 0x72, 0x05, 0xf2, 0x75, 0xf7, 0x0e, 0x09, 0x42, 0xbe, 0x85, 0xc4, 0x95, 0x6e, 0xa9, 0xb6, + 0x90, 0xa4, 0x1e, 0x7a, 0xf8, 0x6c, 0xc5, 0x87, 0x15, 0x0b, 0x7b, 0xf8, 0xf1, 0x0b, 0x79, 0x05, + 0x54, 0x12, 0xa7, 0x8e, 0x95, 0xf8, 0x45, 0x0e, 0x90, 0x85, 0xc3, 0x88, 0x79, 0x2f, 0x44, 0xe6, + 0xff, 0x43, 0x9e, 0xb7, 0x00, 0xc9, 0x27, 0x36, 0xe1, 0x04, 0x87, 0xd4, 0x49, 0xd1, 0xcf, 0x08, + 0x00, 0x3d, 0x80, 0x15, 0xfb, 0x88, 0x92, 0xf4, 0xb7, 0x25, 0xf9, 0x3a, 0xb8, 0x2e, 0x4e, 0xef, + 0x2e, 0x73, 0x31, 0xc3, 0xee, 0x41, 0xc8, 0x88, 0xd7, 0xfa, 0xd0, 0xf6, 0x6b, 0xaf, 0xf1, 0x1a, + 0x22, 0xd6, 0x8c, 0xfb, 0x9a, 0x64, 0x2d, 0x65, 0xa6, 0xd0, 0x65, 0xc8, 0x33, 0x6c, 0x07, 0xd4, + 0x13, 0x5f, 0x3e, 0xe6, 0xa4, 0xcf, 0x4b, 0x44, 0xf7, 0x79, 0x89, 0xa0, 0xf7, 0xa0, 0xd8, 0x8e, + 0x1c, 0xcc, 0x3c, 0x1c, 0xe2, 0x80, 0x9b, 0x90, 0x17, 0x8b, 0x4a, 0x83, 0x7e, 0x79, 0x63, 0x38, + 0x91, 0xb2, 0x64, 0x41, 0xc7, 0x51, 0x1d, 0x56, 0xb8, 0xf1, 0xfc, 0x8e, 0x6f, 0x87, 0x82, 0x02, + 0xbb, 0xa2, 0xb1, 0x2b, 0x48, 0xcd, 0x0f, 0xa9, 0x63, 0x45, 0xde, 0x7e, 0x3c, 0xa5, 0x6b, 0x9e, + 0x99, 0xaa, 0xb8, 0x80, 0xa4, 0xd9, 0x1f, 0xe0, 0xde, 0xc7, 0x3c, 0x64, 0xee, 0xd9, 0x84, 0xbd, + 0xe8, 0x30, 0xac, 0x7c, 0x0a, 0xcb, 0xd9, 0x3d, 0x46, 0x3f, 0x82, 0x59, 0xec, 0x85, 0x8c, 0x24, + 0x29, 0x74, 0x33, 0x7e, 0x43, 0xcd, 0x68, 0x23, 0xe3, 0x45, 0xd1, 0xea, 0xf1, 0xa2, 0xa0, 0xbd, + 0x7f, 0x19, 0xb0, 0xb4, 0xdf, 0x6a, 0x31, 0xdc, 0xe2, 0x97, 0x49, 0x91, 0xe0, 0xd1, 0x1d, 0x61, + 0x97, 0xf6, 0x1a, 0x2b, 0x22, 0xab, 0x34, 0xf9, 0x99, 0xb6, 0xb4, 0x91, 0x9e, 0x8b, 0xa3, 0x7d, + 0xc7, 0x78, 0xdb, 0x40, 0x57, 0x01, 0x86, 0xe1, 0x82, 0x24, 0xe5, 0x48, 0xfc, 0x94, 0xe6, 0xe5, + 0x27, 0x20, 0x19, 0x86, 0x3f, 0x80, 0x79, 0xcd, 0xdd, 0xd1, 0xa6, 0x5a, 0x93, 0x0d, 0x80, 0xd2, + 0xc6, 0x48, 0x95, 0xbb, 0xc5, 0xad, 0x43, 0x97, 0xb8, 0x48, 0x5e, 0x9f, 0x6e, 0x52, 0x0f, 0x23, + 0x9d, 0x75, 0x4a, 0x4e, 0xed, 0xc1, 0x37, 0x7f, 0xdb, 0x3a, 0xf7, 0xb3, 0xa7, 0x5b, 0xc6, 0x57, + 0x4f, 0xb7, 0x8c, 0xaf, 0x9f, 0x6e, 0x19, 0x7f, 0x7d, 0xba, 0x65, 0x7c, 0xfe, 0x6c, 0xeb, 0xdc, + 0xd7, 0xcf, 0xb6, 0xce, 0x7d, 0xf3, 0x6c, 0xeb, 0xdc, 0x27, 0x6f, 0x6a, 0x9f, 0xd4, 0x6d, 0xd6, + 0xb5, 0x5d, 0xdb, 0x67, 0xf4, 0x10, 0x37, 0x43, 0x35, 0x8a, 0x3f, 0xca, 0xff, 0x61, 0x6a, 0x6d, + 0x5f, 0x00, 0xf7, 0xe4, 0x74, 0xb5, 0x4e, 0xab, 0xfb, 0x3e, 0x71, 0xf2, 0x42, 0xb3, 0x77, 0xfe, + 0x13, 0x00, 0x00, 0xff, 0xff, 0x64, 0x04, 0x4c, 0xa1, 0x5a, 0x20, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1970,11 +1973,19 @@ func (m *NodeInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.RunIds) > 0 { - for iNdEx := len(m.RunIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RunIds[iNdEx]) - copy(dAtA[i:], m.RunIds[iNdEx]) - i = encodeVarintQueue(dAtA, i, uint64(len(m.RunIds[iNdEx]))) + if len(m.RunIdsByState) > 0 { + for k := range m.RunIdsByState { + v := m.RunIdsByState[k] + baseI := i + i = encodeVarintQueue(dAtA, i, uint64(v)) + i-- + dAtA[i] = 0x10 + i -= len(k) + copy(dAtA[i:], k) + i = encodeVarintQueue(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = encodeVarintQueue(dAtA, i, uint64(baseI-i)) i-- dAtA[i] = 0x42 } @@ -3026,10 +3037,12 @@ func (m *NodeInfo) Size() (n int) { n += mapEntrySize + 1 + sovQueue(uint64(mapEntrySize)) } } - if len(m.RunIds) > 0 { - for _, s := range m.RunIds { - l = len(s) - n += 1 + l + sovQueue(uint64(l)) + if len(m.RunIdsByState) > 0 { + for k, v := range m.RunIdsByState { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovQueue(uint64(len(k))) + 1 + sovQueue(uint64(v)) + n += mapEntrySize + 1 + sovQueue(uint64(mapEntrySize)) } } return n @@ -3510,6 +3523,16 @@ func (this *NodeInfo) String() string { mapStringForAllocatedResources += fmt.Sprintf("%v: %v,", k, this.AllocatedResources[k]) } mapStringForAllocatedResources += "}" + keysForRunIdsByState := make([]string, 0, len(this.RunIdsByState)) + for k, _ := range this.RunIdsByState { + keysForRunIdsByState = append(keysForRunIdsByState, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForRunIdsByState) + mapStringForRunIdsByState := "map[string]JobState{" + for _, k := range keysForRunIdsByState { + mapStringForRunIdsByState += fmt.Sprintf("%v: %v,", k, this.RunIdsByState[k]) + } + mapStringForRunIdsByState += "}" s := strings.Join([]string{`&NodeInfo{`, `Name:` + fmt.Sprintf("%v", this.Name) + `,`, `Taints:` + repeatedStringForTaints + `,`, @@ -3518,7 +3541,7 @@ func (this *NodeInfo) String() string { `AvailableResources:` + mapStringForAvailableResources + `,`, `TotalResources:` + mapStringForTotalResources + `,`, `AllocatedResources:` + mapStringForAllocatedResources + `,`, - `RunIds:` + fmt.Sprintf("%v", this.RunIds) + `,`, + `RunIdsByState:` + mapStringForRunIdsByState + `,`, `}`, }, "") return s @@ -5943,9 +5966,9 @@ func (m *NodeInfo) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RunIdsByState", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQueue @@ -5955,23 +5978,104 @@ func (m *NodeInfo) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQueue } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQueue } if postIndex > l { return io.ErrUnexpectedEOF } - m.RunIds = append(m.RunIds, string(dAtA[iNdEx:postIndex])) + if m.RunIdsByState == nil { + m.RunIdsByState = make(map[string]JobState) + } + var mapkey string + var mapvalue JobState + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQueue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQueue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthQueue + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthQueue + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQueue + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= JobState(b&0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipQueue(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQueue + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.RunIdsByState[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex diff --git a/pkg/api/queue.proto b/pkg/api/queue.proto index 40a5df9b509..8e97f75450b 100644 --- a/pkg/api/queue.proto +++ b/pkg/api/queue.proto @@ -6,13 +6,12 @@ option csharp_namespace = "ArmadaProject.Io.Api"; import "google/protobuf/timestamp.proto"; import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/api/networking/v1/generated.proto"; import "k8s.io/apimachinery/pkg/api/resource/generated.proto"; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; import "google/protobuf/empty.proto"; import "pkg/api/submit.proto"; -import "k8s.io/api/networking/v1/generated.proto"; - option (gogoproto.goproto_stringer_all) = false; option (gogoproto.stringer_all) = true; @@ -86,10 +85,10 @@ message NodeInfo { // In particular, jobs may be sent to an executor even if all resources are allocated // if the sent jobs are of higher priority. map allocated_resources = 7 [(gogoproto.nullable) = false]; - // ids of all job runs current allocated to this node + // All run ids of jobs on the node, mapped to their current state // this should be of type armadaevents.uuid, but this creates a circular loop // once the old scheduler has gone, we can correct this - repeated string run_ids = 8 [(gogoproto.nullable) = false]; + map run_ids_by_state = 8 [(gogoproto.nullable) = false]; } // The Armada scheduler must account for taints, labels, and available resources. diff --git a/pkg/api/submit.pb.go b/pkg/api/submit.pb.go index 1fc32ce40f2..33f2ca386a9 100644 --- a/pkg/api/submit.pb.go +++ b/pkg/api/submit.pb.go @@ -87,21 +87,30 @@ func (ServiceType) EnumDescriptor() ([]byte, []int) { type JobState int32 const ( - JobState_QUEUED JobState = 0 - JobState_PENDING JobState = 1 - JobState_RUNNING JobState = 2 + JobState_QUEUED JobState = 0 + JobState_PENDING JobState = 1 + JobState_RUNNING JobState = 2 + JobState_SUCCEEDED JobState = 3 + JobState_FAILED JobState = 4 + JobState_UNKNOWN JobState = 5 ) var JobState_name = map[int32]string{ 0: "QUEUED", 1: "PENDING", 2: "RUNNING", + 3: "SUCCEEDED", + 4: "FAILED", + 5: "UNKNOWN", } var JobState_value = map[string]int32{ - "QUEUED": 0, - "PENDING": 1, - "RUNNING": 2, + "QUEUED": 0, + "PENDING": 1, + "RUNNING": 2, + "SUCCEEDED": 3, + "FAILED": 4, + "UNKNOWN": 5, } func (x JobState) String() string { @@ -1558,140 +1567,142 @@ func init() { func init() { proto.RegisterFile("pkg/api/submit.proto", fileDescriptor_e998bacb27df16c1) } var fileDescriptor_e998bacb27df16c1 = []byte{ - // 2117 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x4f, 0x6f, 0xdb, 0xc8, - 0x15, 0x37, 0xa5, 0x58, 0x96, 0x1e, 0xfd, 0x47, 0x1e, 0xff, 0xa3, 0x19, 0x47, 0x72, 0xb9, 0xdd, - 0xd6, 0x31, 0xba, 0x52, 0xe3, 0xed, 0x02, 0x49, 0xba, 0xc0, 0x22, 0x72, 0x9c, 0xac, 0xd3, 0xc0, - 0xeb, 0xd8, 0x71, 0xdb, 0xed, 0xa1, 0x5a, 0x4a, 0x1c, 0xcb, 0xb4, 0x25, 0x92, 0x21, 0x87, 0x0e, - 0xdc, 0x62, 0x81, 0x45, 0x2f, 0x45, 0x6f, 0x05, 0x7a, 0xec, 0xa1, 0x3d, 0x6f, 0x3f, 0x40, 0xbf, - 0x42, 0x4f, 0xc5, 0x02, 0xbd, 0x6c, 0x2f, 0x42, 0x9b, 0x14, 0x2d, 0xa0, 0x5b, 0xbf, 0x41, 0x31, - 0x6f, 0x48, 0x71, 0x28, 0xc9, 0xff, 0x02, 0xa4, 0x7b, 0xf3, 0xfc, 0xe6, 0xbd, 0xdf, 0x7b, 0x6f, - 0xe6, 0xcd, 0x7b, 0x8f, 0x16, 0xcc, 0x7b, 0x27, 0xad, 0xaa, 0xe9, 0xd9, 0xd5, 0x20, 0x6c, 0x74, - 0x6c, 0x56, 0xf1, 0x7c, 0x97, 0xb9, 0x24, 0x6b, 0x7a, 0xb6, 0x7e, 0xb3, 0xe5, 0xba, 0xad, 0x36, - 0xad, 0x22, 0xd4, 0x08, 0x0f, 0xab, 0xb4, 0xe3, 0xb1, 0x33, 0x21, 0xa1, 0x1b, 0x27, 0x77, 0x83, - 0x8a, 0xed, 0xa2, 0x6a, 0xd3, 0xf5, 0x69, 0xf5, 0xf4, 0x4e, 0xb5, 0x45, 0x1d, 0xea, 0x9b, 0x8c, - 0x5a, 0x91, 0xcc, 0x4a, 0x44, 0xc0, 0x65, 0x4c, 0xc7, 0x71, 0x99, 0xc9, 0x6c, 0xd7, 0x09, 0xa2, - 0xdd, 0xf7, 0x5a, 0x36, 0x3b, 0x0a, 0x1b, 0x95, 0xa6, 0xdb, 0xa9, 0xb6, 0xdc, 0x96, 0x9b, 0xd8, - 0xe1, 0x2b, 0x5c, 0xe0, 0x5f, 0x91, 0x78, 0xdf, 0xd1, 0x23, 0x6a, 0xb6, 0xd9, 0x91, 0x40, 0x8d, - 0x3f, 0x14, 0x60, 0xfe, 0x89, 0xdb, 0xd8, 0x47, 0xe7, 0xf7, 0xe8, 0x8b, 0x90, 0x06, 0x6c, 0x9b, - 0xd1, 0x0e, 0xd9, 0x80, 0xbc, 0xe7, 0xdb, 0xae, 0x6f, 0xb3, 0x33, 0x4d, 0x59, 0x55, 0xd6, 0x94, - 0xda, 0x62, 0xaf, 0x5b, 0x26, 0x31, 0xf6, 0x3d, 0xb7, 0x63, 0x33, 0x8c, 0x67, 0xaf, 0x2f, 0x47, - 0x3e, 0x80, 0x82, 0x63, 0x76, 0x68, 0xe0, 0x99, 0x4d, 0xaa, 0x65, 0x57, 0x95, 0xb5, 0x42, 0x6d, - 0xa9, 0xd7, 0x2d, 0xcf, 0xf5, 0x41, 0x49, 0x2b, 0x91, 0x24, 0xef, 0x43, 0xa1, 0xd9, 0xb6, 0xa9, - 0xc3, 0xea, 0xb6, 0xa5, 0xe5, 0x51, 0x0d, 0x6d, 0x09, 0x70, 0xdb, 0x92, 0x6d, 0xc5, 0x18, 0xd9, - 0x87, 0x5c, 0xdb, 0x6c, 0xd0, 0x76, 0xa0, 0xdd, 0x58, 0xcd, 0xae, 0xa9, 0x1b, 0xef, 0x56, 0x4c, - 0xcf, 0xae, 0x8c, 0x0a, 0xa5, 0xf2, 0x14, 0xe5, 0xb6, 0x1c, 0xe6, 0x9f, 0xd5, 0xe6, 0x7b, 0xdd, - 0x72, 0x51, 0x28, 0x4a, 0xb4, 0x11, 0x15, 0x69, 0x81, 0x2a, 0x9d, 0xb3, 0x36, 0x8e, 0xcc, 0xeb, - 0xe7, 0x33, 0x3f, 0x48, 0x84, 0x05, 0xfd, 0x72, 0xaf, 0x5b, 0x5e, 0x90, 0x28, 0x24, 0x1b, 0x32, - 0x33, 0xf9, 0xb5, 0x02, 0xf3, 0x3e, 0x7d, 0x11, 0xda, 0x3e, 0xb5, 0xea, 0x8e, 0x6b, 0xd1, 0x7a, - 0x14, 0x4c, 0x0e, 0x4d, 0xde, 0x39, 0xdf, 0xe4, 0x5e, 0xa4, 0xb5, 0xe3, 0x5a, 0x54, 0x0e, 0xcc, - 0xe8, 0x75, 0xcb, 0x2b, 0xfe, 0xd0, 0x66, 0xe2, 0x80, 0xa6, 0xec, 0x91, 0xe1, 0x7d, 0xf2, 0x09, - 0xe4, 0x3d, 0xd7, 0xaa, 0x07, 0x1e, 0x6d, 0x6a, 0x99, 0x55, 0x65, 0x4d, 0xdd, 0xb8, 0x59, 0x11, - 0xa9, 0x89, 0x3e, 0xf0, 0xd4, 0xac, 0x9c, 0xde, 0xa9, 0xec, 0xba, 0xd6, 0xbe, 0x47, 0x9b, 0x78, - 0x9f, 0xb3, 0x9e, 0x58, 0xa4, 0xb8, 0x27, 0x22, 0x90, 0xec, 0x42, 0x21, 0x26, 0x0c, 0xb4, 0x09, - 0x0c, 0xe7, 0x42, 0x46, 0x91, 0x56, 0x62, 0x11, 0xa4, 0xd2, 0x2a, 0xc2, 0xc8, 0x26, 0x4c, 0xd8, - 0x4e, 0xcb, 0xa7, 0x41, 0xa0, 0x15, 0x90, 0x8f, 0x20, 0xd1, 0xb6, 0xc0, 0x36, 0x5d, 0xe7, 0xd0, - 0x6e, 0xd5, 0x16, 0xb8, 0x63, 0x91, 0x98, 0xc4, 0x12, 0x6b, 0x92, 0x47, 0x90, 0x0f, 0xa8, 0x7f, - 0x6a, 0x37, 0x69, 0xa0, 0x81, 0xc4, 0xb2, 0x2f, 0xc0, 0x88, 0x05, 0x9d, 0x89, 0xe5, 0x64, 0x67, - 0x62, 0x8c, 0xe7, 0x78, 0xd0, 0x3c, 0xa2, 0x56, 0xd8, 0xa6, 0xbe, 0xa6, 0x26, 0x39, 0xde, 0x07, - 0xe5, 0x1c, 0xef, 0x83, 0xba, 0x09, 0xaa, 0x74, 0x5b, 0xe4, 0x1d, 0xc8, 0x9e, 0x50, 0xf1, 0xb0, - 0x0a, 0xb5, 0xd9, 0x5e, 0xb7, 0x3c, 0x75, 0x42, 0xe5, 0x37, 0xc5, 0x77, 0xc9, 0x6d, 0x18, 0x3f, - 0x35, 0xdb, 0x21, 0xc5, 0x7b, 0x29, 0xd4, 0xe6, 0x7a, 0xdd, 0xf2, 0x0c, 0x02, 0x92, 0xa0, 0x90, - 0xb8, 0x9f, 0xb9, 0xab, 0xe8, 0x87, 0x50, 0x1c, 0xcc, 0xc7, 0xb7, 0x62, 0xa7, 0x03, 0x4b, 0xe7, - 0x24, 0xe1, 0xdb, 0x30, 0x67, 0xfc, 0x37, 0x0b, 0x53, 0xa9, 0xab, 0x26, 0xf7, 0xe1, 0x06, 0x3b, - 0xf3, 0x28, 0x9a, 0x99, 0xde, 0x28, 0xca, 0xc9, 0xf0, 0xfc, 0xcc, 0xa3, 0xf8, 0xc6, 0xa7, 0xb9, - 0x44, 0x2a, 0x41, 0x51, 0x87, 0x1b, 0xf7, 0x5c, 0x9f, 0x05, 0x5a, 0x66, 0x35, 0xbb, 0x36, 0x25, - 0x8c, 0x23, 0x20, 0x1b, 0x47, 0x80, 0x7c, 0x96, 0x2e, 0x06, 0x59, 0x4c, 0x9a, 0x77, 0x86, 0x53, - 0xef, 0xcd, 0xab, 0xc0, 0x3d, 0x50, 0x59, 0x3b, 0xa8, 0x53, 0xc7, 0x6c, 0xb4, 0xa9, 0xa5, 0xdd, - 0x58, 0x55, 0xd6, 0xf2, 0x35, 0xad, 0xd7, 0x2d, 0xcf, 0x33, 0x7e, 0xa2, 0x88, 0x4a, 0xba, 0x90, - 0xa0, 0x58, 0x33, 0xa9, 0xcf, 0xea, 0xbc, 0x8a, 0x6a, 0xe3, 0x52, 0xcd, 0xa4, 0x3e, 0xdb, 0x31, - 0x3b, 0x34, 0x55, 0x33, 0x23, 0x8c, 0x7c, 0x04, 0x53, 0x61, 0x40, 0xeb, 0xcd, 0x76, 0x18, 0x30, - 0xea, 0x6f, 0xef, 0x6a, 0x39, 0xb4, 0xa8, 0xf7, 0xba, 0xe5, 0xc5, 0x30, 0xa0, 0x9b, 0x31, 0x2e, - 0x29, 0x4f, 0xca, 0xf8, 0xff, 0x2b, 0xc5, 0x0c, 0x06, 0x53, 0xa9, 0x77, 0x49, 0xee, 0x8e, 0xb8, - 0xf2, 0x48, 0x02, 0xaf, 0x9c, 0x0c, 0x5f, 0xf9, 0xb5, 0x2f, 0xdc, 0xf8, 0xbb, 0x02, 0xc5, 0xc1, - 0x9a, 0xcb, 0xf5, 0x5f, 0x84, 0x34, 0xa4, 0x51, 0x80, 0xa8, 0x8f, 0x80, 0xac, 0x8f, 0x00, 0xf9, - 0x01, 0xc0, 0xb1, 0xdb, 0xa8, 0x07, 0x14, 0x1b, 0x59, 0x26, 0xb9, 0x94, 0x63, 0xb7, 0xb1, 0x4f, - 0x07, 0x1a, 0x59, 0x8c, 0x11, 0x0b, 0x66, 0xb9, 0x96, 0x2f, 0xec, 0xd5, 0xb9, 0x40, 0x9c, 0x6c, - 0xcb, 0xe7, 0xb6, 0x81, 0xda, 0xad, 0x5e, 0xb7, 0xbc, 0x7c, 0xec, 0x36, 0x24, 0x4c, 0x8e, 0x68, - 0x66, 0x60, 0xcb, 0xf8, 0xab, 0x88, 0x6d, 0xd3, 0x74, 0x9a, 0xb4, 0x1d, 0xc7, 0xb6, 0x0e, 0x39, - 0x6e, 0xda, 0xb6, 0xe4, 0xe0, 0x8e, 0xdd, 0x46, 0xca, 0xd3, 0x71, 0x04, 0xde, 0x30, 0xb8, 0xfe, - 0xe9, 0x65, 0x2f, 0x3d, 0xbd, 0xf7, 0x60, 0x42, 0x38, 0x23, 0x3a, 0x7a, 0x41, 0xb4, 0x6a, 0x34, - 0x9e, 0x6a, 0xd5, 0x02, 0x31, 0xfe, 0xac, 0xc0, 0xdc, 0x13, 0x34, 0x93, 0x8e, 0x29, 0xed, 0xa7, - 0x72, 0x5d, 0x3f, 0x33, 0x97, 0xfa, 0xf9, 0x11, 0xe4, 0x0e, 0xed, 0x36, 0xa3, 0x3e, 0xc6, 0xa4, - 0x6e, 0xcc, 0xf6, 0x2f, 0x89, 0xb2, 0x47, 0xb8, 0x21, 0x3c, 0x17, 0x42, 0xb2, 0xe7, 0x02, 0x31, - 0x7e, 0x04, 0x93, 0xb2, 0x34, 0xf9, 0x21, 0xe4, 0x02, 0x66, 0x32, 0x1a, 0x68, 0xca, 0x6a, 0x76, - 0x6d, 0x7a, 0x63, 0xaa, 0x4f, 0xc8, 0x51, 0x41, 0x26, 0x04, 0x64, 0x32, 0x81, 0x18, 0xff, 0x56, - 0x60, 0xf1, 0x09, 0xbf, 0xeb, 0x68, 0x08, 0xb3, 0x7f, 0x41, 0xe3, 0x93, 0x90, 0x0e, 0x54, 0xb9, - 0xfc, 0x40, 0xdf, 0xfe, 0x05, 0x7f, 0x08, 0x93, 0x0e, 0x7d, 0x59, 0xef, 0x4f, 0x95, 0x37, 0x70, - 0xaa, 0xc4, 0x5a, 0xe9, 0xd0, 0x97, 0xbb, 0xc3, 0x83, 0xa5, 0x2a, 0xc1, 0xc6, 0x9f, 0x32, 0xb0, - 0x34, 0x14, 0x68, 0xe0, 0xb9, 0x4e, 0x40, 0xc9, 0xef, 0x15, 0xd0, 0xfc, 0x64, 0x03, 0xab, 0x53, - 0xdd, 0xa7, 0x41, 0xd8, 0x66, 0x22, 0x76, 0x75, 0xe3, 0x5e, 0x7c, 0xa8, 0xa3, 0x08, 0x2a, 0x7b, - 0x03, 0xca, 0x7b, 0x42, 0x57, 0x54, 0xf3, 0x77, 0x7b, 0xdd, 0xf2, 0xb7, 0xfc, 0xd1, 0x12, 0x92, - 0xb7, 0x4b, 0xe7, 0x88, 0xe8, 0x3e, 0xac, 0x5c, 0xc4, 0xff, 0x56, 0x0a, 0xa8, 0x03, 0x0b, 0x52, - 0xd9, 0x10, 0x51, 0xe2, 0x58, 0x7f, 0x9d, 0x27, 0x7f, 0x1b, 0xc6, 0xa9, 0xef, 0xbb, 0xbe, 0x6c, - 0x13, 0x01, 0x59, 0x14, 0x01, 0xe3, 0x73, 0x98, 0x1d, 0xb2, 0x47, 0x8e, 0x80, 0x88, 0xca, 0x26, - 0xd6, 0x51, 0x69, 0x13, 0xf7, 0xa1, 0x0f, 0x96, 0xb6, 0xc4, 0xc7, 0x5a, 0xa9, 0xd7, 0x2d, 0xeb, - 0x58, 0xc0, 0x12, 0x50, 0x3e, 0xe9, 0xe2, 0xe0, 0x9e, 0xf1, 0x45, 0x0e, 0xc6, 0x9f, 0x61, 0x92, - 0x7d, 0x07, 0x6e, 0x60, 0x4b, 0x14, 0xd1, 0x61, 0x5b, 0x70, 0xd2, 0xed, 0x10, 0xf7, 0xc9, 0x16, - 0xcc, 0xc4, 0x89, 0x58, 0x3f, 0x34, 0x9b, 0x2c, 0x8a, 0x52, 0xa9, 0xad, 0xf4, 0xba, 0x65, 0x2d, - 0xde, 0x7a, 0x84, 0x3b, 0x92, 0xf2, 0x74, 0x7a, 0x87, 0x77, 0xf0, 0x30, 0xa0, 0x7e, 0xdd, 0x7d, - 0xe9, 0x50, 0x5f, 0x94, 0xed, 0x82, 0xe8, 0xe0, 0x1c, 0xfe, 0x04, 0x51, 0xb9, 0x83, 0x27, 0x28, - 0x7f, 0x0e, 0x2d, 0xdf, 0x0d, 0xbd, 0x58, 0x57, 0x14, 0x3d, 0x7c, 0x0e, 0x88, 0x0f, 0x29, 0xab, - 0x12, 0x4c, 0x28, 0xcc, 0xf8, 0x34, 0x70, 0x43, 0xbf, 0x49, 0xeb, 0x6d, 0xbb, 0x63, 0xb3, 0xf8, - 0x6b, 0xa5, 0x84, 0x07, 0x8b, 0x87, 0x51, 0xd9, 0x8b, 0x24, 0x9e, 0xa2, 0x80, 0xc8, 0x66, 0x8c, - 0xcf, 0x4f, 0x6d, 0xc8, 0xf1, 0xa5, 0x77, 0xc8, 0x3e, 0xa8, 0x1e, 0xf5, 0x3b, 0x76, 0x10, 0xe0, - 0x0c, 0x24, 0xbe, 0x4e, 0x16, 0x25, 0x13, 0xbb, 0xc9, 0xae, 0xf0, 0x5d, 0x12, 0x97, 0x7d, 0x97, - 0x60, 0xfd, 0x3f, 0x0a, 0xa8, 0x92, 0x1e, 0xd9, 0x83, 0x7c, 0x10, 0x36, 0x8e, 0x69, 0xb3, 0xff, - 0x5a, 0x4b, 0xa3, 0x2d, 0x54, 0xf6, 0x85, 0x58, 0x34, 0xa6, 0x47, 0x3a, 0xa9, 0x31, 0x3d, 0xc2, - 0xf0, 0xbd, 0x50, 0xbf, 0x21, 0xda, 0x7e, 0xfc, 0x5e, 0x38, 0x90, 0x7a, 0x2f, 0x1c, 0xd0, 0x3f, - 0x85, 0x89, 0x88, 0x97, 0x67, 0xcf, 0x89, 0xed, 0x58, 0x72, 0xf6, 0xf0, 0xb5, 0x9c, 0x3d, 0x7c, - 0xdd, 0xcf, 0xb2, 0xcc, 0xc5, 0x59, 0xa6, 0xdb, 0x30, 0x37, 0xe2, 0x0e, 0xde, 0xe0, 0xc5, 0x2b, - 0x97, 0xbe, 0xf8, 0x2d, 0x28, 0xe0, 0x79, 0x3d, 0xb5, 0x03, 0x46, 0xee, 0x42, 0x0e, 0x6b, 0x6e, - 0x7c, 0x9e, 0x90, 0x9c, 0xa7, 0xe8, 0x02, 0x62, 0x57, 0xee, 0x02, 0x02, 0x31, 0x0e, 0x80, 0x88, - 0x7e, 0xda, 0x96, 0x0a, 0x15, 0x1f, 0x1c, 0x9b, 0x02, 0xa5, 0x96, 0xd4, 0x50, 0x70, 0x70, 0xec, - 0x6f, 0xa4, 0xdb, 0xca, 0xa4, 0x8c, 0x1b, 0xf7, 0x60, 0x06, 0xad, 0x3f, 0xa6, 0xfd, 0xc1, 0xea, - 0x8a, 0x2f, 0xd5, 0xb8, 0x0f, 0x45, 0x54, 0xdd, 0x76, 0x0e, 0xdd, 0xeb, 0xea, 0x7e, 0x08, 0x04, - 0x75, 0x1f, 0xd2, 0x36, 0x65, 0xf4, 0xba, 0xda, 0xbf, 0x51, 0xa2, 0x33, 0xe5, 0xa6, 0xaf, 0x5c, - 0x59, 0x9e, 0xc3, 0x8c, 0xd9, 0x64, 0xf6, 0x29, 0xad, 0x47, 0xed, 0x54, 0xe4, 0xa0, 0xba, 0x31, - 0x23, 0x0d, 0x0a, 0x9c, 0xb1, 0x76, 0xb3, 0xd7, 0x2d, 0x2f, 0x09, 0x59, 0x81, 0xca, 0xe7, 0x37, - 0x95, 0xda, 0x30, 0xbe, 0x54, 0x00, 0x12, 0xd5, 0x2b, 0x3b, 0x73, 0x0f, 0x54, 0xbc, 0x58, 0x8b, - 0x3b, 0x13, 0x60, 0x2a, 0x8d, 0x8b, 0xfa, 0x24, 0xe0, 0x27, 0x6e, 0xea, 0x45, 0x40, 0x82, 0x72, - 0xd5, 0x36, 0x35, 0x83, 0x58, 0x35, 0x9b, 0xa8, 0x0a, 0x78, 0x50, 0x35, 0x41, 0x8d, 0x97, 0x30, - 0x87, 0xe7, 0x76, 0xe0, 0x59, 0x26, 0x4b, 0xda, 0xf4, 0x07, 0xf2, 0x28, 0x9d, 0x4e, 0xca, 0x8b, - 0xe6, 0x86, 0x6b, 0xb4, 0xa1, 0x10, 0xb4, 0x9a, 0xc9, 0x9a, 0x47, 0xa3, 0xac, 0x7f, 0x0a, 0x53, - 0x87, 0xa6, 0xcd, 0x13, 0x38, 0xf5, 0x34, 0xb4, 0xc4, 0x8b, 0xb4, 0x82, 0xc8, 0x6e, 0xa1, 0xf2, - 0x6c, 0xf0, 0xb9, 0x4c, 0xca, 0x78, 0x3f, 0xde, 0x4d, 0x9f, 0x7e, 0x83, 0xf1, 0x0e, 0x58, 0xbf, - 0x3c, 0xde, 0xb4, 0xc2, 0xd5, 0xe3, 0x5d, 0xd7, 0x41, 0x95, 0xbe, 0xb7, 0x89, 0x0a, 0x13, 0xd1, - 0xb2, 0x38, 0xb6, 0x7e, 0x1b, 0x54, 0xe9, 0xc3, 0x8c, 0x4c, 0x42, 0x7e, 0xc7, 0xb5, 0xe8, 0xae, - 0xeb, 0xb3, 0xe2, 0x18, 0x5f, 0x7d, 0x4c, 0x4d, 0xab, 0xcd, 0x45, 0x95, 0xf5, 0xef, 0x43, 0x3e, - 0x9e, 0x72, 0x09, 0x40, 0xee, 0xd9, 0xc1, 0xd6, 0xc1, 0xd6, 0xc3, 0xe2, 0x18, 0xe7, 0xdb, 0xdd, - 0xda, 0x79, 0xb8, 0xbd, 0xf3, 0xb8, 0xa8, 0xf0, 0xc5, 0xde, 0xc1, 0xce, 0x0e, 0x5f, 0x64, 0x36, - 0xfe, 0x98, 0x87, 0x9c, 0x18, 0x18, 0xc8, 0x8f, 0x01, 0xc4, 0x5f, 0x98, 0xac, 0x0b, 0x23, 0xbf, - 0x94, 0xf4, 0xc5, 0xd1, 0x53, 0x86, 0xb1, 0xfc, 0xab, 0xbf, 0xfd, 0xeb, 0x77, 0x99, 0x39, 0x63, - 0xba, 0x7a, 0x7a, 0xa7, 0x7a, 0xec, 0x36, 0xa2, 0x7f, 0xde, 0xde, 0x57, 0xd6, 0xc9, 0x4f, 0x00, - 0x44, 0x01, 0x4c, 0xf3, 0xa6, 0x3e, 0x32, 0xf4, 0x25, 0x84, 0x87, 0x0b, 0xe5, 0x30, 0xb1, 0xa8, - 0x82, 0x9c, 0xf8, 0xe7, 0x30, 0xd9, 0x27, 0xde, 0xa7, 0x8c, 0x68, 0x52, 0x39, 0x48, 0xb3, 0x2f, - 0x56, 0xc4, 0xff, 0x7d, 0x2b, 0xf1, 0x3f, 0x74, 0x2b, 0x5b, 0xfc, 0x12, 0x8c, 0x15, 0x24, 0x5f, - 0x34, 0x66, 0x23, 0xf2, 0x80, 0x32, 0x89, 0xdf, 0x81, 0xa2, 0x3c, 0xdb, 0xa2, 0xfb, 0x37, 0x47, - 0x4f, 0xbd, 0xc2, 0xcc, 0xca, 0x45, 0x23, 0xb1, 0x51, 0x46, 0x63, 0xcb, 0xc6, 0x7c, 0x1c, 0x89, - 0x34, 0xde, 0x52, 0x6e, 0xef, 0x31, 0xa8, 0x22, 0x81, 0xc4, 0xe0, 0x25, 0x65, 0xf7, 0xb9, 0x01, - 0xcc, 0x23, 0xe7, 0xb4, 0x51, 0xe0, 0x9c, 0x98, 0x95, 0x9c, 0xa8, 0x09, 0x93, 0x12, 0x51, 0x40, - 0xa6, 0x13, 0x26, 0xde, 0xcc, 0xf4, 0x5b, 0xb8, 0x3e, 0x2f, 0xcf, 0x8d, 0x6f, 0x23, 0x69, 0xc9, - 0x58, 0xe6, 0xa4, 0x0d, 0x2e, 0x45, 0xad, 0x6a, 0x13, 0x65, 0xa2, 0xcc, 0xe7, 0x46, 0x76, 0x40, - 0x15, 0xcf, 0xfb, 0xea, 0xde, 0xde, 0x44, 0xe2, 0x05, 0xbd, 0xd8, 0xf7, 0xb6, 0xfa, 0x4b, 0x5e, - 0x54, 0x3f, 0x8f, 0x9c, 0x96, 0xf8, 0x2e, 0x77, 0x3a, 0x5d, 0x5b, 0x62, 0xa7, 0xf5, 0x94, 0xd3, - 0x21, 0xca, 0x48, 0x4e, 0xff, 0x14, 0x54, 0xd1, 0xb9, 0x84, 0xd3, 0x4b, 0x89, 0x8d, 0x54, 0x43, - 0x3b, 0x37, 0x02, 0x0d, 0xad, 0x90, 0xf5, 0xa1, 0x08, 0xc8, 0x23, 0xc8, 0x3f, 0xa6, 0x4c, 0xd0, - 0xce, 0x27, 0xb4, 0x49, 0x7b, 0xd6, 0xa5, 0x13, 0x8a, 0x79, 0xc8, 0x30, 0xcf, 0x73, 0x98, 0x8c, - 0x79, 0xb0, 0x2f, 0x2d, 0x24, 0x5a, 0x52, 0xbf, 0xd6, 0xa7, 0xd3, 0xb0, 0x71, 0x0b, 0x09, 0x97, - 0xc8, 0xc2, 0x20, 0x61, 0xd5, 0xe6, 0x2c, 0xf7, 0x21, 0xf7, 0x31, 0xfe, 0x48, 0x41, 0xce, 0x89, - 0x4c, 0x17, 0x8f, 0x47, 0x08, 0x6d, 0x1e, 0xd1, 0xe6, 0x49, 0xbf, 0x8a, 0x7d, 0xf6, 0xf5, 0x3f, - 0x4b, 0x63, 0x5f, 0xbc, 0x2a, 0x29, 0x7f, 0x79, 0x55, 0x52, 0xbe, 0x7a, 0x55, 0x52, 0xfe, 0xf1, - 0xaa, 0xa4, 0xfc, 0xf6, 0x75, 0x69, 0xec, 0xab, 0xd7, 0xa5, 0xb1, 0xaf, 0x5f, 0x97, 0xc6, 0x7e, - 0xf6, 0x5d, 0xe9, 0x77, 0x13, 0xd3, 0xef, 0x98, 0x96, 0xe9, 0xf9, 0x2e, 0x1f, 0xff, 0xa2, 0x55, - 0x35, 0xfa, 0xa1, 0xe4, 0xcb, 0xcc, 0xfc, 0x03, 0x04, 0x76, 0xc5, 0x76, 0x65, 0xdb, 0xad, 0x3c, - 0xf0, 0xec, 0x46, 0x0e, 0x7d, 0x79, 0xff, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x84, 0xe3, 0xac, - 0x15, 0xfa, 0x19, 0x00, 0x00, + // 2151 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6f, 0x1b, 0xd7, + 0x11, 0xd7, 0x92, 0x12, 0x45, 0xce, 0xea, 0x83, 0x7a, 0xfa, 0x5a, 0xad, 0x65, 0x52, 0xdd, 0x34, + 0xad, 0x2c, 0x34, 0x24, 0xac, 0x34, 0x80, 0xed, 0x06, 0x08, 0x4c, 0x89, 0x72, 0xe4, 0x18, 0xb4, + 0x2c, 0x59, 0x4d, 0xd2, 0x43, 0x99, 0x25, 0xf7, 0x89, 0x5a, 0x89, 0xdc, 0x5d, 0xef, 0x87, 0x0c, + 0xb5, 0x08, 0x10, 0xf4, 0x52, 0xf4, 0x56, 0xa0, 0xc7, 0x1e, 0xda, 0x73, 0xfa, 0x07, 0xf4, 0x5f, + 0xe8, 0xa9, 0x08, 0xd0, 0x4b, 0x7a, 0x21, 0x5a, 0xbb, 0x68, 0x01, 0xde, 0xfa, 0x1f, 0x14, 0x6f, + 0xde, 0x2e, 0xf7, 0x2d, 0x49, 0x7d, 0x19, 0x70, 0x73, 0xd3, 0xfb, 0xbd, 0x99, 0xdf, 0xcc, 0xbc, + 0x37, 0x6f, 0x66, 0x56, 0x84, 0x05, 0xe7, 0xb4, 0x55, 0xd6, 0x1d, 0xb3, 0xec, 0x05, 0x8d, 0x8e, + 0xe9, 0x97, 0x1c, 0xd7, 0xf6, 0x6d, 0x92, 0xd6, 0x1d, 0x53, 0xbd, 0xd5, 0xb2, 0xed, 0x56, 0x9b, + 0x96, 0x11, 0x6a, 0x04, 0x47, 0x65, 0xda, 0x71, 0xfc, 0x73, 0x2e, 0xa1, 0x6a, 0xa7, 0xf7, 0xbc, + 0x92, 0x69, 0xa3, 0x6a, 0xd3, 0x76, 0x69, 0xf9, 0xec, 0x6e, 0xb9, 0x45, 0x2d, 0xea, 0xea, 0x3e, + 0x35, 0x42, 0x99, 0xd5, 0x90, 0x80, 0xc9, 0xe8, 0x96, 0x65, 0xfb, 0xba, 0x6f, 0xda, 0x96, 0x17, + 0xee, 0xbe, 0xd7, 0x32, 0xfd, 0xe3, 0xa0, 0x51, 0x6a, 0xda, 0x9d, 0x72, 0xcb, 0x6e, 0xd9, 0xb1, + 0x1d, 0xb6, 0xc2, 0x05, 0xfe, 0x15, 0x8a, 0xf7, 0x1d, 0x3d, 0xa6, 0x7a, 0xdb, 0x3f, 0xe6, 0xa8, + 0xf6, 0x87, 0x1c, 0x2c, 0x3c, 0xb6, 0x1b, 0x07, 0xe8, 0xfc, 0x3e, 0x7d, 0x11, 0x50, 0xcf, 0xdf, + 0xf5, 0x69, 0x87, 0x6c, 0x42, 0xd6, 0x71, 0x4d, 0xdb, 0x35, 0xfd, 0x73, 0x45, 0x5a, 0x93, 0xd6, + 0xa5, 0xca, 0x52, 0xaf, 0x5b, 0x24, 0x11, 0xf6, 0x23, 0xbb, 0x63, 0xfa, 0x18, 0xcf, 0x7e, 0x5f, + 0x8e, 0x7c, 0x00, 0x39, 0x4b, 0xef, 0x50, 0xcf, 0xd1, 0x9b, 0x54, 0x49, 0xaf, 0x49, 0xeb, 0xb9, + 0xca, 0x72, 0xaf, 0x5b, 0x9c, 0xef, 0x83, 0x82, 0x56, 0x2c, 0x49, 0xde, 0x87, 0x5c, 0xb3, 0x6d, + 0x52, 0xcb, 0xaf, 0x9b, 0x86, 0x92, 0x45, 0x35, 0xb4, 0xc5, 0xc1, 0x5d, 0x43, 0xb4, 0x15, 0x61, + 0xe4, 0x00, 0x32, 0x6d, 0xbd, 0x41, 0xdb, 0x9e, 0x32, 0xbe, 0x96, 0x5e, 0x97, 0x37, 0xdf, 0x2d, + 0xe9, 0x8e, 0x59, 0x1a, 0x15, 0x4a, 0xe9, 0x09, 0xca, 0x55, 0x2d, 0xdf, 0x3d, 0xaf, 0x2c, 0xf4, + 0xba, 0xc5, 0x3c, 0x57, 0x14, 0x68, 0x43, 0x2a, 0xd2, 0x02, 0x59, 0x38, 0x67, 0x65, 0x02, 0x99, + 0x37, 0x2e, 0x66, 0x7e, 0x18, 0x0b, 0x73, 0xfa, 0x95, 0x5e, 0xb7, 0xb8, 0x28, 0x50, 0x08, 0x36, + 0x44, 0x66, 0xf2, 0x6b, 0x09, 0x16, 0x5c, 0xfa, 0x22, 0x30, 0x5d, 0x6a, 0xd4, 0x2d, 0xdb, 0xa0, + 0xf5, 0x30, 0x98, 0x0c, 0x9a, 0xbc, 0x7b, 0xb1, 0xc9, 0xfd, 0x50, 0xab, 0x66, 0x1b, 0x54, 0x0c, + 0x4c, 0xeb, 0x75, 0x8b, 0xab, 0xee, 0xd0, 0x66, 0xec, 0x80, 0x22, 0xed, 0x93, 0xe1, 0x7d, 0xf2, + 0x14, 0xb2, 0x8e, 0x6d, 0xd4, 0x3d, 0x87, 0x36, 0x95, 0xd4, 0x9a, 0xb4, 0x2e, 0x6f, 0xde, 0x2a, + 0xf1, 0xd4, 0x44, 0x1f, 0x58, 0x6a, 0x96, 0xce, 0xee, 0x96, 0xf6, 0x6c, 0xe3, 0xc0, 0xa1, 0x4d, + 0xbc, 0xcf, 0x39, 0x87, 0x2f, 0x12, 0xdc, 0x93, 0x21, 0x48, 0xf6, 0x20, 0x17, 0x11, 0x7a, 0xca, + 0x24, 0x86, 0x73, 0x29, 0x23, 0x4f, 0x2b, 0xbe, 0xf0, 0x12, 0x69, 0x15, 0x62, 0x64, 0x0b, 0x26, + 0x4d, 0xab, 0xe5, 0x52, 0xcf, 0x53, 0x72, 0xc8, 0x47, 0x90, 0x68, 0x97, 0x63, 0x5b, 0xb6, 0x75, + 0x64, 0xb6, 0x2a, 0x8b, 0xcc, 0xb1, 0x50, 0x4c, 0x60, 0x89, 0x34, 0xc9, 0x0e, 0x64, 0x3d, 0xea, + 0x9e, 0x99, 0x4d, 0xea, 0x29, 0x20, 0xb0, 0x1c, 0x70, 0x30, 0x64, 0x41, 0x67, 0x22, 0x39, 0xd1, + 0x99, 0x08, 0x63, 0x39, 0xee, 0x35, 0x8f, 0xa9, 0x11, 0xb4, 0xa9, 0xab, 0xc8, 0x71, 0x8e, 0xf7, + 0x41, 0x31, 0xc7, 0xfb, 0xa0, 0xaa, 0x83, 0x2c, 0xdc, 0x16, 0x79, 0x07, 0xd2, 0xa7, 0x94, 0x3f, + 0xac, 0x5c, 0x65, 0xae, 0xd7, 0x2d, 0x4e, 0x9f, 0x52, 0xf1, 0x4d, 0xb1, 0x5d, 0x72, 0x07, 0x26, + 0xce, 0xf4, 0x76, 0x40, 0xf1, 0x5e, 0x72, 0x95, 0xf9, 0x5e, 0xb7, 0x38, 0x8b, 0x80, 0x20, 0xc8, + 0x25, 0x1e, 0xa4, 0xee, 0x49, 0xea, 0x11, 0xe4, 0x07, 0xf3, 0xf1, 0xad, 0xd8, 0xe9, 0xc0, 0xf2, + 0x05, 0x49, 0xf8, 0x36, 0xcc, 0x69, 0xff, 0x4d, 0xc3, 0x74, 0xe2, 0xaa, 0xc9, 0x03, 0x18, 0xf7, + 0xcf, 0x1d, 0x8a, 0x66, 0x66, 0x36, 0xf3, 0x62, 0x32, 0x3c, 0x3f, 0x77, 0x28, 0xbe, 0xf1, 0x19, + 0x26, 0x91, 0x48, 0x50, 0xd4, 0x61, 0xc6, 0x1d, 0xdb, 0xf5, 0x3d, 0x25, 0xb5, 0x96, 0x5e, 0x9f, + 0xe6, 0xc6, 0x11, 0x10, 0x8d, 0x23, 0x40, 0xbe, 0x48, 0x16, 0x83, 0x34, 0x26, 0xcd, 0x3b, 0xc3, + 0xa9, 0xf7, 0xe6, 0x55, 0xe0, 0x3e, 0xc8, 0x7e, 0xdb, 0xab, 0x53, 0x4b, 0x6f, 0xb4, 0xa9, 0xa1, + 0x8c, 0xaf, 0x49, 0xeb, 0xd9, 0x8a, 0xd2, 0xeb, 0x16, 0x17, 0x7c, 0x76, 0xa2, 0x88, 0x0a, 0xba, + 0x10, 0xa3, 0x58, 0x33, 0xa9, 0xeb, 0xd7, 0x59, 0x15, 0x55, 0x26, 0x84, 0x9a, 0x49, 0x5d, 0xbf, + 0xa6, 0x77, 0x68, 0xa2, 0x66, 0x86, 0x18, 0xf9, 0x08, 0xa6, 0x03, 0x8f, 0xd6, 0x9b, 0xed, 0xc0, + 0xf3, 0xa9, 0xbb, 0xbb, 0xa7, 0x64, 0xd0, 0xa2, 0xda, 0xeb, 0x16, 0x97, 0x02, 0x8f, 0x6e, 0x45, + 0xb8, 0xa0, 0x3c, 0x25, 0xe2, 0xff, 0xaf, 0x14, 0xd3, 0x7c, 0x98, 0x4e, 0xbc, 0x4b, 0x72, 0x6f, + 0xc4, 0x95, 0x87, 0x12, 0x78, 0xe5, 0x64, 0xf8, 0xca, 0x6f, 0x7c, 0xe1, 0xda, 0xdf, 0x25, 0xc8, + 0x0f, 0xd6, 0x5c, 0xa6, 0xff, 0x22, 0xa0, 0x01, 0x0d, 0x03, 0x44, 0x7d, 0x04, 0x44, 0x7d, 0x04, + 0xc8, 0x8f, 0x01, 0x4e, 0xec, 0x46, 0xdd, 0xa3, 0xd8, 0xc8, 0x52, 0xf1, 0xa5, 0x9c, 0xd8, 0x8d, + 0x03, 0x3a, 0xd0, 0xc8, 0x22, 0x8c, 0x18, 0x30, 0xc7, 0xb4, 0x5c, 0x6e, 0xaf, 0xce, 0x04, 0xa2, + 0x64, 0x5b, 0xb9, 0xb0, 0x0d, 0x54, 0x6e, 0xf7, 0xba, 0xc5, 0x95, 0x13, 0xbb, 0x21, 0x60, 0x62, + 0x44, 0xb3, 0x03, 0x5b, 0xda, 0x5f, 0x79, 0x6c, 0x5b, 0xba, 0xd5, 0xa4, 0xed, 0x28, 0xb6, 0x0d, + 0xc8, 0x30, 0xd3, 0xa6, 0x21, 0x06, 0x77, 0x62, 0x37, 0x12, 0x9e, 0x4e, 0x20, 0xf0, 0x86, 0xc1, + 0xf5, 0x4f, 0x2f, 0x7d, 0xe5, 0xe9, 0xbd, 0x07, 0x93, 0xdc, 0x19, 0xde, 0xd1, 0x73, 0xbc, 0x55, + 0xa3, 0xf1, 0x44, 0xab, 0xe6, 0x88, 0xf6, 0x67, 0x09, 0xe6, 0x1f, 0xa3, 0x99, 0x64, 0x4c, 0x49, + 0x3f, 0xa5, 0x9b, 0xfa, 0x99, 0xba, 0xd2, 0xcf, 0x8f, 0x20, 0x73, 0x64, 0xb6, 0x7d, 0xea, 0x62, + 0x4c, 0xf2, 0xe6, 0x5c, 0xff, 0x92, 0xa8, 0xbf, 0x83, 0x1b, 0xdc, 0x73, 0x2e, 0x24, 0x7a, 0xce, + 0x11, 0xed, 0x13, 0x98, 0x12, 0xa5, 0xc9, 0x4f, 0x20, 0xe3, 0xf9, 0xba, 0x4f, 0x3d, 0x45, 0x5a, + 0x4b, 0xaf, 0xcf, 0x6c, 0x4e, 0xf7, 0x09, 0x19, 0xca, 0xc9, 0xb8, 0x80, 0x48, 0xc6, 0x11, 0xed, + 0xdf, 0x12, 0x2c, 0x3d, 0x66, 0x77, 0x1d, 0x0e, 0x61, 0xe6, 0x2f, 0x68, 0x74, 0x12, 0xc2, 0x81, + 0x4a, 0x57, 0x1f, 0xe8, 0xdb, 0xbf, 0xe0, 0x0f, 0x61, 0xca, 0xa2, 0x2f, 0xeb, 0xfd, 0xa9, 0x72, + 0x1c, 0xa7, 0x4a, 0xac, 0x95, 0x16, 0x7d, 0xb9, 0x37, 0x3c, 0x58, 0xca, 0x02, 0xac, 0xfd, 0x29, + 0x05, 0xcb, 0x43, 0x81, 0x7a, 0x8e, 0x6d, 0x79, 0x94, 0xfc, 0x5e, 0x02, 0xc5, 0x8d, 0x37, 0xb0, + 0x3a, 0xd5, 0x5d, 0xea, 0x05, 0x6d, 0x9f, 0xc7, 0x2e, 0x6f, 0xde, 0x8f, 0x0e, 0x75, 0x14, 0x41, + 0x69, 0x7f, 0x40, 0x79, 0x9f, 0xeb, 0xf2, 0x6a, 0xfe, 0x6e, 0xaf, 0x5b, 0xfc, 0x9e, 0x3b, 0x5a, + 0x42, 0xf0, 0x76, 0xf9, 0x02, 0x11, 0xd5, 0x85, 0xd5, 0xcb, 0xf8, 0xdf, 0x4a, 0x01, 0xb5, 0x60, + 0x51, 0x28, 0x1b, 0x3c, 0x4a, 0x1c, 0xeb, 0x6f, 0xf2, 0xe4, 0xef, 0xc0, 0x04, 0x75, 0x5d, 0xdb, + 0x15, 0x6d, 0x22, 0x20, 0x8a, 0x22, 0xa0, 0x7d, 0x09, 0x73, 0x43, 0xf6, 0xc8, 0x31, 0x10, 0x5e, + 0xd9, 0xf8, 0x3a, 0x2c, 0x6d, 0xfc, 0x3e, 0xd4, 0xc1, 0xd2, 0x16, 0xfb, 0x58, 0x29, 0xf4, 0xba, + 0x45, 0x15, 0x0b, 0x58, 0x0c, 0x8a, 0x27, 0x9d, 0x1f, 0xdc, 0xd3, 0xbe, 0xca, 0xc0, 0xc4, 0x33, + 0x4c, 0xb2, 0x1f, 0xc0, 0x38, 0xb6, 0x44, 0x1e, 0x1d, 0xb6, 0x05, 0x2b, 0xd9, 0x0e, 0x71, 0x9f, + 0x54, 0x61, 0x36, 0x4a, 0xc4, 0xfa, 0x91, 0xde, 0xf4, 0xc3, 0x28, 0xa5, 0xca, 0x6a, 0xaf, 0x5b, + 0x54, 0xa2, 0xad, 0x1d, 0xdc, 0x11, 0x94, 0x67, 0x92, 0x3b, 0xac, 0x83, 0x07, 0x1e, 0x75, 0xeb, + 0xf6, 0x4b, 0x8b, 0xba, 0xbc, 0x6c, 0xe7, 0x78, 0x07, 0x67, 0xf0, 0x53, 0x44, 0xc5, 0x0e, 0x1e, + 0xa3, 0xec, 0x39, 0xb4, 0x5c, 0x3b, 0x70, 0x22, 0x5d, 0x5e, 0xf4, 0xf0, 0x39, 0x20, 0x3e, 0xa4, + 0x2c, 0x0b, 0x30, 0xa1, 0x30, 0xeb, 0x52, 0xcf, 0x0e, 0xdc, 0x26, 0xad, 0xb7, 0xcd, 0x8e, 0xe9, + 0x47, 0x5f, 0x2b, 0x05, 0x3c, 0x58, 0x3c, 0x8c, 0xd2, 0x7e, 0x28, 0xf1, 0x04, 0x05, 0x78, 0x36, + 0x63, 0x7c, 0x6e, 0x62, 0x43, 0x8c, 0x2f, 0xb9, 0x43, 0x0e, 0x40, 0x76, 0xa8, 0xdb, 0x31, 0x3d, + 0x0f, 0x67, 0x20, 0xfe, 0x75, 0xb2, 0x24, 0x98, 0xd8, 0x8b, 0x77, 0xb9, 0xef, 0x82, 0xb8, 0xe8, + 0xbb, 0x00, 0xab, 0xff, 0x91, 0x40, 0x16, 0xf4, 0xc8, 0x3e, 0x64, 0xbd, 0xa0, 0x71, 0x42, 0x9b, + 0xfd, 0xd7, 0x5a, 0x18, 0x6d, 0xa1, 0x74, 0xc0, 0xc5, 0xc2, 0x31, 0x3d, 0xd4, 0x49, 0x8c, 0xe9, + 0x21, 0x86, 0xef, 0x85, 0xba, 0x0d, 0xde, 0xf6, 0xa3, 0xf7, 0xc2, 0x80, 0xc4, 0x7b, 0x61, 0x80, + 0xfa, 0x39, 0x4c, 0x86, 0xbc, 0x2c, 0x7b, 0x4e, 0x4d, 0xcb, 0x10, 0xb3, 0x87, 0xad, 0xc5, 0xec, + 0x61, 0xeb, 0x7e, 0x96, 0xa5, 0x2e, 0xcf, 0x32, 0xd5, 0x84, 0xf9, 0x11, 0x77, 0xf0, 0x06, 0x2f, + 0x5e, 0xba, 0xf2, 0xc5, 0x57, 0x21, 0x87, 0xe7, 0xf5, 0xc4, 0xf4, 0x7c, 0x72, 0x0f, 0x32, 0x58, + 0x73, 0xa3, 0xf3, 0x84, 0xf8, 0x3c, 0x79, 0x17, 0xe0, 0xbb, 0x62, 0x17, 0xe0, 0x88, 0x76, 0x08, + 0x84, 0xf7, 0xd3, 0xb6, 0x50, 0xa8, 0xd8, 0xe0, 0xd8, 0xe4, 0x28, 0x35, 0x84, 0x86, 0x82, 0x83, + 0x63, 0x7f, 0x23, 0xd9, 0x56, 0xa6, 0x44, 0x5c, 0xbb, 0x0f, 0xb3, 0x68, 0xfd, 0x11, 0xed, 0x0f, + 0x56, 0xd7, 0x7c, 0xa9, 0xda, 0x03, 0xc8, 0xa3, 0xea, 0xae, 0x75, 0x64, 0xdf, 0x54, 0xf7, 0x43, + 0x20, 0xa8, 0xbb, 0x4d, 0xdb, 0xd4, 0xa7, 0x37, 0xd5, 0xfe, 0x8d, 0x14, 0x9e, 0x29, 0x33, 0x7d, + 0xed, 0xca, 0xf2, 0x1c, 0x66, 0xf5, 0xa6, 0x6f, 0x9e, 0xd1, 0x7a, 0xd8, 0x4e, 0x79, 0x0e, 0xca, + 0x9b, 0xb3, 0xc2, 0xa0, 0xc0, 0x18, 0x2b, 0xb7, 0x7a, 0xdd, 0xe2, 0x32, 0x97, 0xe5, 0xa8, 0x78, + 0x7e, 0xd3, 0x89, 0x0d, 0xed, 0x6b, 0x09, 0x20, 0x56, 0xbd, 0xb6, 0x33, 0xf7, 0x41, 0xc6, 0x8b, + 0x35, 0x98, 0x33, 0x1e, 0xa6, 0xd2, 0x04, 0xaf, 0x4f, 0x1c, 0x7e, 0x6c, 0x27, 0x5e, 0x04, 0xc4, + 0x28, 0x53, 0x6d, 0x53, 0xdd, 0x8b, 0x54, 0xd3, 0xb1, 0x2a, 0x87, 0x07, 0x55, 0x63, 0x54, 0x7b, + 0x09, 0xf3, 0x78, 0x6e, 0x87, 0x8e, 0xa1, 0xfb, 0x71, 0x9b, 0xfe, 0x40, 0x1c, 0xa5, 0x93, 0x49, + 0x79, 0xd9, 0xdc, 0x70, 0x83, 0x36, 0x14, 0x80, 0x52, 0xd1, 0xfd, 0xe6, 0xf1, 0x28, 0xeb, 0x9f, + 0xc3, 0xf4, 0x91, 0x6e, 0xb2, 0x04, 0x4e, 0x3c, 0x0d, 0x25, 0xf6, 0x22, 0xa9, 0xc0, 0xb3, 0x9b, + 0xab, 0x3c, 0x1b, 0x7c, 0x2e, 0x53, 0x22, 0xde, 0x8f, 0x77, 0xcb, 0xa5, 0xdf, 0x61, 0xbc, 0x03, + 0xd6, 0xaf, 0x8e, 0x37, 0xa9, 0x70, 0xfd, 0x78, 0x37, 0x54, 0x90, 0x85, 0xef, 0x6d, 0x22, 0xc3, + 0x64, 0xb8, 0xcc, 0x8f, 0x6d, 0xdc, 0x01, 0x59, 0xf8, 0x30, 0x23, 0x53, 0x90, 0xad, 0xd9, 0x06, + 0xdd, 0xb3, 0x5d, 0x3f, 0x3f, 0xc6, 0x56, 0x1f, 0x53, 0xdd, 0x68, 0x33, 0x51, 0x69, 0xe3, 0x33, + 0xc8, 0x46, 0x53, 0x2e, 0x01, 0xc8, 0x3c, 0x3b, 0xac, 0x1e, 0x56, 0xb7, 0xf3, 0x63, 0x8c, 0x6f, + 0xaf, 0x5a, 0xdb, 0xde, 0xad, 0x3d, 0xca, 0x4b, 0x6c, 0xb1, 0x7f, 0x58, 0xab, 0xb1, 0x45, 0x8a, + 0x4c, 0x43, 0xee, 0xe0, 0x70, 0x6b, 0xab, 0x5a, 0xdd, 0xae, 0x6e, 0xe7, 0xd3, 0x4c, 0x69, 0xe7, + 0xe1, 0xee, 0x93, 0xea, 0x76, 0x7e, 0x9c, 0xc9, 0x1d, 0xd6, 0x3e, 0xa9, 0x3d, 0xfd, 0xb4, 0x96, + 0x9f, 0xd8, 0xfc, 0x63, 0x16, 0x32, 0x7c, 0xb0, 0x20, 0x3f, 0x05, 0xe0, 0x7f, 0x61, 0x52, 0x2f, + 0x8e, 0xfc, 0xa2, 0x52, 0x97, 0x46, 0x4f, 0x23, 0xda, 0xca, 0xaf, 0xfe, 0xf6, 0xaf, 0xdf, 0xa5, + 0xe6, 0xb5, 0x99, 0xf2, 0xd9, 0xdd, 0xf2, 0x89, 0xdd, 0x08, 0xff, 0xc9, 0xfb, 0x40, 0xda, 0x20, + 0x9f, 0x02, 0xf0, 0x42, 0x99, 0xe4, 0x4d, 0x7c, 0x8c, 0xa8, 0xcb, 0x08, 0x0f, 0x17, 0xd4, 0x61, + 0x62, 0x5e, 0x2d, 0x19, 0xf1, 0xcf, 0x61, 0xaa, 0x4f, 0x7c, 0x40, 0x7d, 0xa2, 0x08, 0x65, 0x23, + 0xc9, 0xbe, 0x54, 0xe2, 0xff, 0x1f, 0x2e, 0x45, 0xff, 0xf8, 0x2d, 0x55, 0xd9, 0x65, 0x69, 0xab, + 0x48, 0xbe, 0xa4, 0xcd, 0x85, 0xe4, 0x1e, 0xf5, 0x05, 0x7e, 0x0b, 0xf2, 0xe2, 0x0c, 0x8c, 0xee, + 0xdf, 0x1a, 0x3d, 0x1d, 0x73, 0x33, 0xab, 0x97, 0x8d, 0xce, 0x5a, 0x11, 0x8d, 0xad, 0x68, 0x0b, + 0x51, 0x24, 0xc2, 0x18, 0x4c, 0x99, 0xbd, 0x47, 0x20, 0xf3, 0x44, 0xe3, 0x03, 0x9a, 0xf0, 0x0a, + 0x2e, 0x0c, 0x60, 0x01, 0x39, 0x67, 0xb4, 0x1c, 0xe3, 0xc4, 0xec, 0x65, 0x44, 0x4d, 0x98, 0x12, + 0x88, 0x3c, 0x32, 0x13, 0x33, 0xb1, 0xa6, 0xa7, 0xde, 0xc6, 0xf5, 0x45, 0xef, 0x41, 0xfb, 0x3e, + 0x92, 0x16, 0xb4, 0x15, 0x46, 0xda, 0x60, 0x52, 0xd4, 0x28, 0x37, 0x51, 0x26, 0x7c, 0x21, 0xcc, + 0x48, 0x0d, 0x64, 0x5e, 0x06, 0xae, 0xef, 0xed, 0x2d, 0x24, 0x5e, 0x54, 0xf3, 0x7d, 0x6f, 0xcb, + 0xbf, 0x64, 0xc5, 0xf7, 0xcb, 0xd0, 0x69, 0x81, 0xef, 0x6a, 0xa7, 0x93, 0x35, 0x28, 0x72, 0x5a, + 0x4d, 0x38, 0x1d, 0xa0, 0x8c, 0xe0, 0xf4, 0x67, 0x20, 0xf3, 0x0e, 0xc7, 0x9d, 0x5e, 0x8e, 0x6d, + 0x24, 0x1a, 0xdf, 0x85, 0x11, 0x28, 0x68, 0x85, 0x6c, 0x0c, 0x45, 0x40, 0x76, 0x20, 0xfb, 0x88, + 0xfa, 0x9c, 0x76, 0x21, 0xa6, 0x8d, 0xdb, 0xb8, 0x2a, 0x9c, 0x50, 0xc4, 0x43, 0x86, 0x79, 0x9e, + 0xc3, 0x54, 0xc4, 0x83, 0xfd, 0x6b, 0x31, 0xd6, 0x12, 0xfa, 0xba, 0x3a, 0x93, 0x84, 0xb5, 0xdb, + 0x48, 0xb8, 0x4c, 0x16, 0x07, 0x09, 0xcb, 0x26, 0x63, 0x79, 0x00, 0x99, 0x8f, 0xf1, 0xc7, 0x0c, + 0x72, 0x41, 0x64, 0x2a, 0x7f, 0x3c, 0x5c, 0x68, 0xeb, 0x98, 0x36, 0x4f, 0xfb, 0xd5, 0xee, 0x8b, + 0x6f, 0xff, 0x59, 0x18, 0xfb, 0xea, 0x55, 0x41, 0xfa, 0xcb, 0xab, 0x82, 0xf4, 0xcd, 0xab, 0x82, + 0xf4, 0x8f, 0x57, 0x05, 0xe9, 0xb7, 0xaf, 0x0b, 0x63, 0xdf, 0xbc, 0x2e, 0x8c, 0x7d, 0xfb, 0xba, + 0x30, 0xf6, 0xb3, 0x1f, 0x0a, 0xbf, 0xaf, 0xe8, 0x6e, 0x47, 0x37, 0x74, 0xc7, 0xb5, 0xd9, 0x98, + 0x18, 0xae, 0xca, 0xe1, 0x0f, 0x2a, 0x5f, 0xa7, 0x16, 0x1e, 0x22, 0xb0, 0xc7, 0xb7, 0x4b, 0xbb, + 0x76, 0xe9, 0xa1, 0x63, 0x36, 0x32, 0xe8, 0xcb, 0xfb, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xb7, + 0x18, 0x77, 0xdf, 0x22, 0x1a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/pkg/api/submit.proto b/pkg/api/submit.proto index 4b08af9088d..6943c337101 100644 --- a/pkg/api/submit.proto +++ b/pkg/api/submit.proto @@ -87,6 +87,9 @@ enum JobState { QUEUED = 0; PENDING = 1; RUNNING = 2; + SUCCEEDED = 3; + FAILED = 4; + UNKNOWN = 5; } // swagger:model diff --git a/pkg/api/util.go b/pkg/api/util.go index 72c44f6c8ca..8d7706a7110 100644 --- a/pkg/api/util.go +++ b/pkg/api/util.go @@ -35,6 +35,11 @@ func NewNodeFromNodeInfo(nodeInfo *NodeInfo, executor string, allowedPriorities for p, rs := range nodeInfo.AllocatedResources { allocatableByPriorityAndResource.MarkAllocated(p, schedulerobjects.ResourceList{Resources: rs.Resources}) } + + jobRunsByState := make(map[string]schedulerobjects.JobRunState) + for jobId, state := range nodeInfo.RunIdsByState { + jobRunsByState[jobId] = JobRunStateFromApiJobState(state) + } return &schedulerobjects.Node{ Id: fmt.Sprintf("%s-%s", executor, nodeInfo.Name), LastSeen: lastSeen, @@ -42,10 +47,28 @@ func NewNodeFromNodeInfo(nodeInfo *NodeInfo, executor string, allowedPriorities Labels: nodeInfo.GetLabels(), TotalResources: schedulerobjects.ResourceList{Resources: nodeInfo.TotalResources}, AllocatableByPriorityAndResource: allocatableByPriorityAndResource, - JobRuns: nodeInfo.RunIds, + JobRunsByState: jobRunsByState, }, nil } +func JobRunStateFromApiJobState(s JobState) schedulerobjects.JobRunState { + switch s { + case JobState_QUEUED: + return schedulerobjects.JobRunState_UNKNOWN + case JobState_PENDING: + return schedulerobjects.JobRunState_PENDING + case JobState_RUNNING: + return schedulerobjects.JobRunState_RUNNING + case JobState_SUCCEEDED: + return schedulerobjects.JobRunState_SUCCEEDED + case JobState_FAILED: + return schedulerobjects.JobRunState_FAILED + case JobState_UNKNOWN: + return schedulerobjects.JobRunState_UNKNOWN + } + return schedulerobjects.JobRunState_UNKNOWN +} + func NewNodeTypeFromNodeInfo(nodeInfo *NodeInfo, indexedTaints map[string]interface{}, indexedLabels map[string]interface{}) *schedulerobjects.NodeType { return schedulerobjects.NewNodeType(nodeInfo.GetTaints(), nodeInfo.GetLabels(), indexedTaints, indexedLabels) }