| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to allow the artifact cache to be cleaned up, this patch allows for a
/delete method which can remove artifacts from the cache. It takes the
following arguments:
artifact=artifactname
The artifact will be deleted and a JSON object returned in the form:
{
"status": errno,
"reason": strerror
}
Where errno is zero on success, 1 on EPERM, 2 on ENOENT etc. and reason is the
strerror of the errno, in case the architectures differ between caller and
cache.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than pushing artifacts to the cache, this method allows the caller to
specify a host and artifact which the cache server will then fetch into its
local cache. It takes the following arguments:
host=hostname:port
artifact=artifactname
This is transformed into a fetch to:
http://hostname:port/artifacts?basename=artifactname
Which is then fetched into the cache under the given name.
The return from this is a JSON object of the form:
{
"filename": artifactname,
"size": NBYTES_SIZE_OF_FILE,
"used": NBYTES_DISK_SPACE_USED
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When --enable-writes is set, we provide a /list target which produces
a JSON dictionary of information about the state of the artifact cache.
The dictionary is of the form:
{
"freespace": NBYTES_OF_SPACE,
"files": {
"artifact-filename": {
"atime": ATIME_AS_NUMBER,
"size": NBYTES_SIZE_OF_FILE,
"used": NBYTES_USED_ON_DISK
},
...
}
}
This allows a controller to decide which artifacts have not been requested in
some time and also how big artifacts are, not only in terms of their 'byte'
size, but also the space they consume on disk. System images in particular may
differ in this respect since they should be sparsely stored.
|
|
|
|
|
|
|
| |
Since we need to be able to update the cache from builders, this patch
introduces a --enable-writes argument to morph-cache-server and also adds a
@writable decorator to the class ready for marking particular paths which are
only available when --enable-writes is set.
|
|
|
|
|
| |
In order to allow multiple morph-cache-server instances to run on
a single system, we need to support running on different ports.
|
|
|
|
|
|
|
|
| |
Morph now expects the tree SHA1 in addition when resolving references
using the cache server. This is to better facilitate correct cache
key computation since commits can be made which have no tree changes
and thus nothing to usefully affect the build. (For example the morph
branch and build features)
|
|
|
|
|
|
|
| |
Direct-mode, when enabled, causes morph-cache-server to assume a more
Trove-like structure for the repositories, rather than the morph-cache
structure which it was originally written for. This means that for
the workers, we can use the original code and for Trove, the direct mode.
|
|
|
|
| |
This reverts commit f1fba299bd07510346082ef985ef08a494dca9d9.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
/trees queries take repo URI, a SHA1 ref and an optional path parameter.
The result is a JSON dictionary of the form
{
"repo": "<repo URI>",
"ref": "<SHA1 ref>",
"tree": {
"filename1": {
"mode": "100644",
"kind": "blob",
"sha1": "FOOBARBAZ"
},
...
}
}
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Resolving a ref may result in a different SHA1 between any two requests,
so we simply should never allow the results to be cached by an HTTP
cache.
|
| |
|
|
|