From 2761eb661d6da45d547d9a9b295efceff7c17a8d Mon Sep 17 00:00:00 2001 From: Chris Martin Date: Sat, 14 Sep 2024 18:16:52 +0100 Subject: [PATCH 1/3] remove proto uuid Signed-off-by: Chris Martin --- internal/common/eventutil/eventutil_test.go | 7 +- .../common/ingest/ingestion_pipeline_test.go | 29 +- internal/common/ingest/testfixtures/event.go | 15 +- internal/common/proto/protoutil_test.go | 2 +- internal/executor/job/util.go | 15 +- internal/executor/reporter/event.go | 80 +- internal/executor/service/job_requester.go | 34 +- .../executor/service/job_requester_test.go | 69 +- internal/executor/service/lease_requester.go | 32 +- .../executor/service/lease_requester_test.go | 67 +- .../service/pod_issue_handler_test.go | 9 +- internal/executor/service/util.go | 13 +- internal/executor/service/util_test.go | 34 +- internal/executor/util/kubernetes_object.go | 14 +- .../executor/util/kubernetes_objects_test.go | 40 +- internal/executor/util/uuid.go | 19 - internal/executor/util/uuid_test.go | 45 - internal/lookoutv2/repository/util.go | 63 +- internal/scheduler/api.go | 27 +- internal/scheduler/api_test.go | 19 +- internal/scheduler/publisher.go | 1 - internal/scheduler/scheduler.go | 66 +- internal/scheduler/scheduler_test.go | 35 +- internal/scheduler/simulator/simulator.go | 27 +- .../scheduler/testfixtures/testfixtures.go | 4 +- internal/scheduleringester/instructions.go | 4 +- .../event/conversion/conversions_test.go | 21 - .../server/submit/conversion/conversions.go | 8 +- .../submit/conversion/conversions_test.go | 2 +- .../server/submit/conversion/post_process.go | 6 +- .../submit/conversion/post_process_test.go | 13 +- internal/server/submit/submit.go | 45 +- .../submit/testfixtures/test_fixtures.go | 15 +- pkg/armadaevents/events.pb.go | 2924 ++--------------- pkg/armadaevents/events.proto | 51 - pkg/armadaevents/uuid.go | 121 - pkg/armadaevents/uuid_test.go | 41 - pkg/executorapi/executorapi.pb.go | 450 +-- pkg/executorapi/executorapi.proto | 5 - 39 files changed, 709 insertions(+), 3763 deletions(-) delete mode 100644 internal/executor/util/uuid.go delete mode 100644 internal/executor/util/uuid_test.go delete mode 100644 pkg/armadaevents/uuid.go delete mode 100644 pkg/armadaevents/uuid_test.go diff --git a/internal/common/eventutil/eventutil_test.go b/internal/common/eventutil/eventutil_test.go index 3d68c4c8f86..c3e06e3935e 100644 --- a/internal/common/eventutil/eventutil_test.go +++ b/internal/common/eventutil/eventutil_test.go @@ -258,10 +258,7 @@ func TestCompactSequences_Groups(t *testing.T) { } func TestSequenceEventListSizeBytes(t *testing.T) { - jobId, err := armadaevents.ProtoUuidFromUlidString(util.ULID().String()) - if !assert.NoError(t, err) { - return - } + jobId := util.NewULID() sequence := &armadaevents.EventSequence{ Queue: "", @@ -272,7 +269,7 @@ func TestSequenceEventListSizeBytes(t *testing.T) { { Event: &armadaevents.EventSequence_Event_CancelledJob{ CancelledJob: &armadaevents.CancelledJob{ - JobId: jobId, + JobIdStr: jobId, }, }, }, diff --git a/internal/common/ingest/ingestion_pipeline_test.go b/internal/common/ingest/ingestion_pipeline_test.go index 9082f40ac16..a3705537ff7 100644 --- a/internal/common/ingest/ingestion_pipeline_test.go +++ b/internal/common/ingest/ingestion_pipeline_test.go @@ -6,7 +6,6 @@ import ( "github.com/apache/pulsar-client-go/pulsar" "github.com/gogo/protobuf/proto" - "github.com/google/uuid" "github.com/stretchr/testify/assert" "github.com/armadaproject/armada/internal/common/armadacontext" @@ -18,15 +17,13 @@ import ( ) const ( - jobIdString = "01f3j0g1md4qx7z5qb148qnh4r" - runIdString = "123e4567-e89b-12d3-a456-426614174000" + jobId = "01f3j0g1md4qx7z5qb148qnh4r" + runId = "123e4567-e89b-12d3-a456-426614174000" batchSize = 3 batchDuration = 5 * time.Second ) var ( - jobIdProto, _ = armadaevents.ProtoUuidFromUlidString(jobIdString) - runIdProto = armadaevents.ProtoUuidFromUuid(uuid.MustParse(runIdString)) baseTime, _ = time.Parse("2006-01-02T15:04:05.000Z", "2022-03-01T15:04:05.000Z") baseTimeProto = protoutil.ToTimestamp(baseTime) testMetrics = metrics.NewMetrics("test") @@ -41,8 +38,8 @@ var succeeded = &armadaevents.EventSequence{ Created: baseTimeProto, Event: &armadaevents.EventSequence_Event_JobRunSucceeded{ JobRunSucceeded: &armadaevents.JobRunSucceeded{ - RunId: runIdProto, - JobId: jobIdProto, + RunIdStr: runId, + JobIdStr: jobId, }, }, }, @@ -58,8 +55,8 @@ var pendingAndRunning = &armadaevents.EventSequence{ Created: baseTimeProto, Event: &armadaevents.EventSequence_Event_JobRunLeased{ JobRunLeased: &armadaevents.JobRunLeased{ - RunId: runIdProto, - JobId: jobIdProto, + RunIdStr: runId, + JobIdStr: jobId, ExecutorId: "k8sId1", }, }, @@ -68,8 +65,8 @@ var pendingAndRunning = &armadaevents.EventSequence{ Created: baseTimeProto, Event: &armadaevents.EventSequence_Event_JobRunRunning{ JobRunRunning: &armadaevents.JobRunRunning{ - RunId: runIdProto, - JobId: jobIdProto, + RunIdStr: runId, + JobIdStr: jobId, }, }, }, @@ -85,8 +82,8 @@ var failed = &armadaevents.EventSequence{ Created: baseTimeProto, Event: &armadaevents.EventSequence_Event_JobRunErrors{ JobRunErrors: &armadaevents.JobRunErrors{ - RunId: runIdProto, - JobId: jobIdProto, + RunIdStr: runId, + JobIdStr: jobId, Errors: []*armadaevents.Error{ { Terminal: true, @@ -100,7 +97,7 @@ var failed = &armadaevents.EventSequence{ Created: baseTimeProto, Event: &armadaevents.EventSequence_Event_JobErrors{ JobErrors: &armadaevents.JobErrors{ - JobId: jobIdProto, + JobIdStr: jobId, Errors: []*armadaevents.Error{ { Terminal: true, @@ -372,8 +369,8 @@ func generateEventSequence(numberOfEvents int) *armadaevents.EventSequence { Created: baseTimeProto, Event: &armadaevents.EventSequence_Event_JobRunSucceeded{ JobRunSucceeded: &armadaevents.JobRunSucceeded{ - RunId: runIdProto, - JobId: jobIdProto, + RunIdStr: runId, + JobIdStr: jobId, }, }, }) diff --git a/internal/common/ingest/testfixtures/event.go b/internal/common/ingest/testfixtures/event.go index 9de71d3834d..599ddcd86db 100644 --- a/internal/common/ingest/testfixtures/event.go +++ b/internal/common/ingest/testfixtures/event.go @@ -23,12 +23,11 @@ const ( ) var ( - PartitionMarkerGroupIdProto = armadaevents.ProtoUuidFromUuid(uuid.MustParse(PartitionMarkerGroupIdString)) - PartitionMarkerGroupIdUuid = armadaevents.UuidFromProtoUuid(PartitionMarkerGroupIdProto) - PriorityClassName = "test-priority" - Groups = []string{"group1", "group2"} - NodeSelector = map[string]string{"foo": "bar"} - Affinity = &v1.Affinity{ + PartitionMarkerGroupIdUuid = uuid.MustParse(PartitionMarkerGroupIdString) + PriorityClassName = "test-priority" + Groups = []string{"group1", "group2"} + NodeSelector = map[string]string{"foo": "bar"} + Affinity = &v1.Affinity{ NodeAffinity: &v1.NodeAffinity{ RequiredDuringSchedulingIgnoredDuringExecution: &v1.NodeSelector{ NodeSelectorTerms: []v1.NodeSelectorTerm{ @@ -317,8 +316,8 @@ var PartitionMarker = &armadaevents.EventSequence_Event{ Created: testfixtures.BasetimeProto, Event: &armadaevents.EventSequence_Event_PartitionMarker{ PartitionMarker: &armadaevents.PartitionMarker{ - GroupId: PartitionMarkerGroupIdProto, - Partition: PartitionMarkerPartitionId, + GroupIdStr: PartitionMarkerGroupIdString, + Partition: PartitionMarkerPartitionId, }, }, } diff --git a/internal/common/proto/protoutil_test.go b/internal/common/proto/protoutil_test.go index 6d384f32cb7..9d0bf7ef56b 100644 --- a/internal/common/proto/protoutil_test.go +++ b/internal/common/proto/protoutil_test.go @@ -16,7 +16,7 @@ import ( ) var ( - msg = &armadaevents.CancelJob{JobId: armadaevents.ProtoUuidFromUuid(uuid.New())} + msg = &armadaevents.CancelJob{JobIdStr: uuid.NewString()} compressor = compress.NewThreadSafeZlibCompressor(1024) decompressor = compress.NewThreadSafeZlibDecompressor() marshalledMsg, _ = proto.Marshal(msg) diff --git a/internal/executor/job/util.go b/internal/executor/job/util.go index 3676efc3282..9adbed8bf1d 100644 --- a/internal/executor/job/util.go +++ b/internal/executor/job/util.go @@ -7,7 +7,6 @@ import ( "github.com/armadaproject/armada/internal/executor/configuration" util2 "github.com/armadaproject/armada/internal/executor/util" - "github.com/armadaproject/armada/pkg/armadaevents" "github.com/armadaproject/armada/pkg/executorapi" ) @@ -20,19 +19,9 @@ func CreateSubmitJobFromExecutorApiJobRunLease( return nil, err } - jobId, err := armadaevents.UlidStringFromProtoUuid(jobRunLease.Job.JobId) - if err != nil { - return nil, err - } - - runId, err := armadaevents.UuidStringFromProtoUuid(jobRunLease.JobRunId) - if err != nil { - return nil, err - } - runMeta := &RunMeta{ - JobId: jobId, - RunId: runId, + JobId: jobRunLease.Job.JobIdStr, + RunId: jobRunLease.JobRunIdStr, JobSet: jobRunLease.Jobset, Queue: jobRunLease.Queue, } diff --git a/internal/executor/reporter/event.go b/internal/executor/reporter/event.go index 81cce011ff8..78eb75c0be7 100644 --- a/internal/executor/reporter/event.go +++ b/internal/executor/reporter/event.go @@ -29,10 +29,8 @@ func CreateEventForCurrentState(pod *v1.Pod, clusterId string) (*armadaevents.Ev Created: now, Event: &armadaevents.EventSequence_Event_JobRunAssigned{ JobRunAssigned: &armadaevents.JobRunAssigned{ - RunId: runId, - RunIdStr: armadaevents.MustUuidStringFromProtoUuid(runId), - JobId: jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + RunIdStr: runId, + JobIdStr: jobId, ResourceInfos: []*armadaevents.KubernetesResourceInfo{ { ObjectMeta: &armadaevents.ObjectMeta{ @@ -57,10 +55,8 @@ func CreateEventForCurrentState(pod *v1.Pod, clusterId string) (*armadaevents.Ev Created: now, Event: &armadaevents.EventSequence_Event_JobRunRunning{ JobRunRunning: &armadaevents.JobRunRunning{ - RunId: runId, - RunIdStr: armadaevents.MustUuidStringFromProtoUuid(runId), - JobId: jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + RunIdStr: runId, + JobIdStr: jobId, ResourceInfos: []*armadaevents.KubernetesResourceInfo{ { ObjectMeta: &armadaevents.ObjectMeta{ @@ -94,10 +90,8 @@ func CreateEventForCurrentState(pod *v1.Pod, clusterId string) (*armadaevents.Ev Created: now, Event: &armadaevents.EventSequence_Event_JobRunSucceeded{ JobRunSucceeded: &armadaevents.JobRunSucceeded{ - RunId: runId, - RunIdStr: armadaevents.MustUuidStringFromProtoUuid(runId), - JobId: jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + RunIdStr: runId, + JobIdStr: jobId, ResourceInfos: []*armadaevents.KubernetesResourceInfo{ { ObjectMeta: &armadaevents.ObjectMeta{ @@ -170,10 +164,8 @@ func CreateJobIngressInfoEvent(pod *v1.Pod, clusterId string, associatedServices Created: types.TimestampNow(), Event: &armadaevents.EventSequence_Event_StandaloneIngressInfo{ StandaloneIngressInfo: &armadaevents.StandaloneIngressInfo{ - RunId: runId, - RunIdStr: armadaevents.MustUuidStringFromProtoUuid(runId), - JobId: jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + RunIdStr: runId, + JobIdStr: jobId, ObjectMeta: &armadaevents.ObjectMeta{ KubernetesId: string(pod.ObjectMeta.UID), Namespace: pod.Namespace, @@ -201,10 +193,8 @@ func CreateSimpleJobPreemptedEvent(pod *v1.Pod) (*armadaevents.EventSequence, er Created: types.TimestampNow(), Event: &armadaevents.EventSequence_Event_JobRunPreempted{ JobRunPreempted: &armadaevents.JobRunPreempted{ - PreemptedJobId: preemptedJobId, - PreemptedJobIdStr: armadaevents.MustUlidStringFromProtoUuid(preemptedJobId), - PreemptedRunId: preemptedRunId, - PreemptedRunIdStr: armadaevents.MustUuidStringFromProtoUuid(preemptedRunId), + PreemptedJobIdStr: preemptedJobId, + PreemptedRunIdStr: preemptedRunId, }, }, }) @@ -228,10 +218,8 @@ func CreateJobFailedEvent(pod *v1.Pod, reason string, cause armadaevents.Kuberne Created: types.TimestampNow(), Event: &armadaevents.EventSequence_Event_JobRunErrors{ JobRunErrors: &armadaevents.JobRunErrors{ - RunId: runId, - RunIdStr: armadaevents.MustUuidStringFromProtoUuid(runId), - JobId: jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + RunIdStr: runId, + JobIdStr: jobId, Errors: []*armadaevents.Error{ { Terminal: true, @@ -259,29 +247,17 @@ func CreateJobFailedEvent(pod *v1.Pod, reason string, cause armadaevents.Kuberne return sequence, nil } -func CreateMinimalJobFailedEvent(jobIdStr string, runIdStr string, jobSet string, queue string, clusterId string, message string) (*armadaevents.EventSequence, error) { +func CreateMinimalJobFailedEvent(jobId string, runId string, jobSet string, queue string, clusterId string, message string) (*armadaevents.EventSequence, error) { sequence := &armadaevents.EventSequence{} sequence.Queue = queue sequence.JobSetName = jobSet - jobId, err := armadaevents.ProtoUuidFromUlidString(jobIdStr) - if err != nil { - return nil, fmt.Errorf("failed to convert jobId %s to uuid - %s", jobIdStr, err) - } - - runId, err := armadaevents.ProtoUuidFromUuidString(runIdStr) - if err != nil { - return nil, fmt.Errorf("failed to convert runId %s to uuid - %s", runIdStr, err) - } - sequence.Events = append(sequence.Events, &armadaevents.EventSequence_Event{ Created: types.TimestampNow(), Event: &armadaevents.EventSequence_Event_JobRunErrors{ JobRunErrors: &armadaevents.JobRunErrors{ - RunId: runId, - RunIdStr: runIdStr, - JobId: jobId, - JobIdStr: jobIdStr, + RunIdStr: runId, + JobIdStr: jobId, Errors: []*armadaevents.Error{ { Terminal: true, @@ -315,10 +291,8 @@ func CreateReturnLeaseEvent(pod *v1.Pod, reason string, debugMessage string, clu Created: types.TimestampNow(), Event: &armadaevents.EventSequence_Event_JobRunErrors{ JobRunErrors: &armadaevents.JobRunErrors{ - RunId: runId, - RunIdStr: armadaevents.MustUuidStringFromProtoUuid(runId), - JobId: jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + RunIdStr: runId, + JobIdStr: jobId, Errors: []*armadaevents.Error{ { Terminal: true, // EventMessage_LeaseReturned indicates a pod could not be scheduled. @@ -355,10 +329,8 @@ func CreateJobUtilisationEvent(pod *v1.Pod, utilisationData *domain.UtilisationD Created: types.TimestampNow(), Event: &armadaevents.EventSequence_Event_ResourceUtilisation{ ResourceUtilisation: &armadaevents.ResourceUtilisation{ - RunId: runId, - RunIdStr: armadaevents.MustUuidStringFromProtoUuid(runId), - JobId: jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + RunIdStr: runId, + JobIdStr: jobId, ResourceInfo: &armadaevents.KubernetesResourceInfo{ ObjectMeta: &armadaevents.ObjectMeta{ KubernetesId: string(pod.ObjectMeta.UID), @@ -388,15 +360,15 @@ func createEmptySequence(pod *v1.Pod) *armadaevents.EventSequence { return sequence } -func extractIds(pod *v1.Pod) (*armadaevents.Uuid, *armadaevents.Uuid, error) { - jobId, err := armadaevents.ProtoUuidFromUlidString(pod.Labels[domain.JobId]) - if err != nil { - return nil, nil, fmt.Errorf("failed to convert jobId %s to uuid - %s", pod.Labels[domain.JobId], err) +func extractIds(pod *v1.Pod) (string, string, error) { + jobId, ok := pod.Labels[domain.JobId] + if !ok { + return "", "", fmt.Errorf("job Id not found on pod %s", pod.Name) } - runId, err := armadaevents.ProtoUuidFromUuidString(pod.Labels[domain.JobRunId]) - if err != nil { - return nil, nil, fmt.Errorf("failed to convert runId %s to uuid - %s", pod.Labels[domain.JobRunId], err) + runId, ok := pod.Labels[domain.JobRunId] + if !ok { + return "", "", fmt.Errorf("run Id not found on pod %s", pod.Name) } return jobId, runId, nil diff --git a/internal/executor/service/job_requester.go b/internal/executor/service/job_requester.go index 7eb2167f978..9f06c0c0cc6 100644 --- a/internal/executor/service/job_requester.go +++ b/internal/executor/service/job_requester.go @@ -13,9 +13,7 @@ import ( executorContext "github.com/armadaproject/armada/internal/executor/context" "github.com/armadaproject/armada/internal/executor/job" "github.com/armadaproject/armada/internal/executor/reporter" - "github.com/armadaproject/armada/internal/executor/util" "github.com/armadaproject/armada/internal/executor/utilisation" - "github.com/armadaproject/armada/pkg/armadaevents" "github.com/armadaproject/armada/pkg/executorapi" ) @@ -78,11 +76,7 @@ func (r *JobRequester) createLeaseRequest() (*LeaseRequest, error) { return nil, err } - unassignedRunIds, err := r.getUnassignedRunIds(capacityReport) - if err != nil { - return nil, err - } - + unassignedRunIds := r.getUnassignedRunIds(capacityReport) nodes := make([]*executorapi.NodeInfo, 0, len(capacityReport.Nodes)) for i := range capacityReport.Nodes { nodes = append(nodes, &capacityReport.Nodes[i]) @@ -103,7 +97,7 @@ func (r *JobRequester) createLeaseRequest() (*LeaseRequest, error) { } // Returns the RunIds of all managed pods that haven't been assigned to a node -func (r *JobRequester) getUnassignedRunIds(capacityReport *utilisation.ClusterAvailableCapacityReport) ([]*armadaevents.Uuid, error) { +func (r *JobRequester) getUnassignedRunIds(capacityReport *utilisation.ClusterAvailableCapacityReport) []string { allAssignedRunIds := []string{} allJobRunIds := []string{} @@ -120,7 +114,7 @@ func (r *JobRequester) getUnassignedRunIds(capacityReport *utilisation.ClusterAv unassignedIds := slices.Subtract(allJobRunIds, allAssignedRunIds) - return util.StringUuidsToUuids(unassignedIds) + return unassignedIds } type failedJobCreationDetails struct { @@ -158,25 +152,15 @@ func (r *JobRequester) markJobRunsAsLeased(jobs []*job.SubmitJob) { } } -func (r *JobRequester) markJobRunsAsCancelled(runIdsToCancel []*armadaevents.Uuid) { - for _, runToCancelId := range runIdsToCancel { - runIdStr, err := armadaevents.UuidStringFromProtoUuid(runToCancelId) - if err != nil { - log.Errorf("Skipping removing run because %s", err) - continue - } - r.jobRunStateStore.RequestRunCancellation(runIdStr) +func (r *JobRequester) markJobRunsAsCancelled(runIdsToCancel []string) { + for _, runId := range runIdsToCancel { + r.jobRunStateStore.RequestRunCancellation(runId) } } -func (r *JobRequester) markJobRunsToPreempt(runIdsToPreempt []*armadaevents.Uuid) { - for _, runToCancelId := range runIdsToPreempt { - runIdStr, err := armadaevents.UuidStringFromProtoUuid(runToCancelId) - if err != nil { - log.Errorf("Skipping preempting run because %s", err) - continue - } - r.jobRunStateStore.RequestRunPreemption(runIdStr) +func (r *JobRequester) markJobRunsToPreempt(runIdsToPreempt []string) { + for _, runId := range runIdsToPreempt { + r.jobRunStateStore.RequestRunPreemption(runId) } } diff --git a/internal/executor/service/job_requester_test.go b/internal/executor/service/job_requester_test.go index 027598a365b..d3652d78a24 100644 --- a/internal/executor/service/job_requester_test.go +++ b/internal/executor/service/job_requester_test.go @@ -6,7 +6,6 @@ import ( "github.com/google/uuid" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" @@ -48,10 +47,10 @@ func TestRequestJobsRuns_HandlesGetClusterCapacityError(t *testing.T) { } func TestRequestJobsRuns_ConstructsCorrectLeaseRequest(t *testing.T) { - activeRunId := uuid.New() - leasedRunId := uuid.New() - activeRun := createRun(activeRunId.String(), job.Active) - leasedRun := createRun(leasedRunId.String(), job.Leased) + activeRunId := uuid.NewString() + leasedRunId := uuid.NewString() + activeRun := createRun(activeRunId, job.Active) + leasedRun := createRun(leasedRunId, job.Leased) capacityReport := &utilisation.ClusterAvailableCapacityReport{ AvailableCapacity: &armadaresource.ComputeResources{ @@ -61,7 +60,7 @@ func TestRequestJobsRuns_ConstructsCorrectLeaseRequest(t *testing.T) { Nodes: []executorapi.NodeInfo{ { Name: "node-1", - RunIdsByState: map[string]api.JobState{activeRunId.String(): api.JobState_RUNNING}, + RunIdsByState: map[string]api.JobState{activeRunId: api.JobState_RUNNING}, }, }, } @@ -76,7 +75,7 @@ func TestRequestJobsRuns_ConstructsCorrectLeaseRequest(t *testing.T) { AvailableResource: *capacityReport.AvailableCapacity, Nodes: []*executorapi.NodeInfo{&capacityReport.Nodes[0]}, // Should add any ids in the state but not in the capacity report into unassigned job run ids - UnassignedJobRunIds: []*armadaevents.Uuid{}, + UnassignedJobRunIds: []string{}, MaxJobsToLease: uint32(defaultMaxLeasedJobs), }, }, @@ -86,7 +85,7 @@ func TestRequestJobsRuns_ConstructsCorrectLeaseRequest(t *testing.T) { AvailableResource: *capacityReport.AvailableCapacity, Nodes: []*executorapi.NodeInfo{&capacityReport.Nodes[0]}, // Should add any ids in the state but not in the capacity report into unassigned job run ids - UnassignedJobRunIds: []*armadaevents.Uuid{armadaevents.ProtoUuidFromUuid(leasedRunId)}, + UnassignedJobRunIds: []string{leasedRunId}, MaxJobsToLease: 0, }, }, @@ -113,16 +112,14 @@ func TestRequestJobsRuns_HandlesLeasedJobs(t *testing.T) { jobRequester, eventReporter, leaseRequester, stateStore, _ := setupJobRequesterTest([]*job.RunState{}) jobId := util.NewULID() - protoJobId, err := armadaevents.ProtoUuidFromUlidString(jobId) - require.NoError(t, err) leaseRequester.LeaseJobRunLeaseResponse = &LeaseResponse{ LeasedRuns: []*executorapi.JobRunLease{ { - JobRunId: armadaevents.ProtoUuidFromUuid(uuid.New()), - Queue: "queue", - Jobset: "job-set", + JobRunIdStr: uuid.NewString(), + Queue: "queue", + Jobset: "job-set", Job: &armadaevents.SubmitJob{ - JobId: protoJobId, + JobIdStr: jobId, ObjectMeta: &armadaevents.ObjectMeta{ Labels: map[string]string{}, Annotations: map[string]string{}, @@ -150,18 +147,15 @@ func TestRequestJobsRuns_HandlesLeasedJobs(t *testing.T) { } func TestRequestJobsRuns_HandlesRunIdsToCancel(t *testing.T) { - runId := uuid.New() - activeRun := createRun(runId.String(), job.Active) + runId := uuid.NewString() + activeRun := createRun(runId, job.Active) jobRequester, eventReporter, leaseRequester, stateStore, _ := setupJobRequesterTest([]*job.RunState{activeRun}) - activeRunUuid, err := armadaevents.ProtoUuidFromUuidString(activeRun.Meta.RunId) - require.NoError(t, err) - leaseRequester.LeaseJobRunLeaseResponse = &LeaseResponse{ - RunIdsToCancel: []*armadaevents.Uuid{ - nil, // Invalid should be skipped - armadaevents.ProtoUuidFromUuid(uuid.New()), // Belongs to no known runs, should be skipped - activeRunUuid, + RunIdsToCancel: []string{ + "", // Invalid should be skipped + uuid.NewString(), // Belongs to no known runs, should be skipped + runId, }, } @@ -177,18 +171,15 @@ func TestRequestJobsRuns_HandlesRunIdsToCancel(t *testing.T) { } func TestRequestJobsRuns_HandlesRunIsToPreempt(t *testing.T) { - runId := uuid.New() - activeRun := createRun(runId.String(), job.Active) + runId := uuid.NewString() + activeRun := createRun(runId, job.Active) jobRequester, eventReporter, leaseRequester, stateStore, _ := setupJobRequesterTest([]*job.RunState{activeRun}) - activeRunUuid, err := armadaevents.ProtoUuidFromUuidString(activeRun.Meta.RunId) - require.NoError(t, err) - leaseRequester.LeaseJobRunLeaseResponse = &LeaseResponse{ - RunIdsToPreempt: []*armadaevents.Uuid{ - nil, // Invalid should be skipped - armadaevents.ProtoUuidFromUuid(uuid.New()), // Belongs to no known runs, should be skipped - activeRunUuid, + RunIdsToPreempt: []string{ + "", // Invalid should be skipped + uuid.NewString(), // Belongs to no known runs, should be skipped + runId, }, } @@ -207,17 +198,15 @@ func TestRequestJobsRuns_HandlesPartiallyInvalidLeasedJobs(t *testing.T) { jobRequester, eventReporter, leaseRequester, stateStore, _ := setupJobRequesterTest([]*job.RunState{}) jobId := util.NewULID() - protoJobId, err := armadaevents.ProtoUuidFromUlidString(jobId) - require.NoError(t, err) leaseRequester.LeaseJobRunLeaseResponse = &LeaseResponse{ LeasedRuns: []*executorapi.JobRunLease{ // Valid job id info, but invalid submit job (no pod spec) { - JobRunId: armadaevents.ProtoUuidFromUuid(uuid.New()), - Queue: "queue", - Jobset: "job-set", + JobRunIdStr: uuid.NewString(), + Queue: "queue", + Jobset: "job-set", Job: &armadaevents.SubmitJob{ - JobId: protoJobId, + JobIdStr: jobId, }, }, }, @@ -231,7 +220,7 @@ func TestRequestJobsRuns_HandlesPartiallyInvalidLeasedJobs(t *testing.T) { assert.True(t, ok) assert.Len(t, failedEvent.JobRunErrors.Errors, 1) assert.NotNil(t, failedEvent.JobRunErrors.Errors[0].GetPodError()) - assert.Equal(t, failedEvent.JobRunErrors.JobId, protoJobId) + assert.Equal(t, failedEvent.JobRunErrors.JobIdStr, jobId) allJobRuns := stateStore.GetAll() assert.Len(t, allJobRuns, 1) @@ -245,7 +234,7 @@ func TestRequestJobsRuns_SkipsFullyInvalidLeasedJobs(t *testing.T) { LeasedRuns: []*executorapi.JobRunLease{ // Invalid Id info { - JobRunId: &armadaevents.Uuid{}, + JobRunIdStr: "", }, }, } diff --git a/internal/executor/service/lease_requester.go b/internal/executor/service/lease_requester.go index b69d743429d..70fd65cee57 100644 --- a/internal/executor/service/lease_requester.go +++ b/internal/executor/service/lease_requester.go @@ -4,8 +4,6 @@ import ( "fmt" "io" - armadaslices "github.com/armadaproject/armada/internal/common/slices" - grpcretry "github.com/grpc-ecosystem/go-grpc-middleware/retry" "github.com/pkg/errors" log "github.com/sirupsen/logrus" @@ -15,21 +13,20 @@ import ( "github.com/armadaproject/armada/internal/common/armadacontext" armadaresource "github.com/armadaproject/armada/internal/common/resource" clusterContext "github.com/armadaproject/armada/internal/executor/context" - "github.com/armadaproject/armada/pkg/armadaevents" "github.com/armadaproject/armada/pkg/executorapi" ) type LeaseRequest struct { AvailableResource armadaresource.ComputeResources Nodes []*executorapi.NodeInfo - UnassignedJobRunIds []*armadaevents.Uuid + UnassignedJobRunIds []string MaxJobsToLease uint32 } type LeaseResponse struct { LeasedRuns []*executorapi.JobRunLease - RunIdsToCancel []*armadaevents.Uuid - RunIdsToPreempt []*armadaevents.Uuid + RunIdsToCancel []string + RunIdsToPreempt []string } type LeaseRequester interface { @@ -57,23 +54,20 @@ func (requester *JobLeaseRequester) LeaseJobRuns(ctx *armadacontext.Context, req return nil, err } leaseRequest := &executorapi.LeaseRequest{ - ExecutorId: requester.clusterIdentity.GetClusterId(), - Pool: requester.clusterIdentity.GetClusterPool(), - Resources: request.AvailableResource.ToProtoMap(), - Nodes: request.Nodes, - UnassignedJobRunIds: request.UnassignedJobRunIds, - UnassignedJobRunIdsStr: armadaslices.Map(request.UnassignedJobRunIds, func(uuid *armadaevents.Uuid) string { - return armadaevents.MustUuidStringFromProtoUuid(uuid) - }), - MaxJobsToLease: request.MaxJobsToLease, + ExecutorId: requester.clusterIdentity.GetClusterId(), + Pool: requester.clusterIdentity.GetClusterPool(), + Resources: request.AvailableResource.ToProtoMap(), + Nodes: request.Nodes, + UnassignedJobRunIdsStr: request.UnassignedJobRunIds, + MaxJobsToLease: request.MaxJobsToLease, } if err := stream.Send(leaseRequest); err != nil { return nil, errors.WithStack(err) } leaseRuns := []*executorapi.JobRunLease{} - runIdsToCancel := []*armadaevents.Uuid{} - runIdsToPreempt := []*armadaevents.Uuid{} + runIdsToCancel := []string{} + runIdsToPreempt := []string{} shouldEndStream := false for !shouldEndStream { res, err := stream.Recv() @@ -85,9 +79,9 @@ func (requester *JobLeaseRequester) LeaseJobRuns(ctx *armadacontext.Context, req case *executorapi.LeaseStreamMessage_Lease: leaseRuns = append(leaseRuns, typed.Lease) case *executorapi.LeaseStreamMessage_PreemptRuns: - runIdsToPreempt = append(runIdsToPreempt, typed.PreemptRuns.JobRunIdsToPreempt...) + runIdsToPreempt = append(runIdsToPreempt, typed.PreemptRuns.JobRunIdsToPreemptStr...) case *executorapi.LeaseStreamMessage_CancelRuns: - runIdsToCancel = append(runIdsToCancel, typed.CancelRuns.JobRunIdsToCancel...) + runIdsToCancel = append(runIdsToCancel, typed.CancelRuns.JobRunIdsToCancelStr...) case *executorapi.LeaseStreamMessage_End: shouldEndStream = true default: diff --git a/internal/executor/service/lease_requester_test.go b/internal/executor/service/lease_requester_test.go index 254be4457b2..0611b1e3992 100644 --- a/internal/executor/service/lease_requester_test.go +++ b/internal/executor/service/lease_requester_test.go @@ -14,19 +14,17 @@ import ( "github.com/armadaproject/armada/internal/common/armadacontext" "github.com/armadaproject/armada/internal/common/mocks" armadaresource "github.com/armadaproject/armada/internal/common/resource" - armadaslices "github.com/armadaproject/armada/internal/common/slices" "github.com/armadaproject/armada/internal/executor/context/fake" "github.com/armadaproject/armada/pkg/api" - "github.com/armadaproject/armada/pkg/armadaevents" "github.com/armadaproject/armada/pkg/executorapi" ) var ( lease1 = createJobRunLease("queue-1", "set-1") lease2 = createJobRunLease("queue-2", "set-1") - id1 = armadaevents.ProtoUuidFromUuid(uuid.New()) - id2 = armadaevents.ProtoUuidFromUuid(uuid.New()) - id3 = armadaevents.ProtoUuidFromUuid(uuid.New()) + id1 = uuid.NewString() + id2 = uuid.NewString() + id3 = uuid.NewString() defaultClusterIdentity = fake.NewFakeClusterIdentity("cluster-id", "cluster-pool") endMarker = &executorapi.LeaseStreamMessage{ Event: &executorapi.LeaseStreamMessage_End{ @@ -40,29 +38,29 @@ func TestLeaseJobRuns(t *testing.T) { defer cancel() tests := map[string]struct { leaseMessages []*executorapi.JobRunLease - cancelMessages [][]*armadaevents.Uuid - preemptMessages [][]*armadaevents.Uuid + cancelMessages [][]string + preemptMessages [][]string expectedLeases []*executorapi.JobRunLease - expectedIdsToCancel []*armadaevents.Uuid - expectedIdsToPreempt []*armadaevents.Uuid + expectedIdsToCancel []string + expectedIdsToPreempt []string }{ "Lease Messages": { leaseMessages: []*executorapi.JobRunLease{lease1, lease2}, expectedLeases: []*executorapi.JobRunLease{lease1, lease2}, - expectedIdsToCancel: []*armadaevents.Uuid{}, - expectedIdsToPreempt: []*armadaevents.Uuid{}, + expectedIdsToCancel: []string{}, + expectedIdsToPreempt: []string{}, }, "Cancel Messages": { - cancelMessages: [][]*armadaevents.Uuid{{id1, id2}, {id3}}, + cancelMessages: [][]string{{id1, id2}, {id3}}, expectedLeases: []*executorapi.JobRunLease{}, - expectedIdsToCancel: []*armadaevents.Uuid{id1, id2, id3}, - expectedIdsToPreempt: []*armadaevents.Uuid{}, + expectedIdsToCancel: []string{id1, id2, id3}, + expectedIdsToPreempt: []string{}, }, "Preempt Messages": { - preemptMessages: [][]*armadaevents.Uuid{{id1, id2}, {id3}}, + preemptMessages: [][]string{{id1, id2}, {id3}}, expectedLeases: []*executorapi.JobRunLease{}, - expectedIdsToCancel: []*armadaevents.Uuid{}, - expectedIdsToPreempt: []*armadaevents.Uuid{id1, id2, id3}, + expectedIdsToCancel: []string{}, + expectedIdsToPreempt: []string{id1, id2, id3}, }, } @@ -99,20 +97,17 @@ func TestLeaseJobRuns_Send(t *testing.T) { RunIdsByState: map[string]api.JobState{"id1": api.JobState_RUNNING}, }, }, - UnassignedJobRunIds: []*armadaevents.Uuid{id1}, + UnassignedJobRunIds: []string{id1}, MaxJobsToLease: uint32(5), } expectedRequest := &executorapi.LeaseRequest{ - ExecutorId: defaultClusterIdentity.GetClusterId(), - Pool: defaultClusterIdentity.GetClusterPool(), - Resources: leaseRequest.AvailableResource.ToProtoMap(), - Nodes: leaseRequest.Nodes, - UnassignedJobRunIds: leaseRequest.UnassignedJobRunIds, - UnassignedJobRunIdsStr: armadaslices.Map(leaseRequest.UnassignedJobRunIds, func(uuid *armadaevents.Uuid) string { - return armadaevents.MustUuidStringFromProtoUuid(uuid) - }), - MaxJobsToLease: leaseRequest.MaxJobsToLease, + ExecutorId: defaultClusterIdentity.GetClusterId(), + Pool: defaultClusterIdentity.GetClusterPool(), + Resources: leaseRequest.AvailableResource.ToProtoMap(), + Nodes: leaseRequest.Nodes, + UnassignedJobRunIdsStr: leaseRequest.UnassignedJobRunIds, + MaxJobsToLease: leaseRequest.MaxJobsToLease, } jobRequester, mockExecutorApiClient, mockStream := setup(t) @@ -261,8 +256,8 @@ func setup(t *testing.T) (*JobLeaseRequester, *mocks.MockExecutorApiClient, *moc func setStreamExpectations(stream *mocks.MockExecutorApi_LeaseJobRunsClient, leaseMessages []*executorapi.JobRunLease, - cancelMessages [][]*armadaevents.Uuid, - preemptMessages [][]*armadaevents.Uuid, + cancelMessages [][]string, + preemptMessages [][]string, ) { for _, lease := range leaseMessages { message := &executorapi.LeaseStreamMessage{ @@ -276,7 +271,7 @@ func setStreamExpectations(stream *mocks.MockExecutorApi_LeaseJobRunsClient, message := &executorapi.LeaseStreamMessage{ Event: &executorapi.LeaseStreamMessage_CancelRuns{ CancelRuns: &executorapi.CancelRuns{ - JobRunIdsToCancel: cancelIds, + JobRunIdsToCancelStr: cancelIds, }, }, } @@ -286,7 +281,7 @@ func setStreamExpectations(stream *mocks.MockExecutorApi_LeaseJobRunsClient, message := &executorapi.LeaseStreamMessage{ Event: &executorapi.LeaseStreamMessage_PreemptRuns{ PreemptRuns: &executorapi.PreemptRuns{ - JobRunIdsToPreempt: preemptIds, + JobRunIdsToPreemptStr: preemptIds, }, }, } @@ -296,10 +291,10 @@ func setStreamExpectations(stream *mocks.MockExecutorApi_LeaseJobRunsClient, func createJobRunLease(queue string, jobSet string) *executorapi.JobRunLease { return &executorapi.JobRunLease{ - JobRunId: armadaevents.ProtoUuidFromUuid(uuid.New()), - Queue: queue, - Jobset: jobSet, - User: "user", - Groups: []string{"group-1", "group-2"}, + JobRunIdStr: uuid.NewString(), + Queue: queue, + Jobset: jobSet, + User: "user", + Groups: []string{"group-1", "group-2"}, } } diff --git a/internal/executor/service/pod_issue_handler_test.go b/internal/executor/service/pod_issue_handler_test.go index 5223e92ed43..de29a94f582 100644 --- a/internal/executor/service/pod_issue_handler_test.go +++ b/internal/executor/service/pod_issue_handler_test.go @@ -197,8 +197,7 @@ func TestPodIssueService_ReportsFailed_IfDeletedExternally(t *testing.T) { podIssueService, _, fakeClusterContext, eventsReporter, err := setupTestComponents([]*job.RunState{}) require.NoError(t, err) runningPod := makeRunningPod() - protoJobId, err := armadaevents.ProtoUuidFromUlidString(util.ExtractJobId(runningPod)) - require.NoError(t, err) + jobId := util.ExtractJobId(runningPod) fakeClusterContext.SimulateDeletionEvent(runningPod) podIssueService.HandlePodIssues() @@ -210,15 +209,13 @@ func TestPodIssueService_ReportsFailed_IfDeletedExternally(t *testing.T) { assert.True(t, ok) assert.Len(t, failedEvent.JobRunErrors.Errors, 1) assert.True(t, failedEvent.JobRunErrors.Errors[0].GetPodError() != nil) - assert.Equal(t, failedEvent.JobRunErrors.JobId, protoJobId) + assert.Equal(t, jobId, failedEvent.JobRunErrors.JobIdStr) } func TestPodIssueService_ReportsFailed_IfPodOfActiveRunGoesMissing(t *testing.T) { baseTime := time.Now() fakeClock := clock.NewFakeClock(baseTime) jobId := commonutil.NewULID() - protoJobId, err := armadaevents.ProtoUuidFromUlidString(jobId) - require.NoError(t, err) podIssueService, _, _, eventsReporter, err := setupTestComponents([]*job.RunState{createRunState(jobId, uuid.New().String(), job.Active)}) require.NoError(t, err) @@ -237,7 +234,7 @@ func TestPodIssueService_ReportsFailed_IfPodOfActiveRunGoesMissing(t *testing.T) assert.True(t, ok) assert.Len(t, failedEvent.JobRunErrors.Errors, 1) assert.True(t, failedEvent.JobRunErrors.Errors[0].GetPodError() != nil) - assert.Equal(t, failedEvent.JobRunErrors.JobId, protoJobId) + assert.Equal(t, jobId, failedEvent.JobRunErrors.JobIdStr) } func TestPodIssueService_DoesNothing_IfMissingPodOfActiveRunReturns(t *testing.T) { diff --git a/internal/executor/service/util.go b/internal/executor/service/util.go index a8dbfbfabb2..87bf5a46193 100644 --- a/internal/executor/service/util.go +++ b/internal/executor/service/util.go @@ -4,7 +4,6 @@ import ( "fmt" "github.com/armadaproject/armada/internal/executor/job" - "github.com/armadaproject/armada/pkg/armadaevents" "github.com/armadaproject/armada/pkg/executorapi" ) @@ -12,14 +11,6 @@ func ExtractEssentialJobMetadata(jobRun *executorapi.JobRunLease) (*job.RunMeta, if jobRun.Job == nil { return nil, fmt.Errorf("job is invalid, job field is nil") } - jobId, err := armadaevents.UlidStringFromProtoUuid(jobRun.Job.JobId) - if err != nil { - return nil, fmt.Errorf("unable to extract jobId because %s", err) - } - runId, err := armadaevents.UuidStringFromProtoUuid(jobRun.JobRunId) - if err != nil { - return nil, fmt.Errorf("unable to extract runId because %s", err) - } if jobRun.Queue == "" { return nil, fmt.Errorf("job is invalid, queue is empty") } @@ -28,8 +19,8 @@ func ExtractEssentialJobMetadata(jobRun *executorapi.JobRunLease) (*job.RunMeta, } return &job.RunMeta{ - JobId: jobId, - RunId: runId, + JobId: jobRun.Job.JobIdStr, + RunId: jobRun.JobRunIdStr, Queue: jobRun.Queue, JobSet: jobRun.Jobset, }, nil diff --git a/internal/executor/service/util_test.go b/internal/executor/service/util_test.go index a1b146f84f4..69103fc2775 100644 --- a/internal/executor/service/util_test.go +++ b/internal/executor/service/util_test.go @@ -5,7 +5,6 @@ import ( "github.com/google/uuid" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "github.com/armadaproject/armada/internal/common/util" "github.com/armadaproject/armada/internal/executor/job" @@ -14,7 +13,7 @@ import ( ) func TestExtractEssentialJobMetadata(t *testing.T) { - jobId, runId, jobRunLease := createValidJobRunLease(t, "queue-1", "job-set-1") + jobId, runId, jobRunLease := createValidJobRunLease("queue-1", "job-set-1") expected := &job.RunMeta{ JobId: jobId, @@ -30,55 +29,50 @@ func TestExtractEssentialJobMetadata(t *testing.T) { func TestExtractEssentialJobMetadata_InvalidInput(t *testing.T) { // Invalid run id - _, _, jobRunLease := createValidJobRunLease(t, "queue-1", "job-set-1") - jobRunLease.JobRunId = nil + _, _, jobRunLease := createValidJobRunLease("queue-1", "job-set-1") + jobRunLease.JobRunIdStr = "" result, err := ExtractEssentialJobMetadata(jobRunLease) assert.Nil(t, result) assert.Error(t, err) // Empty queue - _, _, jobRunLease = createValidJobRunLease(t, "queue-1", "job-set-1") + _, _, jobRunLease = createValidJobRunLease("queue-1", "job-set-1") jobRunLease.Queue = "" result, err = ExtractEssentialJobMetadata(jobRunLease) assert.Nil(t, result) assert.Error(t, err) // Empty jobset - _, _, jobRunLease = createValidJobRunLease(t, "queue-1", "job-set-1") + _, _, jobRunLease = createValidJobRunLease("queue-1", "job-set-1") jobRunLease.Jobset = "" result, err = ExtractEssentialJobMetadata(jobRunLease) assert.Nil(t, result) assert.Error(t, err) // Nil job - _, _, jobRunLease = createValidJobRunLease(t, "queue-1", "job-set-1") + _, _, jobRunLease = createValidJobRunLease("queue-1", "job-set-1") jobRunLease.Job = nil result, err = ExtractEssentialJobMetadata(jobRunLease) assert.Nil(t, result) assert.Error(t, err) // Invalid jobId - _, _, jobRunLease = createValidJobRunLease(t, "queue-1", "job-set-1") - jobRunLease.Job.JobId = nil + _, _, jobRunLease = createValidJobRunLease("queue-1", "job-set-1") + jobRunLease.Job.JobIdStr = "" result, err = ExtractEssentialJobMetadata(jobRunLease) assert.Nil(t, result) assert.Error(t, err) } -func createValidJobRunLease(t *testing.T, queue string, jobSet string) (string, string, *executorapi.JobRunLease) { +func createValidJobRunLease(queue string, jobSet string) (string, string, *executorapi.JobRunLease) { jobId := util.NewULID() - runId := uuid.New().String() - protoJobId, err := armadaevents.ProtoUuidFromUlidString(jobId) - require.NoError(t, err) - protoRunId, err := armadaevents.ProtoUuidFromUuidString(runId) - require.NoError(t, err) - + runId := uuid.NewString() return jobId, runId, &executorapi.JobRunLease{ - JobRunId: protoRunId, - Queue: queue, - Jobset: jobSet, + JobRunIdStr: runId, + Queue: queue, + Jobset: jobSet, Job: &armadaevents.SubmitJob{ - JobId: protoJobId, + JobIdStr: jobId, }, } } diff --git a/internal/executor/util/kubernetes_object.go b/internal/executor/util/kubernetes_object.go index 697dec3247d..a27189474b9 100644 --- a/internal/executor/util/kubernetes_object.go +++ b/internal/executor/util/kubernetes_object.go @@ -240,18 +240,10 @@ func CreatePodFromExecutorApiJob(job *executorapi.JobRunLease, defaults *configu if err != nil { return nil, err } - jobId, err := armadaevents.UlidStringFromProtoUuid(job.Job.JobId) - if err != nil { - return nil, err - } - runId, err := armadaevents.UuidStringFromProtoUuid(job.JobRunId) - if err != nil { - return nil, err - } labels := util.MergeMaps(job.Job.ObjectMeta.Labels, map[string]string{ - domain.JobId: jobId, - domain.JobRunId: runId, + domain.JobId: job.Job.JobIdStr, + domain.JobRunId: job.JobRunIdStr, domain.Queue: job.Queue, domain.PodNumber: strconv.Itoa(0), domain.PodCount: strconv.Itoa(1), @@ -266,7 +258,7 @@ func CreatePodFromExecutorApiJob(job *executorapi.JobRunLease, defaults *configu pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ - Name: common.PodNamePrefix + jobId + "-" + strconv.Itoa(0), + Name: common.PodNamePrefix + job.Job.JobIdStr + "-" + strconv.Itoa(0), Labels: labels, Annotations: annotation, Namespace: job.Job.ObjectMeta.Namespace, diff --git a/internal/executor/util/kubernetes_objects_test.go b/internal/executor/util/kubernetes_objects_test.go index ae5c3ff2137..ccb18c2dcdb 100644 --- a/internal/executor/util/kubernetes_objects_test.go +++ b/internal/executor/util/kubernetes_objects_test.go @@ -4,6 +4,8 @@ import ( "fmt" "testing" + "github.com/armadaproject/armada/internal/common/util" + "github.com/google/uuid" "github.com/stretchr/testify/assert" v1 "k8s.io/api/core/v1" @@ -479,25 +481,21 @@ func TestCreateService_Headless(t *testing.T) { } func TestCreatePodFromExecutorApiJob(t *testing.T) { - runId := armadaevents.ProtoUuidFromUuid(uuid.New()) - runIdStr, err := armadaevents.UuidStringFromProtoUuid(runId) - assert.NoError(t, err) - jobId := armadaevents.ProtoUuidFromUuid(uuid.New()) - jobIdStr, err := armadaevents.UlidStringFromProtoUuid(jobId) - assert.NoError(t, err) + runId := uuid.NewString() + jobId := util.NewULID() validJobLease := &executorapi.JobRunLease{ - JobRunId: runId, - Queue: "queue", - Jobset: "job-set", - User: "user", + JobRunIdStr: runId, + Queue: "queue", + Jobset: "job-set", + User: "user", Job: &armadaevents.SubmitJob{ ObjectMeta: &armadaevents.ObjectMeta{ Labels: map[string]string{}, Annotations: map[string]string{"runtime_gang_cardinality": "3"}, Namespace: "test-namespace", }, - JobId: jobId, + JobIdStr: jobId, MainObject: &armadaevents.KubernetesMainObject{ Object: &armadaevents.KubernetesMainObject_PodSpec{ PodSpec: &armadaevents.PodSpecWithAvoidList{ @@ -510,11 +508,11 @@ func TestCreatePodFromExecutorApiJob(t *testing.T) { expectedPod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("armada-%s-0", jobIdStr), + Name: fmt.Sprintf("armada-%s-0", jobId), Namespace: "test-namespace", Labels: map[string]string{ - domain.JobId: jobIdStr, - domain.JobRunId: runIdStr, + domain.JobId: jobId, + domain.JobRunId: runId, domain.Queue: "queue", domain.PodNumber: "0", domain.PodCount: "1", @@ -543,13 +541,13 @@ func TestCreatePodFromExecutorApiJob_Invalid(t *testing.T) { // Invalid run id lease = createBasicJobRunLease() - lease.JobRunId = nil + lease.JobRunIdStr = "" _, err = CreatePodFromExecutorApiJob(lease, &configuration.PodDefaults{}) assert.Error(t, err) // Invalid job id lease = createBasicJobRunLease() - lease.Job.JobId = nil + lease.Job.JobIdStr = "" _, err = CreatePodFromExecutorApiJob(lease, &configuration.PodDefaults{}) assert.Error(t, err) @@ -562,17 +560,17 @@ func TestCreatePodFromExecutorApiJob_Invalid(t *testing.T) { func createBasicJobRunLease() *executorapi.JobRunLease { return &executorapi.JobRunLease{ - JobRunId: armadaevents.ProtoUuidFromUuid(uuid.New()), - Queue: "queue", - Jobset: "job-set", - User: "user", + JobRunIdStr: uuid.NewString(), + Queue: "queue", + Jobset: "job-set", + User: "user", Job: &armadaevents.SubmitJob{ ObjectMeta: &armadaevents.ObjectMeta{ Labels: map[string]string{}, Annotations: map[string]string{}, Namespace: "test-namespace", }, - JobId: armadaevents.ProtoUuidFromUuid(uuid.New()), + JobIdStr: util.NewULID(), MainObject: &armadaevents.KubernetesMainObject{ Object: &armadaevents.KubernetesMainObject_PodSpec{ PodSpec: &armadaevents.PodSpecWithAvoidList{ diff --git a/internal/executor/util/uuid.go b/internal/executor/util/uuid.go deleted file mode 100644 index e2dd377588f..00000000000 --- a/internal/executor/util/uuid.go +++ /dev/null @@ -1,19 +0,0 @@ -package util - -import ( - "fmt" - - "github.com/armadaproject/armada/pkg/armadaevents" -) - -func StringUuidsToUuids(uuidStrings []string) ([]*armadaevents.Uuid, error) { - result := make([]*armadaevents.Uuid, 0, len(uuidStrings)) - for _, uuidString := range uuidStrings { - uuid, err := armadaevents.ProtoUuidFromUuidString(uuidString) - if err != nil { - return nil, fmt.Errorf("failed to convert uuid string %s to uuid because %s", uuidString, err) - } - result = append(result, uuid) - } - return result, nil -} diff --git a/internal/executor/util/uuid_test.go b/internal/executor/util/uuid_test.go deleted file mode 100644 index 6b61154d03f..00000000000 --- a/internal/executor/util/uuid_test.go +++ /dev/null @@ -1,45 +0,0 @@ -package util - -import ( - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - "github.com/armadaproject/armada/pkg/armadaevents" -) - -func TestStringUuidsToUuids(t *testing.T) { - tests := []struct { - name string - uuidStrings []string - want []*armadaevents.Uuid - wantErr bool - }{ - {"invalid uuid", []string{"1", "2", "3"}, []*armadaevents.Uuid{}, true}, - {"valid uuid", []string{"52a3cfa6-8ce1-42b1-97cf-74f1b63f21b9"}, []*armadaevents.Uuid{{5954831446549021361, 10939090601399755193}}, false}, - { - "valid uuid2", - []string{"52a3cfa6-8ce1-42b1-97cf-74f1b63f21b9", "59567531-2a42-4b5b-9aba-b3d400c35b4c"}, - []*armadaevents.Uuid{ - {5954831446549021361, 10939090601399755193}, - {6437461571395537755, 11149421550636325708}, - }, - false, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got, err := StringUuidsToUuids(tt.uuidStrings) - if tt.wantErr { - require.Error(t, err) - } else { - require.NoError(t, err) - } - for i, v := range got { - assert.Equal(t, tt.want[i], v) - } - }) - } -} diff --git a/internal/lookoutv2/repository/util.go b/internal/lookoutv2/repository/util.go index ac13d738801..3e63e46f60b 100644 --- a/internal/lookoutv2/repository/util.go +++ b/internal/lookoutv2/repository/util.go @@ -35,7 +35,7 @@ type JobSimulator struct { owner string namespace string annotationPrefix string - jobId *armadaevents.Uuid + jobId string apiJob *api.Job job *model.Job events []*armadaevents.EventSequence_Event @@ -92,11 +92,7 @@ func (js *JobSimulator) Submit(queue, jobSet, owner, namespace string, timestamp if jobId == "" { jobId = util.NewULID() } - jobIdProto, err := armadaevents.ProtoUuidFromUlidString(jobId) - if err != nil { - log.WithError(err).Errorf("Could not convert job ID to UUID: %s", jobId) - } - js.jobId = jobIdProto + js.jobId = jobId priorityClass := opts.PriorityClass if priorityClass == "" { priorityClass = "default" @@ -122,7 +118,6 @@ func (js *JobSimulator) Submit(queue, jobSet, owner, namespace string, timestamp Created: ts, Event: &armadaevents.EventSequence_Event_SubmitJob{ SubmitJob: &armadaevents.SubmitJob{ - JobId: jobIdProto, JobIdStr: jobId, Priority: uint32(opts.Priority), AtMostOnce: true, @@ -192,10 +187,8 @@ func (js *JobSimulator) Lease(runId string, cluster string, node string, timesta Created: ts, Event: &armadaevents.EventSequence_Event_JobRunLeased{ JobRunLeased: &armadaevents.JobRunLeased{ - RunId: armadaevents.ProtoUuidFromUuid(uuid.MustParse(runId)), RunIdStr: runId, - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), + JobIdStr: js.jobId, ExecutorId: cluster, NodeId: node, }, @@ -225,10 +218,8 @@ func (js *JobSimulator) Pending(runId string, cluster string, timestamp time.Tim Created: ts, Event: &armadaevents.EventSequence_Event_JobRunAssigned{ JobRunAssigned: &armadaevents.JobRunAssigned{ - RunId: armadaevents.ProtoUuidFromUuid(uuid.MustParse(runId)), RunIdStr: runId, - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), + JobIdStr: js.jobId, ResourceInfos: []*armadaevents.KubernetesResourceInfo{ { ObjectMeta: &armadaevents.ObjectMeta{ @@ -270,10 +261,8 @@ func (js *JobSimulator) Running(runId string, node string, timestamp time.Time) Created: ts, Event: &armadaevents.EventSequence_Event_JobRunRunning{ JobRunRunning: &armadaevents.JobRunRunning{ - RunId: armadaevents.ProtoUuidFromUuid(uuid.MustParse(runId)), RunIdStr: runId, - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), + JobIdStr: js.jobId, ResourceInfos: []*armadaevents.KubernetesResourceInfo{ { Info: &armadaevents.KubernetesResourceInfo_PodInfo{ @@ -309,10 +298,8 @@ func (js *JobSimulator) RunSucceeded(runId string, timestamp time.Time) *JobSimu Created: ts, Event: &armadaevents.EventSequence_Event_JobRunSucceeded{ JobRunSucceeded: &armadaevents.JobRunSucceeded{ - RunId: armadaevents.ProtoUuidFromUuid(uuid.MustParse(runId)), RunIdStr: runId, - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), + JobIdStr: js.jobId, }, }, } @@ -335,8 +322,7 @@ func (js *JobSimulator) Succeeded(timestamp time.Time) *JobSimulator { Created: ts, Event: &armadaevents.EventSequence_Event_JobSucceeded{ JobSucceeded: &armadaevents.JobSucceeded{ - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), + JobIdStr: js.jobId, }, }, } @@ -354,9 +340,7 @@ func (js *JobSimulator) LeaseReturned(runId string, message string, timestamp ti Created: ts, Event: &armadaevents.EventSequence_Event_JobRunErrors{ JobRunErrors: &armadaevents.JobRunErrors{ - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), - RunId: armadaevents.ProtoUuidFromUuid(uuid.MustParse(runId)), + JobIdStr: js.jobId, RunIdStr: runId, Errors: []*armadaevents.Error{ { @@ -388,8 +372,7 @@ func (js *JobSimulator) Cancelled(timestamp time.Time) *JobSimulator { Created: ts, Event: &armadaevents.EventSequence_Event_CancelledJob{ CancelledJob: &armadaevents.CancelledJob{ - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), + JobIdStr: js.jobId, }, }, } @@ -407,8 +390,7 @@ func (js *JobSimulator) Reprioritized(newPriority uint32, timestamp time.Time) * Created: ts, Event: &armadaevents.EventSequence_Event_ReprioritisedJob{ ReprioritisedJob: &armadaevents.ReprioritisedJob{ - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), + JobIdStr: js.jobId, Priority: newPriority, }, }, @@ -428,9 +410,7 @@ func (js *JobSimulator) RunFailed(runId string, node string, exitCode int32, mes Created: ts, Event: &armadaevents.EventSequence_Event_JobRunErrors{ JobRunErrors: &armadaevents.JobRunErrors{ - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), - RunId: armadaevents.ProtoUuidFromUuid(uuid.MustParse(runId)), + JobIdStr: js.jobId, RunIdStr: runId, Errors: []*armadaevents.Error{ { @@ -470,8 +450,7 @@ func (js *JobSimulator) Rejected(message string, timestamp time.Time) *JobSimula Created: ts, Event: &armadaevents.EventSequence_Event_JobErrors{ JobErrors: &armadaevents.JobErrors{ - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), + JobIdStr: js.jobId, Errors: []*armadaevents.Error{ { Terminal: true, @@ -499,8 +478,7 @@ func (js *JobSimulator) Failed(node string, exitCode int32, message string, time Created: ts, Event: &armadaevents.EventSequence_Event_JobErrors{ JobErrors: &armadaevents.JobErrors{ - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), + JobIdStr: js.jobId, Errors: []*armadaevents.Error{ { Terminal: true, @@ -533,8 +511,7 @@ func (js *JobSimulator) Preempted(timestamp time.Time) *JobSimulator { Created: ts, Event: &armadaevents.EventSequence_Event_JobErrors{ JobErrors: &armadaevents.JobErrors{ - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), + JobIdStr: js.jobId, Errors: []*armadaevents.Error{ { Terminal: true, @@ -552,9 +529,7 @@ func (js *JobSimulator) Preempted(timestamp time.Time) *JobSimulator { Created: ts, Event: &armadaevents.EventSequence_Event_JobRunPreempted{ JobRunPreempted: &armadaevents.JobRunPreempted{ - PreemptedJobId: js.jobId, - PreemptedJobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), - PreemptedRunId: armadaevents.ProtoUuidFromUuid(uuid.MustParse(preemptedRunId)), + PreemptedJobIdStr: js.jobId, PreemptedRunIdStr: preemptedRunId, }, }, @@ -573,9 +548,7 @@ func (js *JobSimulator) RunUnschedulable(runId string, cluster string, node stri Created: ts, Event: &armadaevents.EventSequence_Event_JobRunErrors{ JobRunErrors: &armadaevents.JobRunErrors{ - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), - RunId: armadaevents.ProtoUuidFromUuid(uuid.MustParse(runId)), + JobIdStr: js.jobId, RunIdStr: runId, Errors: []*armadaevents.Error{ { @@ -613,9 +586,7 @@ func (js *JobSimulator) LeaseExpired(runId string, timestamp time.Time, _ clock. Created: ts, Event: &armadaevents.EventSequence_Event_JobRunErrors{ JobRunErrors: &armadaevents.JobRunErrors{ - JobId: js.jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(js.jobId), - RunId: armadaevents.ProtoUuidFromUuid(uuid.MustParse(runId)), + JobIdStr: js.jobId, RunIdStr: runId, Errors: []*armadaevents.Error{ { diff --git a/internal/scheduler/api.go b/internal/scheduler/api.go index ab82d0602c7..8ab43c7796e 100644 --- a/internal/scheduler/api.go +++ b/internal/scheduler/api.go @@ -3,7 +3,6 @@ package scheduler import ( "context" "strconv" - "strings" "github.com/gogo/protobuf/proto" "github.com/gogo/protobuf/types" @@ -21,7 +20,6 @@ import ( "github.com/armadaproject/armada/internal/common/logging" "github.com/armadaproject/armada/internal/common/maps" "github.com/armadaproject/armada/internal/common/pulsarutils" - "github.com/armadaproject/armada/internal/common/slices" priorityTypes "github.com/armadaproject/armada/internal/common/types" "github.com/armadaproject/armada/internal/scheduler/database" "github.com/armadaproject/armada/internal/scheduler/schedulerobjects" @@ -125,9 +123,7 @@ func (srv *ExecutorApi) LeaseJobRuns(stream executorapi.ExecutorApi_LeaseJobRuns if err := stream.Send(&executorapi.LeaseStreamMessage{ Event: &executorapi.LeaseStreamMessage_CancelRuns{ CancelRuns: &executorapi.CancelRuns{ - JobRunIdsToCancel: slices.Map(runsToCancel, func(x string) *armadaevents.Uuid { - return armadaevents.MustProtoUuidFromUuidString(x) - }), + JobRunIdsToCancelStr: runsToCancel, }, }, }); err != nil { @@ -174,7 +170,6 @@ func (srv *ExecutorApi) LeaseJobRuns(stream executorapi.ExecutorApi_LeaseJobRuns err := stream.Send(&executorapi.LeaseStreamMessage{ Event: &executorapi.LeaseStreamMessage_Lease{ Lease: &executorapi.JobRunLease{ - JobRunId: armadaevents.MustProtoUuidFromUuidString(lease.RunID), JobRunIdStr: lease.RunID, Queue: lease.Queue, Jobset: lease.JobSet, @@ -265,12 +260,12 @@ func (srv *ExecutorApi) isPreemptible(job *armadaevents.SubmitJob) bool { priority, known := srv.priorityClasses[priorityClassName] if priorityClassName == "" { - log.Errorf("priority class name not set on pod %s", job.JobId.String()) + log.Errorf("priority class name not set on job %s", job.JobIdStr) return false } if !known { - log.Errorf("unknown priority class found %s on job %s", priorityClassName, job.JobId.String()) + log.Errorf("unknown priority class found %s on job %s", priorityClassName, job.JobIdStr) return false } @@ -382,13 +377,11 @@ func (srv *ExecutorApi) executorFromLeaseRequest(ctx *armadacontext.Context, req } } return &schedulerobjects.Executor{ - Id: req.ExecutorId, - Pool: req.Pool, - Nodes: nodes, - LastUpdateTime: now, - UnassignedJobRuns: slices.Map(req.UnassignedJobRunIds, func(jobId *armadaevents.Uuid) string { - return strings.ToLower(armadaevents.UuidFromProtoUuid(jobId).String()) - }), + Id: req.ExecutorId, + Pool: req.Pool, + Nodes: nodes, + LastUpdateTime: now, + UnassignedJobRuns: req.UnassignedJobRunIdsStr, } } @@ -400,8 +393,8 @@ func runIdsFromLeaseRequest(req *executorapi.LeaseRequest) ([]string, error) { runIds = append(runIds, runId) } } - for _, runId := range req.UnassignedJobRunIds { - runIds = append(runIds, armadaevents.UuidFromProtoUuid(runId).String()) + for _, runId := range req.UnassignedJobRunIdsStr { + runIds = append(runIds, runId) } return runIds, nil } diff --git a/internal/scheduler/api_test.go b/internal/scheduler/api_test.go index a2f93eb82fc..462c2f84ad6 100644 --- a/internal/scheduler/api_test.go +++ b/internal/scheduler/api_test.go @@ -22,6 +22,7 @@ import ( protoutil "github.com/armadaproject/armada/internal/common/proto" "github.com/armadaproject/armada/internal/common/slices" "github.com/armadaproject/armada/internal/common/types" + "github.com/armadaproject/armada/internal/common/util" schedulerconfig "github.com/armadaproject/armada/internal/scheduler/configuration" "github.com/armadaproject/armada/internal/scheduler/database" schedulermocks "github.com/armadaproject/armada/internal/scheduler/mocks" @@ -66,8 +67,8 @@ func TestExecutorApi_LeaseJobRuns(t *testing.T) { NodeType: "node-type-1", }, }, - UnassignedJobRunIds: []*armadaevents.Uuid{armadaevents.MustProtoUuidFromUuidString(runId3)}, - MaxJobsToLease: uint32(maxJobsPerCall), + UnassignedJobRunIdsStr: []string{runId3}, + MaxJobsToLease: uint32(maxJobsPerCall), } defaultExpectedExecutor := &schedulerobjects.Executor{ Id: "test-executor", @@ -186,7 +187,7 @@ func TestExecutorApi_LeaseJobRuns(t *testing.T) { Tolerations: tolerations, }, ) - submitWithOverlay.JobId = submit.JobId + submitWithOverlay.JobIdStr = submit.JobIdStr tests := map[string]struct { request *executorapi.LeaseRequest @@ -203,12 +204,11 @@ func TestExecutorApi_LeaseJobRuns(t *testing.T) { expectedMsgs: []*executorapi.LeaseStreamMessage{ { Event: &executorapi.LeaseStreamMessage_CancelRuns{CancelRuns: &executorapi.CancelRuns{ - JobRunIdsToCancel: []*armadaevents.Uuid{armadaevents.MustProtoUuidFromUuidString(runId2)}, + JobRunIdsToCancelStr: []string{runId2}, }}, }, { Event: &executorapi.LeaseStreamMessage_Lease{Lease: &executorapi.JobRunLease{ - JobRunId: armadaevents.MustProtoUuidFromUuidString(defaultLease.RunID), JobRunIdStr: defaultLease.RunID, Queue: defaultLease.Queue, Jobset: defaultLease.JobSet, @@ -229,7 +229,6 @@ func TestExecutorApi_LeaseJobRuns(t *testing.T) { expectedMsgs: []*executorapi.LeaseStreamMessage{ { Event: &executorapi.LeaseStreamMessage_Lease{Lease: &executorapi.JobRunLease{ - JobRunId: armadaevents.MustProtoUuidFromUuidString(leaseWithoutNode.RunID), JobRunIdStr: leaseWithoutNode.RunID, Queue: leaseWithoutNode.Queue, Jobset: leaseWithoutNode.JobSet, @@ -250,7 +249,6 @@ func TestExecutorApi_LeaseJobRuns(t *testing.T) { expectedMsgs: []*executorapi.LeaseStreamMessage{ { Event: &executorapi.LeaseStreamMessage_Lease{Lease: &executorapi.JobRunLease{ - JobRunId: armadaevents.MustProtoUuidFromUuidString(leaseWithOverlay.RunID), JobRunIdStr: leaseWithOverlay.RunID, Queue: leaseWithOverlay.Queue, Jobset: leaseWithOverlay.JobSet, @@ -271,7 +269,6 @@ func TestExecutorApi_LeaseJobRuns(t *testing.T) { expectedMsgs: []*executorapi.LeaseStreamMessage{ { Event: &executorapi.LeaseStreamMessage_Lease{Lease: &executorapi.JobRunLease{ - JobRunId: armadaevents.MustProtoUuidFromUuidString(preemptibleLease.RunID), JobRunIdStr: preemptibleLease.RunID, Queue: preemptibleLease.Queue, Jobset: preemptibleLease.JobSet, @@ -359,8 +356,8 @@ func TestExecutorApi_LeaseJobRuns_Unauthorised(t *testing.T) { NodeType: "node-type-1", }, }, - UnassignedJobRunIds: []*armadaevents.Uuid{}, - MaxJobsToLease: uint32(100), + UnassignedJobRunIdsStr: []string{}, + MaxJobsToLease: uint32(100), } ctx, cancel := armadacontext.WithTimeout(armadacontext.Background(), 5*time.Second) @@ -584,7 +581,7 @@ func TestExecutorApi_Publish_Unauthorised(t *testing.T) { func submitMsg(t *testing.T, objectMeta *armadaevents.ObjectMeta, podSpec *v1.PodSpec) (*armadaevents.SubmitJob, []byte) { submitMsg := &armadaevents.SubmitJob{ - JobId: armadaevents.ProtoUuidFromUuid(uuid.New()), + JobIdStr: util.NewULID(), ObjectMeta: objectMeta, MainObject: &armadaevents.KubernetesMainObject{ Object: &armadaevents.KubernetesMainObject_PodSpec{ diff --git a/internal/scheduler/publisher.go b/internal/scheduler/publisher.go index cd9d4a4c201..4210c8f0a2d 100644 --- a/internal/scheduler/publisher.go +++ b/internal/scheduler/publisher.go @@ -88,7 +88,6 @@ func (p *PulsarPublisher) PublishMessages(ctx *armadacontext.Context, events []* func (p *PulsarPublisher) PublishMarkers(ctx *armadacontext.Context, groupId uuid.UUID) (uint32, error) { for i := 0; i < p.numPartitions; i++ { pm := &armadaevents.PartitionMarker{ - GroupId: armadaevents.ProtoUuidFromUuid(groupId), GroupIdStr: groupId.String(), Partition: uint32(i), } diff --git a/internal/scheduler/scheduler.go b/internal/scheduler/scheduler.go index a552594c29e..47952358211 100644 --- a/internal/scheduler/scheduler.go +++ b/internal/scheduler/scheduler.go @@ -471,10 +471,6 @@ func EventsFromSchedulerResult(result *schedulerresult.SchedulerResult, time tim func AppendEventSequencesFromPreemptedJobs(eventSequences []*armadaevents.EventSequence, jobs []*jobdb.Job, time time.Time) ([]*armadaevents.EventSequence, error) { for _, job := range jobs { - jobId, err := armadaevents.ProtoUuidFromUlidString(job.Id()) - if err != nil { - return nil, err - } run := job.LatestRun() if run == nil { return nil, errors.Errorf("attempting to generate preempted eventSequences for job %s with no associated runs", job.Id()) @@ -482,22 +478,20 @@ func AppendEventSequencesFromPreemptedJobs(eventSequences []*armadaevents.EventS eventSequences = append(eventSequences, &armadaevents.EventSequence{ Queue: job.Queue(), JobSetName: job.Jobset(), - Events: createEventsForPreemptedJob(jobId, armadaevents.MustProtoUuidFromUuidString(run.Id()), time), + Events: createEventsForPreemptedJob(job.Id(), run.Id(), time), }) } return eventSequences, nil } -func createEventsForPreemptedJob(jobId *armadaevents.Uuid, runId *armadaevents.Uuid, time time.Time) []*armadaevents.EventSequence_Event { +func createEventsForPreemptedJob(jobId string, runId string, time time.Time) []*armadaevents.EventSequence_Event { return []*armadaevents.EventSequence_Event{ { Created: protoutil.ToTimestamp(time), Event: &armadaevents.EventSequence_Event_JobRunPreempted{ JobRunPreempted: &armadaevents.JobRunPreempted{ - PreemptedRunId: runId, - PreemptedRunIdStr: armadaevents.MustUuidStringFromProtoUuid(runId), - PreemptedJobId: jobId, - PreemptedJobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + PreemptedRunIdStr: runId, + PreemptedJobIdStr: jobId, }, }, }, @@ -505,10 +499,8 @@ func createEventsForPreemptedJob(jobId *armadaevents.Uuid, runId *armadaevents.U Created: protoutil.ToTimestamp(time), Event: &armadaevents.EventSequence_Event_JobRunErrors{ JobRunErrors: &armadaevents.JobRunErrors{ - RunId: runId, - RunIdStr: armadaevents.MustUuidStringFromProtoUuid(runId), - JobId: jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + RunIdStr: runId, + JobIdStr: jobId, Errors: []*armadaevents.Error{ { Terminal: true, @@ -524,8 +516,7 @@ func createEventsForPreemptedJob(jobId *armadaevents.Uuid, runId *armadaevents.U Created: protoutil.ToTimestamp(time), Event: &armadaevents.EventSequence_Event_JobErrors{ JobErrors: &armadaevents.JobErrors{ - JobId: jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + JobIdStr: jobId, Errors: []*armadaevents.Error{ { Terminal: true, @@ -543,10 +534,6 @@ func createEventsForPreemptedJob(jobId *armadaevents.Uuid, runId *armadaevents.U func AppendEventSequencesFromScheduledJobs(eventSequences []*armadaevents.EventSequence, jctxs []*schedulercontext.JobSchedulingContext) ([]*armadaevents.EventSequence, error) { for _, jctx := range jctxs { job := jctx.Job - jobId, err := armadaevents.ProtoUuidFromUlidString(job.Id()) - if err != nil { - return nil, err - } run := job.LatestRun() if run == nil { return nil, errors.Errorf("attempting to generate lease eventSequences for job %s with no associated runs", job.Id()) @@ -561,9 +548,7 @@ func AppendEventSequencesFromScheduledJobs(eventSequences []*armadaevents.EventS Created: protoutil.ToTimestamp(runCreationTime), Event: &armadaevents.EventSequence_Event_JobRunLeased{ JobRunLeased: &armadaevents.JobRunLeased{ - RunId: armadaevents.MustProtoUuidFromUuidString(run.Id()), RunIdStr: run.Id(), - JobId: jobId, JobIdStr: job.Id(), ExecutorId: run.Executor(), // NodeId here refers to the unique identifier of the node in an executor cluster, @@ -612,10 +597,6 @@ func (s *Scheduler) generateUpdateMessagesFromJob(ctx *armadacontext.Context, jo return nil, nil } - jobId, err := armadaevents.ProtoUuidFromUlidString(job.Id()) - if err != nil { - return nil, err - } origJob := job if job.RequestedPriority() != job.Priority() { @@ -624,7 +605,6 @@ func (s *Scheduler) generateUpdateMessagesFromJob(ctx *armadacontext.Context, jo Created: s.now(), Event: &armadaevents.EventSequence_Event_ReprioritisedJob{ ReprioritisedJob: &armadaevents.ReprioritisedJob{ - JobId: jobId, JobIdStr: job.Id(), Priority: job.Priority(), }, @@ -643,9 +623,7 @@ func (s *Scheduler) generateUpdateMessagesFromJob(ctx *armadacontext.Context, jo Created: s.now(), Event: &armadaevents.EventSequence_Event_JobRunCancelled{ JobRunCancelled: &armadaevents.JobRunCancelled{ - RunId: armadaevents.MustProtoUuidFromUuidString(lastRun.Id()), RunIdStr: lastRun.Id(), - JobId: jobId, JobIdStr: job.Id(), }, }, @@ -655,7 +633,7 @@ func (s *Scheduler) generateUpdateMessagesFromJob(ctx *armadacontext.Context, jo cancel := &armadaevents.EventSequence_Event{ Created: s.now(), Event: &armadaevents.EventSequence_Event_CancelledJob{ - CancelledJob: &armadaevents.CancelledJob{JobId: jobId, JobIdStr: job.Id()}, + CancelledJob: &armadaevents.CancelledJob{JobIdStr: job.Id()}, }, } events = append(events, cancel) @@ -664,7 +642,7 @@ func (s *Scheduler) generateUpdateMessagesFromJob(ctx *armadacontext.Context, jo cancelRequest := &armadaevents.EventSequence_Event{ Created: s.now(), Event: &armadaevents.EventSequence_Event_CancelJob{ - CancelJob: &armadaevents.CancelJob{JobId: jobId, JobIdStr: job.Id()}, + CancelJob: &armadaevents.CancelJob{JobIdStr: job.Id()}, }, } events = append(events, cancelRequest) @@ -677,9 +655,7 @@ func (s *Scheduler) generateUpdateMessagesFromJob(ctx *armadacontext.Context, jo Created: s.now(), Event: &armadaevents.EventSequence_Event_JobRunCancelled{ JobRunCancelled: &armadaevents.JobRunCancelled{ - RunId: armadaevents.MustProtoUuidFromUuidString(lastRun.Id()), RunIdStr: lastRun.Id(), - JobId: jobId, JobIdStr: job.Id(), }, }, @@ -689,7 +665,7 @@ func (s *Scheduler) generateUpdateMessagesFromJob(ctx *armadacontext.Context, jo cancel := &armadaevents.EventSequence_Event{ Created: s.now(), Event: &armadaevents.EventSequence_Event_CancelledJob{ - CancelledJob: &armadaevents.CancelledJob{JobId: jobId, JobIdStr: job.Id()}, + CancelledJob: &armadaevents.CancelledJob{JobIdStr: job.Id()}, }, } events = append(events, cancel) @@ -702,7 +678,6 @@ func (s *Scheduler) generateUpdateMessagesFromJob(ctx *armadacontext.Context, jo Created: s.now(), Event: &armadaevents.EventSequence_Event_JobSucceeded{ JobSucceeded: &armadaevents.JobSucceeded{ - JobId: jobId, JobIdStr: job.Id(), }, }, @@ -734,7 +709,6 @@ func (s *Scheduler) generateUpdateMessagesFromJob(ctx *armadacontext.Context, jo Created: s.now(), Event: &armadaevents.EventSequence_Event_JobRequeued{ JobRequeued: &armadaevents.JobRequeued{ - JobId: jobId, JobIdStr: job.Id(), SchedulingInfo: job.JobSchedulingInfo(), UpdateSequenceNumber: job.QueuedVersion(), @@ -780,7 +754,6 @@ func (s *Scheduler) generateUpdateMessagesFromJob(ctx *armadacontext.Context, jo Created: s.now(), Event: &armadaevents.EventSequence_Event_JobErrors{ JobErrors: &armadaevents.JobErrors{ - JobId: jobId, JobIdStr: job.Id(), Errors: []*armadaevents.Error{runError}, }, @@ -791,7 +764,7 @@ func (s *Scheduler) generateUpdateMessagesFromJob(ctx *armadacontext.Context, jo } } else if lastRun.PreemptRequested() && job.PriorityClass().Preemptible { job = job.WithQueued(false).WithFailed(true).WithUpdatedRun(lastRun.WithoutTerminal().WithFailed(true)) - events = append(events, createEventsForPreemptedJob(jobId, armadaevents.MustProtoUuidFromUuidString(lastRun.Id()), s.clock.Now())...) + events = append(events, createEventsForPreemptedJob(job.Id(), lastRun.Id(), s.clock.Now())...) } } @@ -843,7 +816,7 @@ func (s *Scheduler) expireJobsIfNecessary(ctx *armadacontext.Context, txn *jobdb events := make([]*armadaevents.EventSequence, 0) - // TODO: this is inefficient. We should create a iterator of the jobs running on the affected executors + // TODO: this is inefficient. We should create a iterator of the jobs running on the affected executors jobs := txn.GetAll() for _, job := range jobs { @@ -857,11 +830,6 @@ func (s *Scheduler) expireJobsIfNecessary(ctx *armadacontext.Context, txn *jobdb ctx.Warnf("Cancelling job %s as it is running on lost executor %s", job.Id(), run.Executor()) jobsToUpdate = append(jobsToUpdate, job.WithQueued(false).WithFailed(true).WithUpdatedRun(run.WithFailed(true))) - jobId, err := armadaevents.ProtoUuidFromUlidString(job.Id()) - if err != nil { - return nil, err - } - leaseExpiredError := &armadaevents.Error{ Terminal: true, Reason: &armadaevents.Error_LeaseExpired{ @@ -876,9 +844,7 @@ func (s *Scheduler) expireJobsIfNecessary(ctx *armadacontext.Context, txn *jobdb Created: s.now(), Event: &armadaevents.EventSequence_Event_JobRunErrors{ JobRunErrors: &armadaevents.JobRunErrors{ - RunId: armadaevents.MustProtoUuidFromUuidString(run.Id()), RunIdStr: run.Id(), - JobId: jobId, JobIdStr: job.Id(), Errors: []*armadaevents.Error{leaseExpiredError}, }, @@ -888,7 +854,6 @@ func (s *Scheduler) expireJobsIfNecessary(ctx *armadacontext.Context, txn *jobdb Created: s.now(), Event: &armadaevents.EventSequence_Event_JobErrors{ JobErrors: &armadaevents.JobErrors{ - JobId: jobId, JobIdStr: job.Id(), Errors: []*armadaevents.Error{leaseExpiredError}, }, @@ -935,11 +900,6 @@ func (s *Scheduler) submitCheck(ctx *armadacontext.Context, txn *jobdb.Txn) ([]* for _, job := range jobsToCheck { result := results[job.Id()] - jobId, err := armadaevents.ProtoUuidFromUlidString(job.Id()) - if err != nil { - return nil, err - } - es := &armadaevents.EventSequence{ Queue: job.Queue(), JobSetName: job.Jobset(), @@ -956,7 +916,6 @@ func (s *Scheduler) submitCheck(ctx *armadacontext.Context, txn *jobdb.Txn) ([]* es.Events[0].Event = &armadaevents.EventSequence_Event_JobValidated{ JobValidated: &armadaevents.JobValidated{ - JobId: jobId, JobIdStr: job.Id(), Pools: result.pools, }, @@ -967,7 +926,6 @@ func (s *Scheduler) submitCheck(ctx *armadacontext.Context, txn *jobdb.Txn) ([]* es.Events[0].Event = &armadaevents.EventSequence_Event_JobErrors{ JobErrors: &armadaevents.JobErrors{ - JobId: jobId, JobIdStr: job.Id(), Errors: []*armadaevents.Error{ { diff --git a/internal/scheduler/scheduler_test.go b/internal/scheduler/scheduler_test.go index d7a6a068c6c..488cb06b956 100644 --- a/internal/scheduler/scheduler_test.go +++ b/internal/scheduler/scheduler_test.go @@ -226,14 +226,7 @@ var defaultJobError = &armadaevents.Error{ } func defaultJobRunError(jobId string, runId string) *armadaevents.JobRunErrors { - protoJobId, err := armadaevents.ProtoUuidFromUlidString(jobId) - if err != nil { - panic(err) - } - protoRunId := armadaevents.MustProtoUuidFromUuidString(runId) return &armadaevents.JobRunErrors{ - RunId: protoRunId, - JobId: protoJobId, JobIdStr: jobId, RunIdStr: runId, Errors: []*armadaevents.Error{ @@ -1751,7 +1744,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_CancelledJob{ CancelledJob: &armadaevents.CancelledJob{ - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, }, }, @@ -1780,7 +1772,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_CancelJob{ CancelJob: &armadaevents.CancelJob{ - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, }, }, @@ -1789,7 +1780,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_CancelledJob{ CancelledJob: &armadaevents.CancelledJob{ - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, }, }, @@ -1824,9 +1814,7 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_JobRunCancelled{ JobRunCancelled: &armadaevents.JobRunCancelled{ - RunId: armadaevents.ProtoUuidFromUuid(testfixtures.UUIDFromInt(1)), RunIdStr: testfixtures.UUIDFromInt(1).String(), - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, }, }, @@ -1835,7 +1823,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_CancelledJob{ CancelledJob: &armadaevents.CancelledJob{ - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, }, }, @@ -1870,7 +1857,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_CancelJob{ CancelJob: &armadaevents.CancelJob{ - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, }, }, @@ -1879,8 +1865,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_JobRunCancelled{ JobRunCancelled: &armadaevents.JobRunCancelled{ - RunId: armadaevents.ProtoUuidFromUuid(testfixtures.UUIDFromInt(1)), - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, RunIdStr: testfixtures.UUIDFromInt(1).String(), }, @@ -1890,7 +1874,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_CancelledJob{ CancelledJob: &armadaevents.CancelledJob{ - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, }, }, @@ -1924,9 +1907,7 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_JobRunLeased{ JobRunLeased: &armadaevents.JobRunLeased{ - RunId: armadaevents.ProtoUuidFromUuid(testfixtures.UUIDFromInt(1)), RunIdStr: testfixtures.UUIDFromInt(1).String(), - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, ExecutorId: testExecutor, NodeId: testNode, @@ -1973,8 +1954,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_JobRunLeased{ JobRunLeased: &armadaevents.JobRunLeased{ - RunId: armadaevents.ProtoUuidFromUuid(testfixtures.UUIDFromInt(1)), - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, RunIdStr: testfixtures.UUIDFromInt(1).String(), ExecutorId: testExecutor, @@ -1997,7 +1976,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_JobSucceeded{ JobSucceeded: &armadaevents.JobSucceeded{ - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, }, }, @@ -2040,8 +2018,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_JobRunLeased{ JobRunLeased: &armadaevents.JobRunLeased{ - RunId: armadaevents.ProtoUuidFromUuid(testfixtures.UUIDFromInt(1)), - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, RunIdStr: testfixtures.UUIDFromInt(1).String(), ExecutorId: testExecutor, @@ -2064,7 +2040,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_JobErrors{ JobErrors: &armadaevents.JobErrors{ - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, Errors: []*armadaevents.Error{ { @@ -2175,9 +2150,7 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_JobRunPreempted{ JobRunPreempted: &armadaevents.JobRunPreempted{ - PreemptedRunId: armadaevents.ProtoUuidFromUuid(testfixtures.UUIDFromInt(1)), PreemptedRunIdStr: testfixtures.UUIDFromInt(1).String(), - PreemptedJobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), PreemptedJobIdStr: queuedJobA.JobID, }, }, @@ -2186,9 +2159,7 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_JobRunErrors{ JobRunErrors: &armadaevents.JobRunErrors{ - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, - RunId: armadaevents.ProtoUuidFromUuid(testfixtures.UUIDFromInt(1)), RunIdStr: testfixtures.UUIDFromInt(1).String(), Errors: []*armadaevents.Error{ { @@ -2205,7 +2176,6 @@ func TestCycleConsistency(t *testing.T) { Created: &types.Timestamp{}, Event: &armadaevents.EventSequence_Event_JobErrors{ JobErrors: &armadaevents.JobErrors{ - JobId: armadaevents.MustProtoUuidFromUlidString(queuedJobA.JobID), JobIdStr: queuedJobA.JobID, Errors: []*armadaevents.Error{ { @@ -2705,10 +2675,7 @@ func dbOpsFromDbObjects( jobRunErrorsEventSequences := make([]*armadaevents.EventSequence, 0, len(jobRunErrors)) for _, jobRunError := range jobRunErrors { - jobId, err := armadaevents.UlidStringFromProtoUuid(jobRunError.JobId) - if err != nil { - return nil, err - } + jobId := jobRunError.JobIdStr queue, ok := queueByJobId[jobId] if !ok { return nil, errors.Errorf("jobRunError is associated with non-existing job %s", jobId) diff --git a/internal/scheduler/simulator/simulator.go b/internal/scheduler/simulator/simulator.go index 9f8c2e52584..d654dfcbd89 100644 --- a/internal/scheduler/simulator/simulator.go +++ b/internal/scheduler/simulator/simulator.go @@ -8,7 +8,6 @@ import ( "time" "github.com/gogo/protobuf/proto" - "github.com/oklog/ulid" "github.com/pkg/errors" "golang.org/x/exp/maps" "golang.org/x/exp/slices" @@ -326,7 +325,7 @@ func (s *Simulator) bootstrapWorkload() error { if len(jobTemplate.Dependencies) > 0 { continue } - jobId := util.ULID() + jobId := util.NewULID() eventSequence.Events = append( eventSequence.Events, &armadaevents.EventSequence_Event{ @@ -336,7 +335,7 @@ func (s *Simulator) bootstrapWorkload() error { }, }, ) - s.jobTemplateByJobId[jobId.String()] = jobTemplate + s.jobTemplateByJobId[jobId] = jobTemplate } if len(eventSequence.Events) > 0 { s.pushEventSequence(eventSequence) @@ -367,9 +366,9 @@ func (s *Simulator) bootstrapWorkload() error { return nil } -func submitJobFromJobTemplate(jobId ulid.ULID, jobTemplate *JobTemplate) *armadaevents.SubmitJob { +func submitJobFromJobTemplate(jobId string, jobTemplate *JobTemplate) *armadaevents.SubmitJob { return &armadaevents.SubmitJob{ - JobId: armadaevents.ProtoUuidFromUlid(jobId), + JobIdStr: jobId, Priority: jobTemplate.QueuePriority, MainObject: &armadaevents.KubernetesMainObject{ ObjectMeta: &armadaevents.ObjectMeta{ @@ -689,7 +688,7 @@ func (s *Simulator) handleSubmitJob(txn *jobdb.Txn, e *armadaevents.SubmitJob, t return nil, false, err } job, err := s.jobDb.NewJob( - armadaevents.UlidFromProtoUuid(e.JobId).String(), + e.JobIdStr, eventSequence.JobSetName, eventSequence.Queue, e.Priority, @@ -713,7 +712,7 @@ func (s *Simulator) handleSubmitJob(txn *jobdb.Txn, e *armadaevents.SubmitJob, t } func (s *Simulator) handleJobRunLeased(txn *jobdb.Txn, e *armadaevents.JobRunLeased) (*jobdb.Job, bool, error) { - jobId := armadaevents.UlidFromProtoUuid(e.JobId).String() + jobId := e.JobIdStr job := txn.GetById(jobId) jobTemplate := s.jobTemplateByJobId[jobId] if jobTemplate == nil { @@ -731,7 +730,7 @@ func (s *Simulator) handleJobRunLeased(txn *jobdb.Txn, e *armadaevents.JobRunLea Created: protoutil.ToTimestamp(jobSuccessTime), Event: &armadaevents.EventSequence_Event_JobSucceeded{ JobSucceeded: &armadaevents.JobSucceeded{ - JobId: e.JobId, + JobIdStr: e.JobIdStr, }, }, }, @@ -759,7 +758,7 @@ func generateRandomShiftedExponentialDuration(r *rand.Rand, rv ShiftedExponentia } func (s *Simulator) handleJobSucceeded(txn *jobdb.Txn, e *armadaevents.JobSucceeded) (*jobdb.Job, bool, error) { - jobId := armadaevents.UlidFromProtoUuid(e.JobId).String() + jobId := e.JobIdStr job := txn.GetById(jobId) if job == nil || job.InTerminalState() { // Job already terminated; nothing more to do. @@ -800,7 +799,7 @@ func (s *Simulator) handleJobSucceeded(txn *jobdb.Txn, e *armadaevents.JobSuccee JobSetName: dependentJobTemplate.JobSet, } for k := 0; k < int(dependentJobTemplate.Number); k++ { - jobId := util.ULID() + jobId := util.NewULID() eventSequence.Events = append( eventSequence.Events, &armadaevents.EventSequence_Event{ @@ -811,7 +810,7 @@ func (s *Simulator) handleJobSucceeded(txn *jobdb.Txn, e *armadaevents.JobSuccee }, }, ) - s.jobTemplateByJobId[jobId.String()] = dependentJobTemplate + s.jobTemplateByJobId[jobId] = dependentJobTemplate } if len(eventSequence.Events) > 0 { s.pushEventSequence(eventSequence) @@ -854,12 +853,12 @@ func (s *Simulator) unbindRunningJob(job *jobdb.Job) error { } func (s *Simulator) handleJobRunPreempted(txn *jobdb.Txn, e *armadaevents.JobRunPreempted) (*jobdb.Job, bool, error) { - jobId := armadaevents.UlidFromProtoUuid(e.PreemptedJobId).String() + jobId := e.PreemptedJobIdStr job := txn.GetById(jobId) // Submit a retry for this job. jobTemplate := s.jobTemplateByJobId[job.Id()] - retryJobId := util.ULID() + retryJobId := util.NewULID() resubmitTime := s.time.Add(s.generateRandomShiftedExponentialDuration(s.ClusterSpec.WorkflowManagerDelayDistribution)) s.pushEventSequence( &armadaevents.EventSequence{ @@ -875,7 +874,7 @@ func (s *Simulator) handleJobRunPreempted(txn *jobdb.Txn, e *armadaevents.JobRun }, }, ) - s.jobTemplateByJobId[retryJobId.String()] = jobTemplate + s.jobTemplateByJobId[retryJobId] = jobTemplate updatedJob := job.WithUpdatedRun(job.LatestRun().WithReturned(true)) if err := txn.Upsert([]*jobdb.Job{updatedJob}); err != nil { return nil, false, err diff --git a/internal/scheduler/testfixtures/testfixtures.go b/internal/scheduler/testfixtures/testfixtures.go index 967286962f0..eba5ef275f8 100644 --- a/internal/scheduler/testfixtures/testfixtures.go +++ b/internal/scheduler/testfixtures/testfixtures.go @@ -893,12 +893,12 @@ func TestQueuedJobDbJob() *jobdb.Job { func TestRunningJobDbJob(startTime int64) *jobdb.Job { return TestQueuedJobDbJob(). WithQueued(false). - WithUpdatedRun(jobdb.MinimalRun(uuid.New().String(), startTime)) + WithUpdatedRun(jobdb.MinimalRun(uuid.NewString(), startTime)) } func Test1CoreSubmitMsg() *armadaevents.SubmitJob { return &armadaevents.SubmitJob{ - JobId: armadaevents.MustProtoUuidFromUlidString(util.NewULID()), + JobIdStr: util.NewULID(), MainObject: &armadaevents.KubernetesMainObject{ ObjectMeta: &armadaevents.ObjectMeta{}, Object: &armadaevents.KubernetesMainObject_PodSpec{ diff --git a/internal/scheduleringester/instructions.go b/internal/scheduleringester/instructions.go index 7653977e9b0..76826d5978b 100644 --- a/internal/scheduleringester/instructions.go +++ b/internal/scheduleringester/instructions.go @@ -3,6 +3,8 @@ package scheduleringester import ( "time" + "github.com/google/uuid" + "github.com/gogo/protobuf/proto" "github.com/pkg/errors" log "github.com/sirupsen/logrus" @@ -357,7 +359,7 @@ func (c *InstructionConverter) handlePartitionMarker(pm *armadaevents.PartitionM return []DbOperation{&InsertPartitionMarker{ markers: []*schedulerdb.Marker{ { - GroupID: armadaevents.UuidFromProtoUuid(pm.GroupId), + GroupID: uuid.MustParse(pm.GroupIdStr), PartitionID: int32(pm.Partition), Created: created, }, diff --git a/internal/server/event/conversion/conversions_test.go b/internal/server/event/conversion/conversions_test.go index 625f1e21fc5..77699d01dc8 100644 --- a/internal/server/event/conversion/conversions_test.go +++ b/internal/server/event/conversion/conversions_test.go @@ -4,7 +4,6 @@ import ( "testing" "time" - "github.com/gogo/protobuf/proto" "github.com/stretchr/testify/assert" v1 "k8s.io/api/core/v1" v11 "k8s.io/api/networking/v1" @@ -887,26 +886,6 @@ func TestConvertJobRunPreempted(t *testing.T) { apiEvents, err := FromEventSequence(toEventSeq(preempted)) assert.NoError(t, err) assert.Equal(t, expected, apiEvents) - - // PreemptiveJobId is nil - preemptiveJobIdNil := proto.Clone(preempted).(*armadaevents.EventSequence_Event) - preemptiveJobIdNil.GetJobRunPreempted().PreemptiveJobId = nil - - expectedPreemptiveJobIdNil := proto.Clone(expected[0]).(*api.EventMessage) - expectedPreemptiveJobIdNil.GetPreempted().PreemptiveJobId = "" - apiEvents, err = FromEventSequence(toEventSeq(preemptiveJobIdNil)) - assert.NoError(t, err) - assert.Equal(t, []*api.EventMessage{expectedPreemptiveJobIdNil}, apiEvents) - - // PreemptiveRunId is nil - preemptiveRunIdNil := proto.Clone(preempted).(*armadaevents.EventSequence_Event) - preemptiveRunIdNil.GetJobRunPreempted().PreemptiveRunId = nil - - expectedPreemptiveRunIdNil := proto.Clone(expected[0]).(*api.EventMessage) - expectedPreemptiveRunIdNil.GetPreempted().PreemptiveRunId = "" - apiEvents, err = FromEventSequence(toEventSeq(preemptiveRunIdNil)) - assert.NoError(t, err) - assert.Equal(t, []*api.EventMessage{expectedPreemptiveRunIdNil}, apiEvents) } func toEventSeq(event ...*armadaevents.EventSequence_Event) *armadaevents.EventSequence { diff --git a/internal/server/submit/conversion/conversions.go b/internal/server/submit/conversion/conversions.go index 6550134e1be..53fbcdc2b95 100644 --- a/internal/server/submit/conversion/conversions.go +++ b/internal/server/submit/conversion/conversions.go @@ -22,16 +22,14 @@ func SubmitJobFromApiRequest( jobReq *api.JobSubmitRequestItem, config configuration.SubmissionConfig, jobSetId, queue, owner string, - idGen func() *armadaevents.Uuid, // injected so that ids can be stable for testing + idGen func() string, // injected so that ids can be stable for testing ) *armadaevents.SubmitJob { jobId := idGen() - jobIdStr := armadaevents.MustUlidStringFromProtoUuid(jobId) priority := PriorityAsInt32(jobReq.GetPriority()) - ingressesAndServices := convertIngressesAndServices(jobReq, jobIdStr, jobSetId, queue, owner) + ingressesAndServices := convertIngressesAndServices(jobReq, jobId, jobSetId, queue, owner) msg := &armadaevents.SubmitJob{ - JobId: jobId, - JobIdStr: jobIdStr, + JobIdStr: jobId, DeduplicationId: jobReq.GetClientId(), Priority: priority, ObjectMeta: &armadaevents.ObjectMeta{ diff --git a/internal/server/submit/conversion/conversions_test.go b/internal/server/submit/conversion/conversions_test.go index 2e145e27510..9f7a46e49e2 100644 --- a/internal/server/submit/conversion/conversions_test.go +++ b/internal/server/submit/conversion/conversions_test.go @@ -193,7 +193,7 @@ func TestSubmitJobFromApiRequest(t *testing.T) { tc.jobReq, testfixtures.DefaultSubmissionConfig(), testfixtures.DefaultJobset, testfixtures.DefaultQueue.Name, testfixtures.DefaultOwner, - func() *armadaevents.Uuid { + func() string { return testfixtures.TestUlid(1) }, ) diff --git a/internal/server/submit/conversion/post_process.go b/internal/server/submit/conversion/post_process.go index e3d443e3452..dcc9dcc4522 100644 --- a/internal/server/submit/conversion/post_process.go +++ b/internal/server/submit/conversion/post_process.go @@ -176,8 +176,6 @@ func templateMeta(msg *armadaevents.SubmitJob, _ configuration.SubmissionConfig) labels[key] = strings.ReplaceAll(value, ` \z`, "JobId") } } - - jobId := armadaevents.MustUlidStringFromProtoUuid(msg.JobId) - template(msg.GetObjectMeta().GetAnnotations(), jobId) - template(msg.GetObjectMeta().GetLabels(), jobId) + template(msg.GetObjectMeta().GetAnnotations(), msg.JobIdStr) + template(msg.GetObjectMeta().GetLabels(), msg.JobIdStr) } diff --git a/internal/server/submit/conversion/post_process_test.go b/internal/server/submit/conversion/post_process_test.go index 9314f18be27..ee22b1fecba 100644 --- a/internal/server/submit/conversion/post_process_test.go +++ b/internal/server/submit/conversion/post_process_test.go @@ -17,7 +17,6 @@ import ( func TestTemplateProcessor(t *testing.T) { jobId := util.NewULID() - jobIdProto := armadaevents.MustProtoUuidFromUlidString(jobId) tests := map[string]struct { input *armadaevents.SubmitJob @@ -25,7 +24,7 @@ func TestTemplateProcessor(t *testing.T) { }{ "Test Template Annotations": { input: &armadaevents.SubmitJob{ - JobId: jobIdProto, + JobIdStr: jobId, ObjectMeta: &armadaevents.ObjectMeta{ Annotations: map[string]string{ "foo": "http://foo.com/{{JobId}}", @@ -35,7 +34,7 @@ func TestTemplateProcessor(t *testing.T) { }, }, expected: &armadaevents.SubmitJob{ - JobId: jobIdProto, + JobIdStr: jobId, ObjectMeta: &armadaevents.ObjectMeta{ Annotations: map[string]string{ "foo": "http://foo.com/JobId", @@ -47,7 +46,7 @@ func TestTemplateProcessor(t *testing.T) { }, "Test Template Labels": { input: &armadaevents.SubmitJob{ - JobId: jobIdProto, + JobIdStr: jobId, ObjectMeta: &armadaevents.ObjectMeta{ Labels: map[string]string{ "foo": "http://foo.com/{{JobId}}", @@ -57,7 +56,7 @@ func TestTemplateProcessor(t *testing.T) { }, }, expected: &armadaevents.SubmitJob{ - JobId: jobIdProto, + JobIdStr: jobId, ObjectMeta: &armadaevents.ObjectMeta{ Labels: map[string]string{ "foo": "http://foo.com/JobId", @@ -69,7 +68,7 @@ func TestTemplateProcessor(t *testing.T) { }, "Test Template Nothing": { input: &armadaevents.SubmitJob{ - JobId: jobIdProto, + JobIdStr: jobId, MainObject: &armadaevents.KubernetesMainObject{ ObjectMeta: &armadaevents.ObjectMeta{ Annotations: map[string]string{ @@ -82,7 +81,7 @@ func TestTemplateProcessor(t *testing.T) { }, }, expected: &armadaevents.SubmitJob{ - JobId: jobIdProto, + JobIdStr: jobId, MainObject: &armadaevents.KubernetesMainObject{ ObjectMeta: &armadaevents.ObjectMeta{ Annotations: map[string]string{ diff --git a/internal/server/submit/submit.go b/internal/server/submit/submit.go index 8d8c219dfbd..4b12866011c 100644 --- a/internal/server/submit/submit.go +++ b/internal/server/submit/submit.go @@ -38,7 +38,7 @@ type Server struct { authorizer auth.ActionAuthorizer // Below are used only for testing clock clock.Clock - idGenerator func() *armadaevents.Uuid + idGenerator func() string } func NewServer( @@ -57,9 +57,7 @@ func NewServer( deduplicator: deduplicator, authorizer: authorizer, clock: clock.RealClock{}, - idGenerator: func() *armadaevents.Uuid { - return armadaevents.MustProtoUuidFromUlidString(util.NewULID()) - }, + idGenerator: util.NewULID, } } @@ -118,11 +116,11 @@ func (s *Server) SubmitJobs(grpcCtx context.Context, req *api.JobSubmitRequest) }) jobResponses = append(jobResponses, &api.JobSubmitResponseItem{ - JobId: armadaevents.MustUlidStringFromProtoUuid(submitMsg.JobId), + JobId: submitMsg.JobIdStr, }) if jobRequest.ClientId != "" { - idMappings[jobRequest.ClientId] = armadaevents.MustUlidStringFromProtoUuid(submitMsg.JobId) + idMappings[jobRequest.ClientId] = submitMsg.JobIdStr } } @@ -236,18 +234,12 @@ func preemptJobEventSequenceForJobIds(clock clock.Clock, jobIds []string, q, job Events: []*armadaevents.EventSequence_Event{}, } eventTime := protoutil.ToTimestamp(clock.Now().UTC()) - for _, jobIdStr := range jobIds { - jobId, err := armadaevents.ProtoUuidFromUlidString(jobIdStr) - if err != nil { - log.WithError(err).Errorf("could not convert job id to uuid: %s", jobIdStr) - return nil, fmt.Errorf("could not convert job id to uuid: %s", jobIdStr) - } + for _, jobId := range jobIds { sequence.Events = append(sequence.Events, &armadaevents.EventSequence_Event{ Created: eventTime, Event: &armadaevents.EventSequence_Event_JobPreemptionRequested{ JobPreemptionRequested: &armadaevents.JobPreemptionRequested{ - JobId: jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + JobIdStr: jobId, }, }, }) @@ -295,25 +287,18 @@ func (s *Server) ReprioritizeJobs(grpcCtx context.Context, req *api.JobRepriorit } // Otherwise, only the specified jobs should be re-prioritised. - for i, jobIdString := range req.JobIds { - jobId, err := armadaevents.ProtoUuidFromUlidString(jobIdString) - if err != nil { - results[jobIdString] = err.Error() - continue - } - + for i, jobId := range req.JobIds { sequence.Events[i] = &armadaevents.EventSequence_Event{ Created: eventTime, Event: &armadaevents.EventSequence_Event_ReprioritiseJob{ ReprioritiseJob: &armadaevents.ReprioritiseJob{ - JobId: jobId, - JobIdStr: jobIdString, + JobIdStr: jobId, Priority: priority, }, }, } - results[jobIdString] = "" // empty string indicates no error + results[jobId] = "" // empty string indicates no error } err = s.publisher.PublishMessages(ctx, sequence) @@ -394,19 +379,13 @@ func eventSequenceForJobIds(clock clock.Clock, jobIds []string, queue, jobSet, u var validIds []string truncatedReason := util.Truncate(reason, 512) eventTime := protoutil.ToTimestamp(clock.Now().UTC()) - for _, jobIdStr := range jobIds { - jobId, err := armadaevents.ProtoUuidFromUlidString(jobIdStr) - if err != nil { - log.WithError(err).Errorf("could not convert job id to uuid: %s", jobIdStr) - continue - } - validIds = append(validIds, jobIdStr) + for _, jobId := range jobIds { + validIds = append(validIds, jobId) sequence.Events = append(sequence.Events, &armadaevents.EventSequence_Event{ Created: eventTime, Event: &armadaevents.EventSequence_Event_CancelJob{ CancelJob: &armadaevents.CancelJob{ - JobId: jobId, - JobIdStr: jobIdStr, + JobIdStr: jobId, Reason: truncatedReason, }, }, diff --git a/internal/server/submit/testfixtures/test_fixtures.go b/internal/server/submit/testfixtures/test_fixtures.go index 128f5eb3c1c..7e0b74020ff 100644 --- a/internal/server/submit/testfixtures/test_fixtures.go +++ b/internal/server/submit/testfixtures/test_fixtures.go @@ -81,7 +81,6 @@ func CreatePreemptJobSequenceEvents(jobIds []string) []*armadaevents.EventSequen Created: DefaultTimeProto, Event: &armadaevents.EventSequence_Event_JobPreemptionRequested{ JobPreemptionRequested: &armadaevents.JobPreemptionRequested{ - JobId: armadaevents.MustProtoUuidFromUlidString(jobId), JobIdStr: jobId, }, }, @@ -97,7 +96,6 @@ func CreateCancelJobSequenceEvents(jobIds []string) []*armadaevents.EventSequenc Created: DefaultTimeProto, Event: &armadaevents.EventSequence_Event_CancelJob{ CancelJob: &armadaevents.CancelJob{ - JobId: armadaevents.MustProtoUuidFromUlidString(jobId), JobIdStr: jobId, }, }, @@ -124,7 +122,6 @@ func CreateReprioritizeJobSequenceEvents(jobIds []string, newPriority float64) [ Created: DefaultTimeProto, Event: &armadaevents.EventSequence_Event_ReprioritiseJob{ ReprioritiseJob: &armadaevents.ReprioritiseJob{ - JobId: armadaevents.MustProtoUuidFromUlidString(jobId), JobIdStr: jobId, Priority: uint32(newPriority), }, @@ -187,8 +184,7 @@ func JobSubmitRequestItem(i int) *api.JobSubmitRequestItem { func SubmitJob(i int) *armadaevents.SubmitJob { jobId := TestUlid(i) return &armadaevents.SubmitJob{ - JobId: jobId, - JobIdStr: armadaevents.MustUlidStringFromProtoUuid(jobId), + JobIdStr: jobId, Priority: DefaultPriorityInt, ObjectMeta: &armadaevents.ObjectMeta{Namespace: DefaultNamespace}, Objects: []*armadaevents.KubernetesObject{}, @@ -211,15 +207,14 @@ func SubmitJob(i int) *armadaevents.SubmitJob { // TestUlidGenerator returns a function that Generates ulids starting at "00000000000000000000000001" and // incrementing by one each time it is called -func TestUlidGenerator() func() *armadaevents.Uuid { +func TestUlidGenerator() func() string { counter := 0 - return func() *armadaevents.Uuid { + return func() string { counter++ return TestUlid(counter) } } -func TestUlid(i int) *armadaevents.Uuid { - ulid := fmt.Sprintf("000000000000000000000000%02X", i) - return armadaevents.MustProtoUuidFromUlidString(ulid) +func TestUlid(i int) string { + return fmt.Sprintf("000000000000000000000000%02X", i) } diff --git a/pkg/armadaevents/events.pb.go b/pkg/armadaevents/events.pb.go index 709637338c5..69e00872da4 100644 --- a/pkg/armadaevents/events.pb.go +++ b/pkg/armadaevents/events.pb.go @@ -4,7 +4,6 @@ package armadaevents import ( - encoding_binary "encoding/binary" fmt "fmt" io "io" math "math" @@ -544,8 +543,6 @@ func (*EventSequence_Event) XXX_OneofWrappers() []interface{} { // Resource usage of a particular k8s object created as part of a job. type ResourceUtilisation struct { - RunId *Uuid `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"runId,omitempty"` - JobId *Uuid `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` ResourceInfo *KubernetesResourceInfo `protobuf:"bytes,3,opt,name=resource_info,json=resourceInfo,proto3" json:"resourceInfo,omitempty"` MaxResourcesForPeriod map[string]*resource.Quantity `protobuf:"bytes,4,rep,name=max_resources_for_period,json=maxResourcesForPeriod,proto3" json:"maxResourcesForPeriod,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` TotalCumulativeUsage map[string]*resource.Quantity `protobuf:"bytes,5,rep,name=total_cumulative_usage,json=totalCumulativeUsage,proto3" json:"totalCumulativeUsage,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` @@ -587,20 +584,6 @@ func (m *ResourceUtilisation) XXX_DiscardUnknown() { var xxx_messageInfo_ResourceUtilisation proto.InternalMessageInfo -func (m *ResourceUtilisation) GetRunId() *Uuid { - if m != nil { - return m.RunId - } - return nil -} - -func (m *ResourceUtilisation) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *ResourceUtilisation) GetResourceInfo() *KubernetesResourceInfo { if m != nil { return m.ResourceInfo @@ -636,71 +619,11 @@ func (m *ResourceUtilisation) GetRunIdStr() string { return "" } -// A UUID, encoded in accordance with section 4.1.2 of RFC 4122 -// (technically equivalent to ITU-T Rec. X.667 and ISO/IEC 9834-8). -// As of March 2022, this seems to be the most efficient way to include UUIDs in proto messages; see -// https://github.com/protocolbuffers/protobuf/issues/2224#issuecomment-760635430 -type Uuid struct { - // The high 64 bits of the UUID - MSB -> LSB: time_low (32 bits) | time_mid (16 bits) | time_hi_and_version (16 bits). - High64 uint64 `protobuf:"fixed64,1,opt,name=high64,proto3" json:"high64,omitempty"` - // The low 64 bits of the UUID - MSB -> LSB: clock_seq_hi_and_reserved (8 bits) | clock_seq_low (8 bits) | node (48 bits). - Low64 uint64 `protobuf:"fixed64,2,opt,name=low64,proto3" json:"low64,omitempty"` -} - -func (m *Uuid) Reset() { *m = Uuid{} } -func (m *Uuid) String() string { return proto.CompactTextString(m) } -func (*Uuid) ProtoMessage() {} -func (*Uuid) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{2} -} -func (m *Uuid) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Uuid) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Uuid.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *Uuid) XXX_Merge(src proto.Message) { - xxx_messageInfo_Uuid.Merge(m, src) -} -func (m *Uuid) XXX_Size() int { - return m.Size() -} -func (m *Uuid) XXX_DiscardUnknown() { - xxx_messageInfo_Uuid.DiscardUnknown(m) -} - -var xxx_messageInfo_Uuid proto.InternalMessageInfo - -func (m *Uuid) GetHigh64() uint64 { - if m != nil { - return m.High64 - } - return 0 -} - -func (m *Uuid) GetLow64() uint64 { - if m != nil { - return m.Low64 - } - return 0 -} - // A request to run an Armada job. Each job consists of a set of Kubernetes objects, // one of which is the main object (typically a pod spec.) and has a priority associated with it. // When the main object exits, all other objects are cleaned up. // The priority, together with the queue the job is submitted to, determines the order in which jobs are run. type SubmitJob struct { - // Each application may be run multiple times. This id uniquely identifies this job. - JobId *Uuid `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` // User-provided id used for server-side deduplication. // I.e., jobs submitted with the same deduplication_id as an existing job are discarded. // TODO: If we can deduplicate at the API endpoint, we don't need this on the log. @@ -741,7 +664,7 @@ func (m *SubmitJob) Reset() { *m = SubmitJob{} } func (m *SubmitJob) String() string { return proto.CompactTextString(m) } func (*SubmitJob) ProtoMessage() {} func (*SubmitJob) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{3} + return fileDescriptor_6aab92ca59e015f8, []int{2} } func (m *SubmitJob) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -770,13 +693,6 @@ func (m *SubmitJob) XXX_DiscardUnknown() { var xxx_messageInfo_SubmitJob proto.InternalMessageInfo -func (m *SubmitJob) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *SubmitJob) GetDeduplicationId() string { if m != nil { return m.DeduplicationId @@ -873,7 +789,7 @@ func (m *KubernetesMainObject) Reset() { *m = KubernetesMainObject{} } func (m *KubernetesMainObject) String() string { return proto.CompactTextString(m) } func (*KubernetesMainObject) ProtoMessage() {} func (*KubernetesMainObject) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{4} + return fileDescriptor_6aab92ca59e015f8, []int{3} } func (m *KubernetesMainObject) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -957,7 +873,7 @@ func (m *KubernetesObject) Reset() { *m = KubernetesObject{} } func (m *KubernetesObject) String() string { return proto.CompactTextString(m) } func (*KubernetesObject) ProtoMessage() {} func (*KubernetesObject) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{5} + return fileDescriptor_6aab92ca59e015f8, []int{4} } func (m *KubernetesObject) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1084,7 +1000,7 @@ func (m *ObjectMeta) Reset() { *m = ObjectMeta{} } func (m *ObjectMeta) String() string { return proto.CompactTextString(m) } func (*ObjectMeta) ProtoMessage() {} func (*ObjectMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{6} + return fileDescriptor_6aab92ca59e015f8, []int{5} } func (m *ObjectMeta) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1167,7 +1083,7 @@ func (m *PodSpecWithAvoidList) Reset() { *m = PodSpecWithAvoidList{} } func (m *PodSpecWithAvoidList) String() string { return proto.CompactTextString(m) } func (*PodSpecWithAvoidList) ProtoMessage() {} func (*PodSpecWithAvoidList) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{7} + return fileDescriptor_6aab92ca59e015f8, []int{6} } func (m *PodSpecWithAvoidList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1212,7 +1128,6 @@ func (m *PodSpecWithAvoidList) GetNodeAvoidlist() []string { // Set the priority of a particular job. type ReprioritiseJob struct { - JobId *Uuid `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` Priority uint32 `protobuf:"varint,2,opt,name=priority,proto3" json:"priority,omitempty"` JobIdStr string `protobuf:"bytes,3,opt,name=job_id_str,json=jobIdStr,proto3" json:"jobIdStr,omitempty"` } @@ -1221,7 +1136,7 @@ func (m *ReprioritiseJob) Reset() { *m = ReprioritiseJob{} } func (m *ReprioritiseJob) String() string { return proto.CompactTextString(m) } func (*ReprioritiseJob) ProtoMessage() {} func (*ReprioritiseJob) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{8} + return fileDescriptor_6aab92ca59e015f8, []int{7} } func (m *ReprioritiseJob) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1250,13 +1165,6 @@ func (m *ReprioritiseJob) XXX_DiscardUnknown() { var xxx_messageInfo_ReprioritiseJob proto.InternalMessageInfo -func (m *ReprioritiseJob) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *ReprioritiseJob) GetPriority() uint32 { if m != nil { return m.Priority @@ -1272,7 +1180,6 @@ func (m *ReprioritiseJob) GetJobIdStr() string { } type JobRequeued struct { - JobId *Uuid `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` SchedulingInfo *schedulerobjects.JobSchedulingInfo `protobuf:"bytes,2,opt,name=scheduling_info,json=schedulingInfo,proto3" json:"schedulingInfo,omitempty"` // Used by the scheduler to maintain a consistent state UpdateSequenceNumber int32 `protobuf:"varint,3,opt,name=update_sequence_number,json=updateSequenceNumber,proto3" json:"updateSequenceNumber,omitempty"` @@ -1283,7 +1190,7 @@ func (m *JobRequeued) Reset() { *m = JobRequeued{} } func (m *JobRequeued) String() string { return proto.CompactTextString(m) } func (*JobRequeued) ProtoMessage() {} func (*JobRequeued) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{9} + return fileDescriptor_6aab92ca59e015f8, []int{8} } func (m *JobRequeued) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1312,13 +1219,6 @@ func (m *JobRequeued) XXX_DiscardUnknown() { var xxx_messageInfo_JobRequeued proto.InternalMessageInfo -func (m *JobRequeued) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *JobRequeued) GetSchedulingInfo() *schedulerobjects.JobSchedulingInfo { if m != nil { return m.SchedulingInfo @@ -1350,7 +1250,7 @@ func (m *ReprioritiseJobSet) Reset() { *m = ReprioritiseJobSet{} } func (m *ReprioritiseJobSet) String() string { return proto.CompactTextString(m) } func (*ReprioritiseJobSet) ProtoMessage() {} func (*ReprioritiseJobSet) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{10} + return fileDescriptor_6aab92ca59e015f8, []int{9} } func (m *ReprioritiseJobSet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1389,7 +1289,6 @@ func (m *ReprioritiseJobSet) GetPriority() uint32 { // Generated by the scheduler in response to ReprioritiseJob and ReprioritiseJobSet. // One such message is generated per job that was re-prioritised and includes the new priority. type ReprioritisedJob struct { - JobId *Uuid `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` Priority uint32 `protobuf:"varint,2,opt,name=priority,proto3" json:"priority,omitempty"` JobIdStr string `protobuf:"bytes,3,opt,name=job_id_str,json=jobIdStr,proto3" json:"jobIdStr,omitempty"` } @@ -1398,7 +1297,7 @@ func (m *ReprioritisedJob) Reset() { *m = ReprioritisedJob{} } func (m *ReprioritisedJob) String() string { return proto.CompactTextString(m) } func (*ReprioritisedJob) ProtoMessage() {} func (*ReprioritisedJob) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{11} + return fileDescriptor_6aab92ca59e015f8, []int{10} } func (m *ReprioritisedJob) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1427,13 +1326,6 @@ func (m *ReprioritisedJob) XXX_DiscardUnknown() { var xxx_messageInfo_ReprioritisedJob proto.InternalMessageInfo -func (m *ReprioritisedJob) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *ReprioritisedJob) GetPriority() uint32 { if m != nil { return m.Priority @@ -1452,7 +1344,6 @@ func (m *ReprioritisedJob) GetJobIdStr() string { // This will cancel all runs (preempting it if running) for the job (i.e., move them to the failed state) // and then cancel job itself (i.e., move it to the failed state). type CancelJob struct { - JobId *Uuid `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` JobIdStr string `protobuf:"bytes,3,opt,name=job_id_str,json=jobIdStr,proto3" json:"jobIdStr,omitempty"` } @@ -1461,7 +1352,7 @@ func (m *CancelJob) Reset() { *m = CancelJob{} } func (m *CancelJob) String() string { return proto.CompactTextString(m) } func (*CancelJob) ProtoMessage() {} func (*CancelJob) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{12} + return fileDescriptor_6aab92ca59e015f8, []int{11} } func (m *CancelJob) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1490,13 +1381,6 @@ func (m *CancelJob) XXX_DiscardUnknown() { var xxx_messageInfo_CancelJob proto.InternalMessageInfo -func (m *CancelJob) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *CancelJob) GetReason() string { if m != nil { return m.Reason @@ -1521,7 +1405,7 @@ func (m *JobSetFilter) Reset() { *m = JobSetFilter{} } func (m *JobSetFilter) String() string { return proto.CompactTextString(m) } func (*JobSetFilter) ProtoMessage() {} func (*JobSetFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{13} + return fileDescriptor_6aab92ca59e015f8, []int{12} } func (m *JobSetFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1568,7 +1452,7 @@ func (m *CancelJobSet) Reset() { *m = CancelJobSet{} } func (m *CancelJobSet) String() string { return proto.CompactTextString(m) } func (*CancelJobSet) ProtoMessage() {} func (*CancelJobSet) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{14} + return fileDescriptor_6aab92ca59e015f8, []int{13} } func (m *CancelJobSet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1614,7 +1498,6 @@ func (m *CancelJobSet) GetReason() string { // Generated by the scheduler in response to CancelJob and CancelJobSet. // One such message is generated per job that was cancelled. type CancelledJob struct { - JobId *Uuid `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` JobIdStr string `protobuf:"bytes,3,opt,name=job_id_str,json=jobIdStr,proto3" json:"jobIdStr,omitempty"` } @@ -1623,7 +1506,7 @@ func (m *CancelledJob) Reset() { *m = CancelledJob{} } func (m *CancelledJob) String() string { return proto.CompactTextString(m) } func (*CancelledJob) ProtoMessage() {} func (*CancelledJob) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{15} + return fileDescriptor_6aab92ca59e015f8, []int{14} } func (m *CancelledJob) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1652,13 +1535,6 @@ func (m *CancelledJob) XXX_DiscardUnknown() { var xxx_messageInfo_CancelledJob proto.InternalMessageInfo -func (m *CancelledJob) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *CancelledJob) GetReason() string { if m != nil { return m.Reason @@ -1674,7 +1550,6 @@ func (m *CancelledJob) GetJobIdStr() string { } type JobSucceeded struct { - JobId *Uuid `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` // Runtime information, e.g., which node the job is running on, its IP address etc, // for each resource created for the job run. // TODO: remove this once we have fixed the external api @@ -1686,7 +1561,7 @@ func (m *JobSucceeded) Reset() { *m = JobSucceeded{} } func (m *JobSucceeded) String() string { return proto.CompactTextString(m) } func (*JobSucceeded) ProtoMessage() {} func (*JobSucceeded) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{16} + return fileDescriptor_6aab92ca59e015f8, []int{15} } func (m *JobSucceeded) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1715,13 +1590,6 @@ func (m *JobSucceeded) XXX_DiscardUnknown() { var xxx_messageInfo_JobSucceeded proto.InternalMessageInfo -func (m *JobSucceeded) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *JobSucceeded) GetResourceInfos() []*KubernetesResourceInfo { if m != nil { return m.ResourceInfos @@ -1738,8 +1606,6 @@ func (m *JobSucceeded) GetJobIdStr() string { // Indicates that a job has been leased to a cluster by the Armada scheduler. type JobRunLeased struct { - RunId *Uuid `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"runId,omitempty"` - JobId *Uuid `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` // Each cluster is represented by an executor. ExecutorId string `protobuf:"bytes,3,opt,name=executor_id,json=executorId,proto3" json:"executorId,omitempty"` NodeId string `protobuf:"bytes,4,opt,name=node_id,json=nodeId,proto3" json:"nodeId,omitempty"` @@ -1771,7 +1637,7 @@ func (m *JobRunLeased) Reset() { *m = JobRunLeased{} } func (m *JobRunLeased) String() string { return proto.CompactTextString(m) } func (*JobRunLeased) ProtoMessage() {} func (*JobRunLeased) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{17} + return fileDescriptor_6aab92ca59e015f8, []int{16} } func (m *JobRunLeased) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1800,20 +1666,6 @@ func (m *JobRunLeased) XXX_DiscardUnknown() { var xxx_messageInfo_JobRunLeased proto.InternalMessageInfo -func (m *JobRunLeased) GetRunId() *Uuid { - if m != nil { - return m.RunId - } - return nil -} - -func (m *JobRunLeased) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *JobRunLeased) GetExecutorId() string { if m != nil { return m.ExecutorId @@ -1879,8 +1731,6 @@ func (m *JobRunLeased) GetPool() string { // Indicates that a job has been assigned to nodes by Kubernetes. type JobRunAssigned struct { - RunId *Uuid `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"runId,omitempty"` - JobId *Uuid `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` // Runtime information, e.g., which node the job is running on, its IP address etc, // for each resource created for the job run. // Included here and in JobRunRunning for compatibility with legacy messages. @@ -1893,7 +1743,7 @@ func (m *JobRunAssigned) Reset() { *m = JobRunAssigned{} } func (m *JobRunAssigned) String() string { return proto.CompactTextString(m) } func (*JobRunAssigned) ProtoMessage() {} func (*JobRunAssigned) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{18} + return fileDescriptor_6aab92ca59e015f8, []int{17} } func (m *JobRunAssigned) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1922,20 +1772,6 @@ func (m *JobRunAssigned) XXX_DiscardUnknown() { var xxx_messageInfo_JobRunAssigned proto.InternalMessageInfo -func (m *JobRunAssigned) GetRunId() *Uuid { - if m != nil { - return m.RunId - } - return nil -} - -func (m *JobRunAssigned) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *JobRunAssigned) GetResourceInfos() []*KubernetesResourceInfo { if m != nil { return m.ResourceInfos @@ -1959,8 +1795,6 @@ func (m *JobRunAssigned) GetRunIdStr() string { // Indicates that the resources required by the job have been created and that the job is now running. type JobRunRunning struct { - RunId *Uuid `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"runId,omitempty"` - JobId *Uuid `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` // Runtime information, e.g., which node the job is running on, its IP address etc, // for each resource created for the job run. ResourceInfos []*KubernetesResourceInfo `protobuf:"bytes,3,rep,name=resourceInfos,proto3" json:"resourceInfos,omitempty"` @@ -1972,7 +1806,7 @@ func (m *JobRunRunning) Reset() { *m = JobRunRunning{} } func (m *JobRunRunning) String() string { return proto.CompactTextString(m) } func (*JobRunRunning) ProtoMessage() {} func (*JobRunRunning) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{19} + return fileDescriptor_6aab92ca59e015f8, []int{18} } func (m *JobRunRunning) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2001,20 +1835,6 @@ func (m *JobRunRunning) XXX_DiscardUnknown() { var xxx_messageInfo_JobRunRunning proto.InternalMessageInfo -func (m *JobRunRunning) GetRunId() *Uuid { - if m != nil { - return m.RunId - } - return nil -} - -func (m *JobRunRunning) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *JobRunRunning) GetResourceInfos() []*KubernetesResourceInfo { if m != nil { return m.ResourceInfos @@ -2049,7 +1869,7 @@ func (m *KubernetesResourceInfo) Reset() { *m = KubernetesResourceInfo{} func (m *KubernetesResourceInfo) String() string { return proto.CompactTextString(m) } func (*KubernetesResourceInfo) ProtoMessage() {} func (*KubernetesResourceInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{20} + return fileDescriptor_6aab92ca59e015f8, []int{19} } func (m *KubernetesResourceInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2140,7 +1960,7 @@ func (m *PodInfo) Reset() { *m = PodInfo{} } func (m *PodInfo) String() string { return proto.CompactTextString(m) } func (*PodInfo) ProtoMessage() {} func (*PodInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{21} + return fileDescriptor_6aab92ca59e015f8, []int{20} } func (m *PodInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2195,7 +2015,7 @@ func (m *IngressInfo) Reset() { *m = IngressInfo{} } func (m *IngressInfo) String() string { return proto.CompactTextString(m) } func (*IngressInfo) ProtoMessage() {} func (*IngressInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{22} + return fileDescriptor_6aab92ca59e015f8, []int{21} } func (m *IngressInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2242,8 +2062,6 @@ func (m *IngressInfo) GetIngressAddresses() map[int32]string { // Used for compatibility with legacy messages, which send ingress info as its own message. // Later, this info should be bundled with the JobRunRunning message. type StandaloneIngressInfo struct { - RunId *Uuid `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"runId,omitempty"` - JobId *Uuid `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` // ObjectMeta associated with the ingress. ObjectMeta *ObjectMeta `protobuf:"bytes,3,opt,name=objectMeta,proto3" json:"objectMeta,omitempty"` IngressAddresses map[int32]string `protobuf:"bytes,4,rep,name=ingress_addresses,json=ingressAddresses,proto3" json:"ingressAddresses,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` @@ -2260,7 +2078,7 @@ func (m *StandaloneIngressInfo) Reset() { *m = StandaloneIngressInfo{} } func (m *StandaloneIngressInfo) String() string { return proto.CompactTextString(m) } func (*StandaloneIngressInfo) ProtoMessage() {} func (*StandaloneIngressInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{23} + return fileDescriptor_6aab92ca59e015f8, []int{22} } func (m *StandaloneIngressInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2289,20 +2107,6 @@ func (m *StandaloneIngressInfo) XXX_DiscardUnknown() { var xxx_messageInfo_StandaloneIngressInfo proto.InternalMessageInfo -func (m *StandaloneIngressInfo) GetRunId() *Uuid { - if m != nil { - return m.RunId - } - return nil -} - -func (m *StandaloneIngressInfo) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *StandaloneIngressInfo) GetObjectMeta() *ObjectMeta { if m != nil { return m.ObjectMeta @@ -2361,8 +2165,6 @@ func (m *StandaloneIngressInfo) GetRunIdStr() string { // Indicates that the job finished successfully (i.e., in the expected manner). type JobRunSucceeded struct { - RunId *Uuid `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"runId,omitempty"` - JobId *Uuid `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` // Runtime information, e.g., which node the job is running on, its IP address etc, // for each resource created for the job run. // TODO: remove this once we have fixed the external api @@ -2375,7 +2177,7 @@ func (m *JobRunSucceeded) Reset() { *m = JobRunSucceeded{} } func (m *JobRunSucceeded) String() string { return proto.CompactTextString(m) } func (*JobRunSucceeded) ProtoMessage() {} func (*JobRunSucceeded) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{24} + return fileDescriptor_6aab92ca59e015f8, []int{23} } func (m *JobRunSucceeded) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2404,20 +2206,6 @@ func (m *JobRunSucceeded) XXX_DiscardUnknown() { var xxx_messageInfo_JobRunSucceeded proto.InternalMessageInfo -func (m *JobRunSucceeded) GetRunId() *Uuid { - if m != nil { - return m.RunId - } - return nil -} - -func (m *JobRunSucceeded) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *JobRunSucceeded) GetResourceInfos() []*KubernetesResourceInfo { if m != nil { return m.ResourceInfos @@ -2443,7 +2231,6 @@ func (m *JobRunSucceeded) GetRunIdStr() string { // Contains a flag, which if set to true indicates that the job has failed. // Otherwise, this message represents a set of errors from which the system has recovered. type JobErrors struct { - JobId *Uuid `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` // A set of errors that occurred within some context. Errors []*Error `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` JobIdStr string `protobuf:"bytes,3,opt,name=job_id_str,json=jobIdStr,proto3" json:"jobIdStr,omitempty"` @@ -2453,7 +2240,7 @@ func (m *JobErrors) Reset() { *m = JobErrors{} } func (m *JobErrors) String() string { return proto.CompactTextString(m) } func (*JobErrors) ProtoMessage() {} func (*JobErrors) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{25} + return fileDescriptor_6aab92ca59e015f8, []int{24} } func (m *JobErrors) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2482,13 +2269,6 @@ func (m *JobErrors) XXX_DiscardUnknown() { var xxx_messageInfo_JobErrors proto.InternalMessageInfo -func (m *JobErrors) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *JobErrors) GetErrors() []*Error { if m != nil { return m.Errors @@ -2511,8 +2291,6 @@ func (m *JobErrors) GetJobIdStr() string { // // Services may listen for these messages to obtain realtime information about errors associated with jobs. type JobRunErrors struct { - RunId *Uuid `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"runId,omitempty"` - JobId *Uuid `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` // A set of errors that occurred within some context. Errors []*Error `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` JobIdStr string `protobuf:"bytes,4,opt,name=job_id_str,json=jobIdStr,proto3" json:"jobIdStr,omitempty"` @@ -2523,7 +2301,7 @@ func (m *JobRunErrors) Reset() { *m = JobRunErrors{} } func (m *JobRunErrors) String() string { return proto.CompactTextString(m) } func (*JobRunErrors) ProtoMessage() {} func (*JobRunErrors) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{26} + return fileDescriptor_6aab92ca59e015f8, []int{25} } func (m *JobRunErrors) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2552,20 +2330,6 @@ func (m *JobRunErrors) XXX_DiscardUnknown() { var xxx_messageInfo_JobRunErrors proto.InternalMessageInfo -func (m *JobRunErrors) GetRunId() *Uuid { - if m != nil { - return m.RunId - } - return nil -} - -func (m *JobRunErrors) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *JobRunErrors) GetErrors() []*Error { if m != nil { return m.Errors @@ -2619,7 +2383,7 @@ func (m *Error) Reset() { *m = Error{} } func (m *Error) String() string { return proto.CompactTextString(m) } func (*Error) ProtoMessage() {} func (*Error) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{27} + return fileDescriptor_6aab92ca59e015f8, []int{26} } func (m *Error) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2812,15 +2576,13 @@ func (*Error) XXX_OneofWrappers() []interface{} { type KubernetesError struct { // Type of Kubernetes resource (e.g., ingress). ResourceType string `protobuf:"bytes,1,opt,name=resourceType,proto3" json:"resourceType,omitempty"` - // Id assigned to the resource by Kubernetes. - ResourceId *Uuid `protobuf:"bytes,2,opt,name=resourceId,proto3" json:"resourceId,omitempty"` } func (m *KubernetesError) Reset() { *m = KubernetesError{} } func (m *KubernetesError) String() string { return proto.CompactTextString(m) } func (*KubernetesError) ProtoMessage() {} func (*KubernetesError) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{28} + return fileDescriptor_6aab92ca59e015f8, []int{27} } func (m *KubernetesError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2856,13 +2618,6 @@ func (m *KubernetesError) GetResourceType() string { return "" } -func (m *KubernetesError) GetResourceId() *Uuid { - if m != nil { - return m.ResourceId - } - return nil -} - // Indicates one or more of the containers in the pod failed. type PodError struct { // This ObjectMeta identifies the Pod. @@ -2879,7 +2634,7 @@ func (m *PodError) Reset() { *m = PodError{} } func (m *PodError) String() string { return proto.CompactTextString(m) } func (*PodError) ProtoMessage() {} func (*PodError) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{29} + return fileDescriptor_6aab92ca59e015f8, []int{28} } func (m *PodError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2974,7 +2729,7 @@ func (m *ContainerError) Reset() { *m = ContainerError{} } func (m *ContainerError) String() string { return proto.CompactTextString(m) } func (*ContainerError) ProtoMessage() {} func (*ContainerError) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{30} + return fileDescriptor_6aab92ca59e015f8, []int{29} } func (m *ContainerError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3051,7 +2806,7 @@ func (m *PodLeaseReturned) Reset() { *m = PodLeaseReturned{} } func (m *PodLeaseReturned) String() string { return proto.CompactTextString(m) } func (*PodLeaseReturned) ProtoMessage() {} func (*PodLeaseReturned) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{31} + return fileDescriptor_6aab92ca59e015f8, []int{30} } func (m *PodLeaseReturned) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3129,7 +2884,7 @@ func (m *PodTerminated) Reset() { *m = PodTerminated{} } func (m *PodTerminated) String() string { return proto.CompactTextString(m) } func (*PodTerminated) ProtoMessage() {} func (*PodTerminated) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{32} + return fileDescriptor_6aab92ca59e015f8, []int{31} } func (m *PodTerminated) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3193,7 +2948,7 @@ func (m *ExecutorError) Reset() { *m = ExecutorError{} } func (m *ExecutorError) String() string { return proto.CompactTextString(m) } func (*ExecutorError) ProtoMessage() {} func (*ExecutorError) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{33} + return fileDescriptor_6aab92ca59e015f8, []int{32} } func (m *ExecutorError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3234,7 +2989,7 @@ func (m *PodUnschedulable) Reset() { *m = PodUnschedulable{} } func (m *PodUnschedulable) String() string { return proto.CompactTextString(m) } func (*PodUnschedulable) ProtoMessage() {} func (*PodUnschedulable) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{34} + return fileDescriptor_6aab92ca59e015f8, []int{33} } func (m *PodUnschedulable) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3298,7 +3053,7 @@ func (m *LeaseExpired) Reset() { *m = LeaseExpired{} } func (m *LeaseExpired) String() string { return proto.CompactTextString(m) } func (*LeaseExpired) ProtoMessage() {} func (*LeaseExpired) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{35} + return fileDescriptor_6aab92ca59e015f8, []int{34} } func (m *LeaseExpired) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3335,7 +3090,7 @@ func (m *MaxRunsExceeded) Reset() { *m = MaxRunsExceeded{} } func (m *MaxRunsExceeded) String() string { return proto.CompactTextString(m) } func (*MaxRunsExceeded) ProtoMessage() {} func (*MaxRunsExceeded) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{36} + return fileDescriptor_6aab92ca59e015f8, []int{35} } func (m *MaxRunsExceeded) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3378,7 +3133,7 @@ func (m *JobRunPreemptedError) Reset() { *m = JobRunPreemptedError{} } func (m *JobRunPreemptedError) String() string { return proto.CompactTextString(m) } func (*JobRunPreemptedError) ProtoMessage() {} func (*JobRunPreemptedError) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{37} + return fileDescriptor_6aab92ca59e015f8, []int{36} } func (m *JobRunPreemptedError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3415,7 +3170,7 @@ func (m *GangJobUnschedulable) Reset() { *m = GangJobUnschedulable{} } func (m *GangJobUnschedulable) String() string { return proto.CompactTextString(m) } func (*GangJobUnschedulable) ProtoMessage() {} func (*GangJobUnschedulable) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{38} + return fileDescriptor_6aab92ca59e015f8, []int{37} } func (m *GangJobUnschedulable) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3459,7 +3214,7 @@ func (m *JobRejected) Reset() { *m = JobRejected{} } func (m *JobRejected) String() string { return proto.CompactTextString(m) } func (*JobRejected) ProtoMessage() {} func (*JobRejected) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{39} + return fileDescriptor_6aab92ca59e015f8, []int{38} } func (m *JobRejected) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3497,14 +3252,6 @@ func (m *JobRejected) GetMessage() string { // Message to indicate that a JobRun has been preempted. type JobRunPreempted struct { - // Uuid of the job that was preempted - PreemptedJobId *Uuid `protobuf:"bytes,1,opt,name=preempted_job_id,json=preemptedJobId,proto3" json:"preemptedJobId,omitempty"` - // Uuid of the job run that was preempted. - PreemptedRunId *Uuid `protobuf:"bytes,2,opt,name=preempted_run_id,json=preemptedRunId,proto3" json:"preemptedRunId,omitempty"` - // Uuid of the job that caused the preemption. - PreemptiveJobId *Uuid `protobuf:"bytes,3,opt,name=preemptive_job_id,json=preemptiveJobId,proto3" json:"preemptiveJobId,omitempty"` - // Uuid of the job run that caused the preemption. - PreemptiveRunId *Uuid `protobuf:"bytes,4,opt,name=preemptive_run_id,json=preemptiveRunId,proto3" json:"preemptiveRunId,omitempty"` PreemptedJobIdStr string `protobuf:"bytes,5,opt,name=preempted_job_id_str,json=preemptedJobIdStr,proto3" json:"preemptedJobIdStr,omitempty"` PreemptedRunIdStr string `protobuf:"bytes,6,opt,name=preempted_run_id_str,json=preemptedRunIdStr,proto3" json:"preemptedRunIdStr,omitempty"` } @@ -3513,7 +3260,7 @@ func (m *JobRunPreempted) Reset() { *m = JobRunPreempted{} } func (m *JobRunPreempted) String() string { return proto.CompactTextString(m) } func (*JobRunPreempted) ProtoMessage() {} func (*JobRunPreempted) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{40} + return fileDescriptor_6aab92ca59e015f8, []int{39} } func (m *JobRunPreempted) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3542,34 +3289,6 @@ func (m *JobRunPreempted) XXX_DiscardUnknown() { var xxx_messageInfo_JobRunPreempted proto.InternalMessageInfo -func (m *JobRunPreempted) GetPreemptedJobId() *Uuid { - if m != nil { - return m.PreemptedJobId - } - return nil -} - -func (m *JobRunPreempted) GetPreemptedRunId() *Uuid { - if m != nil { - return m.PreemptedRunId - } - return nil -} - -func (m *JobRunPreempted) GetPreemptiveJobId() *Uuid { - if m != nil { - return m.PreemptiveJobId - } - return nil -} - -func (m *JobRunPreempted) GetPreemptiveRunId() *Uuid { - if m != nil { - return m.PreemptiveRunId - } - return nil -} - func (m *JobRunPreempted) GetPreemptedJobIdStr() string { if m != nil { return m.PreemptedJobIdStr @@ -3586,8 +3305,6 @@ func (m *JobRunPreempted) GetPreemptedRunIdStr() string { // Message used internally by Armada to see if messages can be propagated through a pulsar partition type PartitionMarker struct { - // group id ties together multiple messages across different partitions - GroupId *Uuid `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"groupId,omitempty"` // string group id GroupIdStr string `protobuf:"bytes,3,opt,name=group_id_str,json=groupIdStr,proto3" json:"groupIdStr,omitempty"` // The pulsar partition on which this message was sent @@ -3598,7 +3315,7 @@ func (m *PartitionMarker) Reset() { *m = PartitionMarker{} } func (m *PartitionMarker) String() string { return proto.CompactTextString(m) } func (*PartitionMarker) ProtoMessage() {} func (*PartitionMarker) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{41} + return fileDescriptor_6aab92ca59e015f8, []int{40} } func (m *PartitionMarker) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3627,13 +3344,6 @@ func (m *PartitionMarker) XXX_DiscardUnknown() { var xxx_messageInfo_PartitionMarker proto.InternalMessageInfo -func (m *PartitionMarker) GetGroupId() *Uuid { - if m != nil { - return m.GroupId - } - return nil -} - func (m *PartitionMarker) GetGroupIdStr() string { if m != nil { return m.GroupIdStr @@ -3650,8 +3360,6 @@ func (m *PartitionMarker) GetPartition() uint32 { // Indicates that the scheduler has requested for the job run to be pre-empted. type JobRunPreemptionRequested struct { - RunId *Uuid `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"runId,omitempty"` - JobId *Uuid `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` JobIdStr string `protobuf:"bytes,3,opt,name=job_id_str,json=jobIdStr,proto3" json:"jobIdStr,omitempty"` RunIdStr string `protobuf:"bytes,4,opt,name=run_id_str,json=runIdStr,proto3" json:"runIdStr,omitempty"` } @@ -3660,7 +3368,7 @@ func (m *JobRunPreemptionRequested) Reset() { *m = JobRunPreemptionReque func (m *JobRunPreemptionRequested) String() string { return proto.CompactTextString(m) } func (*JobRunPreemptionRequested) ProtoMessage() {} func (*JobRunPreemptionRequested) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{42} + return fileDescriptor_6aab92ca59e015f8, []int{41} } func (m *JobRunPreemptionRequested) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3689,25 +3397,11 @@ func (m *JobRunPreemptionRequested) XXX_DiscardUnknown() { var xxx_messageInfo_JobRunPreemptionRequested proto.InternalMessageInfo -func (m *JobRunPreemptionRequested) GetRunId() *Uuid { +func (m *JobRunPreemptionRequested) GetJobIdStr() string { if m != nil { - return m.RunId + return m.JobIdStr } - return nil -} - -func (m *JobRunPreemptionRequested) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - -func (m *JobRunPreemptionRequested) GetJobIdStr() string { - if m != nil { - return m.JobIdStr - } - return "" + return "" } func (m *JobRunPreemptionRequested) GetRunIdStr() string { @@ -3719,7 +3413,6 @@ func (m *JobRunPreemptionRequested) GetRunIdStr() string { // Indicates that a user has requested for the job to be pre-empted. type JobPreemptionRequested struct { - JobId *Uuid `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` JobIdStr string `protobuf:"bytes,2,opt,name=job_id_str,json=jobIdStr,proto3" json:"jobIdStr,omitempty"` } @@ -3727,7 +3420,7 @@ func (m *JobPreemptionRequested) Reset() { *m = JobPreemptionRequested{} func (m *JobPreemptionRequested) String() string { return proto.CompactTextString(m) } func (*JobPreemptionRequested) ProtoMessage() {} func (*JobPreemptionRequested) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{43} + return fileDescriptor_6aab92ca59e015f8, []int{42} } func (m *JobPreemptionRequested) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3756,13 +3449,6 @@ func (m *JobPreemptionRequested) XXX_DiscardUnknown() { var xxx_messageInfo_JobPreemptionRequested proto.InternalMessageInfo -func (m *JobPreemptionRequested) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *JobPreemptionRequested) GetJobIdStr() string { if m != nil { return m.JobIdStr @@ -3772,7 +3458,6 @@ func (m *JobPreemptionRequested) GetJobIdStr() string { // Indicates that the scheduler is happy with the job type JobValidated struct { - JobId *Uuid `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` Pools []string `protobuf:"bytes,2,rep,name=pools,proto3" json:"pools,omitempty"` JobIdStr string `protobuf:"bytes,3,opt,name=job_id_str,json=jobIdStr,proto3" json:"jobIdStr,omitempty"` } @@ -3781,7 +3466,7 @@ func (m *JobValidated) Reset() { *m = JobValidated{} } func (m *JobValidated) String() string { return proto.CompactTextString(m) } func (*JobValidated) ProtoMessage() {} func (*JobValidated) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{44} + return fileDescriptor_6aab92ca59e015f8, []int{43} } func (m *JobValidated) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3810,13 +3495,6 @@ func (m *JobValidated) XXX_DiscardUnknown() { var xxx_messageInfo_JobValidated proto.InternalMessageInfo -func (m *JobValidated) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *JobValidated) GetPools() []string { if m != nil { return m.Pools @@ -3834,8 +3512,6 @@ func (m *JobValidated) GetJobIdStr() string { // Generated by the scheduler when a job is cancelled, all active job runs are also cancelled // One such message is generated per job run that was cancelled. type JobRunCancelled struct { - RunId *Uuid `protobuf:"bytes,1,opt,name=run_id,json=runId,proto3" json:"runId,omitempty"` - JobId *Uuid `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"` JobIdStr string `protobuf:"bytes,3,opt,name=job_id_str,json=jobIdStr,proto3" json:"jobIdStr,omitempty"` RunIdStr string `protobuf:"bytes,4,opt,name=run_id_str,json=runIdStr,proto3" json:"runIdStr,omitempty"` } @@ -3844,7 +3520,7 @@ func (m *JobRunCancelled) Reset() { *m = JobRunCancelled{} } func (m *JobRunCancelled) String() string { return proto.CompactTextString(m) } func (*JobRunCancelled) ProtoMessage() {} func (*JobRunCancelled) Descriptor() ([]byte, []int) { - return fileDescriptor_6aab92ca59e015f8, []int{45} + return fileDescriptor_6aab92ca59e015f8, []int{44} } func (m *JobRunCancelled) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3873,20 +3549,6 @@ func (m *JobRunCancelled) XXX_DiscardUnknown() { var xxx_messageInfo_JobRunCancelled proto.InternalMessageInfo -func (m *JobRunCancelled) GetRunId() *Uuid { - if m != nil { - return m.RunId - } - return nil -} - -func (m *JobRunCancelled) GetJobId() *Uuid { - if m != nil { - return m.JobId - } - return nil -} - func (m *JobRunCancelled) GetJobIdStr() string { if m != nil { return m.JobIdStr @@ -3909,7 +3571,6 @@ func init() { proto.RegisterType((*ResourceUtilisation)(nil), "armadaevents.ResourceUtilisation") proto.RegisterMapType((map[string]*resource.Quantity)(nil), "armadaevents.ResourceUtilisation.MaxResourcesForPeriodEntry") proto.RegisterMapType((map[string]*resource.Quantity)(nil), "armadaevents.ResourceUtilisation.TotalCumulativeUsageEntry") - proto.RegisterType((*Uuid)(nil), "armadaevents.Uuid") proto.RegisterType((*SubmitJob)(nil), "armadaevents.SubmitJob") proto.RegisterType((*KubernetesMainObject)(nil), "armadaevents.KubernetesMainObject") proto.RegisterType((*KubernetesObject)(nil), "armadaevents.KubernetesObject") @@ -3962,246 +3623,231 @@ func init() { func init() { proto.RegisterFile("pkg/armadaevents/events.proto", fileDescriptor_6aab92ca59e015f8) } var fileDescriptor_6aab92ca59e015f8 = []byte{ - // 3824 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4d, 0x6f, 0x1b, 0x47, - 0x96, 0x6e, 0x92, 0xe2, 0xc7, 0xa3, 0x3e, 0xe8, 0xd2, 0x87, 0x69, 0x25, 0x16, 0x65, 0x3a, 0xbb, - 0xb1, 0x83, 0x84, 0x4a, 0x14, 0x27, 0x48, 0x9c, 0x45, 0x02, 0xd1, 0x56, 0x6c, 0x2b, 0x96, 0xad, - 0x50, 0x56, 0xd6, 0x1b, 0x64, 0xc1, 0x34, 0xd9, 0x25, 0xaa, 0x2d, 0xb2, 0x9b, 0xe9, 0x0f, 0x45, - 0x02, 0x72, 0xd8, 0x2c, 0x82, 0xdd, 0xdb, 0x22, 0x97, 0x05, 0x16, 0x7b, 0xc9, 0x1e, 0xf7, 0x03, - 0xc1, 0x02, 0x73, 0x98, 0xcb, 0xcc, 0x60, 0x2e, 0x73, 0x98, 0x19, 0x0c, 0x06, 0x39, 0xce, 0x65, - 0x88, 0x81, 0x33, 0x33, 0x07, 0x02, 0x33, 0xff, 0x60, 0x80, 0x41, 0x7d, 0x75, 0x57, 0x35, 0x9b, - 0x36, 0x2d, 0x59, 0x76, 0x82, 0xe4, 0x64, 0xf7, 0xfb, 0xac, 0xaa, 0xf7, 0xea, 0xd5, 0x7b, 0xaf, - 0x8a, 0x82, 0x33, 0xdd, 0xdd, 0xd6, 0x92, 0xee, 0x74, 0x74, 0x43, 0xc7, 0x7b, 0xd8, 0xf2, 0xdc, - 0x25, 0xf6, 0x4f, 0xa5, 0xeb, 0xd8, 0x9e, 0x8d, 0xc6, 0x65, 0xd4, 0x7c, 0x79, 0xf7, 0x35, 0xb7, - 0x62, 0xda, 0x4b, 0x7a, 0xd7, 0x5c, 0x6a, 0xda, 0x0e, 0x5e, 0xda, 0x7b, 0x69, 0xa9, 0x85, 0x2d, - 0xec, 0xe8, 0x1e, 0x36, 0x18, 0xc7, 0xfc, 0x79, 0x89, 0xc6, 0xc2, 0xde, 0xc7, 0xb6, 0xb3, 0x6b, - 0x5a, 0xad, 0x38, 0xca, 0x52, 0xcb, 0xb6, 0x5b, 0x6d, 0xbc, 0x44, 0xbf, 0x1a, 0xfe, 0xf6, 0x92, - 0x67, 0x76, 0xb0, 0xeb, 0xe9, 0x9d, 0x2e, 0x27, 0xb8, 0x18, 0x8a, 0xea, 0xe8, 0xcd, 0x1d, 0xd3, - 0xc2, 0xce, 0xc1, 0x12, 0x1d, 0x6f, 0xd7, 0x5c, 0x72, 0xb0, 0x6b, 0xfb, 0x4e, 0x13, 0x0f, 0x88, - 0xbd, 0x64, 0x5a, 0x1e, 0x76, 0x2c, 0xbd, 0xbd, 0xe4, 0x36, 0x77, 0xb0, 0xe1, 0xb7, 0xb1, 0x13, - 0xfe, 0xcf, 0x6e, 0xdc, 0xc5, 0x4d, 0xcf, 0x1d, 0x00, 0x30, 0xde, 0xf2, 0x6f, 0x67, 0x61, 0x62, - 0x95, 0xcc, 0x75, 0x13, 0x7f, 0xe4, 0x63, 0xab, 0x89, 0xd1, 0x05, 0x18, 0xfb, 0xc8, 0xc7, 0x3e, - 0x2e, 0x6a, 0x8b, 0xda, 0xf9, 0x5c, 0x75, 0xba, 0xdf, 0x2b, 0x4d, 0x51, 0xc0, 0xf3, 0x76, 0xc7, - 0xf4, 0x70, 0xa7, 0xeb, 0x1d, 0xd4, 0x18, 0x05, 0xba, 0x04, 0xe3, 0x77, 0xed, 0x46, 0xdd, 0xc5, - 0x5e, 0xdd, 0xd2, 0x3b, 0xb8, 0x98, 0xa0, 0x1c, 0xc5, 0x7e, 0xaf, 0x34, 0x73, 0xd7, 0x6e, 0x6c, - 0x62, 0xef, 0xa6, 0xde, 0x91, 0xd9, 0x20, 0x84, 0xa2, 0x17, 0x20, 0xe3, 0xbb, 0xd8, 0xa9, 0x9b, - 0x46, 0x31, 0x49, 0xd9, 0x66, 0xfa, 0xbd, 0x52, 0x81, 0x80, 0xae, 0x1b, 0x12, 0x4b, 0x9a, 0x41, - 0xd0, 0xf3, 0x90, 0x6e, 0x39, 0xb6, 0xdf, 0x75, 0x8b, 0xa9, 0xc5, 0xa4, 0xa0, 0x66, 0x10, 0x99, - 0x9a, 0x41, 0xd0, 0x2d, 0x48, 0x33, 0x03, 0x16, 0xc7, 0x16, 0x93, 0xe7, 0xf3, 0xcb, 0x67, 0x2b, - 0xb2, 0x55, 0x2b, 0xca, 0x84, 0xd9, 0x17, 0x13, 0xc8, 0xf0, 0xb2, 0x40, 0xee, 0x07, 0x3f, 0x9c, - 0x86, 0x31, 0x4a, 0x87, 0xde, 0x81, 0x4c, 0xd3, 0xc1, 0x64, 0xf5, 0x8b, 0x68, 0x51, 0x3b, 0x9f, - 0x5f, 0x9e, 0xaf, 0x30, 0xab, 0x56, 0x84, 0x55, 0x2b, 0xb7, 0x85, 0x55, 0xab, 0xb3, 0xfd, 0x5e, - 0xe9, 0x24, 0x27, 0x97, 0xa4, 0x0a, 0x09, 0x68, 0x03, 0x72, 0xae, 0xdf, 0xe8, 0x98, 0xde, 0x9a, - 0xdd, 0xa0, 0xeb, 0x9d, 0x5f, 0x3e, 0xa5, 0x0e, 0x75, 0x53, 0xa0, 0xab, 0xa7, 0xfa, 0xbd, 0xd2, - 0x74, 0x40, 0x1d, 0x4a, 0xbb, 0x76, 0xa2, 0x16, 0x0a, 0x41, 0x3b, 0x30, 0xe5, 0xe0, 0xae, 0x63, - 0xda, 0x8e, 0xe9, 0x99, 0x2e, 0x26, 0x72, 0x13, 0x54, 0xee, 0x19, 0x55, 0x6e, 0x4d, 0x25, 0xaa, - 0x9e, 0xe9, 0xf7, 0x4a, 0xa7, 0x23, 0x9c, 0x8a, 0x8e, 0xa8, 0x58, 0xe4, 0x01, 0x8a, 0x80, 0x36, - 0xb1, 0x47, 0x6d, 0x99, 0x5f, 0x5e, 0xbc, 0xaf, 0xb2, 0x4d, 0xec, 0x55, 0x17, 0xfb, 0xbd, 0xd2, - 0xd3, 0x83, 0xfc, 0x8a, 0xca, 0x18, 0xf9, 0xa8, 0x0d, 0x05, 0x19, 0x6a, 0x90, 0x09, 0xa6, 0xa8, - 0xce, 0x85, 0xe1, 0x3a, 0x09, 0x55, 0x75, 0xa1, 0xdf, 0x2b, 0xcd, 0x47, 0x79, 0x15, 0x7d, 0x03, - 0x92, 0x89, 0x7d, 0x9a, 0xba, 0xd5, 0xc4, 0x6d, 0xa2, 0x66, 0x2c, 0xce, 0x3e, 0x97, 0x05, 0x9a, - 0xd9, 0x27, 0xa0, 0x56, 0xed, 0x13, 0x80, 0xd1, 0x07, 0x30, 0x1e, 0x7c, 0x90, 0xf5, 0x4a, 0x73, - 0x1f, 0x8a, 0x17, 0x4a, 0x56, 0x6a, 0xbe, 0xdf, 0x2b, 0xcd, 0xc9, 0x3c, 0x8a, 0x68, 0x45, 0x5a, - 0x28, 0xbd, 0xcd, 0x56, 0x26, 0x33, 0x5c, 0x3a, 0xa3, 0x90, 0xa5, 0xb7, 0x07, 0x57, 0x44, 0x91, - 0x46, 0xa4, 0x93, 0x0d, 0xec, 0x37, 0x9b, 0x18, 0x1b, 0xd8, 0x28, 0x66, 0xe3, 0xa4, 0xaf, 0x49, - 0x14, 0x4c, 0xba, 0xcc, 0xa3, 0x4a, 0x97, 0x31, 0x64, 0xad, 0xef, 0xda, 0x8d, 0x55, 0xc7, 0xb1, - 0x1d, 0xb7, 0x98, 0x8b, 0x5b, 0xeb, 0x35, 0x81, 0x66, 0x6b, 0x1d, 0x50, 0xab, 0x6b, 0x1d, 0x80, - 0xf9, 0x78, 0x6b, 0xbe, 0x75, 0x03, 0xeb, 0x2e, 0x36, 0x8a, 0x30, 0x64, 0xbc, 0x01, 0x45, 0x30, - 0xde, 0x00, 0x32, 0x30, 0xde, 0x00, 0x83, 0x0c, 0x98, 0x64, 0xdf, 0x2b, 0xae, 0x6b, 0xb6, 0x2c, - 0x6c, 0x14, 0xf3, 0x54, 0xfe, 0xd3, 0x71, 0xf2, 0x05, 0x4d, 0xf5, 0xe9, 0x7e, 0xaf, 0x54, 0x54, - 0xf9, 0x14, 0x1d, 0x11, 0x99, 0xe8, 0x43, 0x98, 0x60, 0x90, 0x9a, 0x6f, 0x59, 0xa6, 0xd5, 0x2a, - 0x8e, 0x53, 0x25, 0x4f, 0xc5, 0x29, 0xe1, 0x24, 0xd5, 0xa7, 0xfa, 0xbd, 0xd2, 0x29, 0x85, 0x4b, - 0x51, 0xa1, 0x0a, 0x24, 0x11, 0x83, 0x01, 0x42, 0xc3, 0x4e, 0xc4, 0x45, 0x8c, 0x35, 0x95, 0x88, - 0x45, 0x8c, 0x08, 0xa7, 0x1a, 0x31, 0x22, 0xc8, 0xd0, 0x1e, 0xdc, 0xc8, 0x93, 0xc3, 0xed, 0xc1, - 0xed, 0x2c, 0xd9, 0x23, 0xc6, 0xd4, 0x8a, 0x34, 0xf4, 0x4f, 0x1a, 0xcc, 0xba, 0x9e, 0x6e, 0x19, - 0x7a, 0xdb, 0xb6, 0xf0, 0x75, 0xab, 0xe5, 0x60, 0xd7, 0xbd, 0x6e, 0x6d, 0xdb, 0xc5, 0x02, 0xd5, - 0x73, 0x2e, 0x12, 0x58, 0xe3, 0x48, 0xab, 0xe7, 0xfa, 0xbd, 0x52, 0x29, 0x56, 0x8a, 0xa2, 0x39, - 0x5e, 0x11, 0xda, 0x87, 0x69, 0x71, 0x48, 0x6f, 0x79, 0x66, 0xdb, 0x74, 0x75, 0xcf, 0xb4, 0xad, - 0xe2, 0x49, 0xaa, 0xff, 0x6c, 0x34, 0x3e, 0x0d, 0x10, 0x56, 0xcf, 0xf6, 0x7b, 0xa5, 0x33, 0x31, - 0x12, 0x14, 0xdd, 0x71, 0x2a, 0x42, 0x23, 0x6e, 0x38, 0x98, 0x10, 0x62, 0xa3, 0x38, 0x3d, 0xdc, - 0x88, 0x01, 0x91, 0x6c, 0xc4, 0x00, 0x18, 0x67, 0xc4, 0x00, 0x49, 0x34, 0x75, 0x75, 0xc7, 0x33, - 0x89, 0xda, 0x75, 0xdd, 0xd9, 0xc5, 0x4e, 0x71, 0x26, 0x4e, 0xd3, 0x86, 0x4a, 0xc4, 0x34, 0x45, - 0x38, 0x55, 0x4d, 0x11, 0x24, 0xfa, 0x5c, 0x03, 0x75, 0x68, 0xa6, 0x6d, 0xd5, 0xc8, 0xa1, 0xed, - 0x92, 0xe9, 0xcd, 0x52, 0xa5, 0xcf, 0xde, 0x67, 0x7a, 0x32, 0x79, 0xf5, 0xd9, 0x7e, 0xaf, 0x74, - 0x6e, 0xa8, 0x34, 0x65, 0x20, 0xc3, 0x95, 0xa2, 0x3b, 0x90, 0x27, 0x48, 0x4c, 0xd3, 0x1f, 0xa3, - 0x38, 0x47, 0xc7, 0x70, 0x7a, 0x70, 0x0c, 0x9c, 0xa0, 0x7a, 0xba, 0xdf, 0x2b, 0xcd, 0x4a, 0x1c, - 0x8a, 0x1e, 0x59, 0x14, 0xfa, 0x4c, 0x03, 0xe2, 0xe8, 0x71, 0x33, 0x3d, 0x45, 0xb5, 0x3c, 0x33, - 0xa0, 0x25, 0x6e, 0x9a, 0xcf, 0xf4, 0x7b, 0xa5, 0xc5, 0x78, 0x39, 0x8a, 0xee, 0x21, 0xba, 0x42, - 0x3f, 0x0a, 0x0e, 0x89, 0x62, 0x71, 0xb8, 0x1f, 0x05, 0x44, 0xb2, 0x1f, 0x05, 0xc0, 0x38, 0x3f, - 0x0a, 0x90, 0x3c, 0x18, 0xbc, 0xa7, 0xb7, 0x4d, 0x83, 0x26, 0x53, 0xa7, 0x87, 0x04, 0x83, 0x80, - 0x22, 0x08, 0x06, 0x01, 0x64, 0x20, 0x18, 0x84, 0xb4, 0x19, 0x18, 0xa3, 0x22, 0xca, 0xf7, 0x32, - 0x30, 0x1d, 0xb3, 0xd5, 0xd0, 0x9b, 0x90, 0x76, 0x7c, 0x8b, 0x64, 0x9f, 0x2c, 0xed, 0x42, 0xaa, - 0xe2, 0x2d, 0xdf, 0x34, 0x58, 0xea, 0xeb, 0xf8, 0x96, 0x92, 0x90, 0x8e, 0x51, 0x00, 0xe1, 0x27, - 0xa9, 0xaf, 0x69, 0xf0, 0xf4, 0x6a, 0x28, 0xff, 0x5d, 0xbb, 0xa1, 0xf2, 0x53, 0x00, 0xc2, 0x30, - 0x21, 0xf6, 0x71, 0xdd, 0x24, 0x41, 0x2a, 0x19, 0x67, 0xe5, 0x77, 0xfc, 0x06, 0x76, 0x2c, 0xec, - 0x61, 0x57, 0xcc, 0x81, 0x46, 0x29, 0xba, 0x12, 0x8e, 0x04, 0x91, 0xe4, 0x8f, 0xcb, 0x70, 0xf4, - 0x9f, 0x1a, 0x14, 0x3b, 0xfa, 0x7e, 0x5d, 0x00, 0xdd, 0xfa, 0xb6, 0xed, 0xd4, 0xbb, 0xd8, 0x31, - 0x6d, 0x83, 0x66, 0xd2, 0xf9, 0xe5, 0xbf, 0x7b, 0x60, 0x5c, 0xaa, 0xac, 0xeb, 0xfb, 0x02, 0xec, - 0xbe, 0x6d, 0x3b, 0x1b, 0x94, 0x7d, 0xd5, 0xf2, 0x9c, 0x03, 0x16, 0x30, 0x3b, 0x71, 0x78, 0x69, - 0x4c, 0xb3, 0xb1, 0x04, 0xe8, 0xdf, 0x35, 0x98, 0xf3, 0x6c, 0x4f, 0x6f, 0xd7, 0x9b, 0x7e, 0xc7, - 0x6f, 0xeb, 0x9e, 0xb9, 0x87, 0xeb, 0xbe, 0xab, 0xb7, 0x30, 0x4f, 0xdb, 0xdf, 0x78, 0xf0, 0xd0, - 0x6e, 0x13, 0xfe, 0xcb, 0x01, 0xfb, 0x16, 0xe1, 0x66, 0x23, 0x2b, 0xf7, 0x7b, 0xa5, 0x05, 0x2f, - 0x06, 0x2d, 0x0d, 0x6c, 0x26, 0x0e, 0x8f, 0x2e, 0x02, 0x30, 0xdb, 0xd6, 0x5d, 0xcf, 0xa1, 0x19, - 0x5a, 0xae, 0x3a, 0xd7, 0xef, 0x95, 0x10, 0x35, 0xdd, 0xa6, 0x27, 0xc5, 0xad, 0x5a, 0x56, 0xc0, - 0x08, 0x17, 0xf3, 0x28, 0xca, 0x95, 0x09, 0xb9, 0xa8, 0xc3, 0x44, 0xb8, 0x04, 0x6c, 0xfe, 0xbf, - 0x34, 0x98, 0x1f, 0xbe, 0xbc, 0xe8, 0x1c, 0x24, 0x77, 0xf1, 0x01, 0x2f, 0xc5, 0x4e, 0xf6, 0x7b, - 0xa5, 0x89, 0x5d, 0x7c, 0x20, 0x09, 0x22, 0x58, 0xf4, 0x0f, 0x30, 0xb6, 0xa7, 0xb7, 0x7d, 0xcc, - 0x5d, 0xb1, 0x52, 0x61, 0x55, 0x64, 0x45, 0xae, 0x22, 0x2b, 0xdd, 0xdd, 0x16, 0x01, 0x54, 0x84, - 0x27, 0x54, 0xde, 0xf5, 0x75, 0xcb, 0x33, 0xbd, 0x03, 0xe6, 0xa6, 0x54, 0x80, 0xec, 0xa6, 0x14, - 0x70, 0x29, 0xf1, 0x9a, 0x36, 0xff, 0x85, 0x06, 0xa7, 0x87, 0x2e, 0xf3, 0x37, 0x61, 0x84, 0xe5, - 0x3a, 0xa4, 0xc8, 0x86, 0x23, 0x45, 0xe2, 0x8e, 0xd9, 0xda, 0x79, 0xf5, 0x22, 0x1d, 0x4e, 0x9a, - 0xd5, 0x74, 0x0c, 0x22, 0xd7, 0x74, 0x0c, 0x42, 0x0a, 0xdd, 0xb6, 0xfd, 0xf1, 0xab, 0x17, 0xe9, - 0xa0, 0xd2, 0x4c, 0x09, 0x05, 0xc8, 0x4a, 0x28, 0xa0, 0xdc, 0x4f, 0x43, 0x2e, 0xa8, 0xc4, 0xa4, - 0xbd, 0xaf, 0x1d, 0x6a, 0xef, 0x5f, 0x83, 0x82, 0x81, 0x0d, 0xbf, 0xdb, 0x36, 0x9b, 0xd4, 0x89, - 0x45, 0x14, 0xc9, 0xb1, 0x30, 0xaa, 0xe0, 0x14, 0xfe, 0xa9, 0x08, 0x0a, 0x2d, 0x43, 0x96, 0x57, - 0x2c, 0x07, 0x34, 0x80, 0x4c, 0x30, 0x8f, 0x13, 0x30, 0xd9, 0xe3, 0x04, 0x0c, 0xd5, 0x00, 0x58, - 0x0b, 0x60, 0x1d, 0x7b, 0x3a, 0xaf, 0x9d, 0x8a, 0xea, 0x0c, 0x6e, 0x05, 0x78, 0x56, 0xcc, 0x87, - 0xf4, 0x72, 0x31, 0x1f, 0x42, 0xd1, 0x07, 0x00, 0x1d, 0xdd, 0xb4, 0x18, 0x1f, 0x2f, 0x94, 0xca, - 0xc3, 0x42, 0xd9, 0x7a, 0x40, 0xc9, 0xa4, 0x87, 0x9c, 0xb2, 0xf4, 0x10, 0x8a, 0x6e, 0x41, 0x86, - 0x37, 0x2d, 0x8a, 0x69, 0x1a, 0x17, 0x16, 0x86, 0x89, 0xe6, 0x62, 0x69, 0xd9, 0xcd, 0x59, 0xe4, - 0xb2, 0x9b, 0x83, 0xc8, 0xb2, 0xb5, 0xcd, 0x6d, 0xec, 0x99, 0x1d, 0x4c, 0x37, 0x2a, 0x5f, 0x36, - 0x01, 0x93, 0x97, 0x4d, 0xc0, 0xd0, 0x6b, 0x00, 0xba, 0xb7, 0x6e, 0xbb, 0xde, 0x2d, 0xab, 0x89, - 0x69, 0xe9, 0x93, 0x65, 0xc3, 0x0f, 0xa1, 0xf2, 0xf0, 0x43, 0x28, 0x7a, 0x03, 0xf2, 0x5d, 0x7e, - 0xd4, 0x36, 0xda, 0x98, 0x96, 0x36, 0x59, 0x96, 0x19, 0x48, 0x60, 0x89, 0x57, 0xa6, 0x46, 0x57, - 0x61, 0xaa, 0x69, 0x5b, 0x4d, 0xdf, 0x71, 0xb0, 0xd5, 0x3c, 0xd8, 0xd4, 0xb7, 0x31, 0x2d, 0x63, - 0xb2, 0xcc, 0x55, 0x22, 0x28, 0xd9, 0x55, 0x22, 0x28, 0xf4, 0x0a, 0xe4, 0x82, 0x16, 0x10, 0xad, - 0x54, 0x72, 0xbc, 0xa3, 0x20, 0x80, 0x12, 0x73, 0x48, 0x49, 0x06, 0x6f, 0xba, 0x57, 0xb8, 0xd3, - 0x61, 0x5a, 0x7d, 0xf0, 0xc1, 0x4b, 0x60, 0x79, 0xf0, 0x12, 0x38, 0x12, 0x48, 0x27, 0x47, 0x0b, - 0xa4, 0xe5, 0x5f, 0x69, 0x30, 0x13, 0xe7, 0x2d, 0x11, 0xcf, 0xd5, 0x1e, 0x89, 0xe7, 0xbe, 0x07, - 0xd9, 0xae, 0x6d, 0xd4, 0xdd, 0x2e, 0x6e, 0xf2, 0xe0, 0x14, 0xf1, 0xdb, 0x0d, 0xdb, 0xd8, 0xec, - 0xe2, 0xe6, 0xdf, 0x9b, 0xde, 0xce, 0xca, 0x9e, 0x6d, 0x1a, 0x37, 0x4c, 0x97, 0x3b, 0x58, 0x97, - 0x61, 0x94, 0x2c, 0x24, 0xc3, 0x81, 0xd5, 0x2c, 0xa4, 0x99, 0x96, 0xf2, 0xaf, 0x93, 0x50, 0x88, - 0x7a, 0xe8, 0xb7, 0x69, 0x2a, 0xe8, 0x0e, 0x64, 0x4c, 0x56, 0xe4, 0xf0, 0x24, 0xe5, 0x6f, 0xa4, - 0xf0, 0x5d, 0x09, 0x3b, 0x9e, 0x95, 0xbd, 0x97, 0x2a, 0xbc, 0x1a, 0xa2, 0x4b, 0x40, 0x25, 0x73, - 0x4e, 0x55, 0x32, 0x07, 0xa2, 0x1a, 0x64, 0x5c, 0xec, 0xec, 0x99, 0x4d, 0xcc, 0xe3, 0x50, 0x49, - 0x96, 0xdc, 0xb4, 0x1d, 0x4c, 0x64, 0x6e, 0x32, 0x92, 0x50, 0x26, 0xe7, 0x51, 0x65, 0x72, 0x20, - 0x7a, 0x0f, 0x72, 0x4d, 0xdb, 0xda, 0x36, 0x5b, 0xeb, 0x7a, 0x97, 0x47, 0xa2, 0x33, 0x71, 0x52, - 0x2f, 0x0b, 0x22, 0xde, 0xb8, 0x11, 0x9f, 0x91, 0xc6, 0x4d, 0x40, 0x15, 0x1a, 0xf4, 0xcf, 0x29, - 0x80, 0xd0, 0x38, 0xe8, 0x75, 0xc8, 0xe3, 0x7d, 0xdc, 0xf4, 0x3d, 0xdb, 0x11, 0x47, 0x02, 0xef, - 0x81, 0x0a, 0xb0, 0x12, 0xc3, 0x21, 0x84, 0x92, 0x3d, 0x69, 0xe9, 0x1d, 0xec, 0x76, 0xf5, 0xa6, - 0x68, 0x9e, 0xd2, 0xc1, 0x04, 0x40, 0x79, 0x4f, 0x06, 0x40, 0xf4, 0xb7, 0x90, 0xa2, 0xed, 0x56, - 0xd6, 0x37, 0x45, 0xfd, 0x5e, 0x69, 0xd2, 0x52, 0x1b, 0xad, 0x14, 0x8f, 0xde, 0x82, 0x89, 0xdd, - 0xc0, 0xf1, 0xc8, 0xd8, 0x52, 0x94, 0x81, 0x66, 0x8f, 0x21, 0x42, 0x19, 0xdd, 0xb8, 0x0c, 0x47, - 0xdb, 0x90, 0xd7, 0x2d, 0xcb, 0xf6, 0xe8, 0x71, 0x23, 0x7a, 0xa9, 0x17, 0x86, 0xb9, 0x69, 0x65, - 0x25, 0xa4, 0x65, 0x29, 0x18, 0x8d, 0x13, 0x92, 0x04, 0x39, 0x4e, 0x48, 0x60, 0x54, 0x83, 0x74, - 0x5b, 0x6f, 0xe0, 0xb6, 0x88, 0xef, 0xcf, 0x0c, 0x55, 0x71, 0x83, 0x92, 0x31, 0xe9, 0xf4, 0x74, - 0x67, 0x7c, 0xf2, 0xe9, 0xce, 0x20, 0xf3, 0xdb, 0x50, 0x88, 0x8e, 0x67, 0xb4, 0x5c, 0xe5, 0x82, - 0x9c, 0xab, 0xe4, 0x1e, 0x98, 0x1d, 0xe9, 0x90, 0x97, 0x06, 0x75, 0x1c, 0x2a, 0xca, 0xff, 0xa3, - 0xc1, 0x4c, 0xdc, 0xde, 0x45, 0xeb, 0xd2, 0x8e, 0xd7, 0x78, 0x5f, 0x28, 0xc6, 0xd5, 0x39, 0xef, - 0x90, 0xad, 0x1e, 0x6e, 0xf4, 0x2a, 0x4c, 0x5a, 0xb6, 0x81, 0xeb, 0x3a, 0x51, 0xd0, 0x36, 0x5d, - 0xaf, 0x98, 0xa0, 0xbd, 0x76, 0xda, 0x4f, 0x22, 0x98, 0x15, 0x81, 0x90, 0xb8, 0x27, 0x14, 0x44, - 0xf9, 0x47, 0x1a, 0x4c, 0x45, 0xda, 0xbd, 0x47, 0xce, 0x97, 0xe4, 0x2c, 0x27, 0x31, 0x62, 0x96, - 0xa3, 0x1e, 0x3d, 0xc9, 0x11, 0x8f, 0x9e, 0x5f, 0x24, 0x20, 0x2f, 0xd5, 0xef, 0x47, 0x1e, 0xf9, - 0x5d, 0x98, 0xe2, 0x47, 0xa9, 0x69, 0xb5, 0x58, 0x9d, 0x97, 0xe0, 0xcd, 0xa8, 0x81, 0xfb, 0x98, - 0x35, 0xbb, 0xb1, 0x19, 0xd0, 0xd2, 0x32, 0x8f, 0xf6, 0x0a, 0x5d, 0x05, 0x26, 0xa9, 0x98, 0x54, - 0x31, 0xe8, 0x0e, 0xcc, 0xf9, 0x5d, 0x52, 0xfd, 0xd6, 0x5d, 0x7e, 0xb3, 0x51, 0xb7, 0xfc, 0x4e, - 0x03, 0xb3, 0xd9, 0x8f, 0xb1, 0x7a, 0x88, 0x51, 0x88, 0xab, 0x8f, 0x9b, 0x14, 0x2f, 0xd7, 0x43, - 0x71, 0xf8, 0xc8, 0x5a, 0xa6, 0x46, 0x5c, 0xcb, 0x6b, 0x80, 0x06, 0xfb, 0xfe, 0x8a, 0x2d, 0xb5, - 0xd1, 0x6c, 0x59, 0xfe, 0xb1, 0x06, 0x85, 0x68, 0x3b, 0xff, 0x5b, 0xe4, 0x54, 0xff, 0xaf, 0x41, - 0x2e, 0xe8, 0xe8, 0x1f, 0x79, 0xdc, 0xcf, 0x43, 0xda, 0xc1, 0xba, 0x6b, 0x5b, 0x3c, 0x78, 0xd0, - 0x28, 0xc8, 0x20, 0x72, 0x14, 0x64, 0x90, 0x43, 0x8e, 0xf8, 0x36, 0x8c, 0x33, 0x73, 0xbd, 0x6d, - 0xb6, 0x3d, 0xec, 0xa0, 0x2b, 0x90, 0x76, 0x3d, 0xdd, 0xc3, 0x6e, 0x51, 0x5b, 0x4c, 0x9e, 0x9f, - 0x5c, 0x9e, 0x1b, 0x6c, 0xf9, 0x13, 0x34, 0x1b, 0x0b, 0xa3, 0x94, 0xc7, 0xc2, 0x20, 0xe5, 0x7f, - 0xd6, 0x60, 0x5c, 0xbe, 0xd9, 0x78, 0x34, 0x62, 0x1f, 0x6e, 0x41, 0xca, 0x3f, 0x08, 0x06, 0xd1, - 0x7e, 0x34, 0x7e, 0xf4, 0x38, 0xec, 0xf1, 0x27, 0x8d, 0x19, 0x24, 0xe8, 0xa4, 0x1f, 0x75, 0xd0, - 0xad, 0xb0, 0xfb, 0x44, 0x62, 0x87, 0x4b, 0x03, 0xfd, 0xa8, 0xdd, 0x27, 0x7a, 0x1c, 0x28, 0xec, - 0xf2, 0x71, 0xa0, 0x20, 0x0e, 0x39, 0xdf, 0xff, 0x4e, 0xd3, 0xf9, 0x86, 0x77, 0x2d, 0x4f, 0xba, - 0x5b, 0x17, 0xc9, 0xf1, 0x92, 0x0f, 0x91, 0xe3, 0xbd, 0x00, 0x19, 0x7a, 0xa8, 0x06, 0xe9, 0x17, - 0x75, 0x10, 0x02, 0x52, 0xef, 0xb9, 0x19, 0xe4, 0x3e, 0x51, 0x7c, 0xec, 0x88, 0x51, 0xbc, 0x0e, - 0xa7, 0x77, 0x74, 0xb7, 0x2e, 0xce, 0x1d, 0xa3, 0xae, 0x7b, 0xf5, 0x20, 0x02, 0xa6, 0x69, 0x5d, - 0x47, 0xbb, 0xc7, 0x3b, 0xba, 0xbb, 0x29, 0x68, 0x56, 0xbc, 0x8d, 0xc1, 0x78, 0x38, 0x17, 0x4f, - 0x81, 0xb6, 0x60, 0x36, 0x5e, 0x78, 0x86, 0x8e, 0x9c, 0x5e, 0x6e, 0xb8, 0xf7, 0x95, 0x3c, 0x1d, - 0x83, 0x46, 0x9f, 0x6a, 0x50, 0x24, 0x59, 0x8e, 0x83, 0x3f, 0xf2, 0x4d, 0x07, 0x77, 0x88, 0xc5, - 0xea, 0xf6, 0x1e, 0x76, 0xda, 0xfa, 0x01, 0xbf, 0x27, 0x3c, 0x3b, 0x78, 0x9a, 0x6e, 0xd8, 0x46, - 0x4d, 0x62, 0x60, 0x53, 0xeb, 0xaa, 0xc0, 0x5b, 0x4c, 0x88, 0x3c, 0xb5, 0x78, 0x8a, 0x88, 0x1b, - 0xc3, 0xa1, 0x3a, 0x82, 0xf9, 0xd1, 0x3a, 0x82, 0x24, 0xbb, 0xef, 0xda, 0x76, 0x9b, 0x96, 0xda, - 0x3c, 0xbb, 0x27, 0xdf, 0x72, 0x76, 0x4f, 0xbe, 0xd7, 0x52, 0xd9, 0x6c, 0x21, 0x57, 0xfe, 0x43, - 0x02, 0x26, 0xd5, 0x2b, 0xc6, 0x27, 0xbe, 0x59, 0x06, 0x82, 0x4b, 0xf2, 0xb1, 0x04, 0x97, 0xd4, - 0xa1, 0xac, 0x32, 0x36, 0x9a, 0x55, 0xca, 0xbf, 0x4f, 0xc0, 0x84, 0x72, 0xcb, 0xfa, 0xfd, 0x32, - 0x1f, 0xc7, 0x32, 0xff, 0x47, 0x02, 0xe6, 0xe2, 0x87, 0x7c, 0x2c, 0x2d, 0x93, 0x6b, 0x40, 0x8a, - 0x9f, 0xeb, 0x61, 0x5e, 0x3e, 0x3b, 0xd0, 0x31, 0xa1, 0xcb, 0x25, 0x2a, 0xa7, 0x81, 0x8b, 0x60, - 0xc1, 0x8e, 0xee, 0x40, 0xde, 0x94, 0xae, 0x9c, 0x93, 0x71, 0x37, 0x83, 0xf2, 0x45, 0x33, 0x6b, - 0xa1, 0x0d, 0xb9, 0x5e, 0x96, 0x45, 0x55, 0xd3, 0x90, 0x22, 0x85, 0x43, 0x79, 0x0f, 0x32, 0x7c, - 0x38, 0xe8, 0x65, 0xc8, 0xd1, 0x33, 0x85, 0x76, 0x01, 0xb4, 0x70, 0x69, 0x09, 0x30, 0xf2, 0xe4, - 0x2a, 0x2b, 0x60, 0xe8, 0x55, 0x00, 0x12, 0x46, 0xf9, 0x69, 0x92, 0xa0, 0x31, 0x99, 0x76, 0x1b, - 0xba, 0xb6, 0x31, 0x70, 0x84, 0xe4, 0x02, 0x60, 0xf9, 0xcb, 0x04, 0xe4, 0xe5, 0x4b, 0xee, 0x43, - 0x29, 0xff, 0x04, 0x44, 0x27, 0xa8, 0xae, 0x1b, 0x06, 0xf9, 0x17, 0x8b, 0xa4, 0x63, 0x69, 0xe8, - 0x22, 0x89, 0xff, 0xaf, 0x08, 0x0e, 0x56, 0xf7, 0xd3, 0x87, 0x3c, 0x66, 0x04, 0x25, 0x69, 0x2d, - 0x44, 0x71, 0xf3, 0xbb, 0x30, 0x1b, 0x2b, 0x4a, 0xae, 0xd6, 0xc7, 0x1e, 0x55, 0xb5, 0xfe, 0x65, - 0x1a, 0x66, 0x63, 0x1f, 0x17, 0x3c, 0xf1, 0x88, 0xa1, 0xee, 0xa0, 0xe4, 0x23, 0xd9, 0x41, 0xff, - 0xa2, 0xc5, 0x59, 0x96, 0xdd, 0x2c, 0xbe, 0x3e, 0xc2, 0x8b, 0x8b, 0x47, 0x65, 0x63, 0xd5, 0x2d, - 0xc7, 0x0e, 0xb5, 0x27, 0xd2, 0xa3, 0xee, 0x09, 0xf4, 0x22, 0x6b, 0xbc, 0x50, 0x5d, 0xec, 0xa6, - 0x4f, 0x44, 0x88, 0x88, 0xaa, 0x0c, 0x07, 0xa1, 0xb7, 0x60, 0x42, 0x70, 0xb0, 0x76, 0x5f, 0x36, - 0xec, 0xc5, 0x71, 0x9a, 0x68, 0xc7, 0x6f, 0x5c, 0x86, 0x47, 0xa2, 0x70, 0xee, 0x50, 0x51, 0x18, - 0x46, 0xbc, 0x94, 0x7c, 0xac, 0xfb, 0xe5, 0x8f, 0x09, 0x98, 0x8a, 0xbc, 0x2d, 0xfa, 0xfe, 0x6c, - 0x3d, 0x8e, 0xb3, 0xf5, 0x67, 0x1a, 0xe4, 0x82, 0x27, 0x74, 0x47, 0x2e, 0x21, 0x57, 0x20, 0x8d, - 0xd9, 0x33, 0x2e, 0x16, 0xc6, 0xa7, 0x23, 0x4f, 0x6c, 0x09, 0x8e, 0x3f, 0xaa, 0x8d, 0xbc, 0xdc, - 0xaa, 0x71, 0xc6, 0x43, 0x16, 0x87, 0x3f, 0x49, 0x88, 0xe2, 0x30, 0x9c, 0xc9, 0x13, 0x75, 0x96, - 0x70, 0x25, 0x92, 0x8f, 0x66, 0x25, 0x8e, 0xd7, 0x0d, 0x7e, 0x9a, 0x83, 0x31, 0x3a, 0x26, 0xb4, - 0x0c, 0x59, 0x0f, 0x3b, 0x1d, 0xd3, 0xd2, 0xdb, 0x74, 0xe9, 0xb2, 0x8c, 0x5b, 0xc0, 0x64, 0x6e, - 0x01, 0x43, 0x3b, 0x30, 0x15, 0x5e, 0x11, 0x50, 0x31, 0xf1, 0xef, 0x8b, 0xdf, 0x51, 0x89, 0xd8, - 0x75, 0x65, 0x84, 0x53, 0x7d, 0x20, 0x14, 0x41, 0x22, 0x03, 0x26, 0x9b, 0xb6, 0xe5, 0xe9, 0xa6, - 0x85, 0x1d, 0xa6, 0x28, 0x19, 0xf7, 0xbe, 0xf2, 0xb2, 0x42, 0xc3, 0x7a, 0xa6, 0x2a, 0x9f, 0xfa, - 0xbe, 0x52, 0xc5, 0xa1, 0x0f, 0x61, 0x42, 0x14, 0xeb, 0x4c, 0x49, 0x2a, 0xee, 0x7d, 0xe5, 0xaa, - 0x4c, 0xc2, 0x36, 0xb8, 0xc2, 0xa5, 0xbe, 0xaf, 0x54, 0x50, 0xa8, 0x0d, 0x85, 0xae, 0x6d, 0x6c, - 0x59, 0xbc, 0x44, 0xd5, 0x1b, 0x6d, 0xcc, 0xef, 0xa5, 0x16, 0x06, 0x92, 0x4d, 0x85, 0x8a, 0x1d, - 0x82, 0x51, 0x5e, 0xf5, 0xc5, 0x72, 0x14, 0x8b, 0x3e, 0x80, 0xf1, 0x36, 0xd6, 0x5d, 0xbc, 0xba, - 0xdf, 0x35, 0x1d, 0x6c, 0xc4, 0xbf, 0x2f, 0xbe, 0x21, 0x51, 0xb0, 0x23, 0x48, 0xe6, 0x51, 0x9f, - 0x55, 0xc9, 0x18, 0x62, 0xfd, 0x8e, 0xbe, 0x5f, 0xf3, 0x2d, 0x77, 0x75, 0x9f, 0xbf, 0x15, 0xcd, - 0xc4, 0x59, 0x7f, 0x5d, 0x25, 0x62, 0xd6, 0x8f, 0x70, 0xaa, 0xd6, 0x8f, 0x20, 0xd1, 0x0d, 0x7a, - 0xc2, 0x32, 0x93, 0xb0, 0x77, 0xc6, 0x73, 0x03, 0xab, 0xc5, 0xac, 0xc1, 0xda, 0xb6, 0xfc, 0x4b, - 0x11, 0x1a, 0x48, 0xe0, 0x36, 0xa0, 0xd3, 0xae, 0x61, 0xcf, 0x77, 0x2c, 0x6c, 0xf0, 0xd6, 0xc1, - 0xa0, 0x0d, 0x14, 0xaa, 0xc0, 0x06, 0x0a, 0x74, 0xc0, 0x06, 0x0a, 0x16, 0x7d, 0x02, 0x33, 0x91, - 0x57, 0x93, 0x6c, 0x1e, 0xf9, 0xb8, 0x4b, 0xd9, 0xb5, 0x18, 0x4a, 0xd6, 0xe5, 0x89, 0x93, 0xa1, - 0x68, 0x8e, 0xd5, 0x42, 0xb4, 0xb7, 0x74, 0xab, 0xb5, 0x66, 0x37, 0x54, 0x9f, 0x1b, 0x8f, 0xd3, - 0x7e, 0x35, 0x86, 0x92, 0x69, 0x8f, 0x93, 0xa1, 0x6a, 0x8f, 0xa3, 0x08, 0x5e, 0x48, 0x92, 0x04, - 0x31, 0x78, 0x49, 0x1c, 0xf7, 0x42, 0x92, 0x11, 0x48, 0x2f, 0x24, 0x19, 0x20, 0xe6, 0x85, 0x24, - 0xa7, 0xcc, 0x8a, 0x46, 0x6b, 0xf9, 0x0b, 0x0d, 0xa6, 0x22, 0xf1, 0x05, 0xbd, 0x09, 0xc1, 0xc3, - 0xb7, 0xdb, 0x07, 0x5d, 0x51, 0x98, 0x28, 0x0f, 0xe5, 0x08, 0x3c, 0xee, 0xa1, 0x1c, 0x81, 0xa3, - 0x1b, 0x00, 0xc1, 0xc9, 0x7c, 0xbf, 0x83, 0x80, 0x66, 0xc5, 0x21, 0xa5, 0x9c, 0x15, 0x87, 0xd0, - 0xf2, 0xe7, 0x29, 0xc8, 0x0a, 0x07, 0x3d, 0x96, 0xc2, 0x75, 0x09, 0x32, 0x1d, 0xec, 0xd2, 0xa7, - 0x72, 0x89, 0x30, 0xff, 0xe4, 0x20, 0x39, 0xff, 0xe4, 0x20, 0x35, 0x3d, 0x4e, 0x1e, 0x2a, 0x3d, - 0x4e, 0x8d, 0x9c, 0x1e, 0x63, 0xfa, 0x68, 0x45, 0x0a, 0xb3, 0xe2, 0xee, 0xf8, 0xfe, 0xb1, 0x5b, - 0x3c, 0x69, 0x91, 0x19, 0x23, 0x4f, 0x5a, 0x64, 0x14, 0xda, 0x85, 0x93, 0xd2, 0xfd, 0x36, 0xef, - 0xc2, 0x93, 0x80, 0x37, 0x39, 0xfc, 0x85, 0x50, 0x8d, 0x52, 0xb1, 0x6d, 0xbd, 0x1b, 0x81, 0xca, - 0xf5, 0x45, 0x14, 0x47, 0x1c, 0xcc, 0xc0, 0x0d, 0xbf, 0xb5, 0xce, 0x97, 0x3d, 0x13, 0x3a, 0x98, - 0x0c, 0x97, 0x1d, 0x4c, 0x86, 0xd3, 0x46, 0x9d, 0x3a, 0xdf, 0x63, 0x71, 0x8c, 0x97, 0x21, 0x87, - 0xf7, 0x4d, 0xaf, 0xde, 0xb4, 0x0d, 0xcc, 0x8b, 0x7c, 0x6a, 0x67, 0x02, 0xbc, 0x6c, 0x1b, 0x8a, - 0x9d, 0x05, 0x4c, 0xf6, 0xa6, 0xe4, 0x48, 0xde, 0x14, 0x5e, 0x7a, 0xa4, 0x46, 0xb8, 0xf4, 0x88, - 0xb5, 0x53, 0xee, 0x78, 0xec, 0x54, 0xfe, 0x2a, 0x01, 0x85, 0x68, 0x14, 0xff, 0x66, 0x6c, 0x41, - 0x75, 0x37, 0x25, 0x47, 0xde, 0x4d, 0x6f, 0xc1, 0x04, 0x49, 0xf3, 0x74, 0xcf, 0xe3, 0x2f, 0xfb, - 0x53, 0x34, 0x57, 0x63, 0xb1, 0xcd, 0xb7, 0x56, 0x04, 0x5c, 0x89, 0x6d, 0x12, 0x7c, 0xc0, 0x75, - 0xc7, 0x1e, 0xd2, 0x75, 0x3f, 0x4d, 0xc0, 0xc4, 0x86, 0x6d, 0xdc, 0x66, 0x39, 0xa0, 0xf7, 0x4d, - 0x59, 0xcf, 0xc7, 0x19, 0xd2, 0xca, 0x53, 0x30, 0xa1, 0x24, 0x81, 0xe5, 0xcf, 0x98, 0x9f, 0xa9, - 0xa7, 0xdf, 0x77, 0x6f, 0x5d, 0x26, 0x61, 0x5c, 0xce, 0x26, 0xcb, 0x55, 0x98, 0x8a, 0x24, 0x7f, - 0xf2, 0x04, 0xb4, 0x51, 0x26, 0x50, 0x9e, 0x83, 0x99, 0xb8, 0xac, 0xa8, 0x7c, 0x15, 0x66, 0xe2, - 0xf2, 0x95, 0x87, 0x57, 0xf0, 0x26, 0x7f, 0xe5, 0xc1, 0x32, 0x8b, 0x87, 0xe7, 0xff, 0xbf, 0x94, - 0x68, 0x59, 0x84, 0xbf, 0x8b, 0x79, 0x1f, 0x0a, 0x5d, 0xf1, 0x51, 0x7f, 0x60, 0x65, 0x4d, 0xcb, - 0x94, 0x80, 0x7e, 0x2d, 0x52, 0x58, 0x4e, 0xaa, 0x18, 0x55, 0x36, 0xaf, 0x75, 0x13, 0x23, 0xca, - 0xae, 0x45, 0x8a, 0xde, 0x49, 0x15, 0x83, 0xfe, 0x11, 0x4e, 0x8a, 0xf7, 0xa6, 0x7b, 0x58, 0x0c, - 0x3c, 0x39, 0x54, 0x38, 0xfb, 0x19, 0x4f, 0xc0, 0x10, 0x1d, 0xf9, 0x54, 0x04, 0x15, 0x11, 0xcf, - 0xc7, 0x9e, 0x1a, 0x55, 0x7c, 0x74, 0xf0, 0x53, 0x11, 0x14, 0xda, 0x80, 0x99, 0xe8, 0xaa, 0x4b, - 0xc5, 0x70, 0xa9, 0xdf, 0x2b, 0x3d, 0xa5, 0xae, 0xa5, 0x5a, 0x15, 0x9f, 0x1c, 0x40, 0xaa, 0x12, - 0xa5, 0xf2, 0x3a, 0x1d, 0x23, 0xb1, 0x36, 0x58, 0x67, 0x9f, 0x1c, 0x40, 0x96, 0x7f, 0xa9, 0xc1, - 0x54, 0xe4, 0xd7, 0x50, 0xe8, 0x0a, 0x64, 0xe9, 0x4f, 0x95, 0xef, 0xef, 0x25, 0xd4, 0x0f, 0x29, - 0x9d, 0xb2, 0x0a, 0x19, 0x0e, 0x42, 0x97, 0x60, 0x5c, 0x48, 0x91, 0x5a, 0x28, 0x34, 0xac, 0x70, - 0x12, 0x75, 0x70, 0x10, 0x42, 0xd1, 0x2b, 0x90, 0x0b, 0x7e, 0x70, 0xc5, 0x1f, 0xc0, 0xb0, 0xfd, - 0x2e, 0x80, 0xca, 0x7e, 0x17, 0xc0, 0xf2, 0xbf, 0x26, 0xe0, 0xf4, 0xd0, 0x5f, 0x59, 0x3d, 0xf1, - 0x56, 0xcc, 0xa1, 0x3a, 0x4a, 0x91, 0x3e, 0x4a, 0x6a, 0xc4, 0x3e, 0xca, 0xbf, 0x69, 0x30, 0x17, - 0xff, 0x2b, 0xac, 0x23, 0xf7, 0xd6, 0xd4, 0x69, 0x24, 0x46, 0x7f, 0x67, 0x34, 0x2e, 0xff, 0x60, - 0xea, 0xc8, 0xc3, 0xb8, 0x00, 0x63, 0x5d, 0xdb, 0x6e, 0xbb, 0xfc, 0x19, 0x20, 0x25, 0xa5, 0x00, - 0x99, 0x94, 0x02, 0x0e, 0xd9, 0xca, 0xfb, 0x8b, 0x26, 0xe2, 0x68, 0xf8, 0xbb, 0xb0, 0xef, 0x90, - 0x0b, 0x3d, 0xf7, 0x22, 0x64, 0xc5, 0x23, 0x27, 0x04, 0x90, 0x7e, 0x77, 0x6b, 0x75, 0x6b, 0xf5, - 0x4a, 0xe1, 0x04, 0xca, 0x43, 0x66, 0x63, 0xf5, 0xe6, 0x95, 0xeb, 0x37, 0xaf, 0x16, 0x34, 0xf2, - 0x51, 0xdb, 0xba, 0x79, 0x93, 0x7c, 0x24, 0x9e, 0xbb, 0x21, 0xbf, 0x25, 0xe7, 0x95, 0xc9, 0x38, - 0x64, 0x57, 0xba, 0x5d, 0x7a, 0x44, 0x32, 0xde, 0xd5, 0x3d, 0x93, 0x9c, 0x6b, 0x05, 0x0d, 0x65, - 0x20, 0x79, 0xeb, 0xd6, 0x7a, 0x21, 0x81, 0x66, 0xa0, 0x70, 0x05, 0xeb, 0x46, 0xdb, 0xb4, 0xb0, - 0x38, 0x97, 0x0b, 0xc9, 0xea, 0xdd, 0x9f, 0xdf, 0x5b, 0xd0, 0xbe, 0xba, 0xb7, 0xa0, 0xfd, 0xee, - 0xde, 0x82, 0xf6, 0xf9, 0xd7, 0x0b, 0x27, 0xbe, 0xfa, 0x7a, 0xe1, 0xc4, 0x6f, 0xbe, 0x5e, 0x38, - 0xf1, 0xfe, 0x8b, 0x2d, 0xd3, 0xdb, 0xf1, 0x1b, 0x95, 0xa6, 0xdd, 0xe1, 0x7f, 0x2b, 0xa3, 0xeb, - 0xd8, 0xe4, 0xb8, 0xe4, 0x5f, 0x4b, 0xd1, 0x3f, 0xa2, 0xf1, 0xbf, 0x89, 0x33, 0x2b, 0xf4, 0x73, - 0x83, 0xd1, 0x55, 0xae, 0xdb, 0x15, 0x06, 0xa0, 0x7f, 0x36, 0xc1, 0x6d, 0xa4, 0xe9, 0x9f, 0x47, - 0x78, 0xf9, 0xaf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x13, 0xc4, 0x01, 0x6c, 0x7f, 0x43, 0x00, 0x00, + // 3574 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5b, 0xcb, 0x6f, 0x1b, 0xd7, + 0xd5, 0xf7, 0x90, 0xe2, 0xeb, 0x50, 0x0f, 0xfa, 0xea, 0x61, 0x5a, 0x89, 0x45, 0x99, 0xce, 0xf7, + 0xc5, 0x0e, 0x12, 0x2a, 0x71, 0x92, 0x0f, 0x89, 0xf3, 0x21, 0x81, 0x68, 0x2b, 0xb6, 0x15, 0xcb, + 0x56, 0x28, 0x3b, 0x9f, 0xbf, 0x22, 0x00, 0x33, 0xe4, 0x5c, 0x51, 0x63, 0x91, 0x33, 0x93, 0x79, + 0xa8, 0x12, 0x9a, 0x02, 0x4d, 0x11, 0xb4, 0xe8, 0x2e, 0x9b, 0x02, 0x45, 0x37, 0xed, 0xb2, 0x0d, + 0x90, 0x65, 0xbb, 0x2b, 0xba, 0xed, 0xa2, 0x28, 0xb2, 0xec, 0xa6, 0x44, 0xe1, 0x34, 0x5d, 0x70, + 0xd1, 0xbf, 0xa1, 0xb8, 0x8f, 0x99, 0xb9, 0x77, 0xe6, 0xd2, 0xa1, 0x55, 0xdb, 0x48, 0xd3, 0x95, + 0x34, 0xbf, 0xf3, 0xba, 0x73, 0xef, 0xb9, 0x67, 0xce, 0x39, 0xf7, 0x12, 0xce, 0x38, 0xfb, 0xbd, + 0x35, 0xdd, 0x1d, 0xe8, 0x86, 0x8e, 0x0f, 0xb0, 0xe5, 0x7b, 0x6b, 0xec, 0x4f, 0xc3, 0x71, 0x6d, + 0xdf, 0x46, 0xd3, 0x22, 0x69, 0xb9, 0xbe, 0xff, 0x9a, 0xd7, 0x30, 0xed, 0x35, 0xdd, 0x31, 0xd7, + 0xba, 0xb6, 0x8b, 0xd7, 0x0e, 0x5e, 0x5a, 0xeb, 0x61, 0x0b, 0xbb, 0xba, 0x8f, 0x0d, 0x26, 0xb1, + 0x7c, 0x5e, 0xe0, 0xb1, 0xb0, 0xff, 0x5d, 0xdb, 0xdd, 0x37, 0xad, 0x9e, 0x8a, 0xb3, 0xd6, 0xb3, + 0xed, 0x5e, 0x1f, 0xaf, 0xd1, 0xa7, 0x4e, 0xb0, 0xbb, 0xe6, 0x9b, 0x03, 0xec, 0xf9, 0xfa, 0xc0, + 0xe1, 0x0c, 0xaf, 0xc4, 0xaa, 0x06, 0x7a, 0x77, 0xcf, 0xb4, 0xb0, 0x7b, 0xb4, 0x46, 0xc7, 0xeb, + 0x98, 0x6b, 0x2e, 0xf6, 0xec, 0xc0, 0xed, 0xe2, 0x94, 0xda, 0x4b, 0xa6, 0xe5, 0x63, 0xd7, 0xd2, + 0xfb, 0x6b, 0x5e, 0x77, 0x0f, 0x1b, 0x41, 0x1f, 0xbb, 0xf1, 0x7f, 0x76, 0xe7, 0x1e, 0xee, 0xfa, + 0x5e, 0x0a, 0x60, 0xb2, 0xf5, 0xbf, 0x2c, 0xc2, 0xcc, 0x06, 0x79, 0xd7, 0x1d, 0xfc, 0x61, 0x80, + 0xad, 0x2e, 0x46, 0x17, 0x20, 0xf7, 0x61, 0x80, 0x03, 0x5c, 0xd5, 0x56, 0xb5, 0xf3, 0xa5, 0xe6, + 0xfc, 0x68, 0x58, 0x9b, 0xa3, 0xc0, 0xf3, 0xf6, 0xc0, 0xf4, 0xf1, 0xc0, 0xf1, 0x8f, 0x5a, 0x8c, + 0x03, 0x5d, 0x82, 0xe9, 0x7b, 0x76, 0xa7, 0xed, 0x61, 0xbf, 0x6d, 0xe9, 0x03, 0x5c, 0xcd, 0x50, + 0x89, 0xea, 0x68, 0x58, 0x5b, 0xb8, 0x67, 0x77, 0x76, 0xb0, 0x7f, 0x53, 0x1f, 0x88, 0x62, 0x10, + 0xa3, 0xe8, 0x05, 0x28, 0x04, 0x1e, 0x76, 0xdb, 0xa6, 0x51, 0xcd, 0x52, 0xb1, 0x85, 0xd1, 0xb0, + 0x56, 0x21, 0xd0, 0x75, 0x43, 0x10, 0xc9, 0x33, 0x04, 0x3d, 0x0f, 0xf9, 0x9e, 0x6b, 0x07, 0x8e, + 0x57, 0x9d, 0x5a, 0xcd, 0x86, 0xdc, 0x0c, 0x11, 0xb9, 0x19, 0x82, 0x6e, 0x41, 0x9e, 0x2d, 0x60, + 0x35, 0xb7, 0x9a, 0x3d, 0x5f, 0xbe, 0x78, 0xb6, 0x21, 0xae, 0x6a, 0x43, 0x7a, 0x61, 0xf6, 0xc4, + 0x14, 0x32, 0xba, 0xa8, 0x90, 0xfb, 0xc1, 0x6f, 0xe7, 0x21, 0x47, 0xf9, 0xd0, 0x3b, 0x50, 0xe8, + 0xba, 0x98, 0xcc, 0x7e, 0x15, 0xad, 0x6a, 0xe7, 0xcb, 0x17, 0x97, 0x1b, 0x6c, 0x55, 0x1b, 0xe1, + 0xaa, 0x36, 0x6e, 0x87, 0xab, 0xda, 0x5c, 0x1c, 0x0d, 0x6b, 0x27, 0x39, 0xbb, 0xa0, 0x35, 0xd4, + 0x80, 0xb6, 0xa1, 0xe4, 0x05, 0x9d, 0x81, 0xe9, 0x6f, 0xda, 0x1d, 0x3a, 0xdf, 0xe5, 0x8b, 0xa7, + 0xe4, 0xa1, 0xee, 0x84, 0xe4, 0xe6, 0xa9, 0xd1, 0xb0, 0x36, 0x1f, 0x71, 0xc7, 0xda, 0xae, 0x9d, + 0x68, 0xc5, 0x4a, 0xd0, 0x1e, 0xcc, 0xb9, 0xd8, 0x71, 0x4d, 0xdb, 0x35, 0x7d, 0xd3, 0xc3, 0x44, + 0x6f, 0x86, 0xea, 0x3d, 0x23, 0xeb, 0x6d, 0xc9, 0x4c, 0xcd, 0x33, 0xa3, 0x61, 0xed, 0x74, 0x42, + 0x52, 0xb2, 0x91, 0x54, 0x8b, 0x7c, 0x40, 0x09, 0x68, 0x07, 0xfb, 0x74, 0x2d, 0xcb, 0x17, 0x57, + 0x1f, 0x68, 0x6c, 0x07, 0xfb, 0xcd, 0xd5, 0xd1, 0xb0, 0xf6, 0x74, 0x5a, 0x5e, 0x32, 0xa9, 0xd0, + 0x8f, 0xfa, 0x50, 0x11, 0x51, 0x83, 0xbc, 0xe0, 0x14, 0xb5, 0xb9, 0x32, 0xde, 0x26, 0xe1, 0x6a, + 0xae, 0x8c, 0x86, 0xb5, 0xe5, 0xa4, 0xac, 0x64, 0x2f, 0xa5, 0x99, 0xac, 0x4f, 0x57, 0xb7, 0xba, + 0xb8, 0x4f, 0xcc, 0xe4, 0x54, 0xeb, 0x73, 0x39, 0x24, 0xb3, 0xf5, 0x89, 0xb8, 0xe5, 0xf5, 0x89, + 0x60, 0xf4, 0x3e, 0x4c, 0x47, 0x0f, 0x64, 0xbe, 0xf2, 0xdc, 0x87, 0xd4, 0x4a, 0xc9, 0x4c, 0x2d, + 0x8f, 0x86, 0xb5, 0x25, 0x51, 0x46, 0x52, 0x2d, 0x69, 0x8b, 0xb5, 0xf7, 0xd9, 0xcc, 0x14, 0xc6, + 0x6b, 0x67, 0x1c, 0xa2, 0xf6, 0x7e, 0x7a, 0x46, 0x24, 0x6d, 0x44, 0x3b, 0xd9, 0xc0, 0x41, 0xb7, + 0x8b, 0xb1, 0x81, 0x8d, 0x6a, 0x51, 0xa5, 0x7d, 0x53, 0xe0, 0x60, 0xda, 0x45, 0x19, 0x59, 0xbb, + 0x48, 0x21, 0x73, 0x7d, 0xcf, 0xee, 0x6c, 0xb8, 0xae, 0xed, 0x7a, 0xd5, 0x92, 0x6a, 0xae, 0x37, + 0x43, 0x32, 0x9b, 0xeb, 0x88, 0x5b, 0x9e, 0xeb, 0x08, 0xe6, 0xe3, 0x6d, 0x05, 0xd6, 0x0d, 0xac, + 0x7b, 0xd8, 0xa8, 0xc2, 0x98, 0xf1, 0x46, 0x1c, 0xd1, 0x78, 0x23, 0x24, 0x35, 0xde, 0x88, 0x82, + 0x0c, 0x98, 0x65, 0xcf, 0xeb, 0x9e, 0x67, 0xf6, 0x2c, 0x6c, 0x54, 0xcb, 0x54, 0xff, 0xd3, 0x2a, + 0xfd, 0x21, 0x4f, 0xf3, 0xe9, 0xd1, 0xb0, 0x56, 0x95, 0xe5, 0x24, 0x1b, 0x09, 0x9d, 0xe8, 0x03, + 0x98, 0x61, 0x48, 0x2b, 0xb0, 0x2c, 0xd3, 0xea, 0x55, 0xa7, 0xa9, 0x91, 0xa7, 0x54, 0x46, 0x38, + 0x4b, 0xf3, 0xa9, 0xd1, 0xb0, 0x76, 0x4a, 0x92, 0x92, 0x4c, 0xc8, 0x0a, 0x49, 0xc4, 0x60, 0x40, + 0xbc, 0xb0, 0x33, 0xaa, 0x88, 0xb1, 0x29, 0x33, 0xb1, 0x88, 0x91, 0x90, 0x94, 0x23, 0x46, 0x82, + 0x18, 0xaf, 0x07, 0x5f, 0xe4, 0xd9, 0xf1, 0xeb, 0xc1, 0xd7, 0x59, 0x58, 0x0f, 0xc5, 0x52, 0x4b, + 0xda, 0xd0, 0x0f, 0x34, 0x58, 0xf4, 0x7c, 0xdd, 0x32, 0xf4, 0xbe, 0x6d, 0xe1, 0xeb, 0x56, 0xcf, + 0xc5, 0x9e, 0x77, 0xdd, 0xda, 0xb5, 0xab, 0x15, 0x6a, 0xe7, 0x5c, 0x22, 0xb0, 0xaa, 0x58, 0x9b, + 0xe7, 0x46, 0xc3, 0x5a, 0x4d, 0xa9, 0x45, 0xb2, 0xac, 0x36, 0x84, 0x0e, 0x61, 0x3e, 0xfc, 0x48, + 0xdf, 0xf1, 0xcd, 0xbe, 0xe9, 0xe9, 0xbe, 0x69, 0x5b, 0xd5, 0x93, 0xd4, 0xfe, 0xd9, 0x64, 0x7c, + 0x4a, 0x31, 0x36, 0xcf, 0x8e, 0x86, 0xb5, 0x33, 0x0a, 0x0d, 0x92, 0x6d, 0x95, 0x89, 0x78, 0x11, + 0xb7, 0x5d, 0x4c, 0x18, 0xb1, 0x51, 0x9d, 0x1f, 0xbf, 0x88, 0x11, 0x93, 0xb8, 0x88, 0x11, 0xa8, + 0x5a, 0xc4, 0x88, 0x48, 0x2c, 0x39, 0xba, 0xeb, 0x9b, 0xc4, 0xec, 0x96, 0xee, 0xee, 0x63, 0xb7, + 0xba, 0xa0, 0xb2, 0xb4, 0x2d, 0x33, 0x31, 0x4b, 0x09, 0x49, 0xd9, 0x52, 0x82, 0x88, 0x3e, 0xd5, + 0x40, 0x1e, 0x9a, 0x69, 0x5b, 0x2d, 0xf2, 0xd1, 0xf6, 0xc8, 0xeb, 0x2d, 0x52, 0xa3, 0xcf, 0x3e, + 0xe0, 0xf5, 0x44, 0xf6, 0xe6, 0xb3, 0xa3, 0x61, 0xed, 0xdc, 0x58, 0x6d, 0xd2, 0x40, 0xc6, 0x1b, + 0x45, 0x77, 0xa1, 0x4c, 0x88, 0x98, 0xa6, 0x3f, 0x46, 0x75, 0x89, 0x8e, 0xe1, 0x74, 0x7a, 0x0c, + 0x9c, 0xa1, 0x79, 0x7a, 0x34, 0xac, 0x2d, 0x0a, 0x12, 0x92, 0x1d, 0x51, 0x15, 0xfa, 0x44, 0x03, + 0xe2, 0xe8, 0xaa, 0x37, 0x3d, 0x45, 0xad, 0x3c, 0x93, 0xb2, 0xa2, 0x7a, 0xcd, 0x67, 0x46, 0xc3, + 0xda, 0xaa, 0x5a, 0x8f, 0x64, 0x7b, 0x8c, 0xad, 0xd8, 0x8f, 0xa2, 0x8f, 0x44, 0xb5, 0x3a, 0xde, + 0x8f, 0x22, 0x26, 0xd1, 0x8f, 0x22, 0x50, 0xe5, 0x47, 0x11, 0x91, 0x07, 0x83, 0xf7, 0xf4, 0xbe, + 0x69, 0xd0, 0x64, 0xea, 0xf4, 0x98, 0x60, 0x10, 0x71, 0x44, 0xc1, 0x20, 0x42, 0x52, 0xc1, 0x20, + 0xe6, 0x2d, 0x40, 0x8e, 0xaa, 0xa8, 0xdf, 0xcf, 0xc3, 0xbc, 0x62, 0xab, 0x21, 0x0c, 0x33, 0xe1, + 0x3e, 0x6a, 0x9b, 0x24, 0x48, 0x64, 0x55, 0xb3, 0xfc, 0x4e, 0xd0, 0xc1, 0xae, 0x85, 0x7d, 0xec, + 0x85, 0x3a, 0x68, 0x94, 0xa0, 0x23, 0x71, 0x05, 0x44, 0xc8, 0xed, 0xa6, 0x45, 0x1c, 0xfd, 0x5c, + 0x83, 0xea, 0x40, 0x3f, 0x6c, 0x87, 0xa0, 0xd7, 0xde, 0xb5, 0xdd, 0xb6, 0x83, 0x5d, 0xd3, 0x36, + 0x68, 0x26, 0x5b, 0xbe, 0xf8, 0xbf, 0x5f, 0x1b, 0x17, 0x1a, 0x5b, 0xfa, 0x61, 0x08, 0x7b, 0x6f, + 0xdb, 0xee, 0x36, 0x15, 0xdf, 0xb0, 0x7c, 0xf7, 0x88, 0x05, 0xac, 0x81, 0x8a, 0x2e, 0x8c, 0x69, + 0x51, 0xc9, 0x80, 0x7e, 0xaa, 0xc1, 0x92, 0x6f, 0xfb, 0x7a, 0xbf, 0xdd, 0x0d, 0x06, 0x41, 0x5f, + 0xf7, 0xcd, 0x03, 0xdc, 0x0e, 0x3c, 0xbd, 0x87, 0x79, 0xda, 0xfc, 0xc6, 0xd7, 0x0f, 0xed, 0x36, + 0x91, 0xbf, 0x1c, 0x89, 0xdf, 0x21, 0xd2, 0x6c, 0x64, 0xf5, 0xd1, 0xb0, 0xb6, 0xe2, 0x2b, 0xc8, + 0xc2, 0xc0, 0x16, 0x54, 0x74, 0xf4, 0x0a, 0x90, 0x42, 0xa1, 0x6d, 0x1a, 0x6d, 0xcf, 0x77, 0x69, + 0x86, 0x54, 0x6a, 0x2e, 0x8d, 0x86, 0x35, 0x74, 0xcf, 0xee, 0x5c, 0x37, 0x76, 0x7c, 0x21, 0x6e, + 0xb4, 0x8a, 0x21, 0x46, 0xa4, 0xdc, 0xc0, 0x0a, 0xa5, 0x0a, 0xb1, 0x94, 0x1b, 0x58, 0x29, 0xa9, + 0x10, 0x5b, 0xfe, 0xa5, 0x06, 0xcb, 0xe3, 0xa7, 0x17, 0x9d, 0x83, 0xec, 0x3e, 0x3e, 0xe2, 0xa5, + 0xd0, 0xc9, 0xd1, 0xb0, 0x36, 0xb3, 0x8f, 0x8f, 0x04, 0x45, 0x84, 0x8a, 0xfe, 0x1f, 0x72, 0x07, + 0x7a, 0x3f, 0xc0, 0x3c, 0xd3, 0x6e, 0x34, 0x58, 0x15, 0xd7, 0x10, 0xab, 0xb8, 0x86, 0xb3, 0xdf, + 0x23, 0x40, 0x23, 0xf4, 0x84, 0xc6, 0xbb, 0x81, 0x6e, 0xf9, 0xa6, 0x7f, 0xc4, 0x2a, 0x2c, 0xaa, + 0x40, 0xac, 0xb0, 0x28, 0x70, 0x29, 0xf3, 0x9a, 0xb6, 0xfc, 0x0b, 0x0d, 0x4e, 0x8f, 0x9d, 0xe6, + 0x6f, 0xc2, 0x08, 0xeb, 0x9f, 0xe5, 0xa1, 0x14, 0x15, 0x2a, 0xe8, 0x1a, 0x54, 0x0c, 0x6c, 0x04, + 0x4e, 0xdf, 0xec, 0x52, 0x1f, 0x21, 0x25, 0x1e, 0xab, 0x0c, 0x69, 0x94, 0x90, 0x68, 0x52, 0xad, + 0x37, 0x97, 0x20, 0xa1, 0x8b, 0x50, 0xe4, 0x09, 0xf9, 0x11, 0xdd, 0x9f, 0x33, 0x6c, 0x41, 0x43, + 0x4c, 0x5c, 0xd0, 0x10, 0x43, 0x2d, 0x00, 0x56, 0xe1, 0x6e, 0x61, 0x5f, 0xe7, 0xa5, 0x41, 0x55, + 0xf6, 0xe3, 0x5b, 0x11, 0x9d, 0xd5, 0xaa, 0x31, 0xbf, 0x58, 0xab, 0xc6, 0x28, 0x7a, 0x1f, 0x60, + 0xa0, 0x9b, 0x16, 0x93, 0xe3, 0x75, 0x40, 0x7d, 0x5c, 0xa4, 0xd8, 0x8a, 0x38, 0x99, 0xf6, 0x58, + 0x52, 0xd4, 0x1e, 0xa3, 0xe8, 0x16, 0x14, 0x78, 0x4d, 0x5e, 0xcd, 0xd3, 0x6d, 0xb7, 0x32, 0x4e, + 0x35, 0x57, 0x4b, 0xab, 0x4a, 0x2e, 0x22, 0x56, 0x95, 0x1c, 0x22, 0xd3, 0xd6, 0x37, 0x77, 0xb1, + 0x6f, 0x0e, 0x30, 0xdd, 0x07, 0x7c, 0xda, 0x42, 0x4c, 0x9c, 0xb6, 0x10, 0x43, 0xaf, 0x01, 0xe8, + 0xfe, 0x96, 0xed, 0xf9, 0xb7, 0xac, 0x2e, 0xa6, 0x99, 0x7d, 0x91, 0x0d, 0x3f, 0x46, 0xc5, 0xe1, + 0xc7, 0x28, 0x7a, 0x03, 0xca, 0x0e, 0xff, 0x92, 0x74, 0xfa, 0x98, 0x66, 0xee, 0x45, 0xf6, 0xe1, + 0x13, 0x60, 0x41, 0x56, 0xe4, 0x46, 0x57, 0x61, 0xae, 0x6b, 0x5b, 0xdd, 0xc0, 0x75, 0xb1, 0xd5, + 0x3d, 0xda, 0xd1, 0x77, 0x31, 0xcd, 0xd2, 0x8b, 0xcc, 0x55, 0x12, 0x24, 0xd1, 0x55, 0x12, 0x24, + 0xf4, 0x2a, 0x94, 0xa2, 0x0e, 0x07, 0x4d, 0xc4, 0x4b, 0xbc, 0x60, 0x0e, 0x41, 0x41, 0x38, 0xe6, + 0x24, 0x83, 0x37, 0xbd, 0x2b, 0xdc, 0xe9, 0x30, 0x4d, 0xae, 0xf9, 0xe0, 0x05, 0x58, 0x1c, 0xbc, + 0x00, 0x27, 0xe2, 0xd4, 0xec, 0x64, 0x71, 0xaa, 0xfe, 0x47, 0x0d, 0x16, 0x54, 0xde, 0x92, 0xf0, + 0x5c, 0xed, 0x91, 0x78, 0xee, 0x7b, 0x50, 0x74, 0x6c, 0xa3, 0xed, 0x39, 0xb8, 0xcb, 0xf7, 0x7e, + 0xc2, 0x6f, 0xb7, 0x6d, 0x63, 0xc7, 0xc1, 0xdd, 0xff, 0x33, 0xfd, 0xbd, 0xf5, 0x03, 0xdb, 0x34, + 0x6e, 0x98, 0x1e, 0x77, 0x30, 0x87, 0x51, 0xa4, 0x8f, 0x6c, 0x81, 0x83, 0xcd, 0x22, 0xe4, 0x99, + 0x95, 0xfa, 0x9f, 0xb2, 0x50, 0x49, 0x7a, 0xe8, 0xbf, 0xd3, 0xab, 0xa0, 0xbb, 0x50, 0x30, 0x59, + 0x0e, 0xcf, 0x73, 0x80, 0xff, 0x12, 0xa2, 0x63, 0x23, 0x6e, 0xe8, 0x35, 0x0e, 0x5e, 0x6a, 0xf0, + 0x64, 0x9f, 0x4e, 0x01, 0xd5, 0xcc, 0x25, 0x65, 0xcd, 0x1c, 0x44, 0x2d, 0x28, 0x78, 0xd8, 0x3d, + 0x30, 0xbb, 0x98, 0xc7, 0xa1, 0x9a, 0xa8, 0xb9, 0x6b, 0xbb, 0x98, 0xe8, 0xdc, 0x61, 0x2c, 0xb1, + 0x4e, 0x2e, 0x23, 0xeb, 0xe4, 0x20, 0x7a, 0x0f, 0x4a, 0x5d, 0xdb, 0xda, 0x35, 0x7b, 0x5b, 0xba, + 0xc3, 0x23, 0xd1, 0x19, 0x95, 0xd6, 0xcb, 0x21, 0x13, 0xef, 0x4b, 0x84, 0x8f, 0x89, 0xbe, 0x44, + 0xc4, 0x15, 0x2f, 0xe8, 0x3f, 0xa6, 0x00, 0xe2, 0xc5, 0x41, 0xaf, 0x43, 0x19, 0x1f, 0xe2, 0x6e, + 0xe0, 0xdb, 0xb4, 0x57, 0xa7, 0xc5, 0x2d, 0xbe, 0x10, 0x96, 0x62, 0x38, 0xc4, 0x28, 0xd9, 0x93, + 0x96, 0x3e, 0xc0, 0x9e, 0xa3, 0x77, 0xc3, 0xde, 0x20, 0x1d, 0x4c, 0x04, 0x8a, 0x7b, 0x32, 0x02, + 0xd1, 0x7f, 0xc3, 0x14, 0xed, 0x26, 0xb2, 0xb6, 0x20, 0x1a, 0x0d, 0x6b, 0xb3, 0x96, 0xdc, 0x47, + 0xa4, 0x74, 0xf4, 0x16, 0xcc, 0xec, 0x47, 0x8e, 0x47, 0xc6, 0x36, 0x45, 0x05, 0x68, 0x72, 0x16, + 0x13, 0xa4, 0xd1, 0x4d, 0x8b, 0x38, 0xda, 0x85, 0xb2, 0x6e, 0x59, 0xb6, 0x4f, 0x3f, 0x37, 0x61, + 0xab, 0xf0, 0xc2, 0x38, 0x37, 0x6d, 0xac, 0xc7, 0xbc, 0x2c, 0xc3, 0xa1, 0x71, 0x42, 0xd0, 0x20, + 0xc6, 0x09, 0x01, 0x46, 0x2d, 0xc8, 0xf7, 0xf5, 0x0e, 0xee, 0x87, 0xf1, 0xfd, 0x99, 0xb1, 0x26, + 0x6e, 0x50, 0x36, 0xa6, 0x9d, 0x36, 0x24, 0x99, 0x9c, 0xd8, 0x90, 0x64, 0xc8, 0xf2, 0x2e, 0x54, + 0x92, 0xe3, 0x99, 0x2c, 0x15, 0xb8, 0x20, 0xa6, 0x02, 0xa5, 0xaf, 0x4d, 0x3e, 0x74, 0x28, 0x0b, + 0x83, 0x7a, 0x1c, 0x26, 0xea, 0xbf, 0xd6, 0x60, 0x41, 0xb5, 0x77, 0xd1, 0x96, 0xb0, 0xe3, 0x35, + 0xde, 0xf6, 0x50, 0xb8, 0x3a, 0x97, 0x1d, 0xb3, 0xd5, 0xe3, 0x8d, 0xde, 0x84, 0x59, 0xcb, 0x36, + 0x70, 0x5b, 0x27, 0x06, 0xfa, 0xa6, 0xe7, 0x57, 0x33, 0xb4, 0x95, 0x4c, 0xdb, 0x25, 0x84, 0xb2, + 0x1e, 0x12, 0x04, 0xe9, 0x19, 0x89, 0x50, 0xff, 0x1e, 0xcc, 0x25, 0x9a, 0x99, 0x52, 0x92, 0x92, + 0x99, 0x30, 0x49, 0x91, 0xbf, 0x1c, 0xd9, 0x09, 0xbf, 0x1c, 0x3f, 0xc9, 0x40, 0x59, 0xa8, 0x2e, + 0xd1, 0x3d, 0x98, 0xe3, 0x5f, 0x32, 0xd3, 0xea, 0xb1, 0x2a, 0x26, 0xc3, 0x5b, 0x1d, 0xa9, 0x6e, + 0xff, 0xa6, 0xdd, 0xd9, 0x89, 0x78, 0x69, 0x11, 0x43, 0x3b, 0x51, 0x9e, 0x84, 0x09, 0x56, 0x67, + 0x65, 0x0a, 0xba, 0x0b, 0x4b, 0x81, 0x43, 0x6a, 0xab, 0xb6, 0xc7, 0xfb, 0xe6, 0x6d, 0x2b, 0x18, + 0x74, 0x30, 0x1b, 0x7d, 0x8e, 0x65, 0xfb, 0x8c, 0x23, 0x6c, 0xac, 0xdf, 0xa4, 0x74, 0x31, 0xdb, + 0x57, 0xd1, 0x13, 0x73, 0x31, 0x35, 0xe1, 0x5c, 0x5c, 0x03, 0x94, 0xee, 0x2a, 0x4b, 0x6b, 0xa1, + 0x4d, 0xb6, 0x16, 0xf5, 0x8f, 0xa0, 0x92, 0xec, 0x15, 0x3f, 0xc1, 0x35, 0xb5, 0xa1, 0x14, 0x75, + 0x7b, 0xd1, 0xf3, 0x90, 0x77, 0xb1, 0xee, 0xd9, 0x16, 0xdf, 0x39, 0x34, 0x04, 0x30, 0x44, 0x0c, + 0x01, 0x0c, 0x39, 0xa6, 0xc1, 0xdb, 0x30, 0xcd, 0x26, 0xeb, 0x6d, 0xb3, 0xef, 0x63, 0x17, 0x5d, + 0x81, 0xbc, 0xe7, 0xeb, 0x3e, 0xf6, 0xaa, 0xda, 0x6a, 0xf6, 0xfc, 0xec, 0xc5, 0xa5, 0x74, 0x3b, + 0x97, 0x90, 0xd9, 0x58, 0x18, 0xa7, 0x38, 0x16, 0x86, 0xd4, 0x7f, 0xa8, 0xc1, 0xb4, 0xd8, 0xb5, + 0x7e, 0x34, 0x6a, 0x1f, 0x6e, 0x42, 0xea, 0x6e, 0x38, 0x06, 0xde, 0xaf, 0x7e, 0x12, 0xd3, 0xf9, + 0xb9, 0xc6, 0xe6, 0x33, 0x6a, 0x72, 0xf6, 0xe2, 0xc6, 0x02, 0xd9, 0x38, 0x1e, 0x0d, 0x32, 0x93, + 0x36, 0x16, 0x68, 0x28, 0x92, 0xc4, 0xc5, 0x50, 0x24, 0x11, 0x8e, 0x39, 0xde, 0x5f, 0xe5, 0xe8, + 0x78, 0xe3, 0x36, 0x76, 0xe2, 0xfb, 0x9e, 0x7d, 0x88, 0xef, 0xfb, 0x0b, 0x50, 0xa0, 0x01, 0x35, + 0xfa, 0xf4, 0xd2, 0x09, 0x26, 0x90, 0x7c, 0x84, 0xc7, 0x90, 0x07, 0x84, 0x90, 0xdc, 0xbf, 0x18, + 0x42, 0xda, 0x70, 0x7a, 0x4f, 0xf7, 0xda, 0x61, 0xd0, 0x33, 0xda, 0xba, 0xdf, 0x8e, 0xf6, 0x6f, + 0x9e, 0xe6, 0xf4, 0xb4, 0x31, 0xb6, 0xa7, 0x7b, 0x3b, 0x21, 0xcf, 0xba, 0xbf, 0x9d, 0xde, 0xcd, + 0x4b, 0x6a, 0x0e, 0x74, 0x07, 0x16, 0xd5, 0xca, 0x0b, 0x74, 0xe4, 0xb4, 0x6f, 0xeb, 0x3d, 0x50, + 0xf3, 0xbc, 0x82, 0x8c, 0x3e, 0xd6, 0xa0, 0x4a, 0xbe, 0x70, 0x2e, 0xfe, 0x30, 0x30, 0x5d, 0x3c, + 0x20, 0xae, 0xd1, 0xb6, 0x0f, 0xb0, 0xdb, 0xd7, 0x8f, 0xf8, 0x11, 0xc8, 0xd9, 0x74, 0x28, 0xdf, + 0xb6, 0x8d, 0x96, 0x20, 0xc0, 0x5e, 0xcd, 0x91, 0xc1, 0x5b, 0x4c, 0x89, 0xf8, 0x6a, 0x6a, 0x8e, + 0x84, 0x1b, 0xc1, 0xb1, 0x9a, 0x2d, 0xe5, 0xc9, 0x9a, 0x2d, 0x24, 0xb3, 0x73, 0x6c, 0xbb, 0x4f, + 0xcb, 0x2c, 0x9e, 0xd9, 0x91, 0x67, 0x31, 0xb3, 0x23, 0xcf, 0x9b, 0x53, 0xc5, 0x62, 0xa5, 0x54, + 0xff, 0x4a, 0x83, 0x59, 0xf9, 0xf4, 0x24, 0xbd, 0xb9, 0xb2, 0x4f, 0x64, 0x73, 0x4d, 0x1d, 0x6b, + 0x56, 0x72, 0x93, 0xcd, 0x4a, 0xfd, 0x6f, 0x1a, 0xcc, 0x48, 0x07, 0x38, 0xdf, 0xce, 0xd7, 0xfc, + 0x59, 0x06, 0x96, 0xd4, 0x43, 0x7e, 0x2c, 0xe5, 0xe2, 0x35, 0x20, 0x89, 0xdf, 0xf5, 0x38, 0x29, + 0x5a, 0x4c, 0x55, 0x8b, 0x74, 0xba, 0xc2, 0xac, 0x31, 0x75, 0xc6, 0x13, 0x8a, 0xa3, 0xbb, 0x50, + 0x36, 0x85, 0xd3, 0xa4, 0xac, 0xaa, 0xe9, 0x2f, 0x9e, 0x21, 0xb1, 0xf6, 0xc1, 0x98, 0x93, 0x23, + 0x51, 0x55, 0x33, 0x0f, 0x53, 0x24, 0x6b, 0xab, 0x1f, 0x40, 0x81, 0x0f, 0x07, 0xbd, 0x0c, 0x25, + 0x1a, 0x53, 0x69, 0x05, 0xa4, 0xc5, 0x53, 0x4b, 0xc0, 0xc4, 0x6d, 0x8a, 0x62, 0x88, 0xa1, 0xff, + 0x01, 0x20, 0x61, 0x84, 0x47, 0xd3, 0x0c, 0x8d, 0x49, 0xb4, 0xd2, 0x72, 0x6c, 0x23, 0x15, 0x42, + 0x4b, 0x11, 0x58, 0xff, 0x3c, 0x03, 0x65, 0xf1, 0xfc, 0xea, 0x58, 0xc6, 0x3f, 0x82, 0xb0, 0x0a, + 0x6e, 0xeb, 0x86, 0x41, 0xfe, 0xe2, 0xf0, 0xa3, 0xb7, 0x36, 0x76, 0x92, 0xc2, 0xff, 0xd7, 0x43, + 0x09, 0x56, 0xf3, 0xd0, 0x33, 0x7a, 0x33, 0x41, 0x12, 0xac, 0x56, 0x92, 0xb4, 0xe5, 0x7d, 0x58, + 0x54, 0xaa, 0x12, 0x2b, 0x95, 0xdc, 0xa3, 0xaa, 0x54, 0x3e, 0xcf, 0xc1, 0xa2, 0xf2, 0xdc, 0x30, + 0xe1, 0xc1, 0xd9, 0x47, 0xe2, 0xc1, 0x3f, 0xd2, 0x54, 0x33, 0xcb, 0x0e, 0x0d, 0x5e, 0x9f, 0xe0, + 0x30, 0xf3, 0x51, 0xcd, 0xb1, 0xec, 0x16, 0xb9, 0x63, 0xf9, 0x64, 0x7e, 0x52, 0x9f, 0x44, 0x2f, + 0xb2, 0xa2, 0x8f, 0xda, 0x62, 0x4d, 0xfc, 0x70, 0x87, 0x26, 0x4c, 0x15, 0x38, 0x84, 0xde, 0x82, + 0x99, 0x50, 0x82, 0xb5, 0x1a, 0x8a, 0x71, 0x1f, 0x80, 0xf3, 0x24, 0xbb, 0x0d, 0xd3, 0x22, 0x9e, + 0x88, 0x82, 0xa5, 0x63, 0x45, 0x41, 0x98, 0xf0, 0xbc, 0xe1, 0x89, 0xfa, 0xeb, 0xdf, 0x35, 0x98, + 0x4b, 0x1c, 0xdb, 0x7f, 0x3b, 0xbf, 0x2d, 0x9f, 0x68, 0x50, 0x8a, 0x6e, 0x87, 0xa0, 0x75, 0xc8, + 0x63, 0x76, 0xc3, 0x80, 0x85, 0xa1, 0xf9, 0xc4, 0xed, 0x2f, 0x42, 0xe3, 0xf7, 0xbd, 0x12, 0x97, + 0x0a, 0x5a, 0x5c, 0xf0, 0x98, 0xc9, 0xf5, 0xef, 0xb4, 0x30, 0xb9, 0x4e, 0x8d, 0x24, 0xfb, 0x68, + 0x46, 0xf2, 0x78, 0xa7, 0xf1, 0xf7, 0x25, 0xc8, 0xd1, 0x31, 0x91, 0x02, 0xd8, 0xc7, 0xee, 0xc0, + 0xb4, 0xf4, 0x3e, 0x75, 0xc9, 0x22, 0x93, 0x0e, 0x31, 0x51, 0x3a, 0xc4, 0xd0, 0x1e, 0xcc, 0xc5, + 0xed, 0x35, 0xaa, 0x46, 0x7d, 0xf5, 0xec, 0x1d, 0x99, 0x89, 0xb5, 0xfa, 0x13, 0x92, 0xf2, 0xd9, + 0x71, 0x82, 0x88, 0x0c, 0x98, 0xed, 0xda, 0x96, 0xaf, 0x9b, 0x16, 0x76, 0x99, 0xa1, 0xac, 0xea, + 0xea, 0xcd, 0x65, 0x89, 0x87, 0x35, 0x3c, 0x64, 0x39, 0xf9, 0xea, 0x8d, 0x4c, 0x43, 0x1f, 0xc0, + 0x4c, 0x58, 0xec, 0x30, 0x23, 0x53, 0xaa, 0xab, 0x37, 0x1b, 0x22, 0x0b, 0xdb, 0x20, 0x92, 0x94, + 0x7c, 0xf5, 0x46, 0x22, 0xa1, 0x3e, 0x54, 0x1c, 0xdb, 0xb8, 0x63, 0xf1, 0x14, 0x5f, 0xef, 0xf4, + 0x31, 0xef, 0xe9, 0xae, 0xa4, 0x92, 0x15, 0x89, 0x8b, 0x05, 0xf1, 0xa4, 0xac, 0x7c, 0x99, 0x2d, + 0x49, 0x45, 0xef, 0xc3, 0x74, 0x9f, 0xd4, 0x7c, 0x1b, 0x87, 0x8e, 0xe9, 0x62, 0x43, 0x7d, 0xf5, + 0xec, 0x86, 0xc0, 0xc1, 0x42, 0xa8, 0x28, 0x23, 0x9f, 0xb8, 0x8b, 0x14, 0xb2, 0xfa, 0x03, 0xfd, + 0xb0, 0x15, 0x58, 0xde, 0xc6, 0x21, 0xbf, 0x46, 0x54, 0x50, 0xad, 0xfe, 0x96, 0xcc, 0xc4, 0x56, + 0x3f, 0x21, 0x29, 0xaf, 0x7e, 0x82, 0x88, 0x6e, 0xd0, 0x2f, 0x04, 0x5b, 0x12, 0x76, 0x05, 0x6d, + 0x29, 0x35, 0x5b, 0x6c, 0x35, 0x58, 0xd3, 0x86, 0x3f, 0x49, 0x4a, 0x23, 0x0d, 0x7c, 0x0d, 0xe8, + 0x6b, 0xb7, 0xb0, 0x1f, 0xb8, 0x16, 0x36, 0x78, 0xe9, 0x95, 0x5e, 0x03, 0x89, 0x2b, 0x5a, 0x03, + 0x09, 0x4d, 0xad, 0x81, 0x44, 0x45, 0x1f, 0xc1, 0x42, 0xe2, 0x42, 0x0d, 0x7b, 0x8f, 0xb2, 0xea, + 0x40, 0x63, 0x53, 0xc1, 0xc9, 0xaa, 0x64, 0x95, 0x0e, 0xc9, 0xb2, 0xd2, 0x0a, 0xb1, 0xde, 0xd3, + 0xad, 0xde, 0xa6, 0xdd, 0x91, 0x7d, 0x6e, 0x5a, 0x65, 0xfd, 0xaa, 0x82, 0x93, 0x59, 0x57, 0xe9, + 0x90, 0xad, 0xab, 0x38, 0xa2, 0xcb, 0x33, 0x24, 0xc1, 0x89, 0x2e, 0x99, 0xa9, 0x2e, 0xcf, 0x30, + 0x06, 0xe1, 0xf2, 0x0c, 0x03, 0x14, 0x97, 0x67, 0x38, 0x67, 0x31, 0x6c, 0xf4, 0xd4, 0xdf, 0x85, + 0xb9, 0x44, 0x78, 0x41, 0x6f, 0x42, 0x74, 0x25, 0xe3, 0xf6, 0x91, 0x13, 0xe6, 0xb5, 0xd2, 0x15, + 0x0e, 0x82, 0xab, 0xae, 0x70, 0x10, 0xbc, 0xfe, 0xe9, 0x14, 0x14, 0x43, 0x8f, 0x7a, 0x2c, 0x95, + 0xca, 0x1a, 0x14, 0x06, 0xd8, 0xa3, 0xd7, 0x2e, 0x32, 0x71, 0xc2, 0xc3, 0x21, 0x31, 0xe1, 0xe1, + 0x90, 0x9c, 0x8f, 0x65, 0x8f, 0x95, 0x8f, 0x4d, 0x4d, 0x9c, 0x8f, 0x61, 0x7a, 0x42, 0x2b, 0xc4, + 0xc5, 0xf0, 0xa0, 0xe4, 0xc1, 0xc1, 0x36, 0x3c, 0xbf, 0x15, 0x05, 0x13, 0xe7, 0xb7, 0x22, 0x09, + 0xed, 0xc3, 0x49, 0xe1, 0x30, 0x87, 0xb7, 0xed, 0x48, 0x84, 0x9a, 0x1d, 0x7f, 0x1c, 0xde, 0xa2, + 0x5c, 0x6c, 0x1f, 0xee, 0x27, 0x50, 0x31, 0xa1, 0x4d, 0xd2, 0x88, 0x4b, 0x18, 0xb8, 0x13, 0xf4, + 0xb6, 0xf8, 0xb4, 0x17, 0x62, 0x97, 0x10, 0x71, 0xd1, 0x25, 0x44, 0xbc, 0xfe, 0x55, 0x06, 0x66, + 0xe5, 0xf7, 0x7d, 0x2c, 0x8e, 0xf1, 0x32, 0x94, 0xf0, 0xa1, 0xe9, 0xb7, 0xbb, 0xb6, 0x81, 0x79, + 0x55, 0x47, 0xd7, 0x99, 0x80, 0x97, 0x6d, 0x43, 0x5a, 0xe7, 0x10, 0x13, 0xbd, 0x29, 0x3b, 0x91, + 0x37, 0xc5, 0x5d, 0xd2, 0xa9, 0x09, 0xba, 0xa4, 0xca, 0x75, 0x2a, 0x3d, 0x9e, 0x75, 0xaa, 0x7f, + 0x91, 0x81, 0x4a, 0x32, 0xec, 0x7e, 0x33, 0xb6, 0xa0, 0xbc, 0x9b, 0xb2, 0x13, 0xef, 0xa6, 0xb7, + 0x60, 0x86, 0xe4, 0x65, 0xba, 0xef, 0xf3, 0x5b, 0x9a, 0x53, 0x34, 0xb9, 0x62, 0xd1, 0x28, 0xb0, + 0xd6, 0x43, 0x5c, 0x8a, 0x46, 0x02, 0x9e, 0x72, 0xdd, 0xdc, 0x43, 0xba, 0xee, 0xc7, 0x19, 0x98, + 0xd9, 0xb6, 0x8d, 0xdb, 0x2c, 0x69, 0xf3, 0xbf, 0x29, 0xf3, 0xf9, 0x24, 0x43, 0x5a, 0x7d, 0x0e, + 0x66, 0xa4, 0xac, 0xad, 0xfe, 0x09, 0xf3, 0x33, 0xf9, 0x73, 0xf5, 0x9f, 0x37, 0x2f, 0xb3, 0x30, + 0x2d, 0xa6, 0x7f, 0xf5, 0x26, 0xcc, 0x25, 0xb2, 0x35, 0xf1, 0x05, 0xb4, 0x49, 0x5e, 0xa0, 0xbe, + 0x04, 0x0b, 0xaa, 0x34, 0xa6, 0x7e, 0x15, 0x16, 0x54, 0x09, 0xc6, 0xc3, 0x1b, 0x78, 0x93, 0x9f, + 0x89, 0xb2, 0x54, 0xe0, 0xe1, 0xe5, 0x7f, 0x13, 0xd5, 0xc8, 0xf1, 0x1d, 0xe7, 0x6d, 0x58, 0x70, + 0xc2, 0x87, 0xb6, 0x50, 0x7d, 0xb1, 0xcd, 0x56, 0x1b, 0x0d, 0x6b, 0x4f, 0x45, 0xf4, 0xcd, 0x74, + 0x19, 0x76, 0x32, 0x45, 0x94, 0x35, 0x0a, 0x95, 0x59, 0x5e, 0xa1, 0xb1, 0x95, 0x2e, 0xd1, 0x4e, + 0xa6, 0x88, 0xa4, 0xe4, 0x9d, 0x4b, 0xdc, 0xb1, 0x46, 0x97, 0x60, 0x9a, 0xfe, 0x00, 0x4a, 0xae, + 0x5b, 0xa9, 0x6b, 0x52, 0x3c, 0xa9, 0x16, 0x62, 0x14, 0xbd, 0x0a, 0xa5, 0xe8, 0x02, 0x36, 0x3f, + 0xf3, 0x64, 0x3e, 0x13, 0x82, 0x92, 0xcf, 0x84, 0x60, 0xfd, 0xc7, 0x1a, 0x9c, 0x1e, 0x7b, 0xeb, + 0xfa, 0x78, 0x65, 0x74, 0xa2, 0x78, 0x9d, 0x9a, 0xb0, 0x78, 0xbd, 0x09, 0x4b, 0xea, 0x4b, 0xd1, + 0x89, 0x51, 0x64, 0x26, 0x3e, 0x99, 0x9d, 0x16, 0xaf, 0x1f, 0xa3, 0x0b, 0x90, 0x73, 0x6c, 0xbb, + 0xef, 0xf1, 0x5b, 0x03, 0xb4, 0xf7, 0x42, 0x01, 0xb1, 0xf7, 0x42, 0x81, 0x63, 0x76, 0x0f, 0xbe, + 0x1f, 0x3a, 0x62, 0x7c, 0x49, 0xfa, 0x09, 0xce, 0xdf, 0x73, 0x2f, 0x42, 0x31, 0x3c, 0x95, 0x45, + 0x00, 0xf9, 0x77, 0xef, 0x6c, 0xdc, 0xd9, 0xb8, 0x52, 0x39, 0x81, 0xca, 0x50, 0xd8, 0xde, 0xb8, + 0x79, 0xe5, 0xfa, 0xcd, 0xab, 0x15, 0x8d, 0x3c, 0xb4, 0xee, 0xdc, 0xbc, 0x49, 0x1e, 0x32, 0xcf, + 0xdd, 0x10, 0x6f, 0x7e, 0xf1, 0xd4, 0x6a, 0x1a, 0x8a, 0xeb, 0x8e, 0x43, 0xf7, 0x38, 0x93, 0xdd, + 0x38, 0x30, 0xc9, 0xc6, 0xac, 0x68, 0xa8, 0x00, 0xd9, 0x5b, 0xb7, 0xb6, 0x2a, 0x19, 0xb4, 0x00, + 0x95, 0x2b, 0x58, 0x37, 0xfa, 0xa6, 0x85, 0xc3, 0xc0, 0x52, 0xc9, 0x36, 0xef, 0xfd, 0xe1, 0xfe, + 0x8a, 0xf6, 0xc5, 0xfd, 0x15, 0xed, 0xaf, 0xf7, 0x57, 0xb4, 0x4f, 0xbf, 0x5c, 0x39, 0xf1, 0xc5, + 0x97, 0x2b, 0x27, 0xfe, 0xfc, 0xe5, 0xca, 0x89, 0xef, 0xbc, 0xd8, 0x33, 0xfd, 0xbd, 0xa0, 0xd3, + 0xe8, 0xda, 0x03, 0xfe, 0xc3, 0x4d, 0xc7, 0xb5, 0xc9, 0x7e, 0xe7, 0x4f, 0x6b, 0xc9, 0x5f, 0x74, + 0x7e, 0x96, 0x39, 0xb3, 0x4e, 0x1f, 0xb7, 0x19, 0x5f, 0xe3, 0xba, 0xdd, 0x60, 0x00, 0xfd, 0x0d, + 0x9f, 0xd7, 0xc9, 0xd3, 0xdf, 0xea, 0xbd, 0xfc, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9b, 0x6d, + 0x77, 0x34, 0x0c, 0x3a, 0x00, 0x00, } func (m *EventSequence) Marshal() (dAtA []byte, err error) { @@ -4916,65 +4562,6 @@ func (m *ResourceUtilisation) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.RunId != nil { - { - size, err := m.RunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *Uuid) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Uuid) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Uuid) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Low64 != 0 { - i -= 8 - encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Low64)) - i-- - dAtA[i] = 0x11 - } - if m.High64 != 0 { - i -= 8 - encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.High64)) - i-- - dAtA[i] = 0x9 - } return len(dAtA) - i, nil } @@ -5107,18 +4694,6 @@ func (m *SubmitJob) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -5480,18 +5055,6 @@ func (m *ReprioritiseJob) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x10 } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -5539,18 +5102,6 @@ func (m *JobRequeued) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -5614,18 +5165,6 @@ func (m *ReprioritisedJob) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x10 } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -5663,18 +5202,6 @@ func (m *CancelJob) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -5699,20 +5226,20 @@ func (m *JobSetFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.States) > 0 { - dAtA47 := make([]byte, len(m.States)*10) - var j46 int + dAtA40 := make([]byte, len(m.States)*10) + var j39 int for _, num := range m.States { for num >= 1<<7 { - dAtA47[j46] = uint8(uint64(num)&0x7f | 0x80) + dAtA40[j39] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j46++ + j39++ } - dAtA47[j46] = uint8(num) - j46++ + dAtA40[j39] = uint8(num) + j39++ } - i -= j46 - copy(dAtA[i:], dAtA47[:j46]) - i = encodeVarintEvents(dAtA, i, uint64(j46)) + i -= j39 + copy(dAtA[i:], dAtA40[:j39]) + i = encodeVarintEvents(dAtA, i, uint64(j39)) i-- dAtA[i] = 0xa } @@ -5747,20 +5274,20 @@ func (m *CancelJobSet) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } if len(m.States) > 0 { - dAtA49 := make([]byte, len(m.States)*10) - var j48 int + dAtA42 := make([]byte, len(m.States)*10) + var j41 int for _, num := range m.States { for num >= 1<<7 { - dAtA49[j48] = uint8(uint64(num)&0x7f | 0x80) + dAtA42[j41] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j48++ + j41++ } - dAtA49[j48] = uint8(num) - j48++ + dAtA42[j41] = uint8(num) + j41++ } - i -= j48 - copy(dAtA[i:], dAtA49[:j48]) - i = encodeVarintEvents(dAtA, i, uint64(j48)) + i -= j41 + copy(dAtA[i:], dAtA42[:j41]) + i = encodeVarintEvents(dAtA, i, uint64(j41)) i-- dAtA[i] = 0xa } @@ -5801,18 +5328,6 @@ func (m *CancelledJob) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -5857,18 +5372,6 @@ func (m *JobSucceeded) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -5959,30 +5462,6 @@ func (m *JobRunLeased) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.RunId != nil { - { - size, err := m.RunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -6034,30 +5513,6 @@ func (m *JobRunAssigned) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x1a } } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.RunId != nil { - { - size, err := m.RunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -6109,30 +5564,6 @@ func (m *JobRunRunning) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x1a } } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.RunId != nil { - { - size, err := m.RunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -6393,30 +5824,6 @@ func (m *StandaloneIngressInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.RunId != nil { - { - size, err := m.RunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -6468,30 +5875,6 @@ func (m *JobRunSucceeded) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x1a } } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.RunId != nil { - { - size, err := m.RunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -6536,18 +5919,6 @@ func (m *JobErrors) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -6599,30 +5970,6 @@ func (m *JobRunErrors) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x1a } } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.RunId != nil { - { - size, err := m.RunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -6919,18 +6266,6 @@ func (m *KubernetesError) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.ResourceId != nil { - { - size, err := m.ResourceId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } if len(m.ResourceType) > 0 { i -= len(m.ResourceType) copy(dAtA[i:], m.ResourceType) @@ -7445,54 +6780,6 @@ func (m *JobRunPreempted) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x2a } - if m.PreemptiveRunId != nil { - { - size, err := m.PreemptiveRunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.PreemptiveJobId != nil { - { - size, err := m.PreemptiveJobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.PreemptedRunId != nil { - { - size, err := m.PreemptedRunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.PreemptedJobId != nil { - { - size, err := m.PreemptedJobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -7528,18 +6815,6 @@ func (m *PartitionMarker) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x10 } - if m.GroupId != nil { - { - size, err := m.GroupId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -7577,30 +6852,6 @@ func (m *JobRunPreemptionRequested) MarshalToSizedBuffer(dAtA []byte) (int, erro i-- dAtA[i] = 0x1a } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.RunId != nil { - { - size, err := m.RunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -7631,18 +6882,6 @@ func (m *JobPreemptionRequested) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x12 } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -7682,18 +6921,6 @@ func (m *JobValidated) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -7731,30 +6958,6 @@ func (m *JobRunCancelled) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - if m.JobId != nil { - { - size, err := m.JobId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.RunId != nil { - { - size, err := m.RunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -8100,14 +7303,6 @@ func (m *ResourceUtilisation) Size() (n int) { } var l int _ = l - if m.RunId != nil { - l = m.RunId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if m.ResourceInfo != nil { l = m.ResourceInfo.Size() n += 1 + l + sovEvents(uint64(l)) @@ -8149,31 +7344,12 @@ func (m *ResourceUtilisation) Size() (n int) { return n } -func (m *Uuid) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.High64 != 0 { - n += 9 - } - if m.Low64 != 0 { - n += 9 - } - return n -} - func (m *SubmitJob) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } l = len(m.DeduplicationId) if l > 0 { n += 1 + l + sovEvents(uint64(l)) @@ -8379,10 +7555,6 @@ func (m *ReprioritiseJob) Size() (n int) { } var l int _ = l - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if m.Priority != 0 { n += 1 + sovEvents(uint64(m.Priority)) } @@ -8399,10 +7571,6 @@ func (m *JobRequeued) Size() (n int) { } var l int _ = l - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if m.SchedulingInfo != nil { l = m.SchedulingInfo.Size() n += 1 + l + sovEvents(uint64(l)) @@ -8435,10 +7603,6 @@ func (m *ReprioritisedJob) Size() (n int) { } var l int _ = l - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if m.Priority != 0 { n += 1 + sovEvents(uint64(m.Priority)) } @@ -8455,10 +7619,6 @@ func (m *CancelJob) Size() (n int) { } var l int _ = l - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } l = len(m.Reason) if l > 0 { n += 1 + l + sovEvents(uint64(l)) @@ -8512,10 +7672,6 @@ func (m *CancelledJob) Size() (n int) { } var l int _ = l - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } l = len(m.Reason) if l > 0 { n += 1 + l + sovEvents(uint64(l)) @@ -8533,10 +7689,6 @@ func (m *JobSucceeded) Size() (n int) { } var l int _ = l - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if len(m.ResourceInfos) > 0 { for _, e := range m.ResourceInfos { l = e.Size() @@ -8556,14 +7708,6 @@ func (m *JobRunLeased) Size() (n int) { } var l int _ = l - if m.RunId != nil { - l = m.RunId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } l = len(m.ExecutorId) if l > 0 { n += 1 + l + sovEvents(uint64(l)) @@ -8606,14 +7750,6 @@ func (m *JobRunAssigned) Size() (n int) { } var l int _ = l - if m.RunId != nil { - l = m.RunId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if len(m.ResourceInfos) > 0 { for _, e := range m.ResourceInfos { l = e.Size() @@ -8637,14 +7773,6 @@ func (m *JobRunRunning) Size() (n int) { } var l int _ = l - if m.RunId != nil { - l = m.RunId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if len(m.ResourceInfos) > 0 { for _, e := range m.ResourceInfos { l = e.Size() @@ -8745,14 +7873,6 @@ func (m *StandaloneIngressInfo) Size() (n int) { } var l int _ = l - if m.RunId != nil { - l = m.RunId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if m.ObjectMeta != nil { l = m.ObjectMeta.Size() n += 1 + l + sovEvents(uint64(l)) @@ -8797,14 +7917,6 @@ func (m *JobRunSucceeded) Size() (n int) { } var l int _ = l - if m.RunId != nil { - l = m.RunId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if len(m.ResourceInfos) > 0 { for _, e := range m.ResourceInfos { l = e.Size() @@ -8828,10 +7940,6 @@ func (m *JobErrors) Size() (n int) { } var l int _ = l - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if len(m.Errors) > 0 { for _, e := range m.Errors { l = e.Size() @@ -8851,14 +7959,6 @@ func (m *JobRunErrors) Size() (n int) { } var l int _ = l - if m.RunId != nil { - l = m.RunId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if len(m.Errors) > 0 { for _, e := range m.Errors { l = e.Size() @@ -9033,10 +8133,6 @@ func (m *KubernetesError) Size() (n int) { if l > 0 { n += 1 + l + sovEvents(uint64(l)) } - if m.ResourceId != nil { - l = m.ResourceId.Size() - n += 1 + l + sovEvents(uint64(l)) - } return n } @@ -9251,22 +8347,6 @@ func (m *JobRunPreempted) Size() (n int) { } var l int _ = l - if m.PreemptedJobId != nil { - l = m.PreemptedJobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.PreemptedRunId != nil { - l = m.PreemptedRunId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.PreemptiveJobId != nil { - l = m.PreemptiveJobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.PreemptiveRunId != nil { - l = m.PreemptiveRunId.Size() - n += 1 + l + sovEvents(uint64(l)) - } l = len(m.PreemptedJobIdStr) if l > 0 { n += 1 + l + sovEvents(uint64(l)) @@ -9284,10 +8364,6 @@ func (m *PartitionMarker) Size() (n int) { } var l int _ = l - if m.GroupId != nil { - l = m.GroupId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if m.Partition != 0 { n += 1 + sovEvents(uint64(m.Partition)) } @@ -9304,14 +8380,6 @@ func (m *JobRunPreemptionRequested) Size() (n int) { } var l int _ = l - if m.RunId != nil { - l = m.RunId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } l = len(m.JobIdStr) if l > 0 { n += 1 + l + sovEvents(uint64(l)) @@ -9329,10 +8397,6 @@ func (m *JobPreemptionRequested) Size() (n int) { } var l int _ = l - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } l = len(m.JobIdStr) if l > 0 { n += 1 + l + sovEvents(uint64(l)) @@ -9346,10 +8410,6 @@ func (m *JobValidated) Size() (n int) { } var l int _ = l - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } if len(m.Pools) > 0 { for _, s := range m.Pools { l = len(s) @@ -9369,14 +8429,6 @@ func (m *JobRunCancelled) Size() (n int) { } var l int _ = l - if m.RunId != nil { - l = m.RunId.Size() - n += 1 + l + sovEvents(uint64(l)) - } - if m.JobId != nil { - l = m.JobId.Size() - n += 1 + l + sovEvents(uint64(l)) - } l = len(m.JobIdStr) if l > 0 { n += 1 + l + sovEvents(uint64(l)) @@ -10526,9 +9578,9 @@ func (m *ResourceUtilisation) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: ResourceUtilisation: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ResourceInfo", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10555,16 +9607,16 @@ func (m *ResourceUtilisation) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.RunId == nil { - m.RunId = &Uuid{} + if m.ResourceInfo == nil { + m.ResourceInfo = &KubernetesResourceInfo{} } - if err := m.RunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ResourceInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MaxResourcesForPeriod", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10591,80 +9643,8 @@ func (m *ResourceUtilisation) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourceInfo", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ResourceInfo == nil { - m.ResourceInfo = &KubernetesResourceInfo{} - } - if err := m.ResourceInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxResourcesForPeriod", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.MaxResourcesForPeriod == nil { - m.MaxResourcesForPeriod = make(map[string]*resource.Quantity) + if m.MaxResourcesForPeriod == nil { + m.MaxResourcesForPeriod = make(map[string]*resource.Quantity) } var mapkey string var mapvalue *resource.Quantity @@ -10977,76 +9957,6 @@ func (m *ResourceUtilisation) Unmarshal(dAtA []byte) error { } return nil } -func (m *Uuid) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Uuid: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Uuid: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field High64", wireType) - } - m.High64 = 0 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - m.High64 = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:])) - iNdEx += 8 - case 2: - if wireType != 1 { - return fmt.Errorf("proto: wrong wireType = %d for field Low64", wireType) - } - m.Low64 = 0 - if (iNdEx + 8) > l { - return io.ErrUnexpectedEOF - } - m.Low64 = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:])) - iNdEx += 8 - default: - iNdEx = preIndex - skippy, err := skipEvents(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthEvents - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *SubmitJob) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -11076,42 +9986,6 @@ func (m *SubmitJob) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: SubmitJob: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DeduplicationId", wireType) @@ -12379,42 +11253,6 @@ func (m *ReprioritiseJob) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: ReprioritiseJob: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType) @@ -12516,42 +11354,6 @@ func (m *JobRequeued) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobRequeued: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field SchedulingInfo", wireType) @@ -12758,42 +11560,6 @@ func (m *ReprioritisedJob) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: ReprioritisedJob: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType) @@ -12895,11 +11661,11 @@ func (m *CancelJob) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: CancelJob: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvents @@ -12909,31 +11675,27 @@ func (m *CancelJob) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthEvents } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvents } if postIndex > l { return io.ErrUnexpectedEOF } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Reason = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field JobIdStr", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12961,39 +11723,7 @@ func (m *CancelJob) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobIdStr", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.JobIdStr = string(dAtA[iNdEx:postIndex]) + m.JobIdStr = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -13315,42 +12045,6 @@ func (m *CancelledJob) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: CancelledJob: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) @@ -13465,42 +12159,6 @@ func (m *JobSucceeded) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobSucceeded: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ResourceInfos", wireType) @@ -13617,78 +12275,6 @@ func (m *JobRunLeased) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobRunLeased: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RunId == nil { - m.RunId = &Uuid{} - } - if err := m.RunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ExecutorId", wireType) @@ -13993,78 +12579,6 @@ func (m *JobRunAssigned) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobRunAssigned: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RunId == nil { - m.RunId = &Uuid{} - } - if err := m.RunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ResourceInfos", wireType) @@ -14213,9 +12727,9 @@ func (m *JobRunRunning) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobRunRunning: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ResourceInfos", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14242,18 +12756,16 @@ func (m *JobRunRunning) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.RunId == nil { - m.RunId = &Uuid{} - } - if err := m.RunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.ResourceInfos = append(m.ResourceInfos, &KubernetesResourceInfo{}) + if err := m.ResourceInfos[len(m.ResourceInfos)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field JobIdStr", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvents @@ -14263,33 +12775,29 @@ func (m *JobRunRunning) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthEvents } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvents } if postIndex > l { return io.ErrUnexpectedEOF } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.JobIdStr = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourceInfos", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RunIdStr", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvents @@ -14299,73 +12807,7 @@ func (m *JobRunRunning) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ResourceInfos = append(m.ResourceInfos, &KubernetesResourceInfo{}) - if err := m.ResourceInfos[len(m.ResourceInfos)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobIdStr", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.JobIdStr = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunIdStr", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } @@ -14885,78 +13327,6 @@ func (m *StandaloneIngressInfo) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: StandaloneIngressInfo: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RunId == nil { - m.RunId = &Uuid{} - } - if err := m.RunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) @@ -15335,78 +13705,6 @@ func (m *JobRunSucceeded) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobRunSucceeded: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RunId == nil { - m.RunId = &Uuid{} - } - if err := m.RunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ResourceInfos", wireType) @@ -15555,42 +13853,6 @@ func (m *JobErrors) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobErrors: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Errors", wireType) @@ -15707,9 +13969,9 @@ func (m *JobRunErrors) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobRunErrors: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Errors", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -15736,18 +13998,16 @@ func (m *JobRunErrors) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.RunId == nil { - m.RunId = &Uuid{} - } - if err := m.RunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Errors = append(m.Errors, &Error{}) + if err := m.Errors[len(m.Errors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field JobIdStr", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvents @@ -15757,33 +14017,29 @@ func (m *JobRunErrors) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthEvents } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvents } if postIndex > l { return io.ErrUnexpectedEOF } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.JobIdStr = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Errors", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RunIdStr", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvents @@ -15793,73 +14049,7 @@ func (m *JobRunErrors) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Errors = append(m.Errors, &Error{}) - if err := m.Errors[len(m.Errors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobIdStr", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.JobIdStr = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunIdStr", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } @@ -16414,42 +14604,6 @@ func (m *KubernetesError) Unmarshal(dAtA []byte) error { } m.ResourceType = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourceId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ResourceId == nil { - m.ResourceId = &Uuid{} - } - if err := m.ResourceId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) @@ -17865,150 +16019,6 @@ func (m *JobRunPreempted) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobRunPreempted: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PreemptedJobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PreemptedJobId == nil { - m.PreemptedJobId = &Uuid{} - } - if err := m.PreemptedJobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PreemptedRunId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PreemptedRunId == nil { - m.PreemptedRunId = &Uuid{} - } - if err := m.PreemptedRunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PreemptiveJobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PreemptiveJobId == nil { - m.PreemptiveJobId = &Uuid{} - } - if err := m.PreemptiveJobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PreemptiveRunId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PreemptiveRunId == nil { - m.PreemptiveRunId = &Uuid{} - } - if err := m.PreemptiveRunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field PreemptedJobIdStr", wireType) @@ -18123,42 +16133,6 @@ func (m *PartitionMarker) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: PartitionMarker: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GroupId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.GroupId == nil { - m.GroupId = &Uuid{} - } - if err := m.GroupId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Partition", wireType) @@ -18260,78 +16234,6 @@ func (m *JobRunPreemptionRequested) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobRunPreemptionRequested: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RunId == nil { - m.RunId = &Uuid{} - } - if err := m.RunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field JobIdStr", wireType) @@ -18446,42 +16348,6 @@ func (m *JobPreemptionRequested) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobPreemptionRequested: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field JobIdStr", wireType) @@ -18564,42 +16430,6 @@ func (m *JobValidated) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobValidated: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Pools", wireType) @@ -18714,78 +16544,6 @@ func (m *JobRunCancelled) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobRunCancelled: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RunId == nil { - m.RunId = &Uuid{} - } - if err := m.RunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobId == nil { - m.JobId = &Uuid{} - } - if err := m.JobId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field JobIdStr", wireType) diff --git a/pkg/armadaevents/events.proto b/pkg/armadaevents/events.proto index eed67236513..508fdb5d017 100644 --- a/pkg/armadaevents/events.proto +++ b/pkg/armadaevents/events.proto @@ -109,8 +109,6 @@ message EventSequence { // Resource usage of a particular k8s object created as part of a job. message ResourceUtilisation { - Uuid run_id = 1; - Uuid job_id = 2; KubernetesResourceInfo resource_info = 3; map max_resources_for_period = 4; map total_cumulative_usage = 5; @@ -119,24 +117,12 @@ message ResourceUtilisation { string run_id_str = 7; } -// A UUID, encoded in accordance with section 4.1.2 of RFC 4122 -// (technically equivalent to ITU-T Rec. X.667 and ISO/IEC 9834-8). -// As of March 2022, this seems to be the most efficient way to include UUIDs in proto messages; see -// https://github.com/protocolbuffers/protobuf/issues/2224#issuecomment-760635430 -message Uuid { - // The high 64 bits of the UUID - MSB -> LSB: time_low (32 bits) | time_mid (16 bits) | time_hi_and_version (16 bits). - fixed64 high64 = 1; - // The low 64 bits of the UUID - MSB -> LSB: clock_seq_hi_and_reserved (8 bits) | clock_seq_low (8 bits) | node (48 bits). - fixed64 low64 = 2; -} // A request to run an Armada job. Each job consists of a set of Kubernetes objects, // one of which is the main object (typically a pod spec.) and has a priority associated with it. // When the main object exits, all other objects are cleaned up. // The priority, together with the queue the job is submitted to, determines the order in which jobs are run. message SubmitJob { - // Each application may be run multiple times. This id uniquely identifies this job. - Uuid job_id = 1; // User-provided id used for server-side deduplication. // I.e., jobs submitted with the same deduplication_id as an existing job are discarded. // TODO: If we can deduplicate at the API endpoint, we don't need this on the log. @@ -220,13 +206,11 @@ message PodSpecWithAvoidList { // Set the priority of a particular job. message ReprioritiseJob { - Uuid job_id = 1; uint32 priority = 2; string job_id_str = 3; } message JobRequeued { - Uuid job_id = 1; schedulerobjects.JobSchedulingInfo scheduling_info = 2; // Used by the scheduler to maintain a consistent state int32 update_sequence_number = 3; @@ -242,7 +226,6 @@ message ReprioritiseJobSet { // Generated by the scheduler in response to ReprioritiseJob and ReprioritiseJobSet. // One such message is generated per job that was re-prioritised and includes the new priority. message ReprioritisedJob { - Uuid job_id = 1; uint32 priority = 2; string job_id_str = 3; } @@ -251,7 +234,6 @@ message ReprioritisedJob { // This will cancel all runs (preempting it if running) for the job (i.e., move them to the failed state) // and then cancel job itself (i.e., move it to the failed state). message CancelJob { - Uuid job_id = 1; string reason = 2; string job_id_str = 3; } @@ -279,13 +261,11 @@ message CancelJobSet { // Generated by the scheduler in response to CancelJob and CancelJobSet. // One such message is generated per job that was cancelled. message CancelledJob { - Uuid job_id = 1; string reason = 2; string job_id_str = 3; } message JobSucceeded { - Uuid job_id = 1; // Runtime information, e.g., which node the job is running on, its IP address etc, // for each resource created for the job run. // TODO: remove this once we have fixed the external api @@ -297,8 +277,6 @@ message JobSucceeded { message JobRunLeased { reserved 8; - Uuid run_id = 1; - Uuid job_id = 2; // Each cluster is represented by an executor. string executor_id = 3; string node_id = 4; @@ -328,8 +306,6 @@ message JobRunLeased { // Indicates that a job has been assigned to nodes by Kubernetes. message JobRunAssigned { - Uuid run_id = 1; - Uuid job_id = 2; // Runtime information, e.g., which node the job is running on, its IP address etc, // for each resource created for the job run. // Included here and in JobRunRunning for compatibility with legacy messages. @@ -340,8 +316,6 @@ message JobRunAssigned { // Indicates that the resources required by the job have been created and that the job is now running. message JobRunRunning { - Uuid run_id = 1; - Uuid job_id = 2; // Runtime information, e.g., which node the job is running on, its IP address etc, // for each resource created for the job run. repeated KubernetesResourceInfo resourceInfos = 3; @@ -376,8 +350,6 @@ message IngressInfo { // Used for compatibility with legacy messages, which send ingress info as its own message. // Later, this info should be bundled with the JobRunRunning message. message StandaloneIngressInfo { - Uuid run_id = 1; - Uuid job_id = 2; // ObjectMeta associated with the ingress. ObjectMeta objectMeta = 3; map ingress_addresses = 4; @@ -392,8 +364,6 @@ message StandaloneIngressInfo { // Indicates that the job finished successfully (i.e., in the expected manner). message JobRunSucceeded { - Uuid run_id = 1; - Uuid job_id = 2; // Runtime information, e.g., which node the job is running on, its IP address etc, // for each resource created for the job run. // TODO: remove this once we have fixed the external api @@ -406,7 +376,6 @@ message JobRunSucceeded { // Contains a flag, which if set to true indicates that the job has failed. // Otherwise, this message represents a set of errors from which the system has recovered. message JobErrors { - Uuid job_id = 1; // A set of errors that occurred within some context. repeated Error errors = 2; string job_id_str = 3; @@ -420,8 +389,6 @@ message JobErrors { // // Services may listen for these messages to obtain realtime information about errors associated with jobs. message JobRunErrors { - Uuid run_id = 1; - Uuid job_id = 2; // A set of errors that occurred within some context. repeated Error errors = 3; string job_id_str = 4; @@ -459,8 +426,6 @@ message Error { message KubernetesError { // Type of Kubernetes resource (e.g., ingress). string resourceType = 1; - // Id assigned to the resource by Kubernetes. - Uuid resourceId = 2; } // Reason reported by Kubernetes. @@ -546,22 +511,12 @@ message JobRejected { // Message to indicate that a JobRun has been preempted. message JobRunPreempted{ - // Uuid of the job that was preempted - Uuid preempted_job_id = 1; - // Uuid of the job run that was preempted. - Uuid preempted_run_id = 2; - // Uuid of the job that caused the preemption. - Uuid preemptive_job_id = 3; - // Uuid of the job run that caused the preemption. - Uuid preemptive_run_id = 4; string preempted_job_id_str = 5; string preempted_run_id_str = 6; } // Message used internally by Armada to see if messages can be propagated through a pulsar partition message PartitionMarker { - // group id ties together multiple messages across different partitions - Uuid group_id = 1; // string group id string group_id_str = 3; // The pulsar partition on which this message was sent @@ -570,21 +525,17 @@ message PartitionMarker { // Indicates that the scheduler has requested for the job run to be pre-empted. message JobRunPreemptionRequested { - Uuid run_id = 1; - Uuid job_id = 2; string job_id_str = 3; string run_id_str= 4; } // Indicates that a user has requested for the job to be pre-empted. message JobPreemptionRequested { - Uuid job_id = 1; string job_id_str = 2; } // Indicates that the scheduler is happy with the job message JobValidated { - Uuid job_id = 1; repeated string pools = 2; string job_id_str = 3; } @@ -592,8 +543,6 @@ message JobValidated { // Generated by the scheduler when a job is cancelled, all active job runs are also cancelled // One such message is generated per job run that was cancelled. message JobRunCancelled { - Uuid run_id = 1; - Uuid job_id = 2; string job_id_str = 3; string run_id_str= 4; } diff --git a/pkg/armadaevents/uuid.go b/pkg/armadaevents/uuid.go deleted file mode 100644 index 66af258ad3e..00000000000 --- a/pkg/armadaevents/uuid.go +++ /dev/null @@ -1,121 +0,0 @@ -package armadaevents - -import ( - "encoding/binary" - "strings" - - "github.com/google/uuid" - "github.com/oklog/ulid" - "github.com/pkg/errors" - - "github.com/armadaproject/armada/internal/common/armadaerrors" -) - -// UuidFromProtoUuid creates and returns a uuid.UUID from an armadaevents.Uuid -// (i.e., the efficient representation used in proto messages). -func UuidFromProtoUuid(id *Uuid) uuid.UUID { - var rv uuid.UUID - binary.BigEndian.PutUint64(rv[:8], id.High64) - binary.BigEndian.PutUint64(rv[8:], id.Low64) - return rv -} - -// ProtoUuidFromUuid returns an efficient representation of a UUID meant for embedding in proto messages -// from a uuid.UUID. -func ProtoUuidFromUuid(id uuid.UUID) *Uuid { - return &Uuid{ - High64: binary.BigEndian.Uint64(id[:8]), - Low64: binary.BigEndian.Uint64(id[8:]), - } -} - -// UlidFromProtoUuid creates and returns a ulid.ULID from an armadaevents.Uuid -// (i.e., the efficient representation used in proto messages). -func UlidFromProtoUuid(protoUuid *Uuid) ulid.ULID { - var rv ulid.ULID - binary.BigEndian.PutUint64(rv[:8], protoUuid.High64) - binary.BigEndian.PutUint64(rv[8:], protoUuid.Low64) - return rv -} - -// ProtoUuidFromUlid returns an efficient representation of a UUID meant for embedding in proto messages -// from a uuid.UUID. -func ProtoUuidFromUlid(id ulid.ULID) *Uuid { - return &Uuid{ - High64: binary.BigEndian.Uint64(id[:8]), - Low64: binary.BigEndian.Uint64(id[8:]), - } -} - -// UlidStringFromProtoUuid returns a string representation of a proto UUID. -// Because Kubernetes requires ids to be valid DNS subdomain names, the string is returned in lower-case; see -// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names -func UlidStringFromProtoUuid(id *Uuid) (string, error) { - if id == nil { - return "", errors.WithStack(&armadaerrors.ErrInvalidArgument{ - Name: "Objects", - Value: nil, - Message: "cannot create string from nil uuid", - }) - } - return strings.ToLower(UlidFromProtoUuid(id).String()), nil -} - -func UuidStringFromProtoUuid(id *Uuid) (string, error) { - if id == nil { - return "", errors.WithStack(&armadaerrors.ErrInvalidArgument{ - Name: "Objects", - Value: nil, - Message: "cannot create string from nil uuid", - }) - } - return strings.ToLower(UuidFromProtoUuid(id).String()), nil -} - -// MustProtoUuidFromUlidString parses a ULID string into a proto UUID and returns it. -func MustProtoUuidFromUlidString(ulidString string) *Uuid { - id, err := ulid.Parse(ulidString) - if err != nil { - err = errors.WithStack(err) - panic(err) - } - return ProtoUuidFromUlid(id) -} - -// ProtoUuidFromUlidString parses a ULID string into a proto UUID and returns it. -func ProtoUuidFromUlidString(ulidString string) (*Uuid, error) { - id, err := ulid.Parse(ulidString) - if err != nil { - err = errors.WithStack(err) - return nil, err - } - return ProtoUuidFromUlid(id), nil -} - -// ProtoUuidFromUuidString parses a UUID string into a proto UUID and returns it. -func ProtoUuidFromUuidString(uuidString string) (*Uuid, error) { - id, err := uuid.Parse(uuidString) - if err != nil { - err = errors.WithStack(err) - return nil, err - } - return ProtoUuidFromUuid(id), nil -} - -// MustProtoUuidFromUuidString parses a UUID string into a proto UUID and returns it. -func MustProtoUuidFromUuidString(uuidString string) *Uuid { - id, err := uuid.Parse(uuidString) - if err != nil { - err = errors.WithStack(err) - panic(err) - } - return ProtoUuidFromUuid(id) -} - -func MustUlidStringFromProtoUuid(id *Uuid) string { - return strings.ToLower(UlidFromProtoUuid(id).String()) -} - -func MustUuidStringFromProtoUuid(id *Uuid) string { - return strings.ToLower(UuidFromProtoUuid(id).String()) -} diff --git a/pkg/armadaevents/uuid_test.go b/pkg/armadaevents/uuid_test.go deleted file mode 100644 index aded03ae5c9..00000000000 --- a/pkg/armadaevents/uuid_test.go +++ /dev/null @@ -1,41 +0,0 @@ -package armadaevents - -import ( - "math/rand" - "testing" - "time" - - "github.com/google/uuid" - "github.com/oklog/ulid" - "github.com/stretchr/testify/assert" -) - -func TestUuidConversion(t *testing.T) { - expected := uuid.New() - protoUuid := ProtoUuidFromUuid(expected) - actual := UuidFromProtoUuid(protoUuid) - assert.Equal(t, expected, actual) -} - -func TestUlidConversion(t *testing.T) { - entropy := ulid.Monotonic(rand.New(rand.NewSource(time.Unix(1000000, 0).UnixNano())), 0) - expected := ulid.MustNew(ulid.Now(), entropy) - protoUuid := ProtoUuidFromUlid(expected) - actual := UuidFromProtoUuid(protoUuid) - assert.Equal(t, expected[:], actual[:]) // Compare the byte representation only -} - -func TestStringConversion(t *testing.T) { - entropy := ulid.Monotonic(rand.New(rand.NewSource(time.Unix(1000000, 0).UnixNano())), 0) - id := ulid.MustNew(ulid.Now(), entropy) - expected := ProtoUuidFromUlid(id) - s, err := UlidStringFromProtoUuid(expected) - if ok := assert.NoError(t, err); !ok { - t.FailNow() - } - actual, err := ProtoUuidFromUlidString(s) - if ok := assert.NoError(t, err); !ok { - t.FailNow() - } - assert.Equal(t, expected, actual) -} diff --git a/pkg/executorapi/executorapi.pb.go b/pkg/executorapi/executorapi.pb.go index fdf87632e8e..660ef3e31ee 100644 --- a/pkg/executorapi/executorapi.pb.go +++ b/pkg/executorapi/executorapi.pb.go @@ -294,8 +294,6 @@ type LeaseRequest struct { // - The job runs running on those nodes, // - Any taints and labels on the node. Nodes []*NodeInfo `protobuf:"bytes,5,rep,name=nodes,proto3" json:"nodes,omitempty"` - // Run Ids of jobs owned by the executor but not currently assigned to a node. - UnassignedJobRunIds []*armadaevents.Uuid `protobuf:"bytes,6,rep,name=unassigned_job_run_ids,json=unassignedJobRunIds,proto3" json:"unassignedJobRunIds,omitempty"` // Max number of jobs this request should return MaxJobsToLease uint32 `protobuf:"varint,7,opt,name=max_jobs_to_lease,json=maxJobsToLease,proto3" json:"maxJobsToLease,omitempty"` // Run Ids of jobs owned by the executor but not currently assigned to a node. @@ -370,13 +368,6 @@ func (m *LeaseRequest) GetNodes() []*NodeInfo { return nil } -func (m *LeaseRequest) GetUnassignedJobRunIds() []*armadaevents.Uuid { - if m != nil { - return m.UnassignedJobRunIds - } - return nil -} - func (m *LeaseRequest) GetMaxJobsToLease() uint32 { if m != nil { return m.MaxJobsToLease @@ -393,7 +384,6 @@ func (m *LeaseRequest) GetUnassignedJobRunIdsStr() []string { // Indicates that a job run is now leased. type JobRunLease struct { - JobRunId *armadaevents.Uuid `protobuf:"bytes,1,opt,name=job_run_id,json=jobRunId,proto3" json:"jobRunId,omitempty"` Queue string `protobuf:"bytes,2,opt,name=queue,proto3" json:"queue,omitempty"` Jobset string `protobuf:"bytes,3,opt,name=jobset,proto3" json:"jobset,omitempty"` User string `protobuf:"bytes,4,opt,name=user,proto3" json:"user,omitempty"` @@ -435,13 +425,6 @@ func (m *JobRunLease) XXX_DiscardUnknown() { var xxx_messageInfo_JobRunLease proto.InternalMessageInfo -func (m *JobRunLease) GetJobRunId() *armadaevents.Uuid { - if m != nil { - return m.JobRunId - } - return nil -} - func (m *JobRunLease) GetQueue() string { if m != nil { return m.Queue @@ -486,8 +469,7 @@ func (m *JobRunLease) GetJobRunIdStr() string { // Indicates that the job runs with the given ids should be cancelled. type CancelRuns struct { - JobRunIdsToCancel []*armadaevents.Uuid `protobuf:"bytes,1,rep,name=job_run_ids_to_cancel,json=jobRunIdsToCancel,proto3" json:"jobRunIdsToCancel,omitempty"` - JobRunIdsToCancelStr []string `protobuf:"bytes,2,rep,name=job_run_ids_to_cancel_str,json=jobRunIdsToCancelStr,proto3" json:"jobRunIdsToCancelStr,omitempty"` + JobRunIdsToCancelStr []string `protobuf:"bytes,2,rep,name=job_run_ids_to_cancel_str,json=jobRunIdsToCancelStr,proto3" json:"jobRunIdsToCancelStr,omitempty"` } func (m *CancelRuns) Reset() { *m = CancelRuns{} } @@ -523,13 +505,6 @@ func (m *CancelRuns) XXX_DiscardUnknown() { var xxx_messageInfo_CancelRuns proto.InternalMessageInfo -func (m *CancelRuns) GetJobRunIdsToCancel() []*armadaevents.Uuid { - if m != nil { - return m.JobRunIdsToCancel - } - return nil -} - func (m *CancelRuns) GetJobRunIdsToCancelStr() []string { if m != nil { return m.JobRunIdsToCancelStr @@ -539,8 +514,7 @@ func (m *CancelRuns) GetJobRunIdsToCancelStr() []string { // Indicates that the job runs with the given ids should be preempted. type PreemptRuns struct { - JobRunIdsToPreempt []*armadaevents.Uuid `protobuf:"bytes,1,rep,name=job_run_ids_to_preempt,json=jobRunIdsToPreempt,proto3" json:"jobRunIdsToPreempt,omitempty"` - JobRunIdsToPreemptStr []string `protobuf:"bytes,2,rep,name=job_run_ids_to_preempt_str,json=jobRunIdsToPreemptStr,proto3" json:"jobRunIdsToPreemptStr,omitempty"` + JobRunIdsToPreemptStr []string `protobuf:"bytes,2,rep,name=job_run_ids_to_preempt_str,json=jobRunIdsToPreemptStr,proto3" json:"jobRunIdsToPreemptStr,omitempty"` } func (m *PreemptRuns) Reset() { *m = PreemptRuns{} } @@ -576,13 +550,6 @@ func (m *PreemptRuns) XXX_DiscardUnknown() { var xxx_messageInfo_PreemptRuns proto.InternalMessageInfo -func (m *PreemptRuns) GetJobRunIdsToPreempt() []*armadaevents.Uuid { - if m != nil { - return m.JobRunIdsToPreempt - } - return nil -} - func (m *PreemptRuns) GetJobRunIdsToPreemptStr() []string { if m != nil { return m.JobRunIdsToPreemptStr @@ -764,108 +731,103 @@ func init() { func init() { proto.RegisterFile("pkg/executorapi/executorapi.proto", fileDescriptor_57e0d9d0e484e459) } var fileDescriptor_57e0d9d0e484e459 = []byte{ - // 1607 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4b, 0x6f, 0xdb, 0xc6, - 0x16, 0x36, 0x2d, 0x3f, 0x8f, 0x6c, 0x27, 0x19, 0xbf, 0x68, 0x39, 0x11, 0x1d, 0xe5, 0xde, 0x0b, - 0x07, 0x37, 0xa1, 0x6e, 0x9c, 0x8b, 0x22, 0x2d, 0xda, 0xa0, 0x56, 0x60, 0x24, 0x36, 0x92, 0xb4, - 0xb1, 0x9d, 0xa2, 0x0f, 0xa0, 0xec, 0x50, 0x9a, 0xc8, 0xb4, 0x25, 0x0e, 0x43, 0x0e, 0xdd, 0x28, - 0xab, 0x2e, 0xb2, 0x28, 0xfa, 0x00, 0xba, 0xe8, 0xa6, 0x8b, 0xa0, 0xbb, 0xfe, 0x96, 0x2e, 0x03, - 0x14, 0x45, 0xbb, 0x22, 0x8a, 0x64, 0xc7, 0x5f, 0x51, 0xcc, 0x0c, 0x69, 0x0d, 0x25, 0xca, 0x0e, - 0x8a, 0x02, 0xf5, 0xca, 0x9e, 0xf3, 0x9d, 0xf7, 0x99, 0x73, 0xe6, 0x88, 0x70, 0xd1, 0x3b, 0x68, - 0x56, 0xc9, 0x13, 0x52, 0x0f, 0x19, 0xf5, 0xb1, 0xe7, 0xa8, 0xff, 0x9b, 0x9e, 0x4f, 0x19, 0x45, - 0x45, 0x85, 0x54, 0xba, 0xc0, 0xf9, 0xb1, 0xdf, 0xc6, 0x0d, 0x4c, 0x0e, 0x89, 0xcb, 0x82, 0xaa, - 0xfc, 0x23, 0x79, 0x4b, 0x73, 0x02, 0xf6, 0x9c, 0x6a, 0x10, 0xda, 0x6d, 0x87, 0x25, 0xd4, 0xe5, - 0x26, 0xa5, 0xcd, 0x16, 0xa9, 0x8a, 0x93, 0x1d, 0x3e, 0xaa, 0x92, 0xb6, 0xc7, 0x3a, 0x09, 0x58, - 0x39, 0xb8, 0x11, 0x98, 0x0e, 0x15, 0x52, 0x75, 0xea, 0x93, 0xea, 0xe1, 0xb5, 0x6a, 0x93, 0xb8, - 0xc4, 0xc7, 0x8c, 0x34, 0x12, 0x9e, 0xff, 0x77, 0x79, 0xda, 0xb8, 0xbe, 0xe7, 0xb8, 0xc4, 0xef, - 0x54, 0x53, 0x53, 0x3e, 0x09, 0x68, 0xe8, 0xd7, 0x49, 0xaf, 0x54, 0xe5, 0xd9, 0x2c, 0x4c, 0xdc, - 0xa7, 0x0d, 0xb2, 0xe9, 0x3e, 0xa2, 0xe8, 0x3f, 0x30, 0xe2, 0xe2, 0x36, 0xd1, 0xb5, 0x15, 0x6d, - 0x75, 0xb2, 0x86, 0xe2, 0xc8, 0x98, 0xe1, 0xe7, 0x2b, 0xb4, 0xed, 0x30, 0xe1, 0xce, 0xb6, 0xc0, - 0xd1, 0x6d, 0x18, 0x63, 0xd8, 0x71, 0x59, 0xa0, 0x0f, 0xaf, 0x14, 0x56, 0x8b, 0x6b, 0x4b, 0xa6, - 0xb4, 0x6d, 0xf2, 0x84, 0x70, 0xff, 0xcc, 0xc3, 0x6b, 0xe6, 0x2e, 0xe7, 0xa8, 0xcd, 0xc5, 0x91, - 0x71, 0x56, 0x32, 0x2b, 0x6a, 0x12, 0x71, 0xf4, 0x1e, 0x8c, 0xb5, 0xb0, 0x4d, 0x5a, 0x81, 0x5e, - 0x10, 0x8a, 0x2e, 0x9a, 0x6a, 0x6a, 0x53, 0xbf, 0xcc, 0xbb, 0x82, 0x67, 0xc3, 0x65, 0x7e, 0x47, - 0x2a, 0x94, 0x42, 0xaa, 0x42, 0x49, 0x41, 0x5f, 0x6a, 0x30, 0x8f, 0x5b, 0x2d, 0x5a, 0xc7, 0x0c, - 0xdb, 0x2d, 0x62, 0xa5, 0x71, 0x07, 0xfa, 0x88, 0x30, 0x50, 0xcd, 0x37, 0xb0, 0xde, 0x15, 0xd9, - 0x4e, 0x25, 0xa4, 0xb9, 0x4a, 0x1c, 0x19, 0x65, 0x9c, 0x03, 0x2b, 0xc6, 0xe7, 0xf2, 0x70, 0xf4, - 0x85, 0x06, 0xb3, 0xf8, 0x10, 0x3b, 0xad, 0x1e, 0x47, 0x46, 0x85, 0x23, 0x57, 0x07, 0x38, 0x92, - 0x0a, 0xf4, 0xb8, 0xb1, 0x12, 0x47, 0xc6, 0x79, 0xdc, 0x07, 0x2a, 0x4e, 0xa0, 0x7e, 0x14, 0x79, - 0x70, 0x86, 0x51, 0x86, 0x5b, 0x8a, 0xf5, 0x31, 0x61, 0xfd, 0x72, 0xbe, 0xf5, 0x5d, 0xce, 0xdc, - 0x63, 0xf9, 0x7c, 0x1c, 0x19, 0x3a, 0xcb, 0x00, 0x8a, 0xd5, 0x99, 0x2c, 0x22, 0x83, 0x96, 0xd9, - 0x20, 0x0d, 0xc5, 0xec, 0xf8, 0xb1, 0x41, 0xa7, 0x02, 0xb9, 0x41, 0xf7, 0x81, 0x99, 0xa0, 0xfb, - 0x50, 0xe4, 0xc2, 0x59, 0x3f, 0x74, 0x2d, 0xa7, 0x11, 0x58, 0x76, 0xc7, 0x0a, 0x18, 0x66, 0x44, - 0x9f, 0x10, 0xe6, 0x57, 0xf3, 0xcd, 0x6f, 0x87, 0xee, 0x66, 0x23, 0xa8, 0x75, 0x76, 0x38, 0xab, - 0xb4, 0xbc, 0x1c, 0x47, 0xc6, 0xa2, 0xaf, 0xd2, 0x15, 0xa3, 0xd3, 0x19, 0x00, 0xfd, 0xa4, 0x41, - 0xd9, 0xa5, 0xae, 0x25, 0x1b, 0xde, 0xca, 0x8b, 0x7e, 0x52, 0x98, 0x7f, 0x23, 0xdf, 0xfc, 0x7d, - 0xea, 0xae, 0x0b, 0xd1, 0x41, 0x69, 0xb8, 0x1c, 0x47, 0xc6, 0xbf, 0xdd, 0xc1, 0x5c, 0x8a, 0x6b, - 0xcb, 0xc7, 0xb0, 0xa1, 0x75, 0x98, 0x0e, 0xdd, 0xa0, 0xbe, 0x47, 0x1a, 0xa1, 0xb8, 0x27, 0x3a, - 0xac, 0x68, 0xab, 0x13, 0x32, 0xd6, 0x0c, 0xa0, 0xc6, 0x9a, 0x01, 0xd0, 0x57, 0x1a, 0x2c, 0xa6, - 0x61, 0x59, 0x61, 0x80, 0x9b, 0x84, 0xe7, 0xf8, 0x71, 0x48, 0x42, 0xa2, 0x17, 0x8f, 0x6b, 0xb0, - 0xd4, 0x8b, 0x87, 0x5c, 0xa6, 0xd6, 0x79, 0xc0, 0x25, 0x94, 0x06, 0xf3, 0x73, 0x60, 0xb5, 0xc1, - 0xf2, 0x70, 0x74, 0x1d, 0x26, 0x5d, 0xda, 0x20, 0x16, 0xeb, 0x78, 0x44, 0x9f, 0x12, 0x23, 0x6b, - 0x21, 0x8e, 0x0c, 0xc4, 0x89, 0xbb, 0x1d, 0x4f, 0x55, 0x30, 0x91, 0xd2, 0xf8, 0x88, 0xf3, 0x28, - 0x6d, 0xe9, 0xd3, 0xdd, 0x11, 0xc7, 0xcf, 0xea, 0x88, 0xe3, 0xe7, 0x12, 0x86, 0xa2, 0x32, 0x75, - 0xd0, 0x25, 0x28, 0x1c, 0x90, 0x4e, 0x32, 0x18, 0xcf, 0xc5, 0x91, 0x31, 0x7d, 0x40, 0x3a, 0x8a, - 0x10, 0x47, 0xd1, 0x65, 0x18, 0x3d, 0xc4, 0xad, 0x90, 0xe8, 0xc3, 0x82, 0x6d, 0x36, 0x8e, 0x8c, - 0x33, 0x82, 0xa0, 0x30, 0x4a, 0x8e, 0xb7, 0x86, 0x6f, 0x68, 0xa5, 0x1f, 0x35, 0x58, 0x1a, 0x38, - 0x78, 0x5e, 0xcf, 0xe2, 0x47, 0xaa, 0xc5, 0xe2, 0x9a, 0xa9, 0xcc, 0xe1, 0xa3, 0x37, 0xc0, 0xf4, - 0x0e, 0x9a, 0x62, 0x30, 0xa7, 0x49, 0x34, 0x1f, 0x84, 0xd8, 0x65, 0x0e, 0xeb, 0x9c, 0xe8, 0xe1, - 0x73, 0x0d, 0x16, 0x07, 0x4c, 0xa4, 0x53, 0xe1, 0xdf, 0x0f, 0x1a, 0xcc, 0xe6, 0xcc, 0xac, 0x53, - 0xe1, 0xdb, 0xd7, 0x3c, 0x77, 0xf9, 0x1d, 0xad, 0xfa, 0x37, 0x3a, 0xd0, 0xbf, 0xdb, 0x59, 0xff, - 0xce, 0x67, 0x1a, 0xeb, 0x16, 0x6d, 0x7b, 0x21, 0x3b, 0xaa, 0xc9, 0x89, 0xde, 0x7c, 0x0e, 0xa8, - 0x7f, 0xcc, 0xbd, 0x5e, 0x9e, 0x6e, 0xa8, 0x7e, 0xcc, 0xac, 0x4d, 0x8b, 0x7c, 0x6c, 0x51, 0x5b, - 0xe8, 0x39, 0xd1, 0xf0, 0xf7, 0x1a, 0xac, 0x9c, 0x34, 0xe1, 0xfe, 0x81, 0x7c, 0x7c, 0xab, 0xc1, - 0xd2, 0xc0, 0x99, 0xf4, 0x7a, 0x79, 0xf9, 0x3b, 0xfd, 0xa9, 0x7c, 0x33, 0x0c, 0x67, 0x7a, 0x64, - 0x90, 0x0d, 0x93, 0xdd, 0x27, 0x44, 0x13, 0xd3, 0xf5, 0xbf, 0xc7, 0x19, 0x31, 0x7b, 0xde, 0x8d, - 0xc5, 0x38, 0x32, 0x66, 0xfd, 0x9c, 0x57, 0xa2, 0xab, 0x96, 0x97, 0x67, 0xe6, 0xf4, 0x35, 0x4f, - 0xe5, 0x03, 0x98, 0xdc, 0xe0, 0x2b, 0xf3, 0x5d, 0x27, 0x60, 0x68, 0x13, 0xc6, 0xe4, 0xfe, 0x9c, - 0x24, 0x61, 0xd9, 0x54, 0x77, 0x6b, 0x53, 0x30, 0xee, 0x90, 0xc7, 0x21, 0x71, 0xeb, 0x44, 0xae, - 0x87, 0x12, 0x51, 0xd7, 0x43, 0x49, 0xa9, 0xfc, 0x3a, 0x0e, 0x53, 0x77, 0x09, 0x0e, 0xc8, 0x36, - 0xe7, 0x0f, 0x18, 0x7a, 0x13, 0x8e, 0x36, 0x77, 0xcb, 0x69, 0x24, 0x41, 0xeb, 0x71, 0x64, 0xcc, - 0xa5, 0xe4, 0xcd, 0x86, 0xa2, 0x07, 0xba, 0xd4, 0xa3, 0x97, 0x64, 0xf8, 0xf8, 0x97, 0x04, 0x59, - 0x6a, 0x19, 0x0b, 0x39, 0x8b, 0x88, 0xea, 0xd0, 0x5f, 0xa8, 0x21, 0x0a, 0xe1, 0x6c, 0xdb, 0x71, - 0x9d, 0x76, 0xd8, 0xb6, 0xf6, 0xa9, 0x6d, 0x05, 0xce, 0x53, 0x92, 0x6c, 0xbb, 0x57, 0x07, 0xdb, - 0xb9, 0x27, 0x25, 0x78, 0x1f, 0x3b, 0x4f, 0x89, 0xb2, 0xea, 0xb5, 0x33, 0x80, 0xba, 0xea, 0x65, - 0x11, 0xf4, 0x2e, 0x8c, 0xf2, 0x57, 0x35, 0x5d, 0x68, 0xe7, 0x73, 0x1f, 0x7e, 0x59, 0x69, 0xc1, - 0xa7, 0x56, 0x5a, 0x10, 0xd0, 0x3e, 0x2c, 0x84, 0x2e, 0x0e, 0x02, 0xa7, 0xe9, 0x92, 0x86, 0xf0, - 0x3d, 0x59, 0xdc, 0x92, 0x2d, 0x15, 0x65, 0x0b, 0xfd, 0x30, 0x74, 0x1a, 0xb5, 0x8b, 0x71, 0x64, - 0x5c, 0xe8, 0x4a, 0x6d, 0x51, 0x5b, 0xce, 0x35, 0x45, 0xfb, 0x6c, 0x0e, 0x8c, 0x6e, 0xc3, 0xb9, - 0x36, 0x7e, 0xc2, 0x8d, 0x04, 0x16, 0xa3, 0x56, 0x8b, 0xe7, 0x42, 0x1f, 0x5f, 0xd1, 0x56, 0xa7, - 0x93, 0xb0, 0xf1, 0x93, 0x2d, 0x6a, 0x07, 0xbb, 0x54, 0x64, 0x29, 0x13, 0x76, 0x06, 0x41, 0x9f, - 0x41, 0x29, 0xdf, 0x69, 0x2b, 0x60, 0xbe, 0x58, 0x34, 0x27, 0x6b, 0xff, 0x8a, 0x23, 0x63, 0x25, - 0xc7, 0x8b, 0x1d, 0xe6, 0x2b, 0x9a, 0x17, 0xf2, 0x39, 0x4e, 0x69, 0x4f, 0x8a, 0xc7, 0x36, 0xe7, - 0xd6, 0x9c, 0x8a, 0x79, 0xf1, 0xac, 0x00, 0x45, 0x99, 0x43, 0x59, 0xa4, 0x3b, 0x00, 0xdd, 0xca, - 0x08, 0xd7, 0xf2, 0x6f, 0x93, 0xd8, 0x17, 0xf7, 0x93, 0xe4, 0xab, 0xfb, 0x62, 0x4a, 0xe3, 0x3b, - 0x9d, 0x5c, 0x6f, 0x95, 0x9d, 0xee, 0x71, 0xcf, 0x7a, 0x2a, 0x39, 0xd0, 0x15, 0x18, 0xe3, 0xd7, - 0x8b, 0x30, 0xbd, 0x20, 0x78, 0xc5, 0x28, 0x92, 0x14, 0x75, 0x14, 0x49, 0x0a, 0x1f, 0x1f, 0x61, - 0x40, 0x7c, 0x7d, 0xa4, 0x3b, 0x3e, 0xf8, 0x59, 0x1d, 0x1f, 0xfc, 0xcc, 0xb5, 0x36, 0x7d, 0x1a, - 0x7a, 0xb2, 0xcf, 0x12, 0xad, 0x92, 0xa2, 0x6a, 0x95, 0x14, 0xf4, 0x36, 0x14, 0xf6, 0xa9, 0xad, - 0x8f, 0x89, 0x88, 0x17, 0xb3, 0x11, 0xef, 0x88, 0xcf, 0x0d, 0x5b, 0xd4, 0x96, 0x55, 0xda, 0xa7, - 0xb6, 0x5a, 0xa5, 0x7d, 0x6a, 0xa3, 0x9b, 0x30, 0xd3, 0x4d, 0x9b, 0xb8, 0xcf, 0xe3, 0xc2, 0xbb, - 0xa5, 0x38, 0x32, 0xe6, 0xd3, 0x94, 0x64, 0x2f, 0x71, 0x51, 0x21, 0x57, 0x5e, 0x68, 0x00, 0xb7, - 0xb0, 0x5b, 0x27, 0xad, 0xed, 0xd0, 0x0d, 0x10, 0x81, 0x79, 0xb5, 0x3f, 0x18, 0xb5, 0xea, 0x02, - 0x4c, 0xe6, 0x78, 0x5e, 0x41, 0x8c, 0x38, 0x32, 0x96, 0x53, 0x95, 0xc1, 0x2e, 0x95, 0xda, 0x14, - 0x7b, 0xe7, 0xfa, 0x40, 0xf4, 0x09, 0x2c, 0xe5, 0x9a, 0x11, 0x01, 0x0c, 0x8b, 0xa4, 0x89, 0x1f, - 0x19, 0x7d, 0x92, 0xd9, 0x48, 0xe6, 0xf2, 0xf0, 0xca, 0x6f, 0x1a, 0x14, 0xdf, 0xf7, 0x09, 0x67, - 0x11, 0x31, 0xed, 0xc1, 0x42, 0x8f, 0x31, 0x4f, 0xa2, 0xc7, 0x04, 0x25, 0x7e, 0xc7, 0x2a, 0xda, - 0x13, 0x7d, 0xea, 0xef, 0xd8, 0x7e, 0x14, 0x7d, 0x0a, 0xa5, 0x7c, 0x4b, 0x4a, 0x5c, 0x97, 0xe2, - 0xc8, 0x30, 0xfa, 0x65, 0xb3, 0x81, 0xcd, 0xe7, 0x32, 0x54, 0x8a, 0x30, 0xb9, 0xe1, 0x36, 0xee, - 0x61, 0xff, 0x80, 0xf8, 0x95, 0x5f, 0x86, 0x01, 0x89, 0xd6, 0xd9, 0x61, 0x3e, 0xc1, 0xed, 0x7b, - 0x24, 0xe0, 0x4b, 0x11, 0xda, 0x80, 0x51, 0x39, 0x29, 0x65, 0x0b, 0xe9, 0x99, 0x19, 0xaf, 0x34, - 0x9c, 0xec, 0x8b, 0x56, 0x76, 0x74, 0xde, 0x19, 0xda, 0x96, 0xd2, 0x68, 0x17, 0x8a, 0x49, 0x49, - 0xfc, 0xd0, 0x0d, 0x92, 0x19, 0xb0, 0x98, 0xdd, 0x65, 0x8e, 0xae, 0x8d, 0x7c, 0x7e, 0xeb, 0x47, - 0xe7, 0x8c, 0x42, 0xe8, 0xd2, 0xd1, 0x3b, 0x50, 0x20, 0x6e, 0x43, 0x34, 0x5b, 0x71, 0x6d, 0x21, - 0xa3, 0xed, 0x28, 0x30, 0x79, 0xd5, 0x89, 0xdb, 0xc8, 0x68, 0xe1, 0x72, 0xe8, 0x43, 0x98, 0x4a, - 0x13, 0x2a, 0xbc, 0x1a, 0xc9, 0x09, 0x51, 0xa9, 0xbc, 0x6c, 0x02, 0xaf, 0x4b, 0xc8, 0x68, 0x2c, - 0x2a, 0x40, 0x6d, 0x1c, 0x46, 0x45, 0xf9, 0xd7, 0x9e, 0x6b, 0x50, 0xdc, 0x48, 0xd4, 0xad, 0x7b, - 0x0e, 0xba, 0x9f, 0x6c, 0x1f, 0x32, 0x73, 0x01, 0x5a, 0x1a, 0xf8, 0x3e, 0x97, 0x8c, 0x7e, 0x28, - 0x53, 0x9a, 0x55, 0xed, 0x7f, 0x1a, 0xba, 0x09, 0x53, 0xdb, 0xc4, 0xa3, 0x3e, 0x13, 0x3b, 0x50, - 0x80, 0x7a, 0x92, 0x90, 0x6e, 0x50, 0xa5, 0x05, 0x53, 0x7e, 0x5c, 0x34, 0xd3, 0x8f, 0x8b, 0xe6, - 0x06, 0xf7, 0xbb, 0xb6, 0xf9, 0xf3, 0xcb, 0xb2, 0xf6, 0xe2, 0x65, 0x59, 0xfb, 0xe3, 0x65, 0x59, - 0xfb, 0xee, 0x55, 0x79, 0xe8, 0xc5, 0xab, 0xf2, 0xd0, 0xef, 0xaf, 0xca, 0x43, 0x1f, 0x57, 0x9b, - 0x0e, 0xdb, 0x0b, 0x6d, 0xb3, 0x4e, 0xdb, 0xc9, 0x97, 0x4c, 0xcf, 0xa7, 0xfb, 0xa4, 0xce, 0x92, - 0x53, 0xb5, 0xe7, 0x93, 0xa8, 0x3d, 0x26, 0x54, 0x5f, 0xff, 0x33, 0x00, 0x00, 0xff, 0xff, 0x25, - 0xd8, 0xb8, 0x42, 0x2c, 0x15, 0x00, 0x00, + // 1523 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4d, 0x6f, 0xdc, 0x44, + 0x1f, 0x8f, 0x37, 0xc9, 0x26, 0x99, 0x4d, 0xd2, 0x76, 0xf2, 0xe6, 0x6c, 0xfa, 0xac, 0xd3, 0xed, + 0xf3, 0x3c, 0x4a, 0xf4, 0xb4, 0xde, 0xa7, 0x29, 0x42, 0x05, 0x41, 0x45, 0x52, 0x45, 0x25, 0x51, + 0x5b, 0xe8, 0x26, 0x20, 0x5e, 0x24, 0xcc, 0x78, 0x3d, 0xdd, 0x3a, 0x59, 0x7b, 0x5c, 0xcf, 0x38, + 0x74, 0x7b, 0xe2, 0xc0, 0x01, 0xf1, 0x22, 0x71, 0xe0, 0xc2, 0xa1, 0xe2, 0xc6, 0x87, 0xe0, 0x13, + 0x70, 0xac, 0xc4, 0x85, 0x93, 0x85, 0xda, 0x13, 0xfe, 0x14, 0x68, 0x66, 0xec, 0xdd, 0xf1, 0xc6, + 0x9b, 0x54, 0x08, 0x89, 0x9c, 0x92, 0xf9, 0xbf, 0xfe, 0xe6, 0x3f, 0xff, 0xb7, 0x35, 0xb8, 0x14, + 0x1c, 0xb6, 0x1b, 0xf8, 0x31, 0x6e, 0x45, 0x8c, 0x84, 0x28, 0x70, 0xd5, 0xff, 0xcd, 0x20, 0x24, + 0x8c, 0xc0, 0x8a, 0x42, 0xaa, 0xfe, 0x8b, 0xcb, 0xa3, 0xd0, 0x43, 0x0e, 0xc2, 0x47, 0xd8, 0x67, + 0xb4, 0x21, 0xff, 0x48, 0xd9, 0xea, 0xbc, 0x60, 0x07, 0x6e, 0x83, 0x46, 0xb6, 0xe7, 0xb2, 0x94, + 0xba, 0xd2, 0x26, 0xa4, 0xdd, 0xc1, 0x0d, 0x71, 0xb2, 0xa3, 0x07, 0x0d, 0xec, 0x05, 0xac, 0x9b, + 0x32, 0xeb, 0x87, 0x37, 0xa8, 0xe9, 0x12, 0xa1, 0xd5, 0x22, 0x21, 0x6e, 0x1c, 0x5d, 0x6b, 0xb4, + 0xb1, 0x8f, 0x43, 0xc4, 0xb0, 0x93, 0xca, 0xbc, 0xd2, 0x97, 0xf1, 0x50, 0xeb, 0xa1, 0xeb, 0xe3, + 0xb0, 0xdb, 0xc8, 0x5c, 0x85, 0x98, 0x92, 0x28, 0x6c, 0xe1, 0x41, 0xad, 0xfa, 0x17, 0x73, 0x60, + 0xf2, 0x1e, 0x71, 0xf0, 0x8e, 0xff, 0x80, 0xc0, 0xff, 0x82, 0x31, 0x1f, 0x79, 0x58, 0xd7, 0x56, + 0xb5, 0xb5, 0xa9, 0x2d, 0x98, 0xc4, 0xc6, 0x2c, 0x3f, 0x5f, 0x21, 0x9e, 0xcb, 0x04, 0x9c, 0xa6, + 0xe0, 0xc3, 0xdb, 0xa0, 0xcc, 0x90, 0xeb, 0x33, 0xaa, 0x97, 0x56, 0x47, 0xd7, 0x2a, 0x1b, 0xcb, + 0xa6, 0xf4, 0x6d, 0xf2, 0x80, 0x70, 0x7c, 0xe6, 0xd1, 0x35, 0x73, 0x9f, 0x4b, 0x6c, 0xcd, 0x27, + 0xb1, 0x71, 0x5e, 0x0a, 0x2b, 0x66, 0x52, 0x75, 0xf8, 0x0e, 0x28, 0x77, 0x90, 0x8d, 0x3b, 0x54, + 0x1f, 0x15, 0x86, 0x2e, 0x99, 0x6a, 0x68, 0x33, 0x5c, 0xe6, 0x1d, 0x21, 0xb3, 0xed, 0xb3, 0xb0, + 0x2b, 0x0d, 0x4a, 0x25, 0xd5, 0xa0, 0xa4, 0xc0, 0x2f, 0x35, 0xb0, 0x80, 0x3a, 0x1d, 0xd2, 0x42, + 0x0c, 0xd9, 0x1d, 0x6c, 0x65, 0xf7, 0xa6, 0xfa, 0x98, 0x70, 0xd0, 0x28, 0x76, 0xb0, 0xd9, 0x57, + 0x69, 0x66, 0x1a, 0xd2, 0x5d, 0x3d, 0x89, 0x8d, 0x1a, 0x2a, 0x60, 0x2b, 0xce, 0xe7, 0x8b, 0xf8, + 0xf0, 0x73, 0x0d, 0xcc, 0xa1, 0x23, 0xe4, 0x76, 0x06, 0x80, 0x8c, 0x0b, 0x20, 0x57, 0x87, 0x00, + 0xc9, 0x14, 0x06, 0x60, 0xac, 0x26, 0xb1, 0x71, 0x11, 0x1d, 0x63, 0x2a, 0x20, 0xe0, 0x71, 0x2e, + 0x0c, 0xc0, 0x39, 0x46, 0x18, 0xea, 0x28, 0xde, 0xcb, 0xc2, 0xfb, 0x7a, 0xb1, 0xf7, 0x7d, 0x2e, + 0x3c, 0xe0, 0xf9, 0x62, 0x12, 0x1b, 0x3a, 0xcb, 0x31, 0x14, 0xaf, 0xb3, 0x79, 0x8e, 0xbc, 0xb4, + 0x8c, 0x06, 0x76, 0x14, 0xb7, 0x13, 0x27, 0x5e, 0x3a, 0x53, 0x28, 0xbc, 0xf4, 0x31, 0x66, 0xee, + 0xd2, 0xc7, 0xb8, 0xd0, 0x07, 0xe7, 0xc3, 0xc8, 0xb7, 0x5c, 0x87, 0x5a, 0x76, 0xd7, 0xa2, 0x0c, + 0x31, 0xac, 0x4f, 0x0a, 0xf7, 0x6b, 0xc5, 0xee, 0x9b, 0x91, 0xbf, 0xe3, 0xd0, 0xad, 0xee, 0x1e, + 0x17, 0x95, 0x9e, 0x57, 0x92, 0xd8, 0x58, 0x0a, 0x55, 0xba, 0xe2, 0x74, 0x26, 0xc7, 0x80, 0x3f, + 0x69, 0xa0, 0xe6, 0x13, 0xdf, 0x92, 0x05, 0x6f, 0x15, 0xdd, 0x7e, 0x4a, 0xb8, 0x7f, 0xb5, 0xd8, + 0xfd, 0x3d, 0xe2, 0x6f, 0x0a, 0xd5, 0x61, 0x61, 0x58, 0x4f, 0x62, 0xe3, 0x3f, 0xfe, 0x70, 0x29, + 0x05, 0xda, 0xca, 0x09, 0x62, 0x70, 0x13, 0xcc, 0x44, 0x3e, 0x6d, 0x3d, 0xc4, 0x4e, 0x24, 0xf2, + 0x44, 0x07, 0xab, 0xda, 0xda, 0xa4, 0xbc, 0x6b, 0x8e, 0xa1, 0xde, 0x35, 0xc7, 0x80, 0x5f, 0x69, + 0x60, 0x29, 0xbb, 0x96, 0x15, 0x51, 0xd4, 0xc6, 0x3c, 0xc6, 0x8f, 0x22, 0x1c, 0x61, 0xbd, 0x72, + 0x52, 0x81, 0x65, 0x28, 0xde, 0xe3, 0x3a, 0x5b, 0xdd, 0xfb, 0x5c, 0x43, 0x29, 0xb0, 0xb0, 0x80, + 0xad, 0x16, 0x58, 0x11, 0x1f, 0x5e, 0x07, 0x53, 0x3e, 0x71, 0xb0, 0xc5, 0xba, 0x01, 0xd6, 0xa7, + 0x45, 0xcb, 0x5a, 0x4c, 0x62, 0x03, 0x72, 0xe2, 0x7e, 0x37, 0x50, 0x0d, 0x4c, 0x66, 0x34, 0xde, + 0xe2, 0x02, 0x42, 0x3a, 0xfa, 0x4c, 0xbf, 0xc5, 0xf1, 0xb3, 0xda, 0xe2, 0xf8, 0xb9, 0x8a, 0x40, + 0x45, 0xe9, 0x3a, 0xf0, 0x32, 0x18, 0x3d, 0xc4, 0xdd, 0xb4, 0x31, 0x5e, 0x48, 0x62, 0x63, 0xe6, + 0x10, 0x77, 0x15, 0x25, 0xce, 0x85, 0xeb, 0x60, 0xfc, 0x08, 0x75, 0x22, 0xac, 0x97, 0x84, 0xd8, + 0x5c, 0x12, 0x1b, 0xe7, 0x04, 0x41, 0x11, 0x94, 0x12, 0xaf, 0x97, 0x6e, 0x68, 0xd5, 0x1f, 0x35, + 0xb0, 0x3c, 0xb4, 0xf1, 0xbc, 0x9c, 0xc7, 0x0f, 0x55, 0x8f, 0x95, 0x0d, 0x53, 0xe9, 0xc3, 0xbd, + 0x19, 0x60, 0x06, 0x87, 0x6d, 0xd1, 0x98, 0xb3, 0x20, 0x9a, 0xf7, 0x23, 0xe4, 0x33, 0x97, 0x75, + 0x4f, 0x45, 0xf8, 0x54, 0x03, 0x4b, 0x43, 0x3a, 0xd2, 0x99, 0xc0, 0xf7, 0x83, 0x06, 0xe6, 0x0a, + 0x7a, 0xd6, 0x99, 0xc0, 0xf6, 0x35, 0x8f, 0x5d, 0x71, 0x45, 0xab, 0xf8, 0xc6, 0x87, 0xe2, 0xbb, + 0x9d, 0xc7, 0x77, 0x31, 0x57, 0x58, 0xb7, 0x88, 0x17, 0x44, 0xac, 0xf7, 0x26, 0xa7, 0xa2, 0xf9, + 0x0c, 0xc0, 0xe3, 0x6d, 0xee, 0xe5, 0xe2, 0x74, 0x43, 0xc5, 0x31, 0xbb, 0x31, 0x23, 0xe2, 0xb1, + 0x4b, 0x6c, 0x61, 0xe7, 0x54, 0xc7, 0xdf, 0x6b, 0x60, 0xf5, 0xb4, 0x0e, 0xf7, 0x0f, 0xc4, 0xe3, + 0x5b, 0x0d, 0x2c, 0x0f, 0xed, 0x49, 0x2f, 0x17, 0x97, 0xbf, 0x13, 0x4f, 0xfd, 0x9b, 0x12, 0x38, + 0x37, 0xa0, 0x03, 0x6d, 0x30, 0xd5, 0x1f, 0x21, 0x9a, 0xe8, 0xae, 0xff, 0x3b, 0xc9, 0x89, 0x39, + 0x30, 0x37, 0x96, 0x92, 0xd8, 0x98, 0x0b, 0x0b, 0xa6, 0x44, 0xdf, 0x2c, 0x7f, 0x9e, 0xd9, 0xb3, + 0x57, 0x3c, 0xf5, 0xf7, 0xc1, 0xd4, 0x36, 0x5f, 0x99, 0xef, 0xb8, 0x94, 0xc1, 0x1d, 0x50, 0x96, + 0xfb, 0x73, 0x1a, 0x84, 0x15, 0x53, 0xdd, 0xad, 0x4d, 0x21, 0xb8, 0x87, 0x1f, 0x45, 0xd8, 0x6f, + 0x61, 0xb9, 0x1e, 0x4a, 0x8e, 0xba, 0x1e, 0x4a, 0x4a, 0xfd, 0x8f, 0x32, 0x98, 0xbe, 0x83, 0x11, + 0xc5, 0x4d, 0x2e, 0x4f, 0x19, 0x7c, 0x0d, 0xf4, 0x36, 0x77, 0xcb, 0x75, 0xd2, 0x4b, 0xeb, 0x49, + 0x6c, 0xcc, 0x67, 0xe4, 0x1d, 0x47, 0xb1, 0x03, 0xfa, 0xd4, 0xde, 0x24, 0x29, 0x9d, 0x3c, 0x49, + 0xa0, 0xa5, 0x3e, 0xe3, 0x68, 0xc1, 0x22, 0xa2, 0x02, 0xfa, 0x0b, 0x6f, 0x08, 0x23, 0x70, 0xde, + 0x73, 0x7d, 0xd7, 0x8b, 0x3c, 0xeb, 0x80, 0xd8, 0x16, 0x75, 0x9f, 0xe0, 0x74, 0xdb, 0xbd, 0x3a, + 0xdc, 0xcf, 0x5d, 0xa9, 0xc1, 0xeb, 0xd8, 0x7d, 0x82, 0x95, 0x55, 0xcf, 0xcb, 0x31, 0xd4, 0x55, + 0x2f, 0xcf, 0x81, 0x6f, 0x81, 0x71, 0x3e, 0x55, 0xb3, 0x85, 0x76, 0xa1, 0x70, 0xf0, 0xcb, 0x97, + 0x16, 0x72, 0xea, 0x4b, 0x0b, 0x02, 0xbc, 0x0d, 0x2e, 0x78, 0xe8, 0x31, 0x07, 0x4d, 0x2d, 0x46, + 0xac, 0x0e, 0xc7, 0xa7, 0x4f, 0xac, 0x6a, 0x6b, 0x33, 0x29, 0x14, 0xf4, 0x78, 0x97, 0xd8, 0x74, + 0x9f, 0x08, 0xe4, 0x39, 0x28, 0x39, 0x0e, 0xfc, 0x14, 0x54, 0x23, 0x1f, 0x51, 0xea, 0xb6, 0x7d, + 0xec, 0x88, 0x20, 0x64, 0x1b, 0x20, 0x65, 0xa1, 0x58, 0xfe, 0xa6, 0xb6, 0xfe, 0x9d, 0xc4, 0xc6, + 0x6a, 0x5f, 0x6a, 0x97, 0xd8, 0xb2, 0x21, 0xee, 0xb1, 0x50, 0xb1, 0xbc, 0x58, 0x2c, 0x71, 0x46, + 0xeb, 0x44, 0x0c, 0xc0, 0x82, 0x97, 0x3c, 0x13, 0x35, 0xfc, 0x73, 0x09, 0x54, 0x64, 0x0c, 0xe5, + 0x23, 0xad, 0x83, 0x71, 0xb9, 0x28, 0x2a, 0xdb, 0xd1, 0xa3, 0x81, 0x45, 0x4f, 0x4a, 0xc0, 0x2b, + 0xa0, 0xcc, 0x93, 0x02, 0x33, 0x7d, 0x54, 0xc8, 0x8a, 0xa2, 0x96, 0x14, 0xb5, 0xa8, 0x25, 0x85, + 0x17, 0x62, 0x44, 0x71, 0xa8, 0x8f, 0xf5, 0x0b, 0x91, 0x9f, 0xd5, 0x42, 0xe4, 0x67, 0x6e, 0xb5, + 0x1d, 0x92, 0x28, 0x90, 0x19, 0x9b, 0x5a, 0x95, 0x14, 0xd5, 0xaa, 0xa4, 0xc0, 0x37, 0xc0, 0xe8, + 0x01, 0xb1, 0xf5, 0xb2, 0x88, 0xcd, 0x52, 0xbe, 0xe5, 0xec, 0x89, 0x1f, 0xee, 0xbb, 0xc4, 0x96, + 0xb1, 0x3d, 0x20, 0xb6, 0x1a, 0xdb, 0x03, 0x62, 0xc3, 0x9b, 0x60, 0xb6, 0x9f, 0x86, 0x22, 0x0b, + 0x27, 0x04, 0xba, 0xe5, 0x24, 0x36, 0x16, 0x0e, 0xd2, 0xcc, 0xca, 0xa7, 0x5e, 0x45, 0x21, 0xd7, + 0x5d, 0x00, 0x6e, 0x21, 0xbf, 0x85, 0x3b, 0xcd, 0xc8, 0xa7, 0xf0, 0x63, 0xb0, 0xac, 0x26, 0x35, + 0x23, 0x56, 0x4b, 0x30, 0x85, 0xe1, 0x92, 0xb8, 0x8c, 0x58, 0xa3, 0x33, 0x0b, 0x74, 0x9f, 0x48, + 0xed, 0xbc, 0x87, 0xf9, 0x22, 0x7e, 0xdd, 0x03, 0x95, 0x77, 0x43, 0xcc, 0x25, 0x84, 0xaf, 0x4f, + 0x40, 0x75, 0xc0, 0x57, 0x20, 0xb9, 0x8a, 0xb3, 0xcb, 0x49, 0x6c, 0x18, 0x8a, 0xb1, 0x54, 0x3f, + 0xef, 0x6d, 0xa1, 0x50, 0xa0, 0x5e, 0x01, 0x53, 0xdb, 0xbe, 0x73, 0x17, 0x85, 0x87, 0x38, 0xac, + 0xff, 0x5a, 0x02, 0x50, 0x64, 0xc7, 0x1e, 0x0b, 0x31, 0xf2, 0xee, 0x62, 0xca, 0x67, 0x31, 0xdc, + 0x06, 0xe3, 0xb2, 0x19, 0x68, 0x22, 0xfa, 0x7a, 0xae, 0xb5, 0x28, 0x39, 0x25, 0x93, 0xa8, 0x93, + 0xef, 0x0e, 0x6f, 0x8f, 0x34, 0xa5, 0x36, 0xdc, 0x07, 0x95, 0x34, 0x4e, 0x61, 0xe4, 0xd3, 0x34, + 0xcd, 0x97, 0xf2, 0x23, 0xb4, 0x17, 0x64, 0xd9, 0xf5, 0x5b, 0xbd, 0x73, 0xce, 0x20, 0xe8, 0xd3, + 0xe1, 0x9b, 0x60, 0x14, 0xfb, 0x8e, 0xc8, 0xcc, 0xca, 0xc6, 0x62, 0xce, 0x5a, 0xef, 0x62, 0x32, + 0x2f, 0xb0, 0xef, 0xe4, 0xac, 0x70, 0x3d, 0xf8, 0x01, 0x98, 0xce, 0x02, 0x2a, 0x50, 0x8d, 0x15, + 0x5c, 0x51, 0x79, 0x0f, 0x99, 0x31, 0x41, 0x9f, 0x90, 0xb3, 0x58, 0x51, 0x18, 0x5b, 0x13, 0x60, + 0x5c, 0xe4, 0xe7, 0xc6, 0x53, 0x0d, 0x54, 0xb6, 0x53, 0x73, 0x9b, 0x81, 0x0b, 0xef, 0xa5, 0x43, + 0x4f, 0x46, 0x8e, 0xc2, 0xe5, 0xa1, 0x63, 0xa1, 0x6a, 0x1c, 0x67, 0xe5, 0x9e, 0x66, 0x4d, 0xfb, + 0xbf, 0x06, 0x6f, 0x82, 0xe9, 0x26, 0x0e, 0x48, 0xc8, 0xc4, 0xe8, 0xa5, 0x70, 0x20, 0x08, 0xd9, + 0xe0, 0xae, 0x2e, 0x9a, 0xf2, 0x9b, 0x96, 0x99, 0x7d, 0xd3, 0x32, 0xb7, 0x39, 0xee, 0xad, 0x9d, + 0x5f, 0x9e, 0xd7, 0xb4, 0x67, 0xcf, 0x6b, 0xda, 0xef, 0xcf, 0x6b, 0xda, 0x77, 0x2f, 0x6a, 0x23, + 0xcf, 0x5e, 0xd4, 0x46, 0x7e, 0x7b, 0x51, 0x1b, 0xf9, 0xa8, 0xd1, 0x76, 0xd9, 0xc3, 0xc8, 0x36, + 0x5b, 0xc4, 0x4b, 0x3f, 0xa0, 0x05, 0x21, 0x39, 0xc0, 0x2d, 0x96, 0x9e, 0x1a, 0x03, 0x5f, 0xe2, + 0xec, 0xb2, 0x30, 0x7d, 0xfd, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x44, 0x6b, 0xa5, 0xe1, 0xa3, + 0x13, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1407,20 +1369,6 @@ func (m *LeaseRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x38 } - if len(m.UnassignedJobRunIds) > 0 { - for iNdEx := len(m.UnassignedJobRunIds) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.UnassignedJobRunIds[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintExecutorapi(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - } - } if len(m.Nodes) > 0 { for iNdEx := len(m.Nodes) - 1; iNdEx >= 0; iNdEx-- { { @@ -1573,18 +1521,6 @@ func (m *JobRunLease) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if m.JobRunId != nil { - { - size, err := m.JobRunId.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintExecutorapi(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } @@ -1617,20 +1553,6 @@ func (m *CancelRuns) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } } - if len(m.JobRunIdsToCancel) > 0 { - for iNdEx := len(m.JobRunIdsToCancel) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.JobRunIdsToCancel[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintExecutorapi(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } return len(dAtA) - i, nil } @@ -1663,20 +1585,6 @@ func (m *PreemptRuns) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } } - if len(m.JobRunIdsToPreempt) > 0 { - for iNdEx := len(m.JobRunIdsToPreempt) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.JobRunIdsToPreempt[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintExecutorapi(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } return len(dAtA) - i, nil } @@ -2037,12 +1945,6 @@ func (m *LeaseRequest) Size() (n int) { n += 1 + l + sovExecutorapi(uint64(l)) } } - if len(m.UnassignedJobRunIds) > 0 { - for _, e := range m.UnassignedJobRunIds { - l = e.Size() - n += 1 + l + sovExecutorapi(uint64(l)) - } - } if m.MaxJobsToLease != 0 { n += 1 + sovExecutorapi(uint64(m.MaxJobsToLease)) } @@ -2061,10 +1963,6 @@ func (m *JobRunLease) Size() (n int) { } var l int _ = l - if m.JobRunId != nil { - l = m.JobRunId.Size() - n += 1 + l + sovExecutorapi(uint64(l)) - } l = len(m.Queue) if l > 0 { n += 1 + l + sovExecutorapi(uint64(l)) @@ -2100,12 +1998,6 @@ func (m *CancelRuns) Size() (n int) { } var l int _ = l - if len(m.JobRunIdsToCancel) > 0 { - for _, e := range m.JobRunIdsToCancel { - l = e.Size() - n += 1 + l + sovExecutorapi(uint64(l)) - } - } if len(m.JobRunIdsToCancelStr) > 0 { for _, s := range m.JobRunIdsToCancelStr { l = len(s) @@ -2121,12 +2013,6 @@ func (m *PreemptRuns) Size() (n int) { } var l int _ = l - if len(m.JobRunIdsToPreempt) > 0 { - for _, e := range m.JobRunIdsToPreempt { - l = e.Size() - n += 1 + l + sovExecutorapi(uint64(l)) - } - } if len(m.JobRunIdsToPreemptStr) > 0 { for _, s := range m.JobRunIdsToPreemptStr { l = len(s) @@ -4046,40 +3932,6 @@ func (m *LeaseRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UnassignedJobRunIds", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowExecutorapi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthExecutorapi - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthExecutorapi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.UnassignedJobRunIds = append(m.UnassignedJobRunIds, &armadaevents.Uuid{}) - if err := m.UnassignedJobRunIds[len(m.UnassignedJobRunIds)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 7: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field MaxJobsToLease", wireType) @@ -4181,42 +4033,6 @@ func (m *JobRunLease) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: JobRunLease: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobRunId", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowExecutorapi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthExecutorapi - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthExecutorapi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JobRunId == nil { - m.JobRunId = &armadaevents.Uuid{} - } - if err := m.JobRunId.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Queue", wireType) @@ -4463,40 +4279,6 @@ func (m *CancelRuns) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: CancelRuns: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobRunIdsToCancel", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowExecutorapi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthExecutorapi - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthExecutorapi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.JobRunIdsToCancel = append(m.JobRunIdsToCancel, &armadaevents.Uuid{}) - if err := m.JobRunIdsToCancel[len(m.JobRunIdsToCancel)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field JobRunIdsToCancelStr", wireType) @@ -4579,40 +4361,6 @@ func (m *PreemptRuns) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: PreemptRuns: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JobRunIdsToPreempt", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowExecutorapi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthExecutorapi - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthExecutorapi - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.JobRunIdsToPreempt = append(m.JobRunIdsToPreempt, &armadaevents.Uuid{}) - if err := m.JobRunIdsToPreempt[len(m.JobRunIdsToPreempt)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field JobRunIdsToPreemptStr", wireType) diff --git a/pkg/executorapi/executorapi.proto b/pkg/executorapi/executorapi.proto index 14f2ac064be..d17bd0615a1 100644 --- a/pkg/executorapi/executorapi.proto +++ b/pkg/executorapi/executorapi.proto @@ -67,8 +67,6 @@ message LeaseRequest{ // - The job runs running on those nodes, // - Any taints and labels on the node. repeated NodeInfo nodes = 5; - // Run Ids of jobs owned by the executor but not currently assigned to a node. - repeated armadaevents.Uuid unassigned_job_run_ids = 6; // Max number of jobs this request should return uint32 max_jobs_to_lease = 7; // Run Ids of jobs owned by the executor but not currently assigned to a node. @@ -77,7 +75,6 @@ message LeaseRequest{ // Indicates that a job run is now leased. message JobRunLease{ - armadaevents.Uuid job_run_id = 1; string queue = 2; string jobset = 3; string user = 4; @@ -88,13 +85,11 @@ message JobRunLease{ // Indicates that the job runs with the given ids should be cancelled. message CancelRuns{ - repeated armadaevents.Uuid job_run_ids_to_cancel = 1; repeated string job_run_ids_to_cancel_str = 2; } // Indicates that the job runs with the given ids should be preempted. message PreemptRuns{ - repeated armadaevents.Uuid job_run_ids_to_preempt = 1; repeated string job_run_ids_to_preempt_str = 2; } From df9acbcb101b9d38bf02b4bb978565ba366b0cc0 Mon Sep 17 00:00:00 2001 From: Chris Martin Date: Sat, 14 Sep 2024 18:31:33 +0100 Subject: [PATCH 2/3] fix test Signed-off-by: Chris Martin --- internal/executor/service/util.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/internal/executor/service/util.go b/internal/executor/service/util.go index 87bf5a46193..f69aa5ef348 100644 --- a/internal/executor/service/util.go +++ b/internal/executor/service/util.go @@ -11,6 +11,14 @@ func ExtractEssentialJobMetadata(jobRun *executorapi.JobRunLease) (*job.RunMeta, if jobRun.Job == nil { return nil, fmt.Errorf("job is invalid, job field is nil") } + jobId := jobRun.Job.JobIdStr + if jobId == "" { + return nil, fmt.Errorf("job is invalid, jobId is empty") + } + runId := jobRun.JobRunIdStr + if runId == "" { + return nil, fmt.Errorf("job is invalid, jobRunId is empty") + } if jobRun.Queue == "" { return nil, fmt.Errorf("job is invalid, queue is empty") } @@ -19,8 +27,8 @@ func ExtractEssentialJobMetadata(jobRun *executorapi.JobRunLease) (*job.RunMeta, } return &job.RunMeta{ - JobId: jobRun.Job.JobIdStr, - RunId: jobRun.JobRunIdStr, + JobId: jobId, + RunId: runId, Queue: jobRun.Queue, JobSet: jobRun.Jobset, }, nil From 560e6ce9e5424492e231471e9c93d581b3373012 Mon Sep 17 00:00:00 2001 From: Chris Martin Date: Sat, 14 Sep 2024 19:51:26 +0100 Subject: [PATCH 3/3] fix test Signed-off-by: Chris Martin --- internal/executor/service/util.go | 2 +- internal/executor/util/kubernetes_object.go | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/internal/executor/service/util.go b/internal/executor/service/util.go index f69aa5ef348..8ce61c464f0 100644 --- a/internal/executor/service/util.go +++ b/internal/executor/service/util.go @@ -17,7 +17,7 @@ func ExtractEssentialJobMetadata(jobRun *executorapi.JobRunLease) (*job.RunMeta, } runId := jobRun.JobRunIdStr if runId == "" { - return nil, fmt.Errorf("job is invalid, jobRunId is empty") + return nil, fmt.Errorf("job %s is invalid, runId is empty", jobId) } if jobRun.Queue == "" { return nil, fmt.Errorf("job is invalid, queue is empty") diff --git a/internal/executor/util/kubernetes_object.go b/internal/executor/util/kubernetes_object.go index a27189474b9..473736fe42c 100644 --- a/internal/executor/util/kubernetes_object.go +++ b/internal/executor/util/kubernetes_object.go @@ -241,9 +241,18 @@ func CreatePodFromExecutorApiJob(job *executorapi.JobRunLease, defaults *configu return nil, err } + jobId := job.Job.JobIdStr + if jobId == "" { + return nil, fmt.Errorf("job is invalid, jobId is empty") + } + runId := job.JobRunIdStr + if runId == "" { + return nil, fmt.Errorf("job %s is invalid, runId is empty", jobId) + } + labels := util.MergeMaps(job.Job.ObjectMeta.Labels, map[string]string{ - domain.JobId: job.Job.JobIdStr, - domain.JobRunId: job.JobRunIdStr, + domain.JobId: jobId, + domain.JobRunId: runId, domain.Queue: job.Queue, domain.PodNumber: strconv.Itoa(0), domain.PodCount: strconv.Itoa(1),