Plan of action for source mirroring (client-side)
- From: Jonathan Maw <jonathan maw codethink co uk>
- To: buildstream-list gnome org
- Subject: Plan of action for source mirroring (client-side)
- Date: Tue, 15 May 2018 15:29:10 +0100
Hi,
This E-mail is a summary of what's planned for the source mirroring
work. I feel it's important to have because Valentin and I are working
on this in parallel and need to be sure we're working with the same
assumptions.
The main point of synchronisation is ensuring that the place I look for
mirrors generated by buildstream is the same place that Valentin stores
mirrors.
To this end, I will do the following:
* Create a new class of error, RefNotFoundError, which subclasses from
SourceError.
* When fetching from buildstream-generated mirrors, it will have the
format {URL}/sources/{source_kind}/{URL_directory_name}/{mirror_number}
where {URL} is the URL of the buildstream mirror generated via config,
{source_kind} is the kind of the source (as specified in the yaml's
"kind" field),
{URL_directory_name} is the URL specified for the source, mangled into
a valid name for a directory (e.g. git://github.com becomes
git___github_com),
{mirror_number} as a number starting from 0, and incrementing every
time fetching/tracking returns a RefNotFoundError instead of a general
SourceError.
* To enforce part of this functionality / make it easier to change
later, I will add a helper method to Source, e.g.
Source.get_normalised_mirror_path(upstream_url, *, prefix="",
suffix="")
Please let me know if there are any ambiguities / things I've forgotten
to discuss.
Thanks,
Jonathan
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]