func (s *localJujuTestSuite) makeFakeUpstartScripts(c *gc.C, env environs.Environ, ) (mongoService *upstart.Service, machineAgent *upstart.Service) { upstartDir := c.MkDir() s.PatchValue(&upstart.InitDir, upstartDir) s.MakeTool(c, "start", `echo "some-service start/running, process 123"`) namespace := env.Config().AllAttrs()["namespace"].(string) mongoService = upstart.NewService(mongo.ServiceName(namespace)) mongoConf := upstart.Conf{ Service: *mongoService, Desc: "fake mongo", Cmd: "echo FAKE", } err := mongoConf.Install() c.Assert(err, gc.IsNil) c.Assert(mongoService.Installed(), jc.IsTrue) machineAgent = upstart.NewService(fmt.Sprintf("juju-agent-%s", namespace)) agentConf := upstart.Conf{ Service: *machineAgent, Desc: "fake agent", Cmd: "echo FAKE", } err = agentConf.Install() c.Assert(err, gc.IsNil) c.Assert(machineAgent.Installed(), jc.IsTrue) return mongoService, machineAgent }
func (s *UpstartSuite) assertInstall(c *gc.C, conf *upstart.Conf, expectEnd string) { expectContent := expectStart + expectEnd expectPath := filepath.Join(conf.InitDir, "some-service.conf") cmds, err := conf.InstallCommands() c.Assert(err, gc.IsNil) c.Assert(cmds, gc.DeepEquals, []string{ "cat >> " + expectPath + " << 'EOF'\n" + expectContent + "EOF\n", "start some-service", }) s.MakeTool(c, "start", "exit 99") err = conf.Install() c.Assert(err, gc.ErrorMatches, ".*exit status 99.*") s.MakeTool(c, "start", "exit 0") err = conf.Install() c.Assert(err, gc.IsNil) content, err := ioutil.ReadFile(expectPath) c.Assert(err, gc.IsNil) c.Assert(string(content), gc.Equals, expectContent) }