Commit c5c899b2 authored by szh's avatar szh

add pkg/pai

parent 533c92b4
......@@ -17,7 +17,6 @@ import (
"time"
"io/ioutil"
"chain33-pai/pkg/util"
"chain33-pai/pkg/e"
"github.com/33cn/chain33/types"
"chain33-pai/service/pai_service"
"encoding/json"
......@@ -25,6 +24,7 @@ import (
types2 "github.com/33cn/plugin/plugin/dapp/ticket/types"
"strconv"
"sync"
"chain33-pai/pkg/pai"
)
var tlog = log.New("pkg","app")
......@@ -44,18 +44,11 @@ type updateInfo struct {
}
type Server struct {
Disks []*Disk `json:"disks"`//硬盘信息
Disks []*pai.Disk `json:"disks"`//硬盘信息
NodeProcesssInfo ProcessInfo `json:"node_processs_info"`//节点信息
Error string `json:"error"`//错误信息
}
type Disk struct {
Filesystem string `json:"filesystem"`
Type string `json:"type"`//硬盘格式
SizeK string `json:"size_k"`//硬盘大小
Use string `json:"use"`
}
type BTYDownloadInfo struct {
IsDownload bool
Version string
......@@ -259,51 +252,6 @@ func StartProcess(scriptsAddr string)(err error){
return
}
//
func MonitorServer() error {
//获取硬盘情况
cmd := exec.Command("df","-T")
stdout, err := cmd.StdoutPipe()
err = cmd.Start()
if err != nil {
tlog.Info("MonitorServer","df -T start " ,err)
return err
}
content, err := ioutil.ReadAll(stdout)
if err != nil {
tlog.Info("MonitorServer","ioutil readd err",err)
return err
}
err = cmd.Wait()
if err != nil {
tlog.Info("MonitorServer","df -T end" ,err)
return err
}
tlog.Info("MonitorServer",string(content))
list := strings.Split(string(content),"\n")
tempDisk := make([]*Disk,0)
for _,v := range list {
c := strings.Contains(v,"/dev/sd")
if c {
tempD := &Disk{}
params := strings.Split(util.DeleteExtraSpace(v)," ")
if len(params) == 7 {
tempD.Filesystem = params[0]
tempD.Type = params[1]
tempD.SizeK = params[2]
tempD.Use = params[5]
tempDisk = append(tempDisk,tempD)
} else {
ServerStatus.Error = e.GetMsg(e.DF_ERROR)
break
}
}
}
ServerStatus.Disks = tempDisk
return nil
}
var DPercent DownloadPercent
type DownloadPercent struct {
......@@ -642,7 +590,6 @@ func AutoUpdate() {
tlog.Info("kill restart pai success ")
}
}
} else {
if !DPercent.Flag {//没有其他任务占用
DPercent.Flag = true
......
package pai
import (
"os/exec"
"io/ioutil"
"strings"
"chain33-pai/pkg/util"
"github.com/33cn/chain33/common/log"
)
var tlog = log.New("pkg","pai")
func MonitorServer() ([]*Disk,error) {
//获取硬盘情况
cmd := exec.Command("df","-T")
stdout, err := cmd.StdoutPipe()
err = cmd.Start()
if err != nil {
tlog.Info("MonitorServer","df -T start " ,err)
return nil,err
}
content, err := ioutil.ReadAll(stdout)
if err != nil {
tlog.Info("MonitorServer","ioutil readd err",err)
return nil,err
}
err = cmd.Wait()
if err != nil {
tlog.Info("MonitorServer","df -T end" ,err)
return nil,err
}
tlog.Info("MonitorServer",string(content))
list := strings.Split(string(content),"\n")
tempDisk := make([]*Disk,0)
for _,v := range list {
c := strings.Contains(v,"/dev/sd")
if c {
tempD := &Disk{}
params := strings.Split(util.DeleteExtraSpace(v)," ")
if len(params) == 7 {
tempD.Filesystem = params[0]
tempD.Type = params[1]
tempD.SizeK = params[2]
tempD.Use = params[5]
tempDisk = append(tempDisk,tempD)
} else {
break
}
}
}
return tempDisk,nil
}
package pai
type Disk struct {
Filesystem string `json:"filesystem"`
Type string `json:"type"`//硬盘格式
SizeK string `json:"size_k"`//硬盘大小
Use string `json:"use"`
}
......@@ -100,3 +100,4 @@ func VersionCompare(version string) string {
}
return string(vo)
}
......@@ -11,6 +11,7 @@ import (
"os/exec"
log "github.com/33cn/chain33/common/log/log15"
"chain33-pai/pkg/util"
"chain33-pai/pkg/pai"
)
var tlog = log.New("api", "v1")
......@@ -258,10 +259,11 @@ func GetExternal(c *gin.Context) {
func GetServerStatus(c *gin.Context) {
appG := app.Gin{C:c}
err := app.MonitorServer()
disks,err := pai.MonitorServer()
if err != nil {
appG.Response(http.StatusOK, e.ERROR, err)
return
}
app.ServerStatus.Disks = disks
appG.Response(http.StatusOK, e.SUCCESS, app.ServerStatus)
}
\ No newline at end of file
......@@ -13,7 +13,7 @@ import (
"io/ioutil"
"encoding/json"
"chain33-pai/pkg/setting"
"chain33-pai/pkg/app"
"chain33-pai/pkg/pai"
)
var (
......@@ -34,7 +34,7 @@ type Pai struct {
BtyVersion *types.VersionInfo `json:"bty_version"`
Err string `json:"err"`
Arch string `json:"arch"`
Disks []*app.Disk
Disks []*pai.Disk
}
type ReqUpdatePai struct {
......@@ -202,12 +202,12 @@ func (p *Pai) GetPaiLatestVersion(t int32) (string,error) {
}
func (p *Pai) GetDiskUseage() error {
err := app.MonitorServer()
disks,err := pai.MonitorServer()
if err != nil {
return err
}
if len(app.ServerStatus.Disks) > 0 {
p.Disks = app.ServerStatus.Disks
if len(disks) > 0 {
p.Disks = disks
}
return nil
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment