qixiaoning
2025-08-21 e38654fe9eff4562da4f18f8f018aed7879d493c
获取算力接口实现
2个文件已修改
87 ■■■■ 已修改文件
sysinfo-service/service/psutil.go 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system-service/service/devInfoSync.go 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sysinfo-service/service/psutil.go
@@ -33,9 +33,35 @@
        Stat.Mem = *meminfo
    }
    // Gpu
    // agxGpuProcIface := "/sys/devices/gpu.0/load"
    // if Exists(agxGpuProcIface) {
    //     fd, err1 := os.Open(agxGpuProcIface)
    //     if err1 == nil {
    //         var load int64
    //         fmt.Fscanf(fd, "%d", &load)
    //         // 模拟nvidia库的输出
    //         Stat.Gpu = append(Stat.Gpu, gogpu.GpuUnitInfo{
    //             GpuMemoryTotal: 1000,
    //             GpuMemoryUsed:  load,
    //         })
    //         fd.Close()
    //     }
    // } else {
    //     if gpuInfo, err := gogpu.Info(); err == nil {
    //         sort.Sort(gogpu.GPURank(gpuInfo.Info))
    //         Stat.Gpu = Stat.Gpu[0:0]
    //         for _, v := range gpuInfo.Info {
    //             Stat.Gpu = append(Stat.Gpu, v)
    //         }
    //     }
    // }
    // Gpu
    agxGpuProcIface := "/sys/devices/gpu.0/load"
    if _, err := os.Stat(agxGpuProcIface); !os.IsExist(err) {
    if Exists(agxGpuProcIface){
        fd, err1 := os.Open(agxGpuProcIface)
        if err1 == nil {
            var load int64
@@ -136,3 +162,14 @@
    return Stat
}
func Exists(path string) bool {
    _, err := os.Stat(path) //os.Stat获取文件信息
    if err != nil {
        if os.IsExist(err) {
            return true
        }
        return false
    }
    return true
}
system-service/service/devInfoSync.go
@@ -155,30 +155,30 @@
    if diff {
        // 同步设备信息到商城
        if util.GetShopUrl() != "" {
            body := util.Struct2Map(i)
            url := "http://" + util.GetShopUrl() + "/data/api-d/device/syncDevToCloud"
            header := map[string]string{
                "Authorization": token,
            }
            data, err := util.DoPostRequest(url, util.CONTENT_TYPE_JSON, body, nil, header, 10*time.Second)
            if err != nil {
                logger.Error("send devInfo to cloud err:", err)
                return
            }
            logger.Debug("syncDevToCloud result:", string(data))
            var result bhomedbapi.Result
            err = json.Unmarshal(data, &result)
            if err != nil {
                logger.Error("unmarshal err:", err)
                return
            }
            if result.Success {
                lstSync = &i
            } else {
                logger.Error("syncDevToCloud result:", result)
            }
        }
        // if util.GetShopUrl() != "" {
        //     body := util.Struct2Map(i)
        //     url := "http://" + util.GetShopUrl() + "/data/api-d/device/syncDevToCloud"
        //     header := map[string]string{
        //         "Authorization": token,
        //     }
        //     data, err := util.DoPostRequest(url, util.CONTENT_TYPE_JSON, body, nil, header, 10*time.Second)
        //     if err != nil {
        //         logger.Error("send devInfo to cloud err:", err)
        //         return
        //     }
        //     logger.Debug("syncDevToCloud result:", string(data))
        //     var result bhomedbapi.Result
        //     err = json.Unmarshal(data, &result)
        //     if err != nil {
        //         logger.Error("unmarshal err:", err)
        //         return
        //     }
        //     if result.Success {
        //         lstSync = &i
        //     } else {
        //         logger.Error("syncDevToCloud result:", result)
        //     }
        // }
        //查看是否有管理节点管理着此台设备
        syncToDevManager(i)