testfixtures

package
v0.3.68-rc-8011b0a Latest Latest
Warning

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

Go to latest
Published: May 16, 2023 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	JobIdString                  = "01f3j0g1md4qx7z5qb148qnh4r"
	RunIdString                  = "123e4567-e89b-12d3-a456-426614174000"
	PartitionMarkerGroupIdString = "223e4567-e89b-12d3-a456-426614174000"
)

Standard Set of events for common tests

View Source
const (
	JobSetName                 = "testJobset"
	ExecutorId                 = "testCluster"
	NodeName                   = "testNode"
	PodName                    = "test-pod"
	Queue                      = "test-Queue"
	UserId                     = "testUser"
	Namespace                  = "test-ns"
	Priority                   = 3
	NewPriority                = 4
	PodNumber                  = 6
	ExitCode                   = 322
	ErrMsg                     = "sample error message"
	LeaseReturnedMsg           = "lease returned error message"
	TerminatedMsg              = "test pod terminated message"
	UnschedulableMsg           = "test pod is unschedulable"
	PartitionMarkerPartitionId = 456
)

Variables

View Source
var (
	JobIdProto, _               = armadaevents.ProtoUuidFromUlidString(JobIdString)
	RunIdProto                  = armadaevents.ProtoUuidFromUuid(uuid.MustParse(RunIdString))
	PartitionMarkerGroupIdProto = armadaevents.ProtoUuidFromUuid(uuid.MustParse(PartitionMarkerGroupIdString))
	JobIdUuid                   = armadaevents.UuidFromProtoUuid(JobIdProto)
	RunIdUuid                   = armadaevents.UuidFromProtoUuid(RunIdProto)
	PartitionMarkerGroupIdUuid  = armadaevents.UuidFromProtoUuid(PartitionMarkerGroupIdProto)
	PriorityClassName           = "test-priority"
	PriorityClassValue          = int32(100)
	PriorityClasses             = map[string]configuration.PriorityClass{PriorityClassName: {Priority: PriorityClassValue}}
	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")
)
View Source
var JobFailed = &armadaevents.EventSequence_Event{
	Created: &testfixtures.BaseTime,
	Event: &armadaevents.EventSequence_Event_JobErrors{
		JobErrors: &armadaevents.JobErrors{
			JobId: JobIdProto,
			Errors: []*armadaevents.Error{
				{
					Terminal: true,
					Reason: &armadaevents.Error_PodError{
						PodError: &armadaevents.PodError{
							Message:  ErrMsg,
							NodeName: NodeName,
							ContainerErrors: []*armadaevents.ContainerError{
								{ExitCode: ExitCode},
							},
						},
					},
				},
			},
		},
	},
}
View Source
var JobLeaseReturned = &armadaevents.EventSequence_Event{
	Created: &testfixtures.BaseTime,
	Event: &armadaevents.EventSequence_Event_JobRunErrors{
		JobRunErrors: &armadaevents.JobRunErrors{
			JobId: JobIdProto,
			RunId: eventutil.LegacyJobRunId(),
			Errors: []*armadaevents.Error{
				{
					Terminal: true,
					Reason: &armadaevents.Error_PodLeaseReturned{
						PodLeaseReturned: &armadaevents.PodLeaseReturned{
							ObjectMeta: &armadaevents.ObjectMeta{
								ExecutorId: ExecutorId,
							},
							Message: LeaseReturnedMsg,
						},
					},
				},
			},
		},
	},
}
View Source
var JobPreempted = &armadaevents.EventSequence_Event{
	Created: &testfixtures.BaseTime,
	Event: &armadaevents.EventSequence_Event_JobRunPreempted{
		JobRunPreempted: &armadaevents.JobRunPreempted{
			PreemptedJobId: JobIdProto,
			PreemptedRunId: RunIdProto,
		},
	},
}
View Source
var JobRequeued = &armadaevents.EventSequence_Event{
	Created: &BaseTime,
	Event: &armadaevents.EventSequence_Event_JobRequeued{
		JobRequeued: &armadaevents.JobRequeued{
			JobId: JobIdProto,
			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",
								Priority:         PriorityClassValue,
								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.BaseTime,
	Event: &armadaevents.EventSequence_Event_JobRunErrors{
		JobRunErrors: &armadaevents.JobRunErrors{
			JobId: JobIdProto,
			RunId: RunIdProto,
			Errors: []*armadaevents.Error{
				{
					Terminal: true,
					Reason: &armadaevents.Error_PodError{
						PodError: &armadaevents.PodError{
							Message:  ErrMsg,
							NodeName: NodeName,
							ContainerErrors: []*armadaevents.ContainerError{
								{ExitCode: ExitCode},
							},
						},
					},
				},
			},
		},
	},
}
View Source
var JobRunTerminated = &armadaevents.EventSequence_Event{
	Created: &testfixtures.BaseTime,
	Event: &armadaevents.EventSequence_Event_JobRunErrors{
		JobRunErrors: &armadaevents.JobRunErrors{
			JobId: JobIdProto,
			RunId: RunIdProto,
			Errors: []*armadaevents.Error{
				{
					Terminal: false,
					Reason: &armadaevents.Error_PodTerminated{
						PodTerminated: &armadaevents.PodTerminated{
							NodeName: NodeName,
							ObjectMeta: &armadaevents.ObjectMeta{
								ExecutorId: ExecutorId,
							},
							Message: TerminatedMsg,
						},
					},
				},
			},
		},
	},
}
View Source
var JobRunUnschedulable = &armadaevents.EventSequence_Event{
	Created: &testfixtures.BaseTime,
	Event: &armadaevents.EventSequence_Event_JobRunErrors{
		JobRunErrors: &armadaevents.JobRunErrors{
			JobId: JobIdProto,
			RunId: RunIdProto,
			Errors: []*armadaevents.Error{
				{
					Terminal: false,
					Reason: &armadaevents.Error_PodUnschedulable{
						PodUnschedulable: &armadaevents.PodUnschedulable{
							NodeName: NodeName,
							ObjectMeta: &armadaevents.ObjectMeta{
								ExecutorId: ExecutorId,
							},
							Message: UnschedulableMsg,
						},
					},
				},
			},
		},
	},
}
View Source
var LeaseReturned = &armadaevents.EventSequence_Event{
	Created: &testfixtures.BaseTime,
	Event: &armadaevents.EventSequence_Event_JobRunErrors{
		JobRunErrors: &armadaevents.JobRunErrors{
			JobId: JobIdProto,
			RunId: RunIdProto,
			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.BaseTime,
	Event: &armadaevents.EventSequence_Event_JobRunLeased{
		JobRunLeased: &armadaevents.JobRunLeased{
			RunId:                RunIdProto,
			JobId:                JobIdProto,
			ExecutorId:           ExecutorId,
			NodeId:               NodeName,
			UpdateSequenceNumber: 1,
		},
	},
}
View Source
var Submit = &armadaevents.EventSequence_Event{
	Created: &testfixtures.BaseTime,
	Event: &armadaevents.EventSequence_Event_SubmitJob{
		SubmitJob: &armadaevents.SubmitJob{
			JobId:           JobIdProto,
			Priority:        Priority,
			AtMostOnce:      true,
			Preemptible:     true,
			ConcurrencySafe: true,
			ObjectMeta: &armadaevents.ObjectMeta{
				Namespace: Namespace,
				Name:      "test-job",
			},
			MainObject: &armadaevents.KubernetesMainObject{
				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 SubmitDuplicate = &armadaevents.EventSequence_Event{
	Created: &testfixtures.BaseTime,
	Event: &armadaevents.EventSequence_Event_SubmitJob{
		SubmitJob: &armadaevents.SubmitJob{
			IsDuplicate:     true,
			JobId:           JobIdProto,
			Priority:        Priority,
			AtMostOnce:      true,
			Preemptible:     true,
			ConcurrencySafe: true,
			ObjectMeta: &armadaevents.ObjectMeta{
				Namespace: Namespace,
				Name:      "test-job",
			},
			MainObject: &armadaevents.KubernetesMainObject{
				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"),
										},
									},
								},
							},
						},
					},
				},
			},
		},
	},
}

Functions

Types

This section is empty.

Jump to

Keyboard shortcuts

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