func main() { err := conf.Init_conf("proxy") // TODO config not adapted for proxy if err != nil { fmt.Fprintf(os.Stderr, "ERROR: error reading conf file: "+err.Error()) os.Exit(1) } //if !conf.INIT_SUCCESS { // conf.PrintServerUsage() // os.Exit(1) //} fmt.Printf("--------AWE Proxy running--------\n\n") conf.Print("proxy") if _, err := os.Stat(conf.DATA_PATH); err != nil && os.IsNotExist(err) { if err := os.MkdirAll(conf.DATA_PATH, 0777); err != nil { fmt.Fprintf(os.Stderr, "ERROR in creating data_path %s\n", err.Error()) os.Exit(1) } } if _, err := os.Stat(conf.LOGS_PATH); err != nil && os.IsNotExist(err) { if err := os.MkdirAll(conf.LOGS_PATH, 0777); err != nil { fmt.Fprintf(os.Stderr, "ERROR in creating log_path %s\n", err.Error()) os.Exit(1) } } if _, err := os.Stat(conf.DATA_PATH + "/temp"); err != nil && os.IsNotExist(err) { if err := os.Mkdir(conf.DATA_PATH+"/temp", 0777); err != nil { fmt.Fprintf(os.Stderr, "ERROR: %v\n", err) os.Exit(1) } } //init proxy mgr core.InitResMgr("proxy") //init logger logger.Initialize("proxy") //launch server control := make(chan int) go core.QMgr.JidHandle() go core.QMgr.TaskHandle() go core.QMgr.ClientHandle() go core.QMgr.ClientChecker() go launchAPI(control, conf.API_PORT) var host string if hostname, err := os.Hostname(); err == nil { host = fmt.Sprintf("%s:%d", hostname, conf.API_PORT) } logger.Event(event.SERVER_START, "host="+host) if conf.PID_FILE_PATH != "" { f, err := os.Create(conf.PID_FILE_PATH) if err != nil { err_msg := "Could not create pid file: " + conf.PID_FILE_PATH + "\n" fmt.Fprintf(os.Stderr, err_msg) logger.Error("ERROR: " + err_msg) os.Exit(1) } defer f.Close() pid := os.Getpid() fmt.Fprintln(f, pid) fmt.Println("##### pidfile #####") fmt.Printf("pid: %d saved to file: %s\n\n", pid, conf.PID_FILE_PATH) } profile, err := worker.ComposeProfile() if err != nil { fmt.Fprintf(os.Stderr, "fail to compose profile: %s\n", err.Error()) os.Exit(1) } self, err := worker.RegisterWithAuth(conf.SERVER_URL, profile) if err != nil { fmt.Fprintf(os.Stderr, "fail to register: %s\n", err.Error()) os.Exit(1) } core.InitClientProfile(self) core.InitProxyWorkChan() fmt.Printf("Proxy registered, name=%s, id=%s\n", self.Name, self.Id) logger.Event(event.CLIENT_REGISTRATION, "clientid="+self.Id) if err := worker.InitWorkers(self); err == nil { worker.StartProxyWorkers() } else { fmt.Printf("failed to initialize and start workers:" + err.Error()) } <-control //block till something dies }
func main() { if !conf.INIT_SUCCESS { conf.PrintServerUsage() os.Exit(1) } fmt.Printf("--------AWE Proxy running--------\n\n") conf.Print("proxy") if _, err := os.Stat(conf.DATA_PATH); err != nil && os.IsNotExist(err) { if err := os.MkdirAll(conf.DATA_PATH, 0777); err != nil { fmt.Fprintf(os.Stderr, "ERROR in creating data_path %s\n", err.Error()) os.Exit(1) } } if _, err := os.Stat(conf.LOGS_PATH); err != nil && os.IsNotExist(err) { if err := os.MkdirAll(conf.LOGS_PATH, 0777); err != nil { fmt.Fprintf(os.Stderr, "ERROR in creating log_path %s\n", err.Error()) os.Exit(1) } } if _, err := os.Stat(conf.DATA_PATH + "/temp"); err != nil && os.IsNotExist(err) { if err := os.Mkdir(conf.DATA_PATH+"/temp", 0777); err != nil { fmt.Fprintf(os.Stderr, "ERROR: %v\n", err) os.Exit(1) } } //init proxy mgr core.InitResMgr("proxy") //init logger logger.Initialize("proxy") //launch server control := make(chan int) go core.QMgr.Handle() go core.QMgr.Timer() go core.QMgr.ClientChecker() go launchAPI(control, conf.API_PORT) var host string if hostname, err := os.Hostname(); err == nil { host = fmt.Sprintf("%s:%d", hostname, conf.API_PORT) } logger.Event(event.SERVER_START, "host="+host) profile, err := worker.ComposeProfile() if err != nil { fmt.Fprintf(os.Stderr, "fail to compose profile: %s\n", err.Error()) os.Exit(1) } self, err := worker.RegisterWithProfile(conf.SERVER_URL, profile) if err != nil { fmt.Fprintf(os.Stderr, "fail to register: %s\n", err.Error()) os.Exit(1) } core.InitClientProfile(self) core.InitProxyWorkChan() fmt.Printf("Proxy registered, name=%s, id=%s\n", self.Name, self.Id) logger.Event(event.CLIENT_REGISTRATION, "clientid="+self.Id) if err := worker.InitWorkers(self); err == nil { worker.StartProxyWorkers() } else { fmt.Printf("failed to initialize and start workers:" + err.Error()) } <-control //block till something dies }