luci: go.chromium.org/luci/milo/buildsource/swarming Index | Files

package swarming

import "go.chromium.org/luci/milo/buildsource/swarming"

Index

Package Files

build.go buildLog.go buildinfo.go memoryClient.go

Constants

const (
    // TaskRunning means task is running.
    TaskRunning = "RUNNING"
    // TaskPending means task didn't start yet.
    TaskPending = "PENDING"
    // TaskExpired means task expired and did not start.
    TaskExpired = "EXPIRED"
    // TaskTimedOut means task started, but took too long.
    TaskTimedOut = "TIMED_OUT"
    // TaskBotDied means task started but bot died.
    TaskBotDied = "BOT_DIED"
    // TaskCanceled means the task was canceled. See CompletedTs to determine whether it was started.
    TaskCanceled = "CANCELED"
    // TaskKill means the task was canceled. See CompletedTs to determine whether it was started.
    TaskKilled = "KILLED"
    // TaskCompleted means task is complete.
    TaskCompleted = "COMPLETED"
    // TaskNoResource means there was not enough capacity when scheduled, so the
    // task failed immediately.
    TaskNoResource = "NO_RESOURCE"
)

Swarming task states..

const SwarmingTimeLayout = "2006-01-02T15:04:05.999999999"

SwarmingTimeLayout is time layout used by swarming.

const URLBase = "/swarming/task"

URLBase is the routing prefix for swarming endpoints. It's here so that it can be a constant between the swarmingURLBuilder and the frontend.

Variables

var ErrNotMiloJob = errors.New("Not a Milo Job or access denied", grpcutil.PermissionDeniedTag)

ErrNotMiloJob is returned if a Swarming task is fetched that does not self- identify as a Milo job.

func AddBanner Uses

func AddBanner(build *ui.MiloBuildLegacy, tags strpair.Map)

AddBanner adds an OS banner derived from "os" swarming tag, if present.

func AddProjectInfo Uses

func AddProjectInfo(build *ui.MiloBuildLegacy, tags strpair.Map)

AddProjectInfo adds the luci_project swarming tag to the build.

func AddRecipeLink(build *ui.MiloBuildLegacy, tags strpair.Map)

AddRecipeLink adds links to the recipe to the build.

func BuildbucketBuildIDFromTask Uses

func BuildbucketBuildIDFromTask(c context.Context, host, taskID string) (int64, error)

BuildbucketBuildIDFromTask returns the ID of the buildbucket build that the task represents. If the task does not represent a buildbucket build, returns (0, nil).

func GetBuild Uses

func GetBuild(c context.Context, host, taskID string) (*ui.MiloBuildLegacy, error)

GetBuild returns a milo build from a swarming task id.

func GetLog Uses

func GetLog(c context.Context, host, taskID, logname string) (text string, closed bool, err error)

GetLog loads a step log.

func SwarmingBuildImpl Uses

func SwarmingBuildImpl(c context.Context, svc SwarmingService, taskID string) (*ui.MiloBuildLegacy, error)

SwarmingBuildImpl fetches data from Swarming and LogDog and produces a resp.MiloBuildLegacy representation of a build state given a Swarming TaskID.

func TaskPageURL Uses

func TaskPageURL(swarmingHostname, taskID string) *url.URL

TaskPageURL returns a URL to a human-consumable page of a swarming task. Supports host aliases.

type BuildID Uses

type BuildID struct {
    // (Required) The Swarming TaskID.
    TaskID string

    // (Optional) The Swarming host. If empty, will use the
    // milo-instance-configured swarming host.
    Host string
}

BuildID is swarming's notion of a Build. See buildsource.ID.

type BuildInfoProvider Uses

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

BuildInfoProvider provides build information.

In a production system, this will be completely defaults. For testing, the various services and data sources may be substituted for testing stubs.

func (*BuildInfoProvider) GetBuildInfo Uses

func (p *BuildInfoProvider) GetBuildInfo(c context.Context, req *milo.BuildInfoRequest_Swarming,
    projectHint string) (*milo.BuildInfoResponse, error)

GetBuildInfo resolves a Milo protobuf Step for a given Swarming task.

type SwarmingService Uses

type SwarmingService interface {
    GetHost() string
    GetSwarmingResult(c context.Context, taskID string) (*swarming.SwarmingRpcsTaskResult, error)
    GetSwarmingRequest(c context.Context, taskID string) (*swarming.SwarmingRpcsTaskRequest, error)
    GetTaskOutput(c context.Context, taskID string) (string, error)
}

SwarmingService is an interface that fetches data from Swarming.

In production, this is fetched from a Swarming host. For testing, this can be replaced with a mock.

Package swarming imports 37 packages (graph) and is imported by 6 packages. Updated 2019-08-25. Refresh now. Tools for package owners.