Device Classes are located in a special directory
in our Git repository. This directory is embedded into the Thola binary using
This allows Thola having access to the information provided by the device classes without
needing the device class directory as an additional dependency.
The device class directory is structured in a hierarchy which represents the relations between device classes. A device class can inherit information from another device class. This inheritance is automatically done by Thola depending on the location of the YAML file inside the directory. When defining a sub class for an already existing device class, the YAML file of this sub class needs to be located in a directory which is located in the same directory as the YAML file of the parent device class and has the name of that parent class.
The following example shows a small part of the device class hierarchy:
├── generic │.. ├── adva_fsp3kr7.yaml │...├── arista_eos.yaml │.. ├── audiocodes.yaml │.. ├── aviat.yaml │.. ├── ceraos │.. │.. └── ip10.yaml │.. ├── ceraos.yaml │.. ├── clavister.yaml │ ... │ └── generic.yaml
At the top level, there are only two files. The YAML file
generic.yaml defines the
behavior for the generic device class. All other device classes, which inherit from
this class, are located in the
This directory contains various YAML files, which all represent a device class,
and additional directories, which introduce a new level in the inheritance hierarchy.
For instance, the YAML file located at
generic/ceraos/ip10.yaml defines a device class
for Ceragon IP-10 devices. This device class inherits from the
ceraos device class,
which is defined at
generic/ceraos.yaml. This device class again inherits from
Every device class in Thola inherits from
generic. Therefore, when creating a new device class, it has to
be created inside the