BonFIRE logo and link to main BonFIRE site

Previous topic

Example HTTP Request/Response Session

Next topic

Experiment Descriptors

This Page

Overview of Client ToolsΒΆ

One can interact with BonFIRE in many ways, such as via the BonFIRE Portal, Command Line Interface Tools or directly via the BonFIRE API. The API is RESTful, which is exposed over the HTTP protocol and can be accessed via

Using the BonFIRE API requires that you are already registered as a BonFIRE user. If not, head over to Getting a BonFIRE Account and follow the instructions.

To create experiments and Cloud resources in BonFIRE, it is possible to issue raw HTTP commands to the BonFIRE API via, for example, cURL. However, we also offer multiple client tools for interacting easily and effectively with BonFIRE:

  • BonFIRE Portal: a graphical client tool that operates via your web browser, which is very intuitive to use. The Portal also gives you the option to set up a Managed Experiment in a step-by-step procedure to define the initial deployment of compute, storage and networking resources for your experiment. As part of this procedure, the Portal will create an Experiment Descriptor, which you can save and use again.
  • BonFIRE Experiment Descriptor: instead of following a step-by-step procedure on the Portal, you can write/edit an experiment descriptor in either JSON or OVF. These descriptors are interpreted by an Experiment Manager, allowing you to describe all of the resources for an initial deployment of an experiment without needing to know OCCI or how to form HTTP messages.
  • Restfully: a general-purpose client library for RESTful APIs, which is written in Ruby. Its goal is to abstract the nitty-gritty details of exchanging HTTP requests between the user-agent and the server. Restfully also allows you to write scripts for your experiment deployment which can be automatically executed.
  • Command Line Interface Tools: BonFIRE also offers CLI tools that are meant to provide users with a way to interact with the BonFIRE API from a command line interface. This could be used in an interactive, manual, fashion or programmatically (i.e., scripted).