[master/rhel7] set proxy related environmental variables (#854029)
David Shea
dshea at redhat.com
Thu Mar 6 21:20:35 UTC 2014
On 03/06/2014 02:29 PM, Brian C. Lane wrote:
> pre and post scripts using utilities like curl should use the global
> proxy setting from the cmdline. libreport will also use this to setup
> the proxy for bug reporting.
>
> Resolves: rhbz#854029
> ---
> anaconda | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/anaconda b/anaconda
> index 192561d..270295e 100755
> --- a/anaconda
> +++ b/anaconda
> @@ -765,6 +765,7 @@ if __name__ == "__main__":
> from pyanaconda import kickstart
> from pyanaconda import ntp
> from pyanaconda import keyboard
> + from pyanaconda.iutil import ProxyString, ProxyStringError
>
> verdesc = "%s for %s %s" % (getAnacondaVersion(),
> product.productName, product.productVersion)
> @@ -935,6 +936,24 @@ if __name__ == "__main__":
> # cmdline flags override kickstart settings
> if anaconda.proxy:
> ksdata.method.proxy = anaconda.proxy
> +
> + # Setup proxy environmental variables so that pre/post scripts use it
> + # as well as libreport
> + try:
> + proxy = ProxyString(anaconda.proxy)
> + except ProxyStringError as e:
> + log.info("Failed to parse proxy \"%s\": %s" % (anaconda.proxy, e))
> + finally:
> + # Set environmental variables to be used by pre/post scripts
> + os.environ["PROXY"] = proxy.noauth_url
> + os.environ["PROXY_USER"] = proxy.username or ""
> + os.environ["PROXY_PASSWORD"] = proxy.password or ""
> +
> + # Variables used by curl, libreport, etc.
> + os.environ["http_proxy"] = proxy.url
> + os.environ["ftp_proxy"] = proxy.url
> + os.environ["HTTPS_PROXY"] = proxy.url
> +
> if flags.noverifyssl:
> ksdata.method.noverifyssl = flags.noverifyssl
> if opts.multiLib:
Shouldn't all the os.environ setting stuff be in the try and not the
finally? If ProxyString throws an exception the proxy variable won't be set.
More information about the anaconda-patches
mailing list