Fehler im localfunction "linuxInstallOneFile"?

Antworten
KrawczykHIS
Beiträge: 62
Registriert: 05 Nov 2015, 11:26

Fehler im localfunction "linuxInstallOneFile"?

Beitrag von KrawczykHIS »

Moin!

mir ist bei der Benutzung des localfuntion "linuxInstallOneFile" ein Fehler aufgefallen? Laut Doku (https://download.uib.de/opsi_stable/doc ... opsiscript) sollte bei der erfolgreichen Installation ein exitcode also String "true" und alles andere "false" ergeben.

Mit meiner manuelle Überprüfung auf meinen Test-Client hat ergeben, dass die Funktion das deb Paket - erfolgreich installiert wurde. Aber im Log die Rückgabewert verkehrt übergeben werden. Also erfolgreich = "false" und nicht erfolgreich = true".

Mein Auszug aus dem Log (Level 8):
(947) [8] [2023-09-18 11:08:31.204] [o4i_rocketchat] We are coming from function with index: -1 (-1 = base)
(948) [8] [2023-09-18 11:08:31.204] [o4i_rocketchat] We enter the defined function: linuxinstallonefile with 38 lines. inDefFuncLevel: 1 and index: 16
(949) [8] [2023-09-18 11:08:31.204] [o4i_rocketchat] Paramnr: 0 is the string: /media/opsi_depot/o4i_rocketchat/installfiles/rocketchat-3.9.7-linux-amd64.deb
(950) [8] [2023-09-18 11:08:45.093] [o4i_rocketchat] We leave the defined function: linuxinstallonefile ; inDefFuncLevel: 0
(951) [7] [2023-09-18 11:08:45.093] [o4i_rocketchat] stringToBool(linuxInstallOneFile($FullSetupFileDir$)) <<< result false
(952) [6] [2023-09-18 11:08:45.093] [o4i_rocketchat] Then
(953) [6] [2023-09-18 11:08:45.093] [o4i_rocketchat] EndIf
Hierzu ein Auszug meines opsi-script dazu:

Code: Alles auswählen

importlib "uib_lin_install"
DefVar $Setupfiledir$ = "%ScriptPath%/installfiles/"
DefStringList $Listfiles$ = listFiles($Setupfiledir$, "*.deb", "true")
if not (count($Listfiles$) = "1")
	isFatalError "Obviously the maintainer forgot to delete an old installer file!!!"
endif
DefVar $FullSetupFileDir$ = takeString(-1,$Listfiles$)
if stringToBool(linuxInstallOneFile($FullSetupFileDir$))
	comment "success"
endif
Mein Testrechner:
Ubuntu 22.04.3 LTS
opsi-linux-client-agent: 4.2.0.40-1
opsi-scirpt: 4.12.10.0-4

Viele Grüße
Patrick
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: Fehler im localfunction "linuxInstallOneFile"?

Beitrag von d.oertel »

Hallo Patrick,

danke für den Hinweis.

Ja hier ist etwas durcheinander und die doku der Funktion ist falsch.
stringtobool wandelt den String 'true' in boolean true um, so das dies dann direkt als condition für eine if Anweisung verwendet werden kann.
Wird verwendet für selbst definierte funktionen die ja als Rückgabe wert keine boolsche werte haben können.
Die funktion linuxInstallOneFile liefert aber mehr exitcode style mässig '-1' / '0' zurück und damit kann stringtobool nix anfangen.
Ich kümmere mich darum.

gruß
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Antworten