Add Geo project/file registry details in the UI
https://gitlab.com/gitlab-org/gitlab-ee/issues/4880 lays out the design for this:
Description
Geo secondaries have a wealth of information about project and file synchronization. There is an API for reading this data, but we should also allow failures to be exposed in the UI.
There are two obvious places for this:
A. Project page
e.g. https://gitlab.com/gitlab-org/gitlab-ce
On the secondary, we can show an "out of date!" warning, telling all users of the secondary that there are changes waiting to be synced. If the sync is suffering errors, we can display those here too, and go from a "warning" state to an "error" state.
A customer also asked to add a button to force the resync: ZD: https://gitlab.zendesk.com/agent/tickets/96217
There might be an argument for displaying this data only to admins, but I'm comfortable with at least showing it to project members, and probably everyone.
Example from pull mirroring
For project mirrors, we have this handy interface at the top of the repository for 10.6:
Something like this, showing "Last update" details and an "Update" button, would be handy for Geo as well.
B. Admin page
We should have a simple CRUD interface to all the project and file registries. The /admin/geo_nodes
page can link the failures to this page. It should be possible to look up the status of any project, and perhaps to find all projects with a given error text, from this interface.
Design
Contexual Sidebar
- Add Projects under Geo.
- "Geo nodes" is changed to Nodes.
New structure:
- Geo
- Nodes
- Projects
Geo > Projects
- There is a tab bar includes:
-
All
: Will be sorted by the most up-to-date to the least one. -
Pending
: Will be sorted by the oldest up-to-date -
Failures
: Will be sorted by the many amounts of retry first and up-to-date as the second parameter, so if something is really broken and for a considerable amount of time, this will be the first item -
Never
: Same logic withPending
.
-
- The "Project" boxes are not collapsible. (Updated on July 25)
- It shows 20 "project" boxes on every single page.
- The project names link to the specific project page (e.g.
https://gitlab.com/gitlab-org/gitlab-ee
)
Project homepage | Geo > Projects |
---|---|
The information in the different statuses:
-
Synced
-
Status
: In sync / Synced Last successful sync
Last time verified
- Button: [Resync] / [Recheck]
-
-
Pending
-
Status
: Pending Next sync scheduled at
Last successful sync
- Button: [Recheck]
-
-
Failures
-
Status
: Failed to sync / Failed to verify Last successful sync
Retry counts
-
Last synchronization attemp
orLast verification attemp
-
Error message
will be in the "More" section. ("More" section is collapsed as default) - Button: [Resync]/[Redownload]
-
-
Never
-
Status
: (Not sure the status type here) Last successful sync
Project created
- Button: none
-
Synced | Pending |
---|---|
Failures | Never |
---|---|
Warning/Error messages
Warning
- Copy:
There are some changes waiting to be synced on this Geo secondary. [Sync now] or [Learn more]
- Learn more navigates users to Geo > Projects page.
- Background color:
$orange-500
Error
- Copy:
There are some syncing errors on this Geo secondary. [Sync now] or [Learn more]
- Learn more navigates users to Geo > Projects page.
- Background color:
$red-500