func runAgent(logger logger.Logger) chan error { errCh := make(chan error, 1) go func() { defer logger.HandlePanic("Main") logger.Debug(mainLogTag, "Starting agent") fs := boshsys.NewOsFileSystem(logger) app := boshapp.New(logger, fs) err := app.Setup(os.Args) if err != nil { logger.Error(mainLogTag, "App setup %s", err.Error()) errCh <- err return } err = app.Run() if err != nil { logger.Error(mainLogTag, "App run %s", err.Error()) errCh <- err return } }() return errCh }
func NewProvider( platform boshplatform.Platform, client boshmonit.Client, logger boshlog.Logger, dirProvider boshdir.Provider, handler boshhandler.Handler, ) (p Provider) { fs := platform.GetFs() runner := platform.GetRunner() timeService := clock.NewClock() monitJobSupervisor := NewMonitJobSupervisor( fs, runner, client, logger, dirProvider, jobSupervisorListenPort, MonitReloadOptions{ MaxTries: 3, MaxCheckTries: 6, DelayBetweenCheckTries: 5 * time.Second, }, timeService, ) network, err := platform.GetDefaultNetwork() var machineIP string if err != nil { machineIP, _ = os.Hostname() logger.Debug("providerWindows", "Initializing jobsupervisor.provider_windows: %s, using hostname \"%s\"instead of IP", err, machineIP) } else { machineIP = network.IP } p.supervisors = map[string]JobSupervisor{ "monit": monitJobSupervisor, "dummy": NewDummyJobSupervisor(), "dummy-nats": NewDummyNatsJobSupervisor(handler), "windows": NewWindowsJobSupervisor(runner, dirProvider, fs, logger, jobSupervisorListenPort, make(chan bool), machineIP), } return }
func NewRandomizer( actionFactory bltaction.Factory, cliRunnerFactory bltclirunner.Factory, fs boshsys.FileSystem, logger boshlog.Logger, ) Randomizer { seed := time.Now().Unix() logger.Debug("randomizer", "Using random seed: %d", seed) rand.Seed(seed) return &randomizer{ actionFactory: actionFactory, cliRunnerFactory: cliRunnerFactory, state: [][]ActionInfo{}, maxDelayInMilliseconds: 5000, fs: fs, logger: logger, } }