로거 되돌림
This commit is contained in:
@ -20,6 +20,7 @@ import (
|
||||
"time"
|
||||
"unsafe"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
"repositories.action2quare.com/ayo/houston/shared/protos"
|
||||
|
||||
@ -196,7 +197,7 @@ func NewClient() (HoustonClient, error) {
|
||||
|
||||
var client *grpc.ClientConn
|
||||
for {
|
||||
shared.Logger().Println("grpc.DialContext :", clientConfig.GrpcAddress)
|
||||
logger.Println("grpc.DialContext :", clientConfig.GrpcAddress)
|
||||
dialContext, cancelDial := context.WithTimeout(context.Background(), 15*time.Second)
|
||||
client, err = grpc.DialContext(dialContext, clientConfig.GrpcAddress, grpc.WithBlock(), grpc.WithTransportCredentials(insecure.NewCredentials()))
|
||||
if err == nil {
|
||||
@ -205,11 +206,11 @@ func NewClient() (HoustonClient, error) {
|
||||
}
|
||||
|
||||
cancelDial()
|
||||
shared.Logger().Println("grpc.DialContext failed :", err)
|
||||
logger.Println("grpc.DialContext failed :", err)
|
||||
time.Sleep(5 * time.Second)
|
||||
}
|
||||
|
||||
shared.Logger().Println("grpc.DialContext succeeded")
|
||||
logger.Println("grpc.DialContext succeeded")
|
||||
exefile, err := os.Executable()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -292,12 +293,12 @@ func NewClient() (HoustonClient, error) {
|
||||
args = append(args, os.Args[1:]...)
|
||||
cmd := exec.Command(replacer, args...)
|
||||
if err := cmd.Start(); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
} else {
|
||||
hc.shutdownFunc()
|
||||
}
|
||||
} else {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
}
|
||||
} else {
|
||||
if err := hc.deploy(&dr); err == nil {
|
||||
@ -305,7 +306,7 @@ func NewClient() (HoustonClient, error) {
|
||||
hc.deploys[dr.Name] = prog
|
||||
op.Refresh(ctx, hc.makeOperationQueryRequest())
|
||||
} else {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
}
|
||||
}
|
||||
|
||||
@ -322,35 +323,35 @@ func NewClient() (HoustonClient, error) {
|
||||
}
|
||||
op.Refresh(ctx, hc.makeOperationQueryRequest())
|
||||
} else {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
}
|
||||
|
||||
case shared.Start:
|
||||
var sr shared.StartProcessRequest
|
||||
unmarshal(&sr, resp.Args)
|
||||
if err := hc.startChildProcess(&sr); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
}
|
||||
|
||||
case shared.Stop:
|
||||
var sr shared.StopProcessRequest
|
||||
unmarshal(&sr, resp.Args)
|
||||
if err := hc.stopChildProcess(&sr); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
}
|
||||
|
||||
case shared.Restart:
|
||||
var rr shared.RestartProcessRequest
|
||||
unmarshal(&rr, resp.Args)
|
||||
if err := hc.restartChildProcess(&rr); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
}
|
||||
|
||||
case shared.Upload:
|
||||
var ur shared.UploadRequest
|
||||
unmarshal(&ur, resp.Args)
|
||||
if err := hc.uploadFiles(&ur); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -387,7 +388,7 @@ func (hc *houstonClient) Start() {
|
||||
|
||||
go func() {
|
||||
c := <-interrupt
|
||||
shared.Logger().Println("interrupt!!!!!!!! :", c.String())
|
||||
logger.Println("interrupt!!!!!!!! :", c.String())
|
||||
hc.shutdownFunc()
|
||||
}()
|
||||
|
||||
@ -399,7 +400,7 @@ func (hc *houstonClient) Start() {
|
||||
default:
|
||||
err := hc.checkOperation()
|
||||
if err != nil {
|
||||
shared.Logger().Println("hc.checkUpdate failed :", err)
|
||||
logger.Println("hc.checkUpdate failed :", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -413,7 +414,7 @@ func (hc *houstonClient) checkOperation() error {
|
||||
defer func() {
|
||||
r := recover()
|
||||
if r != nil {
|
||||
shared.Logger().Println(r)
|
||||
logger.Println(r)
|
||||
}
|
||||
}()
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
|
||||
"golang.org/x/text/encoding/korean"
|
||||
@ -272,13 +273,13 @@ func (hc *houstonClient) prepareUpdateSelf(req *shared.DeployRequest) (srcdir st
|
||||
}
|
||||
|
||||
func (hc *houstonClient) deploy(req *shared.DeployRequest) error {
|
||||
shared.Logger().Println("start deploying")
|
||||
logger.Println("start deploying")
|
||||
root, err := hc.prepareDeploy(req.Name, req.Version)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
shared.Logger().Println("start downloading", req.Url)
|
||||
logger.Println("start downloading", req.Url)
|
||||
// verpath에 배포 시작
|
||||
fname, err := download(root, hc.makeDownloadUrl(req.Url), req.AccessToken)
|
||||
if err != nil {
|
||||
|
||||
@ -18,6 +18,7 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
"repositories.action2quare.com/ayo/houston/shared/protos"
|
||||
)
|
||||
@ -54,7 +55,7 @@ func (hc *houstonClient) uploadZipLogFile(zipFile string, name string, version s
|
||||
|
||||
req, err := http.NewRequest("POST", hc.httpAddr+"/upload", zf)
|
||||
if err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
}
|
||||
req.Header.Set("Houston-Service-Name", name)
|
||||
req.Header.Set("Houston-Service-Version", version)
|
||||
@ -119,19 +120,19 @@ func zipLogFiles(req *shared.UploadRequest, start, except string) (string, []str
|
||||
relative := file[len(root)+1:]
|
||||
fw, err := w.Create(relative)
|
||||
if err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
return "", nil, err
|
||||
}
|
||||
|
||||
src, err := os.Open(file)
|
||||
if err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
return "", nil, err
|
||||
}
|
||||
defer src.Close()
|
||||
|
||||
if _, err = io.Copy(fw, src); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
return "", nil, err
|
||||
}
|
||||
}
|
||||
@ -218,7 +219,7 @@ func (hc *houstonClient) launch(meta *procmeta) error {
|
||||
defer func() {
|
||||
r := recover()
|
||||
if r != nil {
|
||||
shared.Logger().Println(r)
|
||||
logger.Println(r)
|
||||
debug.PrintStack()
|
||||
}
|
||||
close(relayChan)
|
||||
@ -264,10 +265,10 @@ func (hc *houstonClient) launch(meta *procmeta) error {
|
||||
os.Remove(oldf)
|
||||
}
|
||||
} else {
|
||||
shared.Logger().Println("uploadZipLogFile failed :", err)
|
||||
logger.Println("uploadZipLogFile failed :", err)
|
||||
}
|
||||
} else if err != nil {
|
||||
shared.Logger().Println("zipLogFiles failed :", err)
|
||||
logger.Println("zipLogFiles failed :", err)
|
||||
}
|
||||
}(startFile, nextFile)
|
||||
|
||||
@ -323,7 +324,7 @@ func (hc *houstonClient) launch(meta *procmeta) error {
|
||||
var errPrepareprocessLaunchFailed = errors.New("prepareProcessLaunch failed")
|
||||
|
||||
func (hc *houstonClient) startChildProcess(req *shared.StartProcessRequest) error {
|
||||
shared.Logger().Println("startChildProcess :", *req)
|
||||
logger.Println("startChildProcess :", *req)
|
||||
if req.Version == "latest" {
|
||||
// 최신 버전을 찾음
|
||||
latest, err := shared.FindLastestVersion(req.Name)
|
||||
@ -501,10 +502,10 @@ func (hc *houstonClient) uploadFiles(req *shared.UploadRequest) error {
|
||||
req.Version = latest
|
||||
}
|
||||
|
||||
shared.Logger().Println("uploadFiles req :", *req)
|
||||
logger.Println("uploadFiles req :", *req)
|
||||
for _, child := range hc.childProcs {
|
||||
if child.version == req.Version && child.name == req.Name {
|
||||
shared.Logger().Println("uploadFiles found :", child.version, child.name)
|
||||
logger.Println("uploadFiles found :", child.version, child.name)
|
||||
child.logUploadChan <- req
|
||||
return nil
|
||||
}
|
||||
@ -519,10 +520,10 @@ func (hc *houstonClient) uploadFiles(req *shared.UploadRequest) error {
|
||||
os.Remove(oldf)
|
||||
}
|
||||
} else {
|
||||
shared.Logger().Println("uploadZipLogFile failed :", err)
|
||||
logger.Println("uploadZipLogFile failed :", err)
|
||||
}
|
||||
} else if err != nil {
|
||||
shared.Logger().Println("zipLogFiles failed :", err)
|
||||
logger.Println("zipLogFiles failed :", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
1
go.mod
1
go.mod
@ -6,6 +6,7 @@ require (
|
||||
golang.org/x/text v0.9.0
|
||||
google.golang.org/grpc v1.55.0
|
||||
google.golang.org/protobuf v1.30.0
|
||||
repositories.action2quare.com/ayo/gocommon v0.0.0-20230613151240-0e6b155201c3
|
||||
)
|
||||
|
||||
require (
|
||||
|
||||
2
go.sum
2
go.sum
@ -18,3 +18,5 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
||||
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
repositories.action2quare.com/ayo/gocommon v0.0.0-20230613151240-0e6b155201c3 h1:EOWhQ3rBoNGlFmTxqF1ujOI+bXtMbExdRcUo0arLkS8=
|
||||
repositories.action2quare.com/ayo/gocommon v0.0.0-20230613151240-0e6b155201c3/go.mod h1:ng62uGMGXyQSeuxePG5gJAMtip4Rnspu5Tu7hgvaXns=
|
||||
|
||||
9
main.go
9
main.go
@ -3,31 +3,28 @@ package main
|
||||
import (
|
||||
"flag"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/houston/client"
|
||||
"repositories.action2quare.com/ayo/houston/server"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
)
|
||||
|
||||
var runAsClient = flag.Bool("client", false, "")
|
||||
var runAsServer = flag.Bool("server", false, "")
|
||||
|
||||
func main() {
|
||||
shared.InitLogger()
|
||||
defer shared.CloseLogger()
|
||||
|
||||
if !flag.Parsed() {
|
||||
flag.Parse()
|
||||
}
|
||||
|
||||
if !*runAsClient && !*runAsServer {
|
||||
shared.Logger().Fatal("client or server flag is needed")
|
||||
logger.Fatal("client or server flag is needed")
|
||||
return
|
||||
}
|
||||
|
||||
if *runAsClient {
|
||||
hc, err := client.NewClient()
|
||||
if err != nil {
|
||||
shared.Logger().Fatal(err)
|
||||
logger.Fatal(err)
|
||||
return
|
||||
}
|
||||
hc.Start()
|
||||
|
||||
@ -9,6 +9,7 @@ import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
)
|
||||
|
||||
@ -25,7 +26,7 @@ func (h *houstonHandler) GetAgents(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *houstonHandler) GetDeploySources(w http.ResponseWriter, r *http.Request) {
|
||||
files, err := os.ReadDir(h.deployPath)
|
||||
if err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@ -61,7 +62,7 @@ func (h *houstonHandler) UploadDeploySource(w http.ResponseWriter, r *http.Reque
|
||||
// </form>
|
||||
file, header, err := r.FormFile("file")
|
||||
if err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -69,7 +70,7 @@ func (h *houstonHandler) UploadDeploySource(w http.ResponseWriter, r *http.Reque
|
||||
|
||||
contents, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@ -88,7 +89,7 @@ func (h *houstonHandler) UploadDeploySource(w http.ResponseWriter, r *http.Reque
|
||||
}
|
||||
|
||||
if err = os.MkdirAll(path.Dir(filename), 0775); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@ -96,7 +97,7 @@ func (h *houstonHandler) UploadDeploySource(w http.ResponseWriter, r *http.Reque
|
||||
// 파일 저장
|
||||
err = os.WriteFile(filename, contents, 0644)
|
||||
if err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@ -118,7 +119,7 @@ func (h *houstonHandler) DeleteDeploySource(w http.ResponseWriter, r *http.Reque
|
||||
// deploys 폴더는 파일시스템 서비스이므로 다운로드 가능
|
||||
targetpath := path.Join(h.deployPath, name, version)
|
||||
if err := os.RemoveAll(targetpath); err != nil {
|
||||
shared.Logger().Println("deleteDeploySource failed :", err)
|
||||
logger.Println("deleteDeploySource failed :", err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@ -138,7 +139,7 @@ func (h *houstonHandler) Deploy(w http.ResponseWriter, r *http.Request) {
|
||||
var targets []string
|
||||
if len(traws) > 0 {
|
||||
if err := json.Unmarshal([]byte(traws), &targets); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -152,7 +153,7 @@ func (h *houstonHandler) Deploy(w http.ResponseWriter, r *http.Request) {
|
||||
relPath := path.Join(h.deployPath, name, version)
|
||||
files, err := os.ReadDir(relPath)
|
||||
if err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -199,7 +200,7 @@ func (h *houstonHandler) Undeploy(w http.ResponseWriter, r *http.Request) {
|
||||
var targets []string
|
||||
if len(traws) > 0 {
|
||||
if err := json.Unmarshal([]byte(traws), &targets); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -235,7 +236,7 @@ func (h *houstonHandler) StartProcess(w http.ResponseWriter, r *http.Request) {
|
||||
var targets []string
|
||||
if len(traws) > 0 {
|
||||
if err := json.Unmarshal([]byte(traws), &targets); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -274,7 +275,7 @@ func (h *houstonHandler) StopProcess(w http.ResponseWriter, r *http.Request) {
|
||||
var targets []string
|
||||
if len(traws) > 0 {
|
||||
if err := json.Unmarshal([]byte(traws), &targets); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -311,7 +312,7 @@ func (h *houstonHandler) UploadLogs(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
var targets []string
|
||||
if err := json.Unmarshal([]byte(traws), &targets); err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@ import (
|
||||
"runtime/debug"
|
||||
"strings"
|
||||
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -57,7 +57,7 @@ func (h *houstonHandler) RegisterHandlers(serveMux *http.ServeMux, prefix string
|
||||
return err
|
||||
}
|
||||
|
||||
shared.Logger().Printf("houstonHandler registed. deployPath : %s, downloadPath : %s", h.deployPath, h.downloadPath)
|
||||
logger.Printf("houstonHandler registed. deployPath : %s, downloadPath : %s", h.deployPath, h.downloadPath)
|
||||
|
||||
if len(prefix) > 0 {
|
||||
prefix = "/" + prefix
|
||||
@ -74,7 +74,7 @@ func (h *houstonHandler) RegisterHandlers(serveMux *http.ServeMux, prefix string
|
||||
defer func() {
|
||||
s := recover()
|
||||
if s != nil {
|
||||
shared.Logger().Println(s)
|
||||
logger.Println(s)
|
||||
debug.PrintStack()
|
||||
}
|
||||
io.Copy(io.Discard, r.Body)
|
||||
@ -107,7 +107,7 @@ func (h *houstonHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
defer func() {
|
||||
s := recover()
|
||||
if s != nil {
|
||||
shared.Logger().Println(s)
|
||||
logger.Println(s)
|
||||
debug.PrintStack()
|
||||
}
|
||||
}()
|
||||
@ -132,7 +132,7 @@ func (h *houstonHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
method, ok := h.methods[strings.ToLower(operation)]
|
||||
if !ok {
|
||||
// 없는 operation
|
||||
shared.Logger().Println("fail to call api. operation is not valid :", operation)
|
||||
logger.Println("fail to call api. operation is not valid :", operation)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import (
|
||||
"net"
|
||||
"os"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
"repositories.action2quare.com/ayo/houston/shared/protos"
|
||||
|
||||
@ -109,7 +110,7 @@ type Operation interface {
|
||||
func loadServerConfig() serverConfig {
|
||||
configFile, err := os.Open("config.json")
|
||||
if err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
return serverConfig{
|
||||
GrpcPort: 8080,
|
||||
}
|
||||
@ -125,14 +126,14 @@ func loadServerConfig() serverConfig {
|
||||
dec := json.NewDecoder(configFile)
|
||||
err = dec.Decode(&config)
|
||||
if err != nil {
|
||||
shared.Logger().Println(err)
|
||||
logger.Println(err)
|
||||
return serverConfig{
|
||||
GrpcPort: 8080,
|
||||
}
|
||||
}
|
||||
|
||||
if config.Houston == nil {
|
||||
shared.Logger().Println(`"houston" object is missing in config.json`)
|
||||
logger.Println(`"houston" object is missing in config.json`)
|
||||
return serverConfig{
|
||||
GrpcPort: 8080,
|
||||
}
|
||||
@ -166,7 +167,7 @@ type houstonServer struct {
|
||||
}
|
||||
|
||||
func (hs *houstonServer) Start() error {
|
||||
shared.Logger().Println("houston server is started at port", hs.port)
|
||||
logger.Println("houston server is started at port", hs.port)
|
||||
lis, err := net.Listen("tcp", fmt.Sprintf("0.0.0.0:%d", hs.port))
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
package shared
|
||||
|
||||
import (
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
)
|
||||
|
||||
var defLogger *log.Logger
|
||||
var defCloser func()
|
||||
|
||||
func InitLogger() {
|
||||
name, _ := os.Executable()
|
||||
base := path.Base(name)
|
||||
|
||||
logfile, _ := os.OpenFile(base+".log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666)
|
||||
defCloser = func() {
|
||||
logfile.Close()
|
||||
}
|
||||
defLogger = log.New(io.MultiWriter(logfile, os.Stdout), "", log.LstdFlags)
|
||||
}
|
||||
|
||||
func Logger() *log.Logger {
|
||||
return defLogger
|
||||
}
|
||||
|
||||
func CloseLogger() {
|
||||
if defCloser != nil {
|
||||
defCloser()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user