Tâche #33520
Scénario #33440: problème lié à la gestion du dhcp via l'EAD3 sur module scribe AD
tester
Début:
13/12/2021
Echéance:
% réalisé:
100%
Restant à faire (heures):
0.0
Historique
#1 Mis à jour par Emmanuel GARETTE il y a environ 4 ans
Sur un Scribe etb1 en 2.7.2 ou 2.8.1, on peut reproduire l'erreur en remplissant le fichier /var/lib/dhcp/dhcpd.leases :
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.4.1
# authoring-byte-order entry is generated, DO NOT DELETE
authoring-byte-order little-endian;
lease 1.1.1.1 {
starts 1 2022/01/03 13:17:40;
ends 1 2022/01/03 23:17:40;
cltt 1 2022/01/03 13:17:40;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 1c:1c:1c:1c:1c:1c;
uid "\001\034lll\235|";
set vendor-class-identifier = "MSFT 5.0";
client-hostname "CCCC_C";
}
On voit l'erreur :
root@scribe:~# cd /srv/ead3/salt/_modules
root@scribe:/srv/ead3/salt/_modules# python3
Type "help", "copyright", "credits" or "license" for more information.
>>> import ead
>>> ead.__salt__ = None
>>> ead.__utils__ = None
>>> ead.__context__ = None
>>> ead.dhcp_get_leases()
Traceback (most recent call last):
File "/srv/ead3/salt/_modules/ead/dhcp/__init__.py", line 269, in get_leases
_DomainnameOption('test', '', name, type_='domainname', allow_ip=False, allow_without_dot=True, allow_uppercase=True)
File "/usr/lib/python3/dist-packages/tiramisu/option/option.py", line 492, in __init__
super(DomainnameOption, self).__init__(name, doc, default=default,
File "/usr/lib/python3/dist-packages/tiramisu/option/baseoption.py", line 164, in __init__
raise err
ValueError: "CCCC_C" est une valeur invalide pour l'option "test" de type nom de domaine
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/srv/ead3/salt/_modules/ead/__init__.py", line 55, in func
return getattr(module, function)(*args, **kwargs)
File "/srv/ead3/salt/_modules/ead/dhcp/__init__.py", line 40, in wrapper
return func(*args, **kwargs)
File "/srv/ead3/salt/_modules/ead/dhcp/__init__.py", line 271, in get_leases
lease['client-hostname'] = None
TypeError: 're.Match' object does not support item assignment
Après mise à jour :
root@scribe:/srv/ead3/salt/_modules# python3
Python 3.8.10 (default, Nov 26 2021, 20:14:08)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ead
>>> ead.__salt__ = None
>>> ead.__utils__ = None
>>> ead.__context__ = None
>>> ead.dhcp_get_leases()
{'leases': [{'id': 0, 'name': None, 'address': '1.1.1.1', 'mac': '1c:1c:1c:1c:1c:1c', 'expiration': '2022/01/03 23:17:40'}]}
>>>
#2 Mis à jour par Ludwig Seys il y a environ 4 ans
- Statut changé de Nouveau à En cours
- Assigné à changé de Arnaud FORNEROT à Ludwig Seys
#3 Mis à jour par Ludwig Seys il y a environ 4 ans
- Statut changé de En cours à Résolu
le résultat à été reproduit :
-{'leases': [{'id': 0, 'name': None, 'address': '1.1.1.1', 'mac': '1c:1c:1c:1c:1c:1c', 'expiration': '2022/01/03 23:17:40'}]}
#4 Mis à jour par Ludwig Seys il y a environ 4 ans
- % réalisé changé de 0 à 100
#5 Mis à jour par Joël Cuissinat il y a environ 4 ans
- Statut changé de Résolu à Fermé
- Restant à faire (heures) mis à 0.0
OK (testé ligne de commande et interface)