func main() { clusters := argParse() // setup cbauth up := strings.Split(options.auth, ":") _, err := cbauth.InternalRetryDefaultInit(clusters[0], up[0], up[1]) if err != nil { log.Fatalf("Failed to initialize cbauth: %s", err) } maxvbs := c.SystemConfig["maxVbuckets"].Int() dconf := c.SystemConfig.SectionConfig("indexer.dataport.", true) // start dataport servers. for _, endpoint := range options.endpoints { go dataport.Application( endpoint, options.stat, options.timeout, maxvbs, dconf, func(addr string, msg interface{}) bool { return true }) } go dataport.Application(options.coordEndpoint, 0, 0, maxvbs, dconf, nil) for _, cluster := range clusters { adminport := getProjectorAdminport(cluster, "default") if options.projector { config := c.SystemConfig.Clone() config.SetValue("projector.clusterAddr", cluster) config.SetValue("projector.adminport.listenAddr", adminport) econf := c.SystemConfig.SectionConfig("projector.dataport.", true) epfactory := NewEndpointFactory(cluster, maxvbs, econf) config.SetValue("projector.routerEndpointFactory", epfactory) projector.NewProjector(maxvbs, config) // start projector daemon } // projector-client cconfig := c.SystemConfig.SectionConfig("indexer.projectorclient.", true) projectors[cluster] = projc.NewClient(adminport, maxvbs, cconfig) } // index instances for specified buckets. instances := protobuf.ExampleIndexInstances( options.buckets, options.endpoints, options.coordEndpoint) // start backfill stream on each projector for _, client := range projectors { // start backfill stream on each projector _, err := client.InitialTopicRequest( "backfill" /*topic*/, "default", /*pooln*/ "dataport" /*endpointType*/, instances) if err != nil { log.Fatal(err) } } time.Sleep(1000 * time.Second) //<-make(chan bool) // wait for ever }
func main() { platform.HideConsole(true) defer platform.HideConsole(false) c.SeedProcess() logging.Infof("Projector started with command line: %v\n", os.Args) cluster := argParse() // eg. "localhost:9000" config := c.SystemConfig.Clone() logging.SetLogLevel(logging.Level(options.loglevel)) config.SetValue("maxVbuckets", options.numVbuckets) if f := getlogFile(); f != nil { fmt.Printf("Projector logging to %q\n", f.Name()) logging.SetLogWriter(f) config.SetValue("log.file", f.Name()) } config.SetValue("projector.clusterAddr", cluster) config.SetValue("projector.adminport.listenAddr", options.adminport) // setup cbauth if options.auth != "" { up := strings.Split(options.auth, ":") if _, err := cbauth.InternalRetryDefaultInit(cluster, up[0], up[1]); err != nil { logging.Fatalf("Failed to initialize cbauth: %s", err) } } epfactory := NewEndpointFactory(cluster, options.numVbuckets) config.SetValue("projector.routerEndpointFactory", epfactory) logging.Infof("%v\n", c.LogOs()) logging.Infof("%v\n", c.LogRuntime()) go c.ExitOnStdinClose() projector.NewProjector(options.numVbuckets, config) <-done }