Roles
=====

It is possible to define a set of roles you want to distinguish at backend side. One node can own one
role which it will announce via respondd/announced inside the mesh. This will make it easier to differentiate
nodes when parsing respondd data. E.g to count only **normal** nodes and not the gateways
or servers (nodemap). A lot of things are possible.

For this the section ``roles`` in ``site.conf`` is needed::

  roles = {
    default = 'node',
    list = {
      'node',
      'test',
      'backbone',
      'service',
    },
  },

The strings to display in the web interface are configured per language in the
``i18n/en.po``, ``i18n/de.po``, etc. files of the site repository using message IDs like
``gluon-web-node-role:role:node`` and ``gluon-web-node-role:role:backbone``.

The value of ``default`` is the role every node will initially own. This value should be part of ``list`` as well.
If you want node owners to change the defined roles via config-mode you can add the package
``gluon-web-node-role`` to your ``site.mk``.

The role is saved in ``gluon-node-info.system.role``. To change the role using command line do::

  uci set gluon-node-info.@system[0].role="$ROLE"
  uci commit

Please replace ``$ROLE`` by the role you want the node to own.
