gdi-by / downloadclient

GDI-BY DownloadClient
Apache License 2.0
2 stars 0 forks source link

Proxy-Einstellungen auch für Konsolenprogramme der Verarbeitungskette verwenden #70

Closed gdi-by closed 6 years ago

gdi-by commented 7 years ago

Die Proxy-Einstellungen aus der Konfigurationsdatei proxy.xml sollen auch für die Konsolenprogramme der Verarbeitungskette (z.B. ogr2ogr) verwendet werden. Bevor durch den DownloadClient die Konsolenprogramme gestartet werden, soll dieser dynamisch die entsprechenden Umgebungsvariablen (http_proxy, https_proxy, no_proxy) gemäß proxy.xml setzen.

Hintergrund: die aktuelle Version ogr2ogr (verwendet im Verarbeitungsschritt "toShape") hat zwei unterschiedliche Modi zur Konvertierung einer GML-Datei in das Format Shapefile. Falls auf das Schema im Header der GML-Datei zugegriffen werden kann, wird dieses verwendet. Falls nicht zugegriffen werden kann, wird eine generische Analyse des GML durchgeführt.

JuergenWeichand commented 7 years ago

Hierzu sollte es ausreichen, die Variablen http_proxy, https_proxy und no_proxy der environment Map des ProcessBuilder (https://github.com/gdi-by/downloadclient/blob/05b93dc34752559d59c7bbb44c151cc3931d8397/src/main/java/de/bayern/gdi/processor/ExternalProcessJob.java) hinzuzufügen.

List<String> cmd = commandList();   
ProcessBuilder builder = new ProcessBuilder(cmd);
Map<String, String> env = builder.environment();        
env.put("http_proxy", "http://proxy-url");
env.put("https_proxy", "http://proxy-url");
env.put("no_proxy", "localhost,127.0.0.1");

Verifiziert mit Windows 7.

jsaalfeld commented 7 years ago

Wir haben vor einiger Zeit bereits das setzen mit Umgebungsvariablen in Betracht gezogen. Diese Methode erscheint uns jedoch nicht gefestigt genug. In den anschließenden Programmen, die in der Verabeitungskette genutzt werden gibt es keine oder nur wenige Dokumentation und Hinweise darüber, ob die Software auf die gesetzten Umgebungsvariablen zugreift. Zudem wissen wir nicht, wie das handling von Umgebungsvariablen in exotischeren Betriebssystemen von statten geht. Es gab viele "wenns" und "abers", die uns bislang davon abgehalten haben.

Im speziellen Fall von ogr2ogr gibt es Hinweise über eine Berücksichtigung (https://trac.osgeo.org/gdal/wiki/ConfigOptions#GDAL_HTTP_PROXY), da dies aber Third-Party-Software ist, kann keine Garantie dafür gegeben werden dass es fortlaufend und sicher funktioniert. Wir haben keinen Einfluss auf die Entwicklung dieser Software.

gdi-by commented 7 years ago

Risiko bei Third-Party-Software ist bekannt. Bisherige Tests unter WIN 7 waren aber erfolgreich, wie bereits oben erwähnt. Bei der Umsetzung obige Kommentare von Owner und Collaborator bitte beachten.

dmth commented 7 years ago

Mit https://github.com/gdi-by/downloadclient/pull/80 wurde dieser Punkt umgesetzt.

gdi-by commented 6 years ago

Verifiziert mit PR #99. Issue behoben und wird damit geschlossen