diff --git a/client/deploy.go b/client/deploy.go index 57a2c47..daa4d12 100644 --- a/client/deploy.go +++ b/client/deploy.go @@ -188,11 +188,11 @@ func (hc *houstonClient) prepareDeploy(name string, version string) (destPath st return verpath, nil } -func (hc *houstonClient) makeDownloadUrl(req *shared.DeployRequest) string { - out := req.Url +func (hc *houstonClient) makeDownloadUrl(rel string) string { + out := rel if !strings.HasPrefix(out, "http") { tks := strings.SplitN(hc.httpAddr, "://", 2) - out = fmt.Sprintf("%s://%s", tks[0], path.Join(tks[1], req.Url)) + out = fmt.Sprintf("%s://%s", tks[0], path.Join(tks[1], rel)) } return out } @@ -241,7 +241,7 @@ func (hc *houstonClient) prepareUpdateSelf(req *shared.DeployRequest) (srcdir st if err != nil { return "", "", err } - fname, err := download(tempdir, hc.makeDownloadUrl(req), req.AccessToken) + fname, err := download(tempdir, hc.makeDownloadUrl(req.Url), req.AccessToken) if err != nil { return "", "", err } @@ -274,7 +274,7 @@ func (hc *houstonClient) deploy(req *shared.DeployRequest) error { logger.Println("start downloading", req.Url) // verpath에 배포 시작 - fname, err := download(root, hc.makeDownloadUrl(req), req.AccessToken) + fname, err := download(root, hc.makeDownloadUrl(req.Url), req.AccessToken) if err != nil { return err } @@ -286,6 +286,11 @@ func (hc *houstonClient) deploy(req *shared.DeployRequest) error { err = untar(fname) } + if err == nil { + // config.json도 다운로드 + _, err = download(root, hc.makeDownloadUrl(req.Config), req.AccessToken) + } + return err } diff --git a/server/http_api.go b/server/http_api.go index ad8c9c7..59e4bf2 100644 --- a/server/http_api.go +++ b/server/http_api.go @@ -90,7 +90,7 @@ func (h *houstonHandler) UploadDeploySource(w http.ResponseWriter, r *http.Reque var filename string if version == "config" { - filename = path.Join("deploys", name, version, "config"+ext) + filename = path.Join("deploys", name, version, "config.json") } else { // deploys 폴더는 파일시스템 서비스이므로 다운로드 가능 filename = path.Join("deploys", name, version, name+ext) @@ -189,6 +189,7 @@ func (h *houstonHandler) Deploy(w http.ResponseWriter, r *http.Request) { Name: name, Version: version, Url: path.Join(relPath, latestFilename), + Config: path.Join("deploys", name, "config", "config.json"), }, targets, )) diff --git a/shared/operator.go b/shared/operator.go index 661f7a4..de404bf 100644 --- a/shared/operator.go +++ b/shared/operator.go @@ -22,6 +22,7 @@ type DeployRequest struct { Name string Version string Url string + Config string AccessToken string }