X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=cmd%2Fbpa-restapi-agent%2Fapi%2Fimagehandler.go;h=fa7f6975b0188dde9f1b1541beb9b352012b6fc9;hb=refs%2Fchanges%2F31%2F1431%2F2;hp=0d7b787a99cc291bc45f07ac0c0aeb9d68a26b76;hpb=5885be79556efc50b6ee9e1c6e51a803095b9073;p=icn.git diff --git a/cmd/bpa-restapi-agent/api/imagehandler.go b/cmd/bpa-restapi-agent/api/imagehandler.go index 0d7b787..fa7f697 100644 --- a/cmd/bpa-restapi-agent/api/imagehandler.go +++ b/cmd/bpa-restapi-agent/api/imagehandler.go @@ -2,16 +2,14 @@ package api import ( "bytes" - "encoding/base64" + //"encoding/base64" "encoding/json" "fmt" "io" "io/ioutil" "net/http" "os" - "os/user" "log" - "path" "strconv" image "bpa-restapi-agent/internal/app" @@ -72,12 +70,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 { @@ -87,31 +79,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) @@ -122,30 +95,11 @@ 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) @@ -166,8 +120,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) @@ -223,15 +175,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) @@ -301,15 +244,12 @@ 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) if err != nil { log.Printf("unable to open file %s\n", err) @@ -335,12 +275,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