Mentions légales du service

Skip to content
Snippets Groups Projects

reference-repository

reference-repository is Grid'5000's single source of truth about sites, clusters, nodes, and network topology.

There are several important parts:

  • data/ is the set of JSON files that describe Grid'5000. They are exposed by the reference API (for example: curl -k https://api.grid5000.fr/sid/sites/nancy/clusters/graoully/nodes/graoully-1.json?pretty )
  • input/ is the set of YAML files used to generate data/. The files in input/ are either:
    • manually created and edited by admins
    • generated by g5k-checks (this is the case of the nodes descriptions, in the nodes/ directory of each cluster)
  • validators and generators
    • to check input/ data for consistency
    • to generate the configuration of various services (and the list of OAR properties)

All tasks are executed using rake. To see the list of tasks, use rake -T.

See also:

Setup

We use bundler to manage dependencies.

apt install bundler # or gem install bundler -v 1.17.3
bundler install --standalone # this installs dependencies in the 'bundle' directory
rake reference-api # or other commands

Credentials

all tools that require to authenticate against Grid'5000 use credentials from ~/.grid5000_api.yml. Example:

 uri: https://api.grid5000.fr/
 username: username
 password: password
 version: stable

Some development information

  • Run rspec tests: bundler exec rspec
    • This generates coverage information in the coverage/ directory
  • Explore the code using code-explorer: bundle exec code-explorer
  • Run mutation testing:
    • A specific method: bundler exec mutant --include lib --require refrepo --use rspec 'OarProperties#get_oar_properties_from_oar'
    • The whole OAR properties generator (takes a long time): bundler exec mutant --include lib --require refrepo --use rspec 'OarProperties'