maintenance 바로 반영 안되는 문제 수정
This commit is contained in:
@ -457,9 +457,15 @@ func (mg *Maingate) RegisterHandlers(ctx context.Context, serveMux *http.ServeMu
|
||||
|
||||
logger.Println("Service is registered :", mg.service().ServiceCode)
|
||||
if *devflag {
|
||||
serveMux.HandleFunc(gocommon.MakeHttpHandlerPattern(prefix, mg.service().ServiceCode, "/"), mg.service().serveHTTP_dev)
|
||||
serveMux.HandleFunc(gocommon.MakeHttpHandlerPattern(prefix, mg.service().ServiceCode, "/"), func(w http.ResponseWriter, r *http.Request) {
|
||||
// mg.service()를 요청마다 불러야 함
|
||||
mg.service().serveHTTP_dev(w, r)
|
||||
})
|
||||
} else {
|
||||
serveMux.HandleFunc(gocommon.MakeHttpHandlerPattern(prefix, mg.service().ServiceCode, "/"), mg.service().serveHTTP)
|
||||
serveMux.HandleFunc(gocommon.MakeHttpHandlerPattern(prefix, mg.service().ServiceCode, "/"), func(w http.ResponseWriter, r *http.Request) {
|
||||
// mg.service()를 요청마다 불러야 함
|
||||
mg.service().serveHTTP(w, r)
|
||||
})
|
||||
}
|
||||
serveMux.HandleFunc(gocommon.MakeHttpHandlerPattern(prefix, "api/"), mg.api)
|
||||
|
||||
|
||||
@ -258,7 +258,17 @@ func (sh *serviceDescription) prepare(mg *Maingate) error {
|
||||
|
||||
if globalApiToken, err := primitive.ObjectIDFromHex(config.GlobalMaingateToken); err == nil {
|
||||
if !globalApiToken.IsZero() {
|
||||
sh.ServerApiTokens = append(sh.ServerApiTokens, globalApiToken)
|
||||
f := func() bool {
|
||||
for _, t := range sh.ServerApiTokens {
|
||||
if t == globalApiToken {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}()
|
||||
if !f {
|
||||
sh.ServerApiTokens = append(sh.ServerApiTokens, globalApiToken)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -857,10 +867,14 @@ func (sh *serviceDescription) serveHTTP(w http.ResponseWriter, r *http.Request)
|
||||
divname := queryvals.Get("div")
|
||||
divname = strings.Trim(divname, `"`)
|
||||
div := sh.Divisions[divname]
|
||||
var addrresp string
|
||||
if div != nil {
|
||||
logger.Println("/addr :", divname, div.State)
|
||||
|
||||
switch div.State {
|
||||
case DivisionState_FullOpen:
|
||||
w.Write([]byte(fmt.Sprintf(`{"service":"%s"}`, div.Url)))
|
||||
addrresp = fmt.Sprintf(`{"service":"%s"}`, div.Url)
|
||||
//w.Write([]byte(fmt.Sprintf(`{"service":"%s"}`, div.Url)))
|
||||
|
||||
case DivisionState_RestrictedOpen:
|
||||
// 점검중이면 whitelist만 입장 가능
|
||||
@ -874,10 +888,12 @@ func (sh *serviceDescription) serveHTTP(w http.ResponseWriter, r *http.Request)
|
||||
wm := &whitelistmember{Email: authInfo.Email, Platform: authInfo.Platform}
|
||||
if _, ok := sh.wl.get(wm.Key()); ok {
|
||||
// qa 권한이면 입장 가능
|
||||
w.Write([]byte(fmt.Sprintf(`{"service":"%s"}`, div.Url)))
|
||||
addrresp = fmt.Sprintf(`{"service":"%s"}`, div.Url)
|
||||
//w.Write([]byte(fmt.Sprintf(`{"service":"%s"}`, div.Url)))
|
||||
} else if div.Maintenance != nil {
|
||||
// 권한이 없으므로 공지
|
||||
w.Write([]byte(fmt.Sprintf(`{"notice":"%s"}`, div.Maintenance.link)))
|
||||
addrresp = fmt.Sprintf(`{"notice":"%s"}`, div.Maintenance.link)
|
||||
//w.Write([]byte(fmt.Sprintf(`{"notice":"%s"}`, div.Maintenance.link)))
|
||||
} else {
|
||||
logger.Println("div.Maintenance is nil :", divname)
|
||||
}
|
||||
@ -885,11 +901,15 @@ func (sh *serviceDescription) serveHTTP(w http.ResponseWriter, r *http.Request)
|
||||
case DivisionState_Maintenance:
|
||||
// 점검중. 아무도 못들어감
|
||||
if div.Maintenance != nil {
|
||||
w.Write([]byte(fmt.Sprintf(`{"notice":"%s"}`, div.Maintenance.link)))
|
||||
logger.Println("/addr :", divname, div.State, *div.Maintenance)
|
||||
addrresp = fmt.Sprintf(`{"notice":"%s"}`, div.Maintenance.link)
|
||||
//w.Write([]byte(fmt.Sprintf(`{"notice":"%s"}`, div.Maintenance.link)))
|
||||
} else {
|
||||
logger.Println("div.Maintenance is nil :", divname)
|
||||
}
|
||||
}
|
||||
logger.Println("/addr resp :", addrresp)
|
||||
w.Write([]byte(addrresp))
|
||||
} else {
|
||||
logger.Println("div is not found :", divname, sh.Divisions)
|
||||
logger.Println("check maingate database 'service.divisions' :", config.Mongo)
|
||||
|
||||
Reference in New Issue
Block a user