WikiPrint - from Polar Technologies

DETER Containers API

The containers API is a set of simple and extensible operations to control testbed elements. It is primarily a way for the testbed control to communicate with experiment elements. As such it is not usually visible to users. For power users we do supply a passtrough interface so that they can access specializations of containers.

Testbed to Containers Operations

Each of these is sent to a container controller with a distinct address. A controller is often responsible for more than one container. In general we attempt to scale the number of controllers with the number of physical resources so that the testbed can communicate with them directly. In very large testbeds, there may be interconnected controllers acting as relays.

The operations in this section are all exported from the container controller. The testbed discovers container controllers when they report in using the operation in the following section.

All the control commands can be applied to multiple containers simultaneously.

There are only a few things all containers can do:

Begin operating as an experiment element. For a computer, boot; for a flux capacitor, begin travelling in time:

Become quiescent. Only containers API requests will work on a stopped container

Set up the container's internal state. (For a computer, establish accounts and mount filesystems; for a flux capacitor, set travel rate and destination date). Configuration can be a multi-step process to facilitate configuring many containers at once. A base configuration can be distributed broadly and sub-configurations passes to specialized elements. The semantics of combining configurations can vary per-container-type, but are generally a sequential application of configurations.

Containers can describe themselves. Again, controllers can collapse multiple like containers into one operation.

Get the state of containers

Containers to Testbed Operations

A container controller can report a state change to the testbed using the call

As containers are initialized, controllers will check in with the testbed using this call.