Internal Server Error bei Update von C__CATG__VIRTUAL_MACHINE
-
Hallo zusammen,
ich möchte via API bei einem Virtuellen Server die Kategorie "Virtuelle Maschine" nutzen und hier zunächst die Option "Virtuelle Maschine" (anstatt "Keine Virtuelle Maschine") setzen:
Dazu nutze ich folgenden API-Aufruf:
{ "jsonrpc": "2.0", "method": "cmdb.category.save", "params": { "object": 73292, "data": { "virtual_machine": 2 }, "category": "C__CATG__VIRTUAL_MACHINE", "apikey": "xxx", "language": "en" }, "id": 1 }
Die "2" bei "virtual_machine" steht dabei für "Ja", "3" würde für "Nein" stehen. Das sind zumindest die Werte, dich ich bekomme, wenn ich das Feld über die GUI setzte und dann per API auslese.
Während der angegebene Aufruf funktioniert, wenn ich anstatt "virtual_machine" ein anderes Feld (z.B. "system" oder "hosts") setze, bekomme ich so immer einen "500 - Internal Server Error" zurück. Das API-Log am Server zeigt dabei keinen Fehler beim Request an. Im Apache-Log scheint allerdings folgender Fehler auf:
[proxy_fcgi:error] [pid 66451] [client x.x.x.x:56170] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught TypeError: call_user_func(): Argument #1 ($callback) must be a valid callback, non-static method idoit\\Module\\Api\\Dialog\\DialogAdmin::byCallback() cannot be called statically in /var/www/html/src/classes/modules/api/src/Dialog/AdminBuilder.php:153 Stack trace: #0 /var/www/html/src/classes/modules/api/src/Dialog/AdminBuilder.php(153): call_user_func() #1 /var/www/html/src/classes/modules/api/model/cmdb/isys_api_model_cmdb_category.class.php(1263): idoit\\Module\\Api\\Dialog\\AdminBuilder->build() #2 /var/www/html/src/classes/modules/api/model/cmdb/isys_api_model_cmdb_category.class.php(1049): isys_api_model_cmdb_category->validateDialogProperties() #3 /var/www/html/src/classes/modules/api/model/cmdb/isys_api_model_cmdb_category.class.php(1417): isys_api_model_cmdb_category->sync_wrapper() #4 /var/www/html/src/classes/modules/api/model/isys_api_model_cmdb.class.php(235): isys_api_model_cmdb_category->save() #5 [internal function]: isys_api_model_cmdb->route() #6 /...'
Mache ich etwas falsch oder ist das ein Bug in der API?
-
Hallo nochmal,
habe den Fehler mittlerweile gefunden - ist ein Bug in der Programmierung der API, der mit einer kleinen Codeänderung behoben werden kann. Kann ich das irgendwo einreichen oder interessiert das eh niemanden?
-
Hallo @manidu
entschuldige die späte Antwort - der Bug ist uns in der Entwicklung auch schon untergekommen und wird mit dem nächsten API Release gelöst.
Grundlegend kann jeder, der Interesse hat, als "Entwicklungspartner" (und Contributor) aktiv am Code mitarbeiten bzw. Verbesserungen oder Bugfixes beitragen Darüber hinaus erhält jeder Entwicklungspartner lesenden Zugriff auf die GIT Repositories und kann sich dadurch auch Tagesaktuelle "Vorab" Versionen ziehen.
Das ist für die jeweilige Person natürlich komplett kostenlos!Mehr Infos findest du unter:
https://www.i-doit.com/partner/developer/Viele Grüße
Leo -
This post is deleted! -
@LFischer Danke für die Info! Da ich doch recht viel mit der API arbeite und immer wieder kleine Workarounds finden muss, werde ich mir das mit den Entwicklungspartnern mal ansehen.