X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=cmd%2Fbpa-restapi-agent%2Fapi%2Fimagehandler.go;h=5fbf8306895510de8dd004f7509487b89ef7604c;hb=de3d22a9939db1f5d9042743100b65a5f15fa671;hp=d9b184408667ee74433f6495a684d34e44eea9a2;hpb=ce88c65155a2387621da0cbec6f2d6238c7d53a5;p=icn.git diff --git a/cmd/bpa-restapi-agent/api/imagehandler.go b/cmd/bpa-restapi-agent/api/imagehandler.go index d9b1844..5fbf830 100644 --- a/cmd/bpa-restapi-agent/api/imagehandler.go +++ b/cmd/bpa-restapi-agent/api/imagehandler.go @@ -2,16 +2,13 @@ package api import ( "bytes" - "encoding/base64" "encoding/json" "fmt" "io" "io/ioutil" "net/http" "os" - "os/user" "log" - "path" "strconv" image "bpa-restapi-agent/internal/app" @@ -75,12 +72,6 @@ func (h imageHandler) createHandler(w http.ResponseWriter, r *http.Request) { return } - //Create file directory - dir, err := createFileDir(v.Type) - if err != nil { - log.Fatal("Error creating file server directory", err) - } - //Read the file section and ignore the header file, _, err := r.FormFile("file") if err != nil { @@ -90,31 +81,12 @@ func (h imageHandler) createHandler(w http.ResponseWriter, r *http.Request) { defer file.Close() - //Convert the file content to base64 for storage - content, err := ioutil.ReadAll(file) - if err != nil { - http.Error(w, "Unable to read file", http.StatusUnprocessableEntity) - return - } - - v.Config = base64.StdEncoding.EncodeToString(content) ret, err := h.client.Create(v) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } - h.dirPath = dir - filePath := path.Join(h.dirPath, v.ImageName) - file1, err := os.Create(filePath) - if err != nil { - e := "Error creating file in filesystem" - log.Printf("%s %s\n", e, err) - w.WriteHeader(http.StatusInternalServerError) - return - } - - defer file1.Close() w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusCreated) @@ -125,30 +97,10 @@ func (h imageHandler) createHandler(w http.ResponseWriter, r *http.Request) { } } -// Create file - -func createFileDir(dirName string) (string, error) { - u, err := user.Current() - if err != nil { - log.Println("Error while fetching user home directory", err) - return "", err - } - home := u.HomeDir - dirPath := path.Join(home, "images", dirName) - err = os.MkdirAll(dirPath, 0744) - if err != nil { - log.Println("Error while creating file server directory", err) - return "", err - } - return dirPath, nil -} - // getHandler handles GET operations on a particular name // Returns an Image func (h imageHandler) getHandler(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) - // ownerName := vars["owner"] - // clusterName := vars["clustername"] imageName := vars["imgname"] ret, err := h.client.Get(imageName) @@ -169,8 +121,6 @@ func (h imageHandler) getHandler(w http.ResponseWriter, r *http.Request) { // deleteHandler handles DELETE operations on a particular record func (h imageHandler) deleteHandler(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) - // ownerName := vars["owner"] - // clusterName := vars["clustername"] imageName := vars["imgname"] err := h.client.Delete(imageName) @@ -228,15 +178,6 @@ func (h imageHandler) updateHandler(w http.ResponseWriter, r *http.Request) { defer file.Close() - //Convert the file content to base64 for storage - content, err := ioutil.ReadAll(file) - if err != nil { - http.Error(w, "Unable to read file", http.StatusUnprocessableEntity) - return - } - - v.Config = base64.StdEncoding.EncodeToString(content) - ret, err := h.client.Update(imageName, v) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) @@ -308,16 +249,13 @@ func (h imageHandler) patchHandler(w http.ResponseWriter, r *http.Request) { log.Println("Size of received file ", len(body)) } - u, err := user.Current() + fp, _, err := h.client.GetDirPath(imageName) if err != nil { - log.Println("Error while fetching user home directory", err) - return + log.Printf("unable to get file path %s\n", err) + w.WriteHeader(http.StatusInternalServerError) + return } - home := u.HomeDir - dir := path.Join(home, "images", file.Type) - h.dirPath = dir - fp := fmt.Sprintf("%s/%s", h.dirPath, imageName) - f, err := os.OpenFile(fp, os.O_APPEND|os.O_WRONLY, 0644) + f, err := os.OpenFile(fp, os.O_WRONLY, 0644) if err != nil { log.Printf("unable to open file %s\n", err) w.WriteHeader(http.StatusInternalServerError) @@ -352,12 +290,12 @@ func (h imageHandler) patchHandler(w http.ResponseWriter, r *http.Request) { *file.UploadComplete = true } - // err = h.updateFile(file) - // if err != nil { - // log.Println("Error while updating file", err) - // w.WriteHeader(http.StatusInternalServerError) - // return - // } + _, err = h.client.Update(imageName, file) + if err != nil { + log.Println("Error while updating file", err) + w.WriteHeader(http.StatusInternalServerError) + return + } w.WriteHeader(http.StatusNoContent) return