You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+19Lines changed: 19 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,3 +52,22 @@ async fn main() {
52
52
}
53
53
}
54
54
```
55
+
56
+
## A word about server backends
57
+
58
+
There are three valid options for backends for a given server. These are:
59
+
60
+
-`CVMFS`: This backend requires `cvmfs/info/v1/repositories.json` to be present on the server. Scrape fails if it is missing.
61
+
-`S3`: Does not even attempt to fetch `cvmfs/info/v1/repositories.json`. Note that if any server has S3 as a backend a list of repositories *must* be passed to the scraper as there is no other way to determine the list of repositories for S3 servers. Due to the async scraping of all servers, there is currently no support for falling back on repositories detected from other server types (including possibly the Stratum0).
62
+
-`AutoDetect`: This backend Aatempts to fetch `cvmfs/info/v1/repositories.json` but does not fail if it is missing. If the scraper fails to fetch the file, the backend will be assumed to be S3. If the list of repositories is empty, the scraper will return an empty list. If your S3 server has no repositories, setting the backend to AutoDetect will allow the scraper to continue without failing.
63
+
64
+
For populated servers, the field `backend_detected` will be set to the detected backend, which for explicit S3 or CVMFS servers will be the same as requested type.
65
+
66
+
## What repositories are scraped?
67
+
68
+
- For servers that are set to or detected as CVMFS, the scraper will scrape the union of the detected and configurations explicitly stated repositories.
69
+
- For servers that are set to or detected as S3, only the explicitly stated repositories will be scraped (and the scraper will fail if the server type is explicitly set to S3 and no repositories are passed).
70
+
71
+
## License
72
+
73
+
Licensed under the MIT license. See the LICENSE file for details.
Copy file name to clipboardExpand all lines: src/models/cvmfs_published.rs
+28-18Lines changed: 28 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -8,22 +8,28 @@ use crate::utilities::{parse_boolean_field, parse_hex_field, parse_number_field}
8
8
/// The manifest of a repository or replica.
9
9
///
10
10
/// The fields are:
11
-
/// - C: Cryptographic hash of the repository’s current root catalog
12
-
/// - B: Size of the root file catalog in bytes
13
-
/// - A: true if the catalog should be fetched under its alternative name
14
-
/// - R: MD5 hash of the repository’s current root path (usually always d41d8cd98f00b204e9800998ecf8427e)
15
-
/// - X: Cryptographic hash of the signing certificate
16
-
/// - G: true if the repository is garbage-collectable
17
-
/// - H: Cryptographic hash of the repository’s named tag history database
18
-
/// - T: Unix timestamp of this particular revision
19
-
/// - D: Time To Live (TTL) of the root catalog
20
-
/// - S: Revision number of this published revision
21
-
/// - N: The full name of the manifested repository
22
-
/// - M: Cryptographic hash of the repository JSON metadata
23
-
/// - Y: Cryptographic hash of the reflog checksum
24
-
/// - L: currently unused (reserved for micro catalogs)
25
-
/// signature - In order to provide authoritative information about a repository publisher, the repository manifest is signed by an X.509 certificate together with its private key.
26
-
11
+
/// - c: Cryptographic hash of the repository’s current root catalog
12
+
/// - b: Size of the root file catalog in bytes
13
+
/// - a: true if the catalog should be fetched under its alternative name
14
+
/// - r: MD5 hash of the repository’s current root path (usually always d41d8cd98f00b204e9800998ecf8427e)
15
+
/// - x: Cryptographic hash of the signing certificate
16
+
/// - g: true if the repository is garbage-collectable
17
+
/// - h: Cryptographic hash of the repository’s named tag history database
18
+
/// - t: Unix timestamp of this particular revision
19
+
/// - d: Time To Live (TTL) of the root catalog
20
+
/// - s: Revision number of this published revision
21
+
/// - n: The full name of the manifested repository
22
+
/// - m: Cryptographic hash of the repository JSON metadata
23
+
/// - y: Cryptographic hash of the reflog checksum
24
+
/// - l: currently unused (reserved for micro catalogs)
25
+
/// - signature: In order to provide authoritative information about a repository publisher, the
26
+
/// repository manifest is signed by an X.509 certificate together with its private key.
27
+
/// This field is not validated by this library.
28
+
///
29
+
/// Note that the field names are lowercase, but the field names in the manifest itself are uppercase.
30
+
///
31
+
/// See https://cvmfs.readthedocs.io/en/stable/cpt-details.html#repository-manifest-cvmfspublished for
32
+
/// more information.
27
33
#[derive(Deserialize,Serialize,Clone,PartialEq)]
28
34
pubstructManifest{
29
35
pubc:HexString,
@@ -68,8 +74,10 @@ impl std::fmt::Debug for Manifest {
0 commit comments