G5k/multisite: migrate to Providers.
The idea is to scope our G5k provider. Scoping means that the actions on remote resources (e.g jobs) are restricted to a white list of sites. Another key thing is that working on a single site or working in multisite follows a similar workflow:
reserve -> get resources -> initial provisionning (deploy |
grant_root_access)
Note that the initial provisioning
takes as input the resources
(nodes, networks) got from the get_resources
function and already
works with resources from different sites.
In conclusion we only need to make sure the reserve
and the
get_resources
work in a multisite setting.
The generic workflow is implemented in a G5KBase
class and we
introduce two inherited classes (G5kSingleSite and G5kMultisite). The latter will
overwrite the reserve to work with the Providers (plural) abstraction
and reload the resources from all sites (unscoped provider).