houston server config에 storagepath 추가
This commit is contained in:
@ -29,7 +29,7 @@ func (h *houstonHandler) GetDeploySources(w http.ResponseWriter, r *http.Request
|
||||
files, err := os.ReadDir("deploys")
|
||||
if err != nil {
|
||||
if errors.Is(err, fs.ErrNotExist) {
|
||||
err = os.MkdirAll("deploys", os.ModePerm)
|
||||
err = os.MkdirAll("deploys", 0775)
|
||||
}
|
||||
}
|
||||
|
||||
@ -96,7 +96,7 @@ func (h *houstonHandler) UploadDeploySource(w http.ResponseWriter, r *http.Reque
|
||||
filename = path.Join("deploys", name, version, name+ext)
|
||||
}
|
||||
|
||||
if err = os.MkdirAll(path.Dir(filename), os.ModePerm); err != nil {
|
||||
if err = os.MkdirAll(path.Dir(filename), 0775); err != nil {
|
||||
logger.Error(err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
|
||||
@ -43,16 +43,22 @@ func NewHoustonHandler() HoustonServerWithHandler {
|
||||
}
|
||||
|
||||
func (h *houstonHandler) RegisterHandlers(serveMux *http.ServeMux, prefix string) error {
|
||||
logger.Println("houstonHandler registed")
|
||||
storagePath := loadConfig().StoragePath
|
||||
|
||||
logger.Println("houstonHandler registed. storage_path :", storagePath)
|
||||
if len(storagePath) > 0 {
|
||||
storagePath = storagePath + "/"
|
||||
}
|
||||
|
||||
if len(prefix) > 0 {
|
||||
prefix = "/" + prefix
|
||||
}
|
||||
serveMux.Handle(prefix, h)
|
||||
|
||||
fsx := http.FileServer(http.Dir("deploys"))
|
||||
fsx := http.FileServer(http.Dir(storagePath + "deploys"))
|
||||
serveMux.Handle(fmt.Sprintf("%s/deploys/", prefix), http.StripPrefix(fmt.Sprintf("%s/deploys/", prefix), fsx))
|
||||
|
||||
ufsx := http.FileServer(http.Dir("downloads"))
|
||||
ufsx := http.FileServer(http.Dir(storagePath + "downloads"))
|
||||
serveMux.Handle(fmt.Sprintf("%s/downloads/", prefix), http.StripPrefix(fmt.Sprintf("%s/downloads/", prefix), ufsx))
|
||||
|
||||
serveMux.HandleFunc(fmt.Sprintf("%s/upload", prefix), func(w http.ResponseWriter, r *http.Request) {
|
||||
@ -69,8 +75,8 @@ func (h *houstonHandler) RegisterHandlers(serveMux *http.ServeMux, prefix string
|
||||
name := r.Header.Get("Houston-Service-Name")
|
||||
version := r.Header.Get("Houston-Service-Version")
|
||||
filename := r.Header.Get("Houston-Service-Filename")
|
||||
dir := fmt.Sprintf("downloads/%s/%s", name, version)
|
||||
if err := os.MkdirAll(dir, os.ModePerm); err == nil {
|
||||
dir := fmt.Sprintf(storagePath+"downloads/%s/%s", name, version)
|
||||
if err := os.MkdirAll(dir, 0775); err == nil {
|
||||
file, _ := os.Create(path.Join(dir, filename))
|
||||
if file != nil {
|
||||
defer file.Close()
|
||||
|
||||
@ -21,7 +21,8 @@ type HoustonServer interface {
|
||||
}
|
||||
|
||||
type serverConfig struct {
|
||||
GrpcPort int `json:"grpc_port"`
|
||||
GrpcPort int `json:"grpc_port"`
|
||||
StoragePath string `json:"storage_path"`
|
||||
}
|
||||
|
||||
type totalConfig struct {
|
||||
@ -110,17 +111,27 @@ type Operation interface {
|
||||
Hosts() map[string]hostSnapshot
|
||||
}
|
||||
|
||||
func NewServer() HoustonServer {
|
||||
port := 8080
|
||||
if bt, err := os.ReadFile("config.json"); err == nil {
|
||||
var config totalConfig
|
||||
if err := json.Unmarshal(bt, &config); err == nil {
|
||||
if config.Server.GrpcPort != 0 {
|
||||
port = config.Server.GrpcPort
|
||||
}
|
||||
}
|
||||
func loadConfig() serverConfig {
|
||||
var config totalConfig
|
||||
|
||||
config.Server.GrpcPort = 8080
|
||||
configFile, err := os.Open("config.json")
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
return config.Server
|
||||
}
|
||||
defer configFile.Close()
|
||||
dec := json.NewDecoder(configFile)
|
||||
err = dec.Decode(&config)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
return config.Server
|
||||
}
|
||||
|
||||
return config.Server
|
||||
}
|
||||
|
||||
func NewServer() HoustonServer {
|
||||
var opts []grpc.ServerOption
|
||||
grpcServer := grpc.NewServer(opts...)
|
||||
|
||||
@ -133,7 +144,7 @@ func NewServer() HoustonServer {
|
||||
rpcServer: grpcServer,
|
||||
os: os,
|
||||
ms: ms,
|
||||
port: port,
|
||||
port: loadConfig().GrpcPort,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user