From fd31206bcb8b084720291a53c986db771d8f5975 Mon Sep 17 00:00:00 2001
From: qixiaoning <jony.kee@outlook.com>
Date: 星期四, 18 九月 2025 13:58:16 +0800
Subject: [PATCH] 抓拍预警记录查询修改,备份还原接口问题修复,应用安装接口调试
---
camera-service/controllers/camera.go | 68 +++++++++
system-service/sys/sysinfo.go | 13 +
version-control/main.go | 4
camera-common/models/Record.go | 150 ++++++++++++++++++++
version-control/controller/controller.go | 10 +
version-control/service/backup.go | 28 ++-
system-service/controllers/voice.go | 7
appcenter-service/service/SdkInstall.go | 22 ++
api-gateway/main.go | 51 +++++++
system-service/main.go | 4
appcenter-service/main.go | 40 +++--
camera-service/main.go | 2
12 files changed, 346 insertions(+), 53 deletions(-)
diff --git a/api-gateway/main.go b/api-gateway/main.go
index 03b2a1a..6da26ea 100644
--- a/api-gateway/main.go
+++ b/api-gateway/main.go
@@ -2,6 +2,7 @@
import (
"context"
+ "encoding/json"
"flag"
"basic.com/valib/logc.git"
@@ -21,11 +22,15 @@
"vamicro/api-gateway/traces"
"vamicro/config"
"vamicro/extend/util"
+
+ bh "basic.com/valib/c_bhomebus.git/api/bhsgo"
+ bhmsg "basic.com/valib/c_bhomebus.git/proto/source/bhome_msg"
)
var (
- procName = service.ProcName
- env = flag.String("e", "pro", "")
+ procName = service.ProcName
+ env = flag.String("e", "pro", "")
+ VaSystemLogTopic = "VaSystemLogSaveTopic"
)
// func init() {
@@ -53,6 +58,17 @@
ctx, cancel := context.WithCancel(context.Background())
+ defer func() {
+ logInfo2 := logc.VaSystemLog{
+ HostName: "localhost",
+ ProcName: "smartai",
+ ProcID: os.Getpid(),
+ Level: logc.LevelInfo,
+ Info: "smartai鍋滄",
+ }
+ LogDecoderInfo(ctx, logInfo2)
+ }()
+
q := make(chan os.Signal, 1)
signal.Notify(q, os.Interrupt, os.Kill, syscall.SIGTERM)
signal.Ignore(syscall.SIGPIPE)
@@ -65,6 +81,18 @@
})
auth.Oauth2Init()
util.AuthCheck(ctx) //鎺堟潈妫�鏌�
+
+ //璁板綍鏃ュ織
+ logInfo := logc.VaSystemLog{
+ HostName: "localhost",
+ ProcName: "smartai",
+ ProcID: os.Getpid(),
+ Level: logc.LevelInfo,
+ Info: "smartai鍚姩",
+ }
+
+ LogDecoderInfo(ctx, logInfo)
+
go func() {
r := gin.Default()
r.Use(auth.AuthHandler())
@@ -84,3 +112,22 @@
logger.Debug("client is nil")
}
}
+
+// 淇濆瓨绯荤粺鏃ュ織
+func LogDecoderInfo(ctx context.Context, logInfo logc.VaSystemLog) {
+
+ logger.Debug("start LogDecoderInfo")
+
+ go func() {
+
+ logData, _ := json.Marshal(logInfo)
+ pub := bhmsg.MsgPublish{
+ Topic: []byte(VaSystemLogTopic),
+ Data: logData,
+ }
+ if !bh.Publish(&pub, 1000) {
+ logger.Error("LogDecoderInfo %s failed\n", VaSystemLogTopic)
+ }
+
+ }()
+}
diff --git a/appcenter-service/main.go b/appcenter-service/main.go
index 2cf2c2d..9c99824 100644
--- a/appcenter-service/main.go
+++ b/appcenter-service/main.go
@@ -1,10 +1,6 @@
package main
import (
- "basic.com/valib/bhomeclient.git"
- "basic.com/valib/bhomedbapi.git"
- "basic.com/valib/logger.git"
- "basic.com/valib/version.git"
"context"
"flag"
"net/http"
@@ -17,14 +13,19 @@
"vamicro/appcenter-service/service"
"vamicro/config"
versionControlS "vamicro/version-control/service"
+
+ "basic.com/valib/bhomeclient.git"
+ "basic.com/valib/bhomedbapi.git"
+ "basic.com/valib/logger.git"
+ vaversion "basic.com/valib/version.git"
)
var (
procName = service.ProcName
- proc = &bhomeclient.ProcInfo{
+ proc = &bhomeclient.ProcInfo{
Name: procName, //杩涚▼鍚嶇О
- ID: procName, //杩涚▼id
- Info: "", //杩涚▼鐨勬弿杩颁俊鎭紝鐢ㄤ簬鍖哄垎鍚屼竴杩涚▼鍚嶇О涓嬪涓繘绋�
+ ID: procName, //杩涚▼id
+ Info: "", //杩涚▼鐨勬弿杩颁俊鎭紝鐢ㄤ簬鍖哄垎鍚屼竴杩涚▼鍚嶇О涓嬪涓繘绋�
}
env = flag.String("e", "pro", "")
)
@@ -35,29 +36,29 @@
config.Init(*env)
// 鏃ュ織鍒濆鍖�
- var logFile = config.LogConf.Path + "vamicro-"+procName+".log"
+ var logFile = config.LogConf.Path + "vamicro-" + procName + ".log"
logger.InitLogger(logFile, config.LogConf.Level, config.LogConf.MaxSize, config.LogConf.MaxBackups, config.LogConf.MaxAge)
logger.Info("log init success !")
}
-func main(){
+func main() {
models.Init()
defer models.CloseDB()
ctx, cancel := context.WithCancel(context.Background())
- fm,pubTopics := initFuncMap()
- var reg = &bhomeclient.RegisterInfo {
- Proc: *proc,
- Channel: nil,
+ fm, pubTopics := initFuncMap()
+ var reg = &bhomeclient.RegisterInfo{
+ Proc: *proc,
+ Channel: nil,
PubTopic: pubTopics,
- SubTopic: []string{versionControlS.SysUpdateConfigTopic},
+ SubTopic: []string{versionControlS.SysUpdateConfigTopic},
}
q := make(chan os.Signal, 1)
signal.Notify(q, os.Interrupt, os.Kill, syscall.SIGTERM)
ms, err := bhomeclient.NewMicroNode(ctx, q, config.Server.AnalyServerId, reg, logger.Debug)
- if err !=nil {
+ if err != nil {
return
}
@@ -67,7 +68,7 @@
go ms.StartServer(fm)
go handleSubMsg(ctx, ms)
go service.SelfUpdateStart(ctx) //鑷姩鏇存柊
- go service.NoticeTick(ctx)//鏇存柊鎻愰啋
+ go service.NoticeTick(ctx) //鏇存柊鎻愰啋
// pprof 鐢ㄤ簬鍒嗘瀽鎬ц兘
go func() {
logger.Info(http.ListenAndServe("0.0.0.0:7073", nil))
@@ -80,7 +81,8 @@
}
const urlPrefix = "/data/api-v"
-func initFuncMap() (map[string]bhomeclient.MicroFunc,[]string) {
+
+func initFuncMap() (map[string]bhomeclient.MicroFunc, []string) {
funcMap := make(map[string]bhomeclient.MicroFunc)
sc := new(controllers.SdkController)
sa := new(controllers.SdkArgController)
@@ -113,7 +115,7 @@
funcMap[urlPrefix+"/app/upgrade/notice/delay"] = ac.DelayNotice
var pubTopics []string
- for key,_ := range funcMap {
+ for key, _ := range funcMap {
pubTopics = append(pubTopics, key)
}
return funcMap, pubTopics
@@ -129,4 +131,4 @@
service.PersistentWrapper(string(msg.Topic), msg.Data)
}
}
-}
\ No newline at end of file
+}
diff --git a/appcenter-service/service/SdkInstall.go b/appcenter-service/service/SdkInstall.go
index a4262e3..1efe61c 100644
--- a/appcenter-service/service/SdkInstall.go
+++ b/appcenter-service/service/SdkInstall.go
@@ -1,10 +1,6 @@
package service
import (
- "basic.com/valib/bhomeclient.git"
- "basic.com/valib/bhomedbapi.git"
- "basic.com/valib/licence.git"
- "basic.com/valib/logger.git"
"encoding/json"
"errors"
"fmt"
@@ -19,6 +15,11 @@
"vamicro/appcenter-service/vo"
"vamicro/config"
"vamicro/extend/util"
+
+ "basic.com/valib/bhomeclient.git"
+ "basic.com/valib/bhomedbapi.git"
+ "basic.com/valib/licence.git"
+ "basic.com/valib/logger.git"
)
type SdkInstallService struct {
@@ -410,8 +411,16 @@
installFile := path.Join(unPackPath, "install.sh")
if util.Exists(installFile) {
+ logger.Debug("寮�濮嬫墽琛岃剼鏈�:" + installFile)
// 鍒囨崲鍒板綋鍓嶈繍琛岀洰褰�
- os.Chdir(unPackPath)
+ err1 := os.Chmod(installFile, 0755)
+ if err1 != nil {
+ logger.Debug("淇敼鏉冮檺澶辫触:" + err1.Error())
+ }
+ err2 := os.Chdir(unPackPath)
+ if err2 != nil {
+ logger.Debug("淇敼鏉冮檺澶辫触:" + err2.Error())
+ }
b, err := ExecCmd(installFile)
if err != nil {
return false, err
@@ -642,7 +651,8 @@
var appDefArr []models.App
if err = json.Unmarshal(defB, &appDefArr); err == nil {
for _, ap := range appDefArr {
- if SaveApp(ap) {
+ //淇濆瓨澶辫触鎶ラ敊
+ if !SaveApp(ap) {
insErr = errors.New("娉ㄥ唽搴旂敤澶辫触锛屽簲鐢╥d:" + ap.Id + "")
return insErr
} else {
diff --git a/camera-common/models/Record.go b/camera-common/models/Record.go
index 5ff2d9f..b950b7a 100644
--- a/camera-common/models/Record.go
+++ b/camera-common/models/Record.go
@@ -4,11 +4,14 @@
"context"
"fmt"
"math"
+ "os"
+ "path/filepath"
"sort"
"strconv"
"strings"
"time"
+ "basic.com/valib/logger.git"
"github.com/milvus-io/milvus-sdk-go/v2/entity"
)
@@ -47,6 +50,7 @@
IsWarning int64 `json:"is_warning"`
ZhDescClass string `json:"zh_desc_class"`
TaskName string `json:"task_name"`
+ WarnTaskName string `json:"warn_task_name"`
EventLevelName string `json:"event_level_name"`
DetectNum int64 `json:"detect_num"`
Suggestion string `json:"suggestion"`
@@ -127,8 +131,9 @@
}
type TaskOption struct {
- TaskId int64 `db:"task_id" json:"taskId"`
- TaskName string `db:"task_name" json:"taskName"`
+ TaskId int64 `db:"task_id" json:"taskId"`
+ TaskName string `db:"task_name" json:"taskName"`
+ EventLevel int64 `db:"event_level" json:"eventLevel"`
}
type CheckOption struct {
@@ -187,6 +192,136 @@
Warning int64 `json:"warning`
Page int64 `json:"page"`
PageSize int64 `json:"pageSize"`
+}
+
+// 鏃堕棿娈�
+type TimeRange struct {
+ StartTime string `json:"startTime"`
+ EndTime string `json:"endTime"`
+}
+
+// 鍒犻櫎鏃ュ織
+func DeleteRecord(collectionName string, filterExpr string) (int, error) {
+ dataOp := &DataOperator{client: dbClient}
+ deletedFiles, err := dataOp.DelRecord(collectionName, filterExpr)
+ return deletedFiles, err
+}
+
+// 娓呯悊鏃ュ織
+func (do *DataOperator) DelRecord(collectionName string, filterExpr string) (int, error) {
+ ctx := context.Background()
+ queryResult, err := do.client.client.Query(
+ ctx,
+ collectionName,
+ []string{}, // 鎵�鏈夊垎鍖�
+ filterExpr,
+ []string{"id", "image_path", "video_path", "image_desc_path"}, // 杩斿洖鎵�鏈夊瓧娈�
+ // client.WithLimit(pageSize),
+ // client.WithOffset(offset),
+ )
+
+ // 2. 鎻愬彇ID鍜屾枃浠惰矾寰�
+ var ids []int64
+ var imgPaths []string
+ var videoPaths []string
+ var imgDesPaths []string
+ if len(queryResult) == 0 {
+ return 0, nil
+ }
+ count := queryResult[0].Len()
+ for i := 0; i < count; i++ {
+ for _, field := range queryResult {
+ switch field.Name() {
+ case "id":
+ IdColumn := field.(*entity.ColumnInt64).Data()
+ if len(IdColumn) > 0 {
+ id := IdColumn[i]
+ ids = append(ids, id)
+ }
+ case "image_path":
+ ImagePathColumn := field.(*entity.ColumnVarChar).Data()
+ if len(ImagePathColumn) > 0 {
+ imagePath := ImagePathColumn[i]
+ imgPaths = append(imgPaths, imagePath)
+ }
+ case "image_desc_path":
+ ImageDesPathColumn := field.(*entity.ColumnVarChar).Data()
+ if len(ImageDesPathColumn) > 0 {
+ imageDesPath := ImageDesPathColumn[i]
+ imgDesPaths = append(imgDesPaths, imageDesPath)
+ }
+ case "video_path":
+ VideoPathColumn := field.(*entity.ColumnVarChar).Data()
+ if len(VideoPathColumn) > 0 {
+ VideoPath := VideoPathColumn[i]
+ videoPaths = append(videoPaths, VideoPath)
+ }
+
+ }
+ }
+ }
+
+ if len(ids) > 0 {
+ idField := entity.NewColumnInt64("id", ids)
+ err = do.client.client.DeleteByPks(ctx, collectionName, "", idField)
+ if err != nil {
+ return 0, fmt.Errorf("failed to delete from Milvus: %v", err)
+ }
+ err = do.client.client.DeleteByPks(ctx, "smartrag", "", idField)
+ if err != nil {
+ return 0, fmt.Errorf("failed to delete from Milvus: %v", err)
+ }
+ }
+
+ // 鍥剧墖鍒犻櫎鏂囦欢
+ deletedFiles := 0
+ for _, path := range imgPaths {
+ if err := do.deleteFile(path); err != nil {
+ logger.Debug("failed to delete file " + path + " " + err.Error())
+ } else {
+ deletedFiles++
+ }
+ }
+ //鍒犻櫎鎻忚堪鍥剧墖
+ for _, path := range imgDesPaths {
+ if err := do.deleteFile(path); err != nil {
+ logger.Debug("failed to delete file " + path + " " + err.Error())
+ } else {
+ deletedFiles++
+ }
+ }
+
+ //鍒犻櫎瑙嗛鏂囦欢
+ for _, path := range videoPaths {
+ if err := do.deleteFile(path); err != nil {
+ logger.Debug("failed to delete file " + path + " " + err.Error())
+ } else {
+ deletedFiles++
+ }
+ }
+
+ return deletedFiles, err
+}
+
+func (do *DataOperator) deleteFile(relativePath string) error {
+ fullPath := relativePath
+
+ // 瀹夊叏妫�鏌ワ紝闃叉璺緞閬嶅巻鏀诲嚮
+ if !isSafePath(fullPath) {
+ return fmt.Errorf("invalid file path")
+ }
+
+ if _, err := os.Stat(fullPath); os.IsNotExist(err) {
+ return fmt.Errorf("file does not exist")
+ }
+
+ return os.Remove(fullPath)
+}
+
+// isSafePath 妫�鏌ヨ矾寰勬槸鍚﹀畨鍏紝闃叉璺緞閬嶅巻鏀诲嚮
+func isSafePath(targetPath string) bool {
+ rel := targetPath
+ return rel != ".." && rel[:2] != ".."+string(filepath.Separator)
}
// 鏍规嵁鍒嗛〉鍙栨暟鎹�
@@ -280,6 +415,11 @@
if len(TNColumn) > 0 {
record.TaskName = TNColumn[i]
}
+ case "warn_task_id":
+ WarnColumn := field.(*entity.ColumnVarChar).Data()
+ if len(WarnColumn) > 0 {
+ record.WarnTaskName = WarnColumn[i]
+ }
case "event_level_name":
EVColumn := field.(*entity.ColumnVarChar).Data()
if len(EVColumn) > 0 {
@@ -353,7 +493,7 @@
filterExpr,
[]string{"rule_id", "task_id", "is_waning", "zh_desc_class", "task_name", "event_level_name", "detect_num",
"event_level_id", "video_point_id", "video_point_name", "detect_id", "image_path",
- "video_path", "detect_time", "knowledge_id", "risk_description", "suggestion", "id", "is_desc"}, // 杩斿洖鎵�鏈夊瓧娈�
+ "video_path", "detect_time", "knowledge_id", "risk_description", "suggestion", "id", "is_desc", "warn_task_id"}, // 杩斿洖鎵�鏈夊瓧娈�
// client.WithLimit(pageSize),
// client.WithOffset(offset),
)
@@ -422,8 +562,8 @@
placeholders[i] = "?"
args[i] = id
}
- sqlStr := `select task_id,task_name from mal_smart_task where task_id in (` + strings.Join(placeholders, ",") + `)`
- if err := db.Raw(sqlStr).Scan(&items).Error; err != nil {
+ sqlStr := `select task_id,task_name,event_level from mal_smart_task where task_id in (` + strings.Join(placeholders, ",") + `)`
+ if err := db.Raw(sqlStr, args...).Scan(&items).Error; err != nil {
return nil, err
}
return
diff --git a/camera-service/controllers/camera.go b/camera-service/controllers/camera.go
index c71d8f0..e90ed77 100644
--- a/camera-service/controllers/camera.go
+++ b/camera-service/controllers/camera.go
@@ -1037,6 +1037,31 @@
}
/**
+ * 鍒犻櫎璁板綍
+ */
+func (cc CameraController) DelRecord(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
+ filter := " id > 0 "
+ info := models.TimeRange{}
+ if err := c.BindJSON(&info); err != nil {
+ return &bhomeclient.Reply{Success: false, Msg: "鍙傛暟鏈夎"}
+ }
+ startTime := info.StartTime
+ endTime := info.EndTime
+ if len(startTime) > 0 && len(endTime) > 0 {
+ filter += fmt.Sprintf(" and detect_time > '%s'", startTime)
+ filter += fmt.Sprintf(" and detect_time < '%s'", endTime)
+ deleteRecord, err := models.DeleteRecord("smartobject", filter)
+ if err != nil {
+ return &bhomeclient.Reply{Success: false, Msg: "鍒犻櫎澶辫触" + err.Error(), Data: nil}
+ } else {
+ return &bhomeclient.Reply{Success: true, Msg: "鍒犻櫎鎴愬姛", Data: deleteRecord}
+ }
+ } else {
+ return &bhomeclient.Reply{Success: false, Msg: "鍒犻櫎澶辫触", Data: nil}
+ }
+}
+
+/**
* 鑾峰彇鎶撴媿璁板綍
*/
func (cc CameraController) GetRecord(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
@@ -1152,6 +1177,7 @@
IsWarning: v.IsWarning,
DetectNum: v.DetectNum,
TaskName: v.TaskName,
+ WarnTaskName: v.WarnTaskName,
ZhDescClass: v.ZhDescClass,
EventLevelName: v.EventLevelName,
KnowledgeId: v.KnowledgeId,
@@ -1170,10 +1196,38 @@
CameraAddr: v.CameraName,
CameraName: v.CameraName,
}
+ var taskId []int64
- //浠诲姟鍚嶇О
+ //浠诲姟id閲嶆柊璧嬪��
+ if len(v.WarnTaskName) > 0 {
+ v.TaskId = []int64{}
+ taskId = []int64{}
+ arr := strings.Split(v.WarnTaskName, ";")
+ for _, temp := range arr {
+ if len(temp) > 0 {
+
+ tempId, _ := strconv.ParseInt(strings.TrimSpace(temp), 10, 64)
+
+ taskId = append(taskId, tempId)
+ }
+ }
+ v.TaskId = taskId
+ }
items, _ := models.GetTaskByIds(v.TaskId)
temp.TaskNames = items
+ //浠诲姟鍚嶇О閲嶆柊璧嬪��
+ var result string
+ if len(taskId) > 0 && len(items) > 0 {
+ v.EventLevelId = []int64{}
+ for index, item := range items {
+ v.EventLevelId = append(v.EventLevelId, item.EventLevel)
+ if index > 0 {
+ result += ","
+ }
+ result += item.TaskName
+ }
+ temp.TaskName = result
+ }
//瑙嗛鍐呭
// items4, _ := models.GetVideoById(v.VideoPointId)
@@ -1192,6 +1246,18 @@
items5, _ := models.GetEventByIds(v.EventLevelId)
temp.EventLevels = items5
+ //浜嬩欢绛夌骇閲嶆柊璧嬪��
+ var result2 string
+ if len(taskId) > 0 && len(items5) > 0 {
+ for i, item5 := range items5 {
+ if i > 0 {
+ result2 += ","
+ }
+ result2 += item5.DictValue
+ }
+ temp.EventLevelName = result2
+ }
+
//鐭ヨ瘑搴�
items6, _ := models.GetKnowledgeDocumentByIds(v.KnowledgeId)
// 鐭ヨ瘑搴撹矾寰�
diff --git a/camera-service/main.go b/camera-service/main.go
index 63b71ca..11bbdcc 100644
--- a/camera-service/main.go
+++ b/camera-service/main.go
@@ -132,6 +132,8 @@
funcMap[urlPrefix+"/camera/getRecord"] = cc.GetRecord
//鑾峰彇浠诲姟鏍规嵁鎽勫儚鏈篿ds
funcMap[urlPrefix+"/camera/getTasks"] = cc.GetTasks
+ //鍒犻櫎璁板綍
+ funcMap[urlPrefix+"/clearData/deleteData"] = cc.DelRecord
funcMap[urlPrefix+"/task/aggregateTaskList"] = cc.GetAllTasks
diff --git a/system-service/controllers/voice.go b/system-service/controllers/voice.go
index 76725ac..fb697ba 100644
--- a/system-service/controllers/voice.go
+++ b/system-service/controllers/voice.go
@@ -1,12 +1,13 @@
package controllers
import (
- "basic.com/pubsub/protomsg.git"
- "basic.com/valib/bhomeclient.git"
"encoding/json"
- "github.com/satori/go.uuid"
"vamicro/system-service/models"
"vamicro/system-service/service"
+
+ "basic.com/pubsub/protomsg.git"
+ "basic.com/valib/bhomeclient.git"
+ uuid "github.com/satori/go.uuid"
)
type VoiceController struct{}
diff --git a/system-service/main.go b/system-service/main.go
index 8de6947..2df4b7b 100644
--- a/system-service/main.go
+++ b/system-service/main.go
@@ -230,8 +230,8 @@
funcMap[urlPrefix+"/test/addServer"] = testController.AddServer
funcMap[urlPrefix+"/test/exitServer"] = testController.ExitServer
- deleteDataController := new(controllers.DeleteDataController)
- funcMap[urlPrefix+"/clearData/deleteData"] = deleteDataController.DeleteEsData
+ // deleteDataController := new(controllers.DeleteDataController)
+ // funcMap[urlPrefix+"/clearData/deleteData"] = deleteDataController.DeleteEsData
var dac controllers.DevAuthController
funcMap[urlPrefix+"/devAuth/authConfig"] = dac.AuthConfig
diff --git a/system-service/sys/sysinfo.go b/system-service/sys/sysinfo.go
index 51693d4..e5ede0e 100644
--- a/system-service/sys/sysinfo.go
+++ b/system-service/sys/sysinfo.go
@@ -12,7 +12,7 @@
"vamicro/extend/util"
"basic.com/valib/gogpu.git"
-
+ "basic.com/valib/logger.git"
"github.com/shirou/gopsutil/cpu"
"github.com/shirou/gopsutil/disk"
"github.com/shirou/gopsutil/host"
@@ -85,11 +85,22 @@
cmd := exec.Command("/bin/sh", "-c", "lsblk -d | grep -v part | grep -v SWAP | grep -v M | grep disk | awk '{printf $4\" \"}'")
disks, _ := cmd.Output()
cpu, _ := cpu.Info()
+ gpuInfo, err := gogpu.Info()
+ var gpuMemTotal int64
+ if err == nil {
+ for _, gpu := range gpuInfo.Info {
+ gpuMemTotal = gpuMemTotal + gpu.GpuMemoryTotal
+ }
+ } else {
+ logger.Debug("gpu error " + err.Error())
+ }
+ gpu := gpuMemTotal
mem, _ := mem.VirtualMemory()
host, _ := host.Info()
return util.Struct2Map(map[string]interface{}{
"cpu": cpu,
+ "gpu": gpu,
"mem": mem,
"host": host,
"disk": string(disks),
diff --git a/version-control/controller/controller.go b/version-control/controller/controller.go
index 5a4c984..5850caf 100644
--- a/version-control/controller/controller.go
+++ b/version-control/controller/controller.go
@@ -591,6 +591,16 @@
auth := util.GetAuthorization()
data["expireTime"] = ""
+ if len(auth) == 0 {
+ data["sn"] = ""
+ data["authorization"] = ""
+ data["expire"] = false
+ data["edition"] = "trial"
+ data["installTime"] = ""
+ data["q"] = ""
+ return data
+ }
+
authInfo, err := util.GetAuthorizationInfo(auth)
//logger.Debug("鎺堟潈淇℃伅锛�", authInfo, err, licence.GetMachineCode())
if err == nil && authInfo.MachineCode == licence.GetMachineCode() {
diff --git a/version-control/main.go b/version-control/main.go
index 43c9602..0f3c5fe 100644
--- a/version-control/main.go
+++ b/version-control/main.go
@@ -17,7 +17,7 @@
"basic.com/valib/bhomeclient.git"
"basic.com/valib/bhomedbapi.git"
"basic.com/valib/logger.git"
- "basic.com/valib/version.git"
+ vaversion "basic.com/valib/version.git"
)
var (
@@ -57,7 +57,7 @@
err = syscall.Flock(int(lock.Fd()), syscall.LOCK_EX|syscall.LOCK_NB)
if err != nil {
- fmt.Println("report service is running ")
+ fmt.Println("version-control is running ")
os.Exit(1)
}
diff --git a/version-control/service/backup.go b/version-control/service/backup.go
index c4bc786..9493cbc 100644
--- a/version-control/service/backup.go
+++ b/version-control/service/backup.go
@@ -14,14 +14,15 @@
)
/*
- 绯荤粺澶囦唤銆佸浠借繕鍘熴�佹寜璁剧疆鍛ㄦ湡鎬у浠�
- 澶囦唤鐨勬暟鎹富瑕佸寘鎷瑂qlite鏁版嵁銆乧onfig浠ュ強exe(鎸夐渶瑕�)
- 鎸夐挳鍙互瑙﹀彂绔嬪嵆澶囦唤
- 鍙傛暟:
- 1.澶囦唤寮�鍏�
- 2.澶囦唤鐩綍鏂囦欢澶�(/opt/vasystem/backup_auto)
- 3.澶囦唤鍛ㄦ湡(姣�7澶╁浠戒竴娆�,澶囦唤鏃堕棿鏄闂�0鐐�)
- 4.澶囦唤鏁版嵁淇濆瓨鏃堕棿
+绯荤粺澶囦唤銆佸浠借繕鍘熴�佹寜璁剧疆鍛ㄦ湡鎬у浠�
+澶囦唤鐨勬暟鎹富瑕佸寘鎷瑂qlite鏁版嵁銆乧onfig浠ュ強exe(鎸夐渶瑕�)
+鎸夐挳鍙互瑙﹀彂绔嬪嵆澶囦唤
+鍙傛暟:
+
+ 1.澶囦唤寮�鍏�
+ 2.澶囦唤鐩綍鏂囦欢澶�(/opt/vasystem/backup_auto)
+ 3.澶囦唤鍛ㄦ湡(姣�7澶╁浠戒竴娆�,澶囦唤鏃堕棿鏄闂�0鐐�)
+ 4.澶囦唤鏁版嵁淇濆瓨鏃堕棿
*/
func BakSchedule(ctx context.Context) {
// tk := time.NewTicker(time.Minute)
@@ -37,7 +38,7 @@
}
}
-//鑷姩娓呯悊澶т簬淇濆瓨鏃堕棿鐨勫浠芥暟鎹�
+// 鑷姩娓呯悊澶т簬淇濆瓨鏃堕棿鐨勫浠芥暟鎹�
func removeCheck() {
var ab models.AutoBackupConf
i, e := ab.Select()
@@ -144,9 +145,12 @@
os.Mkdir(recoverBakDir, os.ModePerm)
util.CopyDirByCmd("/opt/vasystem/config", recoverBakDir)
+ // _, err := exec.Command("/bin/sh", "-c", fmt.Sprintf(`
+ // /opt/vasystem/killAllProcs.sh &&
+ // cp -rf %s/* /opt/vasystem/config/ &&
+ // /opt/vasystem/daemon.sh`, dir)).Output()
_, err := exec.Command("/bin/sh", "-c", fmt.Sprintf(`
- /opt/vasystem/procs/killAllProcs.sh &&
- cp -rf %s/* /opt/vasystem/config/ &&
- /opt/vasystem/daemon.sh`, dir)).Output()
+ cp -rf %s/* /opt/vasystem/ &&
+ /opt/vasystem/daemon.sh`, dir)).Output()
return err
}
--
Gitblit v1.8.0