Swarming endpoints. Includes builds and logs.

  • build.go - Ingests annotee

  • build_test.go - Tests for build.go

  • buildLog.go - Displays build logs

  • memoryClient.go - In memory butler client for annotee

  • html.go - Plain ol' html endpoints




View Source
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..

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

      SwarmingTimeLayout is time layout used by swarming.

      View Source
      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.


        View Source
        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

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

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

            func AddProjectInfo

            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 GetBuild

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

                  GetBuild returns a milo build from a swarming task id.

                  func GetLog

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

                    GetLog loads a step log.

                    func RedirectsFromTask

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

                      RedirectsFromTask returns either

                      * The ID of the buildbucket build corresponding to this task. OR
                      * The build.proto logdog stream from this swarming task.

                      If the task does not represent a buildbucket build, returns (0, "", nil).

                      func SwarmingBuildImpl

                      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

                        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

                          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.