func (s *AptSuite) TestAptProxyContentPartial(c *gc.C) { proxy := osenv.ProxySettings{ Http: "[email protected]", } output := utils.AptProxyContent(proxy) expected := `Acquire::http::Proxy "[email protected]";` c.Assert(output, gc.Equals, expected) }
func (s *MachineEnvironmentWatcherSuite) TestInitialStateLocalMachine1(c *gc.C) { proxySettings, aptProxySettings := s.updateConfig(c) agentConfig := agentConfig("1", provider.Local) envWorker := s.makeWorker(c, agentConfig) defer worker.Stop(envWorker) s.waitProxySettings(c, proxySettings) s.waitForFile(c, s.proxyFile, proxySettings.AsScriptEnvironment()+"\n") s.waitForFile(c, utils.AptConfFile, utils.AptProxyContent(aptProxySettings)+"\n") }
func (s *MachineEnvironmentWatcherSuite) TestRespondsToEvents(c *gc.C) { agentConfig := agentConfig("0", "ec2") envWorker := s.makeWorker(c, agentConfig) defer worker.Stop(envWorker) s.waitForPostSetup(c) proxySettings, aptProxySettings := s.updateConfig(c) s.waitProxySettings(c, proxySettings) s.waitForFile(c, s.proxyFile, proxySettings.AsScriptEnvironment()+"\n") s.waitForFile(c, utils.AptConfFile, utils.AptProxyContent(aptProxySettings)+"\n") }
func (w *MachineEnvironmentWorker) handleAptProxyValues(aptSettings osenv.ProxySettings) { if w.writeSystemFiles && (aptSettings != w.aptProxy || w.first) { logger.Debugf("new apt proxy settings %#v", aptSettings) w.aptProxy = aptSettings // Always finish with a new line. content := utils.AptProxyContent(w.aptProxy) + "\n" err := ioutil.WriteFile(utils.AptConfFile, []byte(content), 0644) if err != nil { // It isn't really fatal, but we should record it. logger.Errorf("error writing apt proxy config file: %v", err) } } }
func (s *AptSuite) TestAptProxyContentRoundtrip(c *gc.C) { proxy := osenv.ProxySettings{ Http: "http://[email protected]", Https: "https://[email protected]", Ftp: "ftp://[email protected]", } output := utils.AptProxyContent(proxy) s.HookCommandOutput(&utils.AptCommandOutput, []byte(output), nil) detected, err := utils.DetectAptProxies() c.Assert(err, gc.IsNil) c.Assert(detected, gc.DeepEquals, proxy) }
// AddAptCommands update the cloudinit.Config instance with the necessary // packages, the request to do the apt-get update/upgrade on boot, and adds // the apt proxy settings if there are any. func AddAptCommands(proxy osenv.ProxySettings, c *cloudinit.Config) { // Bring packages up-to-date. c.SetAptUpdate(true) c.SetAptUpgrade(true) // juju requires git for managing charm directories. c.AddPackage("git") c.AddPackage("curl") c.AddPackage("cpu-checker") c.AddPackage("bridge-utils") c.AddPackage("rsyslog-gnutls") // Write out the apt proxy settings if (proxy != osenv.ProxySettings{}) { filename := utils.AptConfFile c.AddBootCmd(fmt.Sprintf( `[ -f %s ] || (printf '%%s\n' %s > %s)`, filename, shquote(utils.AptProxyContent(proxy)), filename)) } }
func (s *AptSuite) TestAptProxyContentEmpty(c *gc.C) { output := utils.AptProxyContent(osenv.ProxySettings{}) c.Assert(output, gc.Equals, "") }