2017-10-23 1 views
0

Ich habe ein merkwürdiges Szenario im Moment. Wenn ich einen Befehl svn info TXN REPO auf unserem Build-Server (getrennt vom SVN-Server) ausgibt, funktioniert es wie erwartet und zeigt die relevanten Informationen auf der Konsole an.SVN SSL-Zertifikat Nicht vertrauenswürdig über Python-Skript

Wenn ich es jedoch mit Python und speziell Popen aus dem Unterprozessmodul skript, druckt es eine Nachricht svn: E230001: Server SSL certificate untrusted auf den Standardfehler (Konsole).

Was ich versucht habe:

Mit --non-interactive und --trust-server-cert Flaggen im Skriptaufruf.

Übergeben Sie einen Benutzernamen/ein Passwort innerhalb der svn info Aufruf über das Skript.

Die obigen zwei scheinen nicht zu wirken, und der gleiche Fehler wie oben wird ausgespuckt. Die manuelle Ausführung desselben Befehls über die Eingabeaufforderung ist jedoch ohne Probleme möglich. Ich nehme an, es könnte etwas damit zu tun haben, dass Python eine neue Sitzung für den SVN-Server eröffnet, und diese Sitzung ist keine "vertrauenswürdige" Verbindung? Aber ich kann mir nicht sicher sein.

Unser SVN-Server auf einem Windows-Rechner und ist Version 1.8.0

Unser Build-Server ein Windows-Rechner Version läuft Jenkins 2,84 ist. Jenkins führt ein Batch-Skript aus, das das Python-Skript startet und die obige Aufgabe ausführt.

Befehl: svn_session = Popen("svn info --non-interactive --trust-server-cert --no-auth-cache -r %s %s" % (TXN, REPOS), stdout=PIPE, stderr=PIPE, shell=True)

** ** Bearbeiten

Wenn ich kopiere und die Python-Linie aus dem Skript in den interaktiven Python-Shell auf dem gleichen Server einfügen, der Befehl funktioniert wie erwartet. Das Problem ist also, wie das Skript den Befehl ausführt, anstatt den Befehl selbst oder wie Python diesen Befehl ausführt. **

Hat jemand schon mal darüber gestoßen?

Antwort

Verwandte Themen