testfixtures

package
v0.15.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	JobId                      = "01f3j0g1md4qx7z5qb148qnh4r"
	RunId                      = "123e4567-e89b-12d3-a456-426614174000"
	PartitionMarkerGroupId     = "223e4567-e89b-12d3-a456-426614174000"
	JobsetName                 = "testJobset"
	ExecutorId                 = "testCluster"
	ExecutorId2                = "testCluster2"
	ExecutorId3                = "testCluster3"
	NodeName                   = "testNode"
	Pool                       = "Pool"
	PodName                    = "test-pod"
	Queue                      = "test-Queue"
	UserId                     = "testUser"
	Namespace                  = "test-ns"
	Priority                   = 3
	NewPriority                = 4
	PodNumber                  = 6
	ExitCode                   = 322
	ErrMsg                     = "sample error message"
	DebugMsg                   = "sample debug message"
	LeaseReturnedMsg           = "lease returned error message"
	UnschedulableMsg           = "test pod is unschedulable"
	PreemptionReason           = "job preempted"
	PartitionMarkerPartitionId = 456

	ExecutorCordonReason = "bad executor"
)

Standard Set of events for common tests

Variables

View Source
var (
	PartitionMarkerGroupIdUuid = uuid.MustParse(PartitionMarkerGroupId)
	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{
					{
						MatchExpressions: []v1.NodeSelectorRequirement{
							{
								Key:      "noode-name",
								Operator: v1.NodeSelectorOpNotIn,
								Values:   []string{"node-1"},
							},
						},
					},
				},
			},
		},
	}
	Tolerations = []v1.Toleration{{
		Key:      "fish",
		Operator: "exists",
	}}
	BaseTime, _   = time.Parse("2006-01-02T15:04:05.000Z", "2022-03-01T15:04:05.000Z")
	BaseTimeProto = protoutil.ToTimestamp(BaseTime)
)
View Source
var CancelOnExecutor = &controlplaneevents.Event{
	Event: &controlplaneevents.Event_CancelOnExecutor{
		CancelOnExecutor: &controlplaneevents.CancelOnExecutor{
			Name:            ExecutorId,
			Queues:          []string{Queue},
			PriorityClasses: []string{PriorityClassName},
		},
	},
}
View Source
var DeleteExecutorSettings = &controlplaneevents.Event{
	Event: &controlplaneevents.Event_ExecutorSettingsDelete{
		ExecutorSettingsDelete: &controlplaneevents.ExecutorSettingsDelete{
			Name: ExecutorId,
		},
	},
}
View Source
var JobFailed = &armadaevents.EventSequence_Event{
	Created: testfixtures.BasetimeProto,
	Event: &armadaevents.EventSequence_Event_JobErrors{
		JobErrors: &armadaevents.JobErrors{
			JobId: JobId,
			Errors: []*armadaevents.Error{
				{
					Terminal: true,
					Reason: &armadaevents.Error_PodError{
						PodError: &armadaevents.PodError{
							Message:  ErrMsg,
							NodeName: NodeName,
							ContainerErrors: []*armadaevents.ContainerError{
								{ExitCode: ExitCode},
							},
						},
					},
				},
			},
		},
	},
}
View Source
var JobRejected = &armadaevents.EventSequence_Event{
	Created: testfixtures.BasetimeProto,
	Event: &armadaevents.EventSequence_Event_JobErrors{
		JobErrors: &armadaevents.JobErrors{
			JobId: JobId,
			Errors: []*armadaevents.Error{
				{
					Terminal: true,
					Reason: &armadaevents.Error_JobRejected{
						JobRejected: &armadaevents.JobRejected{
							Message: ErrMsg,
						},
					},
				},
			},
		},
	},
}
View Source
var JobRequeued = &armadaevents.EventSequence_Event{
	Created: testfixtures.BasetimeProto,
	Event: &armadaevents.EventSequence_Event_JobRequeued{
		JobRequeued: &armadaevents.JobRequeued{
			JobId: JobId,
			SchedulingInfo: &schedulerobjects.JobSchedulingInfo{
				Lifetime:        0,
				AtMostOnce:      true,
				Preemptible:     true,
				ConcurrencySafe: true,
				Version:         0,
				ObjectRequirements: []*schedulerobjects.ObjectRequirements{
					{
						Requirements: &schedulerobjects.ObjectRequirements_PodRequirements{
							PodRequirements: &schedulerobjects.PodRequirements{
								NodeSelector:     NodeSelector,
								Tolerations:      Tolerations,
								PreemptionPolicy: "PreemptLowerPriority",
								Affinity:         Affinity,
								ResourceRequirements: v1.ResourceRequirements{
									Limits: map[v1.ResourceName]resource.Quantity{
										"memory": resource.MustParse("64Mi"),
										"cpu":    resource.MustParse("150m"),
									},
									Requests: map[v1.ResourceName]resource.Quantity{
										"memory": resource.MustParse("64Mi"),
										"cpu":    resource.MustParse("150m"),
									},
								},
							},
						},
					},
				},
			},
			UpdateSequenceNumber: 2,
		},
	},
}
View Source
var JobRunFailed = &armadaevents.EventSequence_Event{
	Created: testfixtures.BasetimeProto,
	Event: &armadaevents.EventSequence_Event_JobRunErrors{
		JobRunErrors: &armadaevents.JobRunErrors{
			JobId: JobId,
			RunId: RunId,
			Errors: []*armadaevents.Error{
				{
					Terminal: true,
					Reason: &armadaevents.Error_PodError{
						PodError: &armadaevents.PodError{
							Message:      ErrMsg,
							DebugMessage: DebugMsg,
							NodeName:     NodeName,
							ContainerErrors: []*armadaevents.ContainerError{
								{ExitCode: ExitCode},
							},
						},
					},
				},
			},
		},
	},
}
View Source
var JobRunPreempted = &armadaevents.EventSequence_Event{
	Created: testfixtures.BasetimeProto,
	Event: &armadaevents.EventSequence_Event_JobRunPreempted{
		JobRunPreempted: &armadaevents.JobRunPreempted{
			PreemptedJobId: JobId,
			PreemptedRunId: RunId,
			Reason:         PreemptionReason,
		},
	},
}
View Source
var LeaseReturned = &armadaevents.EventSequence_Event{
	Created: testfixtures.BasetimeProto,
	Event: &armadaevents.EventSequence_Event_JobRunErrors{
		JobRunErrors: &armadaevents.JobRunErrors{
			JobId: JobId,
			RunId: RunId,
			Errors: []*armadaevents.Error{
				{
					Terminal: true,
					Reason: &armadaevents.Error_PodLeaseReturned{
						PodLeaseReturned: &armadaevents.PodLeaseReturned{
							Message:      LeaseReturnedMsg,
							RunAttempted: true,
						},
					},
				},
			},
		},
	},
}
View Source
var Leased = &armadaevents.EventSequence_Event{
	Created: testfixtures.BasetimeProto,
	Event: &armadaevents.EventSequence_Event_JobRunLeased{
		JobRunLeased: &armadaevents.JobRunLeased{
			RunId:                  RunId,
			JobId:                  JobId,
			ExecutorId:             ExecutorId,
			NodeId:                 NodeName,
			Pool:                   Pool,
			HasScheduledAtPriority: true,
			ScheduledAtPriority:    15,
			UpdateSequenceNumber:   1,
			PodRequirementsOverlay: &schedulerobjects.PodRequirements{
				Tolerations: []v1.Toleration{
					{
						Key:    "whale",
						Value:  "true",
						Effect: v1.TaintEffectNoSchedule,
					},
				},
			},
		},
	},
}
View Source
var PreemptOnExecutor = &controlplaneevents.Event{
	Event: &controlplaneevents.Event_PreemptOnExecutor{
		PreemptOnExecutor: &controlplaneevents.PreemptOnExecutor{
			Name:            ExecutorId,
			Queues:          []string{Queue},
			PriorityClasses: []string{PriorityClassName},
		},
	},
}
View Source
var PreemptOnQueue = &controlplaneevents.Event{
	Event: &controlplaneevents.Event_PreemptOnQueue{
		PreemptOnQueue: &controlplaneevents.PreemptOnQueue{
			Name:            Queue,
			PriorityClasses: []string{PriorityClassName},
		},
	},
}
View Source
var ScheduledAtPriority = int32(15)
View Source
var Submit = &armadaevents.EventSequence_Event{
	Created: testfixtures.BasetimeProto,
	Event: &armadaevents.EventSequence_Event_SubmitJob{
		SubmitJob: &armadaevents.SubmitJob{
			JobId:           JobId,
			Priority:        Priority,
			AtMostOnce:      true,
			Preemptible:     true,
			ConcurrencySafe: true,
			ObjectMeta: &armadaevents.ObjectMeta{
				Namespace: Namespace,
				Name:      "test-job",
			},
			MainObject: &armadaevents.KubernetesMainObject{
				ObjectMeta: &armadaevents.ObjectMeta{
					Annotations: map[string]string{
						"foo":                            "bar",
						configuration.FailFastAnnotation: "true",
					},
				},
				Object: &armadaevents.KubernetesMainObject_PodSpec{
					PodSpec: &armadaevents.PodSpecWithAvoidList{
						PodSpec: &v1.PodSpec{
							NodeSelector:      NodeSelector,
							Tolerations:       Tolerations,
							PriorityClassName: PriorityClassName,
							Containers: []v1.Container{
								{
									Name:    "container1",
									Image:   "alpine:latest",
									Command: []string{"myprogram.sh"},
									Args:    []string{"foo", "bar"},
									Resources: v1.ResourceRequirements{
										Limits: map[v1.ResourceName]resource.Quantity{
											"memory": resource.MustParse("64Mi"),
											"cpu":    resource.MustParse("150m"),
										},
										Requests: map[v1.ResourceName]resource.Quantity{
											"memory": resource.MustParse("64Mi"),
											"cpu":    resource.MustParse("150m"),
										},
									},
								},
							},
						},
					},
				},
			},
		},
	},
}
View Source
var UpsertExecutorSettingsCordon = &controlplaneevents.Event{
	Event: &controlplaneevents.Event_ExecutorSettingsUpsert{
		ExecutorSettingsUpsert: &controlplaneevents.ExecutorSettingsUpsert{
			Name:         ExecutorId,
			Cordoned:     true,
			CordonReason: ExecutorCordonReason,
		},
	},
}
View Source
var UpsertExecutorSettingsUncordon = &controlplaneevents.Event{
	Event: &controlplaneevents.Event_ExecutorSettingsUpsert{
		ExecutorSettingsUpsert: &controlplaneevents.ExecutorSettingsUpsert{
			Name:         ExecutorId,
			Cordoned:     false,
			CordonReason: "",
		},
	},
}

Functions

func JobSetCancelRequestedWithStateFilter added in v0.3.68

func JobSetCancelRequestedWithStateFilter(states ...armadaevents.JobState) *armadaevents.EventSequence_Event

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL