commit | ff3272b223b48415d7742a3c3b6de17f52307f27 | [log] [tgz] |
---|---|---|
author | Fabio Ponciroli <ponch78@gmail.com> | Mon Nov 14 21:42:31 2022 +0100 |
committer | Fabio Ponciroli <ponch78@gmail.com> | Mon Nov 14 21:43:47 2022 +0100 |
tree | b19f076098097bb5fb4c2c3133b0cb4b0f9a6219 | |
parent | 2239a974997988c173590c56b02753661d248dc5 [diff] | |
parent | 1ee36f783f7d2d0c90aeb7b1f9e932031e0a5151 [diff] |
Merge branch 'stable-3.4' * stable-3.4: Missing "events" namespace in IT tests Import events from correct namespace Change-Id: I11c514dd4ea55701dc040c1f66c6f5316f603283
Record and display the repository's replication status without having to dig into the Gerrit replication_log
Consumes replication events and updates a cache with the latest replication status of specific refs to specific remotes.
The cache information is then exposed via a project's resource REST endpoint:
curl -v --user <user> '<gerrit-server>/a/projects/<project-name>/remotes/<remote-url>/replication-status'
For instance, to assess the replication status of the project some/project
to the https://github.com/some/project.git
URL, the following endpoint should be called:
curl -v --user <user> '<gerrit-server>/a/projects/some%2Fproject/remotes/https%3A%2F%2Fgithub.com%2Fsome%2Fproject.git/replication-status'
A payload, similar to this may be returned:
{ "remotes": { "https://github.com/some/project.git": { "status": { "refs/changes/01/1/meta": { "type": "PUSH", "status": "SUCCEEDED", "when": 1626688830 }, "refs/changes/03/3/meta": { "type": "PUSH", "status": "SUCCEEDED", "when": 1626688854 }, "refs/changes/03/3/1": { "type": "PUSH", "status": "SUCCEEDED", "when": 1626688854 }, "refs/changes/02/2/1": { "type": "PUSH", "status": "SUCCEEDED", "when": 1626688844 }, "refs/changes/02/2/meta": { "type": "PUSH", "status": "SUCCEEDED", "when": 1626688844 }, "refs/changes/01/1/1": { "type": "PUSH", "status": "SUCCEEDED", "when": 1626688830 }, "refs/changes/04/4/meta": { "type": "PULL", "status": "SUCCEEDED", "when": 1628000641 }, "refs/changes/04/4/1": { "type": "PULL", "status": "SUCCEEDED", "when": 1628000641 } } } }, "status": "OK", "project": "some/project" }
The endpoint returns different HTTP response code depending on the result:
The REST-API response shows a status
field, which shows the overall replication-status of the projects for the specified remote.
OK
- all the refs have successfully replicatedFAILED
- Some refs have not replicated successfully