Expose Geo project/file registry details in the UI: MVC

Scope

This is a MVC issue for implementing a first version of https://gitlab.com/gitlab-org/gitlab-ee/issues/4880 in 11.1 since having this information in the UI soon is of value. Once the ~"design artifact" is done, we will enhance the UI according to the design outcome.

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:

image

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.

Assignee Loading
Time tracking Loading