d
This commit is contained in:
185
lib/file/file.go
185
lib/file/file.go
@@ -1,124 +1,113 @@
|
|||||||
package file
|
package file
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
|
||||||
"net"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
|
||||||
|
|
||||||
"ems.agt/lib/dborm"
|
|
||||||
"ems.agt/lib/global"
|
|
||||||
"ems.agt/lib/log"
|
|
||||||
"ems.agt/lib/services"
|
|
||||||
"ems.agt/restagent/config"
|
|
||||||
"github.com/gorilla/mux"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
// const (
|
||||||
//经过测试,linux下,延时需要大于100ms
|
// //经过测试,linux下,延时需要大于100ms
|
||||||
TIME_DELAY_AFTER_WRITE = 200
|
// TIME_DELAY_AFTER_WRITE = 200
|
||||||
)
|
// )
|
||||||
|
|
||||||
type Response struct {
|
// type Response struct {
|
||||||
Data []string `json:"data"`
|
// Data []string `json:"data"`
|
||||||
}
|
// }
|
||||||
|
|
||||||
type MMLRequest struct {
|
// type MMLRequest struct {
|
||||||
MML []string `json:"mml"`
|
// MML []string `json:"mml"`
|
||||||
}
|
// }
|
||||||
|
|
||||||
func GetFile(w http.ResponseWriter, r *http.Request) {
|
// func GetFile(w http.ResponseWriter, r *http.Request) {
|
||||||
log.Debug("PostMMLToNF processing... ")
|
// log.Debug("PostMMLToNF processing... ")
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
// vars := mux.Vars(r)
|
||||||
neType := vars["elementTypeValue"]
|
// neType := vars["elementTypeValue"]
|
||||||
params := r.URL.Query()
|
// params := r.URL.Query()
|
||||||
neId := params["ne_id"]
|
// neId := params["ne_id"]
|
||||||
log.Debug("neType:", neType, "neId", neId)
|
// log.Debug("neType:", neType, "neId", neId)
|
||||||
|
|
||||||
neInfo := new(dborm.NeInfo)
|
// neInfo := new(dborm.NeInfo)
|
||||||
var err error
|
// var err error
|
||||||
if len(neId) == 0 {
|
// if len(neId) == 0 {
|
||||||
log.Error("ne_id NOT FOUND")
|
// log.Error("ne_id NOT FOUND")
|
||||||
services.ResponseBadRequest400WrongParamValue(w)
|
// services.ResponseBadRequest400WrongParamValue(w)
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
neInfo, err = dborm.XormGetNeInfo(neType, neId[0])
|
// neInfo, err = dborm.XormGetNeInfo(neType, neId[0])
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
log.Error("dborm.XormGetNeInfo is failed:", err)
|
// log.Error("dborm.XormGetNeInfo is failed:", err)
|
||||||
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
// services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
var buf [8192]byte
|
// var buf [8192]byte
|
||||||
var n int
|
// var n int
|
||||||
var mmlResult []string
|
// var mmlResult []string
|
||||||
|
|
||||||
if neInfo != nil {
|
// if neInfo != nil {
|
||||||
hostMML := fmt.Sprintf("%s:%d", neInfo.Ip, config.GetYamlConfig().MML.Port)
|
// hostMML := fmt.Sprintf("%s:%d", neInfo.Ip, config.GetYamlConfig().MML.Port)
|
||||||
conn, err := net.Dial("tcp", hostMML)
|
// conn, err := net.Dial("tcp", hostMML)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
errMsg := fmt.Sprintf("Failed to dial %s: %v", hostMML, err)
|
// errMsg := fmt.Sprintf("Failed to dial %s: %v", hostMML, err)
|
||||||
log.Error(errMsg)
|
// log.Error(errMsg)
|
||||||
mmlResult = append(mmlResult, errMsg)
|
// mmlResult = append(mmlResult, errMsg)
|
||||||
response := Response{mmlResult}
|
// response := Response{mmlResult}
|
||||||
services.ResponseWithJson(w, http.StatusOK, response)
|
// services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
loginStr := fmt.Sprintf("%s\n%s\n", config.GetYamlConfig().MML.User, config.GetYamlConfig().MML.Password)
|
// loginStr := fmt.Sprintf("%s\n%s\n", config.GetYamlConfig().MML.User, config.GetYamlConfig().MML.Password)
|
||||||
n, err = conn.Write([]byte(loginStr))
|
// n, err = conn.Write([]byte(loginStr))
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
log.Errorf("Error: %s", err.Error())
|
// log.Errorf("Error: %s", err.Error())
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
// time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
||||||
|
|
||||||
n, err = conn.Read(buf[0:])
|
// n, err = conn.Read(buf[0:])
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
log.Errorf("Error: %s", err.Error())
|
// log.Errorf("Error: %s", err.Error())
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
log.Debug(string(buf[0:n]))
|
// log.Debug(string(buf[0:n]))
|
||||||
|
|
||||||
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
|
// body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
log.Error("io.ReadAll is failed:", err)
|
// log.Error("io.ReadAll is failed:", err)
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
// services.ResponseNotFound404UriNotExist(w, r)
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
log.Debug("Body:", string(body))
|
// log.Debug("Body:", string(body))
|
||||||
|
|
||||||
mmlRequest := new(MMLRequest)
|
// mmlRequest := new(MMLRequest)
|
||||||
_ = json.Unmarshal(body, mmlRequest)
|
// _ = json.Unmarshal(body, mmlRequest)
|
||||||
|
|
||||||
for _, mml := range mmlRequest.MML {
|
// for _, mml := range mmlRequest.MML {
|
||||||
mmlCommand := fmt.Sprintf("%s\n", mml)
|
// mmlCommand := fmt.Sprintf("%s\n", mml)
|
||||||
log.Debug("mml command:", mmlCommand)
|
// log.Debug("mml command:", mmlCommand)
|
||||||
n, err = conn.Write([]byte(mmlCommand))
|
// n, err = conn.Write([]byte(mmlCommand))
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
log.Errorf("Error: %s", err.Error())
|
// log.Errorf("Error: %s", err.Error())
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
// time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
|
||||||
|
|
||||||
n, err = conn.Read(buf[0:])
|
// n, err = conn.Read(buf[0:])
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
log.Errorf("Error: %s", err.Error())
|
// log.Errorf("Error: %s", err.Error())
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
log.Debug(string(buf[0 : n-len(neType)-2]))
|
// log.Debug(string(buf[0 : n-len(neType)-2]))
|
||||||
mmlResult = append(mmlResult, string(buf[0:n-len(neType)-2]))
|
// mmlResult = append(mmlResult, string(buf[0:n-len(neType)-2]))
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
response := Response{mmlResult}
|
// response := Response{mmlResult}
|
||||||
services.ResponseWithJson(w, http.StatusOK, response)
|
// services.ResponseWithJson(w, http.StatusOK, response)
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 格式文件大小单位
|
// 格式文件大小单位
|
||||||
func FormatFileSize(fileSize float64) (size string) {
|
func FormatFileSize(fileSize float64) (size string) {
|
||||||
|
|||||||
Reference in New Issue
Block a user