Skip to content

Allow use of remote execution for optional remote fetch #4

@Qinusty

Description

@Qinusty

The remote-asset spec specifies an optional feature (quoted below) of the remote-asset Fetch server which bazel requires for a remote downloader to be useful.

  // Servers *MAY* fetch content that they do not already have cached, for any
  // URLs they support.

When integrated into a remote execution deployment it makes sense for these operations to be performed on remote-execution workers. To do this, we can leverage the work in #3 to form an Action representing the URI/Qualifiers and perform these fetches remotely through Execute requests.

This functionality should be a configurable option to enable these remote fetch operations to be distributed through an REv2 Execution service. In the case of bb-scheduler, this provides deduplication and metrics surrounding the relevant actions being executed.

This will require the Action used for storage of Assets to be formed using a Command which can be executed to successfully perform the fetch operation. Due to the flexibility of Qualifiers, it is likely that some pre-processing of qualifiers will be required to determine the appropriate command script to wrap the URI/Qualfiiers with.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions