GitLab upgrade completed. Current version is 17.11.1. We now benefit from the features of the release 17.11.
Cf. https://intranet.grid5000.fr/bugzilla/show_bug.cgi?id=15882
Sur les Aruba le nom des channels comporter un espace si on veut les référencer en ligne de commande ssh (utilisé par KavlanNG), pas d'espace si on veut les référencer dans une requête SNMP (utilisé par la supervision). Donc impossible de les nommer d'une façon qui convienne aux deux dans la refapi.
Solution que je propose:
ssh_pattern
, à l'instar des linecards. Par contre l'entrée linecards
est un tableau, on peut donc avoir une propriété ssh_pattern
par linecard. Dans le cas des channels, c'est directement un hash, on ne peut donc pas ajouter de propriété ssh_pattern
dans l'entrée channels
, on l'appelle donc channels_ssh_pattern
et elle est au même niveau que channels
#{}
) le contenu des ssh_pattern
et channels_ssh_pattern
. Cela permet de faire des manipulations de chaînes de caractères. Par exemple: pour ajouter l'espace dans le nom du channel ("lag1"
-> "lag 1"
), on peut écrire: channels_ssh_pattern: '#{/\D+/.match("%CHANNEL%")} #{/\d+/.match("%CHANNEL%")}'
. Cela ne peut fonctionner que si le générateur KavlanNG est le seul à utiliser les propriétés ssh_pattern
et channels_ssh_pattern
, et il semble que ce soit bien le cas.Point à discuter: le code d'interpolation est dans le générateur KavlanNG. Si dans le futur d'autres outils utilisent ssh_pattern
et channels_ssh_pattern
il faudra dupliquer ce code d'interpolation dans ces outils. C'est pas très souhaitable (d'autant plus si l'outil n'est pas en ruby). Une solution alternative serait que le générateur refapi fasse le travail d'interpolation, et génère des ssh_name
pour chaque port / chaque channel, dont la linecard / le channel aurait un ssh_pattern
/ channels_ssh_pattern
, à l'instar de ce qui est fait pour snmp_pattern
.