func (s *proxySuite) TestSetEnvironmentValues(c *gc.C) { s.PatchEnvironment("http_proxy", "initial") s.PatchEnvironment("HTTP_PROXY", "initial") s.PatchEnvironment("https_proxy", "initial") s.PatchEnvironment("HTTPS_PROXY", "initial") s.PatchEnvironment("ftp_proxy", "initial") s.PatchEnvironment("FTP_PROXY", "initial") s.PatchEnvironment("no_proxy", "initial") s.PatchEnvironment("NO_PROXY", "initial") proxySettings := proxy.Settings{ Http: "http proxy", Https: "https proxy", // Ftp left blank to show clearing env. NoProxy: "10.0.3.1,localhost", } proxySettings.SetEnvironmentValues() obtained := proxy.DetectProxies() c.Assert(obtained, gc.DeepEquals, proxySettings) c.Assert(os.Getenv("http_proxy"), gc.Equals, "http proxy") c.Assert(os.Getenv("HTTP_PROXY"), gc.Equals, "http proxy") c.Assert(os.Getenv("https_proxy"), gc.Equals, "https proxy") c.Assert(os.Getenv("HTTPS_PROXY"), gc.Equals, "https proxy") c.Assert(os.Getenv("ftp_proxy"), gc.Equals, "") c.Assert(os.Getenv("FTP_PROXY"), gc.Equals, "") c.Assert(os.Getenv("no_proxy"), gc.Equals, "10.0.3.1,localhost") c.Assert(os.Getenv("NO_PROXY"), gc.Equals, "10.0.3.1,localhost") }
func (w *proxyWorker) handleProxyValues(proxySettings proxyutils.Settings) { proxySettings.SetEnvironmentValues() if proxySettings != w.proxy || w.first { logger.Debugf("new proxy settings %#v", proxySettings) w.proxy = proxySettings if err := w.writeEnvironment(); err != nil { // It isn't really fatal, but we should record it. logger.Errorf("error writing proxy environment file: %v", err) } } }