-
Notifications
You must be signed in to change notification settings - Fork 31
Bug dans l'import glpi #27
Description
Bonjour une exception est levée lors de la remontée des indos vers glpi
Nov 19 09:01:33 srv-wapt wapttasks[1723]: [2021-11-19 09:01:33,593] ERROR:huey:Worker-2:Unhandled exception in task 94551018-671d-41f4-a1d2-3aec09020aae. Nov 19 09:01:33 srv-wapt wapttasks[1723]: Traceback (most recent call last): Nov 19 09:01:33 srv-wapt wapttasks[1723]: File "/opt/wapt/lib/python3.8/site-packages/huey/api.py", line 360, in _execute Nov 19 09:01:33 srv-wapt wapttasks[1723]: task_value = task.execute() Nov 19 09:01:33 srv-wapt wapttasks[1723]: File "/opt/wapt/lib/python3.8/site-packages/huey/api.py", line 724, in execute Nov 19 09:01:33 srv-wapt wapttasks[1723]: return func(*args, **kwargs) Nov 19 09:01:33 srv-wapt wapttasks[1723]: File "/opt/wapt/waptserver/decorators.py", line 285, in wrapper Nov 19 09:01:33 srv-wapt wapttasks[1723]: result = f(*args, **kwargs) Nov 19 09:01:33 srv-wapt wapttasks[1723]: File "/opt/wapt/lib/python3.8/site-packages/huey/api.py", line 807, in inner Nov 19 09:01:33 srv-wapt wapttasks[1723]: return fn(*args, **kwargs) Nov 19 09:01:33 srv-wapt wapttasks[1723]: File "/opt/wapt/waptserver/glpi_tasks.py", line 37, in upload_to_glpi_cron Nov 19 09:01:33 srv-wapt wapttasks[1723]: upload_hosts_inventories(conf['glpi_server_user'], conf['glpi_server_pass'], conf['glpi_server_endpoint'], Nov 19 09:01:33 srv-wapt wapttasks[1723]: File "/opt/wapt/waptserver/glpi_upload_hosts.py", line 189, in upload_hosts_inventories Nov 19 09:01:33 srv-wapt wapttasks[1723]: hinv.create_inventory(d) Nov 19 09:01:33 srv-wapt wapttasks[1723]: File "/opt/wapt/waptserver/glpi_wapt_inventory.py", line 189, in create_inventory Nov 19 09:01:33 srv-wapt wapttasks[1723]: if self.data_refactoring() == -1: Nov 19 09:01:33 srv-wapt wapttasks[1723]: File "/opt/wapt/waptserver/glpi_wapt_inventory.py", line 162, in data_refactoring Nov 19 09:01:33 srv-wapt wapttasks[1723]: battery['SBDS_Serial_Number'] = int(val, 16) Nov 19 09:01:33 srv-wapt wapttasks[1723]: ValueError: invalid literal for int() with base 16: 'Battery 0'
Le pb vient du code ci-dessous :
`
if isinstance(orig_data,dict):
orig_data = [orig_data]
for battery in orig_data:
battery['Design_Capacity'] = battery['Design_Capacity'].replace('mWh','').strip()
try:
val = battery['SBDS_Manufacture_Date']
except:
val = battery['Manufacture_Date']
battery['SBDS_Manufacture_Date'] = '%s/%s/%s' % (val[8:10],val[5:7],val[0:4])
try:
val = battery['SBDS_Serial_Number']
except:
val = battery['Serial_Number']
battery['SBDS_Serial_Number'] = int(val, 16)
battery['Design_Voltage'] = battery['Design_Voltage'].replace('mV','').strip()
temp_list.append(battery)
self.data['dmi']['Portable_Battery'] = temp_list
`
Il faut tester que
val = battery['Serial_Number']
renvoie un entier sinon
battery['SBDS_Serial_Number'] = int(val, 16)
crashe, ou tout du moins mettre ce traitment dans un try catch.