division변경시 서비스에 통지

This commit is contained in:
2023-06-09 16:38:38 +09:00
parent 30c1671e46
commit 6d529b4b8b

View File

@ -1,8 +1,10 @@
package core package core
import ( import (
"bytes"
"context" "context"
"encoding/hex" "encoding/hex"
"encoding/json"
"net/http" "net/http"
"os" "os"
"path" "path"
@ -312,14 +314,25 @@ func (mg *Maingate) watchServiceCollection(parentctx context.Context, serveMux *
atomic.SwapPointer(&old.wl.emailptr, data.Service.wl.emailptr) atomic.SwapPointer(&old.wl.emailptr, data.Service.wl.emailptr)
old.Divisions = data.Service.Divisions old.Divisions = data.Service.Divisions
} else if !data.Service.Closed { for _, div := range old.Divisions {
if err := data.Service.prepare(mg); err != nil { var req *http.Request
logger.Error("service cannot be prepared :", data.Service, err) if div.State == DivisionState_Maintenance {
} else { bt, _ := json.Marshal(div.Maintenance)
logger.Println("service is on the board! :", data.Service) req, _ = http.NewRequest("POST", div.Url+"/maingate", bytes.NewBuffer(bt))
mg.services.add(data.Service) } else {
serveMux.Handle(common.MakeHttpHandlerPattern(prefix, data.Service.ServiceCode, "/"), data.Service) req, _ = http.NewRequest("POST", div.Url+"/maingate", nil)
}
// MG-X-API-TOKEN
req.Header.Add("MG-X-API-TOKEN", old.ServerApiTokens[0].Hex())
if resp, err := http.DefaultClient.Do(req); err == nil {
resp.Body.Close()
}
} }
} else if !data.Service.Closed {
logger.Println("service is on the board! :", data.Service)
mg.services.add(data.Service)
serveMux.Handle(common.MakeHttpHandlerPattern(prefix, data.Service.ServiceCode, "/"), data.Service)
} }
case "delete": case "delete":
if deleted := mg.services.remove(data.DocumentKey.Id); deleted != nil { if deleted := mg.services.remove(data.DocumentKey.Id); deleted != nil {