func start(flagSet *flag.FlagSet, path string, controller confab.Controller, agentClient *confab.AgentClient) { timeout := confab.NewTimeout(time.After(time.Duration(controller.Config.Confab.TimeoutInSeconds) * time.Second)) _, err := os.Stat(controller.Config.Path.ConsulConfigDir) if err != nil { printUsageAndExit(fmt.Sprintf("\"consul_config_dir\" %q could not be found", controller.Config.Path.ConsulConfigDir), flagSet) } if len(agentClient.ExpectedMembers) == 0 { printUsageAndExit("at least one \"expected-member\" must be provided", flagSet) } err = controller.WriteServiceDefinitions() if err != nil { stderr.Printf("error writing service definitions: %s", err) os.Exit(1) } err = controller.BootAgent(timeout) if err != nil { stderr.Printf("error booting consul agent: %s", err) // DO NOT call StopAgent: // - the agent may aleady be running // - the pidfile may contain the PID of another running process os.Exit(1) } if controller.Config.Consul.Agent.Server { configureServer(controller, agentClient, timeout) } else { configureClient(controller) } }
func start(flagSet *flag.FlagSet, path string, controller confab.Controller, agentClient *agent.Client) { timeout := confab.NewTimeout(time.After(time.Duration(controller.Config.Confab.TimeoutInSeconds) * time.Second)) _, err := os.Stat(controller.Config.Path.ConsulConfigDir) if err != nil { printUsageAndExit(fmt.Sprintf("\"consul_config_dir\" %q could not be found", controller.Config.Path.ConsulConfigDir), flagSet) } if len(agentClient.ExpectedMembers) == 0 { printUsageAndExit("at least one \"expected-member\" must be provided", flagSet) } err = controller.WriteConsulConfig() if err != nil { stderr.Printf("error writing consul config file: %s", err) os.Exit(1) } err = controller.WriteServiceDefinitions() if err != nil { stderr.Printf("error writing service definitions: %s", err) os.Exit(1) } err = controller.BootAgent(timeout) if err != nil { stderr.Printf("error booting consul agent: %s", err) exit(controller, 1) } if controller.Config.Consul.Agent.Mode == "server" { configureServer(controller, agentClient, timeout) } else { configureClient(controller) } }
EncryptKeys: []string{"key 1", "key 2", "key 3"}, Logger: logger, ConfigDir: "/tmp/config", ServiceDefiner: serviceDefiner, Config: confabConfig, } }) Describe("WriteServiceDefinitions", func() { It("delegates to the service definer", func() { definitions := []confab.ServiceDefinition{{ Name: "banana", }} serviceDefiner.GenerateDefinitionsCall.Returns.Definitions = definitions Expect(controller.WriteServiceDefinitions()).To(Succeed()) Expect(serviceDefiner.GenerateDefinitionsCall.Receives.Config).To(Equal(controller.Config)) Expect(serviceDefiner.WriteDefinitionsCall.Receives.ConfigDir).To(Equal("/tmp/config")) Expect(serviceDefiner.WriteDefinitionsCall.Receives.Definitions).To(Equal(definitions)) Expect(logger.Messages).To(ContainSequence([]fakes.LoggerMessage{ { Action: "controller.write-service-definitions.generate-definitions", }, { Action: "controller.write-service-definitions.write", }, { Action: "controller.write-service-definitions.success", }, }))