jobrunaggregatorapi

package
v0.0.0-...-c780de0 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2024 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Overview

Package jobrunaggregatorapi is a generated GoMock package.

Index

Constants

View Source
const (
	AlertsTableName = "Alerts"
)
View Source
const BackendDisruptionTableName = "BackendDisruption"
View Source
const (
	JobsTableName = "Jobs"
)

Variables

This section is empty.

Functions

func GetGCSArtifactURLForLocation

func GetGCSArtifactURLForLocation(jobRunGCSBucketRoot, jobRunGCSBucket string) string

func GetHumanURLForLocation

func GetHumanURLForLocation(jobRunGCSBucketRoot, jobRunGCSBucket string) string

func ParseProwJob

func ParseProwJob(prowJobBytes []byte) (*prowjobv1.ProwJob, error)

func SerializeProwJob

func SerializeProwJob(prowJob *prowjobv1.ProwJob) ([]byte, error)

Types

type AggregatedTestRunRow

type AggregatedTestRunRow struct {
	AggregationStartDate time.Time
	TestName             string
	// TODO work out how to avoid the bigquery dep
	TestSuiteName     bigquery.NullString
	JobName           string
	PassCount         int
	FailCount         int
	FlakeCount        int
	PassPercentage    float64
	WorkingPercentage float64
	DominantCluster   string
}

type AlertHistoricalDataRow

type AlertHistoricalDataRow struct {
	AlertName      string
	AlertNamespace string
	AlertLevel     string
	FirstObserved  time.Time
	LastObserved   time.Time
	HistoricalJobData
	P95 string
	P99 string
	P75 string
	P50 string
}

func (*AlertHistoricalDataRow) GetJobData

func (a *AlertHistoricalDataRow) GetJobData() HistoricalJobData

func (*AlertHistoricalDataRow) GetJobRuns

func (a *AlertHistoricalDataRow) GetJobRuns() int

func (*AlertHistoricalDataRow) GetKey

func (a *AlertHistoricalDataRow) GetKey() string

func (*AlertHistoricalDataRow) GetName

func (a *AlertHistoricalDataRow) GetName() string

func (*AlertHistoricalDataRow) GetP50

func (a *AlertHistoricalDataRow) GetP50() string

func (*AlertHistoricalDataRow) GetP75

func (a *AlertHistoricalDataRow) GetP75() string

func (*AlertHistoricalDataRow) GetP95

func (a *AlertHistoricalDataRow) GetP95() string

func (*AlertHistoricalDataRow) GetP99

func (a *AlertHistoricalDataRow) GetP99() string

type AlertRow

type AlertRow struct {
	Name               string
	Namespace          string
	Level              string
	AlertSeconds       int
	JobName            bigquery.NullString
	JobRunName         string
	JobRunStartTime    bigquery.NullTimestamp
	JobRunEndTime      bigquery.NullTimestamp
	Cluster            bigquery.NullString
	ReleaseTag         bigquery.NullString
	MasterNodesUpdated bigquery.NullString
	JobRunStatus       bigquery.NullString
}

type BackendDisruptionRow

type BackendDisruptionRow struct {
	BackendName        string
	DisruptionSeconds  int
	JobName            bigquery.NullString
	JobRunName         string
	JobRunStartTime    bigquery.NullTimestamp
	JobRunEndTime      bigquery.NullTimestamp
	Cluster            bigquery.NullString
	ReleaseTag         bigquery.NullString
	MasterNodesUpdated bigquery.NullString
	JobRunStatus       bigquery.NullString
}

type BackendDisruptionStatisticsRow

type BackendDisruptionStatisticsRow struct {
	BackendName       string
	Mean              float64
	StandardDeviation float64
	P1                float64
	P2                float64
	P3                float64
	P4                float64
	P5                float64
	P6                float64
	P7                float64
	P8                float64
	P9                float64
	P10               float64
	P11               float64
	P12               float64
	P13               float64
	P14               float64
	P15               float64
	P16               float64
	P17               float64
	P18               float64
	P19               float64
	P20               float64
	P21               float64
	P22               float64
	P23               float64
	P24               float64
	P25               float64
	P26               float64
	P27               float64
	P28               float64
	P29               float64
	P30               float64
	P31               float64
	P32               float64
	P33               float64
	P34               float64
	P35               float64
	P36               float64
	P37               float64
	P38               float64
	P39               float64
	P40               float64
	P41               float64
	P42               float64
	P43               float64
	P44               float64
	P45               float64
	P46               float64
	P47               float64
	P48               float64
	P49               float64
	P50               float64
	P51               float64
	P52               float64
	P53               float64
	P54               float64
	P55               float64
	P56               float64
	P57               float64
	P58               float64
	P59               float64
	P60               float64
	P61               float64
	P62               float64
	P63               float64
	P64               float64
	P65               float64
	P66               float64
	P67               float64
	P68               float64
	P69               float64
	P70               float64
	P71               float64
	P72               float64
	P73               float64
	P74               float64
	P75               float64
	P76               float64
	P77               float64
	P78               float64
	P79               float64
	P80               float64
	P81               float64
	P82               float64
	P83               float64
	P84               float64
	P85               float64
	P86               float64
	P87               float64
	P88               float64
	P89               float64
	P90               float64
	P91               float64
	P92               float64
	P93               float64
	P94               float64
	P95               float64
	P96               float64
	P97               float64
	P98               float64
	P99               float64
}

type DisruptionHistoricalDataRow

type DisruptionHistoricalDataRow struct {
	BackendName string
	HistoricalJobData
	P95 string
	P99 string
	P75 string
	P50 string
}

func (*DisruptionHistoricalDataRow) GetJobData

func (*DisruptionHistoricalDataRow) GetJobRuns

func (a *DisruptionHistoricalDataRow) GetJobRuns() int

func (*DisruptionHistoricalDataRow) GetKey

func (a *DisruptionHistoricalDataRow) GetKey() string

func (*DisruptionHistoricalDataRow) GetName

func (a *DisruptionHistoricalDataRow) GetName() string

func (*DisruptionHistoricalDataRow) GetP50

func (a *DisruptionHistoricalDataRow) GetP50() string

func (*DisruptionHistoricalDataRow) GetP75

func (a *DisruptionHistoricalDataRow) GetP75() string

func (*DisruptionHistoricalDataRow) GetP95

func (a *DisruptionHistoricalDataRow) GetP95() string

func (*DisruptionHistoricalDataRow) GetP99

func (a *DisruptionHistoricalDataRow) GetP99() string

type HistoricalData

type HistoricalData interface {
	GetJobData() HistoricalJobData
	GetName() string
	GetP99() string
	GetP95() string
	GetP75() string
	GetP50() string
	GetKey() string
	GetJobRuns() int
}

func ConvertToHistoricalData

func ConvertToHistoricalData[D *AlertHistoricalDataRow | *DisruptionHistoricalDataRow](data []D) []HistoricalData

type HistoricalJobData

type HistoricalJobData struct {
	Release            string
	FromRelease        string
	Platform           string
	Architecture       string
	Network            string
	Topology           string
	MasterNodesUpdated bigquery.NullString
	// JobRuns is the number of job runs that were included when we queried the historical data.
	JobRuns int
}

type JobRow

type JobRow struct {
	JobName                     string
	GCSBucketName               string
	GCSJobHistoryLocationPrefix string
	CollectDisruption           bool
	CollectTestRuns             bool
}

type JobRowWithVariants

type JobRowWithVariants struct {
	JobName                     string
	GCSBucketName               string
	GCSJobHistoryLocationPrefix string
	CollectDisruption           bool
	CollectTestRuns             bool
	Platform                    string
	Architecture                string
	Network                     string
	IPMode                      string
	Topology                    string
	Release                     string
	FromRelease                 bigquery.NullString
}

type JobRunInfo

type JobRunInfo interface {
	IsFinished(ctx context.Context) bool

	GetJobName() string
	GetJobRunID() string

	// GetHumanURL returns prow job URL for this job run.
	GetHumanURL() string

	// GetGCSArtifactURL returns the URL for this job run's artifacts in GCS.
	GetGCSArtifactURL() string

	GetGCSProwJobPath() string
	GetGCSJunitPaths() []string
	SetGCSProwJobPath(gcsProwJobPath string)
	AddGCSJunitPaths(junitPaths ...string)
	AddGCSProwJobFileNames(fileNames ...string)

	GetProwJob(ctx context.Context) (*prowjobv1.ProwJob, error)
	GetJobRunFromGCS(ctx context.Context) error
	GetCombinedJUnitTestSuites(ctx context.Context) (*junit.TestSuites, error)
	// GetOpenShiftTestsFilesWithPrefix checks the datasource for "openshift-e2e-test/artifacts/junit/<prefix>*"
	// and returns that content indexed by local filename.  This is useful for things like back-disruption and alerts.
	GetOpenShiftTestsFilesWithPrefix(ctx context.Context, prefix string) (map[string]string, error)
	GetContent(ctx context.Context, path string) ([]byte, error)
	ClearAllContent()

	WriteCache(ctx context.Context, parentDir string) error
}

JobRunInfo is a way to interact with JobRuns and gather their junit results. The backing store can vary by impl, GCS buckets are the only implementation today.

func NewGCSJobRun

func NewGCSJobRun(bkt *storage.BucketHandle, jobGCSBucketRoot string, jobName, jobRunID string, jobRunGCSBucket string) JobRunInfo

type JobRunRow

type JobRunRow struct {
	Name               string
	JobName            string
	Status             string
	StartTime          time.Time
	EndTime            time.Time
	ReleaseTag         string
	Cluster            string
	MasterNodesUpdated bigquery.NullString
}

type KnownAlertRow

type KnownAlertRow struct {
	AlertName      string
	AlertNamespace string
	AlertLevel     string
	Release        string
	FirstObserved  time.Time
	LastObserved   time.Time
	Results        int
}

KnownAlertRow is used for results from the Alerts_AllKnown view.

type MockJobRunInfo

type MockJobRunInfo struct {
	// contains filtered or unexported fields
}

MockJobRunInfo is a mock of JobRunInfo interface.

func NewMockJobRunInfo

func NewMockJobRunInfo(ctrl *gomock.Controller) *MockJobRunInfo

NewMockJobRunInfo creates a new mock instance.

func (*MockJobRunInfo) AddGCSJunitPaths

func (m *MockJobRunInfo) AddGCSJunitPaths(arg0 ...string)

AddGCSJunitPaths mocks base method.

func (*MockJobRunInfo) AddGCSProwJobFileNames

func (m *MockJobRunInfo) AddGCSProwJobFileNames(arg0 ...string)

AddGCSProwJobFileNames mocks base method.

func (*MockJobRunInfo) ClearAllContent

func (m *MockJobRunInfo) ClearAllContent()

ClearAllContent mocks base method.

func (*MockJobRunInfo) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockJobRunInfo) GetCombinedJUnitTestSuites

func (m *MockJobRunInfo) GetCombinedJUnitTestSuites(arg0 context.Context) (*junit.TestSuites, error)

GetCombinedJUnitTestSuites mocks base method.

func (*MockJobRunInfo) GetContent

func (m *MockJobRunInfo) GetContent(arg0 context.Context, arg1 string) ([]byte, error)

GetContent mocks base method.

func (*MockJobRunInfo) GetGCSArtifactURL

func (m *MockJobRunInfo) GetGCSArtifactURL() string

GetGCSArtifactURL mocks base method.

func (*MockJobRunInfo) GetGCSJunitPaths

func (m *MockJobRunInfo) GetGCSJunitPaths() []string

GetGCSJunitPaths mocks base method.

func (*MockJobRunInfo) GetGCSProwJobPath

func (m *MockJobRunInfo) GetGCSProwJobPath() string

GetGCSProwJobPath mocks base method.

func (*MockJobRunInfo) GetHumanURL

func (m *MockJobRunInfo) GetHumanURL() string

GetHumanURL mocks base method.

func (*MockJobRunInfo) GetJobName

func (m *MockJobRunInfo) GetJobName() string

GetJobName mocks base method.

func (*MockJobRunInfo) GetJobRunFromGCS

func (m *MockJobRunInfo) GetJobRunFromGCS(arg0 context.Context) error

GetJobRunFromGCS mocks base method.

func (*MockJobRunInfo) GetJobRunID

func (m *MockJobRunInfo) GetJobRunID() string

GetJobRunID mocks base method.

func (*MockJobRunInfo) GetOpenShiftTestsFilesWithPrefix

func (m *MockJobRunInfo) GetOpenShiftTestsFilesWithPrefix(arg0 context.Context, arg1 string) (map[string]string, error)

GetOpenShiftTestsFilesWithPrefix mocks base method.

func (*MockJobRunInfo) GetProwJob

func (m *MockJobRunInfo) GetProwJob(arg0 context.Context) (*v1.ProwJob, error)

GetProwJob mocks base method.

func (*MockJobRunInfo) IsFinished

func (m *MockJobRunInfo) IsFinished(arg0 context.Context) bool

IsFinished mocks base method.

func (*MockJobRunInfo) SetGCSProwJobPath

func (m *MockJobRunInfo) SetGCSProwJobPath(arg0 string)

SetGCSProwJobPath mocks base method.

func (*MockJobRunInfo) WriteCache

func (m *MockJobRunInfo) WriteCache(arg0 context.Context, arg1 string) error

WriteCache mocks base method.

type MockJobRunInfoMockRecorder

type MockJobRunInfoMockRecorder struct {
	// contains filtered or unexported fields
}

MockJobRunInfoMockRecorder is the mock recorder for MockJobRunInfo.

func (*MockJobRunInfoMockRecorder) AddGCSJunitPaths

func (mr *MockJobRunInfoMockRecorder) AddGCSJunitPaths(arg0 ...interface{}) *gomock.Call

AddGCSJunitPaths indicates an expected call of AddGCSJunitPaths.

func (*MockJobRunInfoMockRecorder) AddGCSProwJobFileNames

func (mr *MockJobRunInfoMockRecorder) AddGCSProwJobFileNames(arg0 ...interface{}) *gomock.Call

AddGCSProwJobFileNames indicates an expected call of AddGCSProwJobFileNames.

func (*MockJobRunInfoMockRecorder) ClearAllContent

func (mr *MockJobRunInfoMockRecorder) ClearAllContent() *gomock.Call

ClearAllContent indicates an expected call of ClearAllContent.

func (*MockJobRunInfoMockRecorder) GetCombinedJUnitTestSuites

func (mr *MockJobRunInfoMockRecorder) GetCombinedJUnitTestSuites(arg0 interface{}) *gomock.Call

GetCombinedJUnitTestSuites indicates an expected call of GetCombinedJUnitTestSuites.

func (*MockJobRunInfoMockRecorder) GetContent

func (mr *MockJobRunInfoMockRecorder) GetContent(arg0, arg1 interface{}) *gomock.Call

GetContent indicates an expected call of GetContent.

func (*MockJobRunInfoMockRecorder) GetGCSArtifactURL

func (mr *MockJobRunInfoMockRecorder) GetGCSArtifactURL() *gomock.Call

GetGCSArtifactURL indicates an expected call of GetGCSArtifactURL.

func (*MockJobRunInfoMockRecorder) GetGCSJunitPaths

func (mr *MockJobRunInfoMockRecorder) GetGCSJunitPaths() *gomock.Call

GetGCSJunitPaths indicates an expected call of GetGCSJunitPaths.

func (*MockJobRunInfoMockRecorder) GetGCSProwJobPath

func (mr *MockJobRunInfoMockRecorder) GetGCSProwJobPath() *gomock.Call

GetGCSProwJobPath indicates an expected call of GetGCSProwJobPath.

func (*MockJobRunInfoMockRecorder) GetHumanURL

func (mr *MockJobRunInfoMockRecorder) GetHumanURL() *gomock.Call

GetHumanURL indicates an expected call of GetHumanURL.

func (*MockJobRunInfoMockRecorder) GetJobName

func (mr *MockJobRunInfoMockRecorder) GetJobName() *gomock.Call

GetJobName indicates an expected call of GetJobName.

func (*MockJobRunInfoMockRecorder) GetJobRunFromGCS

func (mr *MockJobRunInfoMockRecorder) GetJobRunFromGCS(arg0 interface{}) *gomock.Call

GetJobRunFromGCS indicates an expected call of GetJobRunFromGCS.

func (*MockJobRunInfoMockRecorder) GetJobRunID

func (mr *MockJobRunInfoMockRecorder) GetJobRunID() *gomock.Call

GetJobRunID indicates an expected call of GetJobRunID.

func (*MockJobRunInfoMockRecorder) GetOpenShiftTestsFilesWithPrefix

func (mr *MockJobRunInfoMockRecorder) GetOpenShiftTestsFilesWithPrefix(arg0, arg1 interface{}) *gomock.Call

GetOpenShiftTestsFilesWithPrefix indicates an expected call of GetOpenShiftTestsFilesWithPrefix.

func (*MockJobRunInfoMockRecorder) GetProwJob

func (mr *MockJobRunInfoMockRecorder) GetProwJob(arg0 interface{}) *gomock.Call

GetProwJob indicates an expected call of GetProwJob.

func (*MockJobRunInfoMockRecorder) IsFinished

func (mr *MockJobRunInfoMockRecorder) IsFinished(arg0 interface{}) *gomock.Call

IsFinished indicates an expected call of IsFinished.

func (*MockJobRunInfoMockRecorder) SetGCSProwJobPath

func (mr *MockJobRunInfoMockRecorder) SetGCSProwJobPath(arg0 interface{}) *gomock.Call

SetGCSProwJobPath indicates an expected call of SetGCSProwJobPath.

func (*MockJobRunInfoMockRecorder) WriteCache

func (mr *MockJobRunInfoMockRecorder) WriteCache(arg0, arg1 interface{}) *gomock.Call

WriteCache indicates an expected call of WriteCache.

type ReleaseJobRunRow

type ReleaseJobRunRow struct {
	// Name contains the Prow name of this job run.
	Name string `bigquery:"name"`

	// ReleaseTag is the OpenShift version, e.g. 4.8.0-0.nightly-2021-10-28-013428.
	ReleaseTag string `bigquery:"releaseTag"`

	// JobName contains the job name as known by the release controller --
	// this is a shortened form like "aws-serial"
	JobName string `bigquery:"jobName"`

	// Kind contains the job run kind, i.e. whether it's Blocking or Informing.
	Kind string `bigquery:"kind"`

	// State holds the overall status of the job, such as Failed.
	State string `bigquery:"state"`

	// URL contains a link to Prow.
	URL string `bigquery:"url"`

	// Transition time contains the transition time from the release
	// controller.
	TransitionTime time.Time `bigquery:"transitionTime"`

	// Retries contains the number of retries were performed on this job,
	// for this release tag.
	Retries int `bigquery:"retries"`

	// UpgradesFrom contains the source version when this job run is
	// an upgrade.
	UpgradesFrom string `bigquery:"upgradesFrom"`

	// UpgradesTo contains the target version when this job run is
	// an upgrade.
	UpgradesTo string `bigquery:"upgradesTo"`

	// Upgrade is a flag that indicates whether this job run was an upgrade or not.
	Upgrade bool `bigquery:"upgrade"`
}

type ReleasePullRequestRow

type ReleasePullRequestRow struct {
	// PullRequestID contains the GitHub pull request number.
	PullRequestID string `bigquery:"pullRequestID"`

	// ReleaseTag is the OpenShift version, e.g. 4.8.0-0.nightly-2021-10-28-013428.
	ReleaseTag string `bigquery:"releaseTag"`

	// Name contains the names as the repository is known in the release payload.
	Name string `bigquery:"name"`

	// Description is the PR description.
	Description string `bigquery:"description"`

	// URL is a link to the pull request.
	URL string `bigquery:"url"`

	// BugURL links to the bug, if any.
	BugURL string `bigquery:"bugURL"`
}

ReleasePullRequestRow represents a pull request that was included for the first time in a release payload.

type ReleaseRepositoryRow

type ReleaseRepositoryRow struct {
	// Name contains the repositories names as they are known in the release payload. It
	// is often but not always the repository name.
	Name string `bigquery:"name"`

	// ReleaseTag is the OpenShift version, e.g. 4.8.0-0.nightly-2021-10-28-013428.
	ReleaseTag string `bigquery:"releaseTag"`

	// Head contains a link to the repository head of this repo.
	Head string `bigquery:"repositoryHead"`

	// FullChangelog contains a link that diffs the contents of this repo
	// from the prior accepted release.
	FullChangelog string `bigquery:"fullChangeLog"`
}

ReleaseRepositoryRow represents a repository whose contents was updated in the referenced ReleaseTag.

type ReleaseRow

type ReleaseRow struct {
	// Release contains the X.Y version of the payload, e.g. 4.8
	Release string `bigquery:"release"`

	// Major contains the major part of the release, e.g. 4
	Major int `bigquery:"Major"`

	// Minor contains the minor part of the release, e.g. 8
	Minor int `bigquery:"Minor"`

	// GADate contains GA date for the release, i.e. the -YYYY-MM-DD
	GADate bigquery.NullDate `bigquery:"GADate"`

	// DevelStartDate contains start date of development of the release, i.e. the -YYYY-MM-DD
	DevelStartDate civil.Date `bigquery:"DevelStartDate"`

	// Product contains the product for the release, e.g. OCP
	Product bigquery.NullString `bigquery:"Product"`

	// Patch contains the patch version number of the release, e.g. 1
	Patch bigquery.NullInt64 `bigquery:"Patch"`
}

type ReleaseTagRow

type ReleaseTagRow struct {
	// Phase contains the overall status of a payload: e.g. Ready, Accepted,
	// Rejected. We do not store Ready payloads in bigquery, as we only want
	// the release after it's "fully baked."
	Phase string `bigquery:"phase"`

	// Release contains the X.Y version of the payload, e.g. 4.8
	Release string `bigquery:"release"`

	// Stream contains the stream of the payload, e.g. nightly or ci
	Stream string `bigquery:"stream"`

	// Architecture contains the architecture for the release, e.g. amd64
	Architecture string `bigquery:"architecture"`

	// ReleaseTag contains the release version, e.g. 4.8.0-0.nightly-2021-10-28-013428.
	ReleaseTag string `bigquery:"releaseTag"`

	// ReleaseTime contains the time the release was created, i.e. the -YYYY-MM-DD-HHMMSS suffix
	// of 4.8.0-0.nightly-2021-10-28-013428.
	ReleaseTime time.Time `bigquery:"releaseTime"`

	// PreviousReleaseTag contains the previously accepted build, on which any
	// changelog is based from.
	PreviousReleaseTag string `bigquery:"previousReleaseTag"`

	// KubernetesVersion contains the kube version, i.e. 1.22.1.
	KubernetesVersion string `bigquery:"kubernetesVersion"`

	// CurrentOSVersion contains the current machine OS version.
	CurrentOSVersion string `bigquery:"currentOSVersion"`

	// PreviousOSVersion, if any, indicates this release included a machine OS
	// upgrade and this field contains the prior version.
	PreviousOSVersion string `bigquery:"previousOSVersion"`

	// CurrentOSURL is a link to the release page for this machine OS version.
	CurrentOSURL string `bigquery:"currentOSURL"`

	// PreviousOSURL is a link to the release page for the previous machine OS version.
	PreviousOSURL string `bigquery:"previousOSURL"`

	// OSDiffURL is a link to the release page diffing the two OS versions.
	OSDiffURL string `bigquery:"osDiffURL"`
}

type TestPlatformProwJobRow

type TestPlatformProwJobRow struct {
	JobName        string    `bigquery:"prowjob_job_name"`
	State          string    `bigquery:"prowjob_state"`
	BuildID        string    `bigquery:"prowjob_build_id"`
	Type           string    `bigquery:"prowjob_type"`
	Cluster        string    `bigquery:"prowjob_cluster"`
	StartTime      time.Time `bigquery:"prowjob_start_ts"`
	CompletionTime time.Time `bigquery:"prowjob_completion_ts"`
	URL            string    `bigquery:"prowjob_url"`
}

TestPlatformProwJobRow is a transient struct for processing results from the bigquery jobs table populated by testplatform. ProwJob kube resources are stored here after we upload job artifacts to GCS.

type UnifiedTestRunRow

type UnifiedTestRunRow struct {
	TestName        string
	JobRunName      string
	JobName         string
	TestStatus      string
	JobRunStartTime time.Time
	ReleaseTag      string
	Cluster         string
}

Jump to

Keyboard shortcuts

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