Node ownership

The concept of node ownership implemented in WalT helps users to share platform resources when using the platform at the same time. As shown below, the platform usage remains very flexible (see walt help show design-notes for related concepts).

“Acquiring” and “Releasing” nodes

A node is considered to be used by 0 or 1 user at a given time. If 0, the node appears as “free”. If 1, we consider that this user owns the node. Users can get or release ownership of a (set of) node(s) by using commands walt node acquire <node(s)> and walt node release <node(s)>.

When running walt node show with no option, only the nodes one owns are listed. When running walt node show --all, free ones and those of other users are listed too.

After a node is released, it appears as “free” for all users. At the end of an experiment, a good practice is to release all the nodes one owns:

$ walt node release my-nodes

(my-nodes is a keyword, cf. walt help show device-sets for details.)

Releasing PoE-powered nodes also allows automatic power savings (cf. walt help show optional-features).

Users usually acquire nodes from the set of “free” ones. However, a teammate may have forgotten to release some nodes. In this case, one can still acquire such nodes owned by someone else but a confirmation is required.

Relation with OS images

A “free” node is a node that boots its default image. Thus, command walt node release <node(s)> is actually the same as walt node boot <node(s)> default.

The default image of a node is an image stored in walt internal repository with the name waltplatform/<node-model>-default. When a new model of node is connected to the platform, the default image is downloaded from the docker hub in the background and associated to the new node.

A node belonging to a given user is a node that boots one of the images of that user. Thus, walt node acquire <node(s)> is actually the same as:

$ walt image clone walt:waltplatform/<node-model>-default  # I get my own clone of the default image
$ walt node boot <node(s)> <node-model>-default            # I associate nodes to my new image

For clarity regarding images supporting several node models, walt node acquire sometimes gives a different name to the cloned image (not <node-model>-default). This name is obviously printed.

New users automatically get a clone of the default images present on the platform, the first time they type walt image show. It is possible to update the default images present on the platform using walt advanced update-default-images. This command will look for newer default images on remote registries (docker hub and/or any private registry configured) and will also query the docker daemon running on the WALT server.