Commit 54f6d8e6 authored by vicotor's avatar vicotor

add mongo

parent 2ae53176
......@@ -33,4 +33,4 @@ demoworker:
clean:
rm -fr build/*
docker:
docker build -t manager:${TAG} .
docker build --no-cache -t manager:${TAG} .
......@@ -9,6 +9,7 @@ worker_signature_expired_time=1
[mongodb]
url="mongodb://0.0.0.0:27017"
database="ai"
user="admin"
password="admin"
......
......@@ -31,6 +31,7 @@ type RedisConfig struct {
type MongoDbConfig struct {
Url string `json:"url" toml:"url"`
Database string `json:"database" toml:"database"`
User string `json:"user" toml:"user"`
Passwd string `json:"password" toml:"password"`
}
......
......@@ -200,3 +200,7 @@ func (n *Node) PayForFee(uid int64, fee int64) error {
func (n *Node) Cache() *cachedata.CacheData {
return n.cache
}
func (n *Node) Mongo() *mongo.Client {
return n.mogo
}
......@@ -19,6 +19,7 @@ import (
"github.com/odysseus/service-registry/registry"
"github.com/redis/go-redis/v9"
log "github.com/sirupsen/logrus"
"go.mongodb.org/mongo-driver/mongo"
"golang.org/x/crypto/sha3"
"math/big"
"regexp"
......@@ -54,6 +55,7 @@ type NodeInterface interface {
Sign(hash []byte) ([]byte, error)
Cache() *cachedata.CacheData
PayForFee(uid int64, fee int64) error
Mongo() *mongo.Client
}
type WorkerManager struct {
......@@ -85,6 +87,9 @@ func NewWorkerManager(rdb *redis.Client, node NodeInterface) *WorkerManager {
rdb: rdb,
node: node,
std: standardlib.NewStandardTasks(),
workerInfoOperator: operator.NewDBWorker(node.Mongo(), config.GetConfig().Mongo.Database),
workerInstalledOperator: operator.NewDBWorkerInstalled(node.Mongo(), config.GetConfig().Mongo.Database),
workerRunningOperator: operator.NewDBWorkerRunning(node.Mongo(), config.GetConfig().Mongo.Database),
}
}
......
......@@ -7,6 +7,8 @@ import (
"fmt"
"github.com/gomodule/redigo/redis"
"github.com/google/uuid"
"github.com/odysseus/mogo/operator"
"github.com/odysseus/mogo/types"
"github.com/odysseus/nodemanager/config"
log "github.com/sirupsen/logrus"
"strconv"
......@@ -76,6 +78,16 @@ func (wm *WorkerManager) AddWorkerFirst(worker *Worker) error {
}
}
}
_, err := wm.workerInfoOperator.InsertWorker(context.Background(), &operator.WorkerInfo{
WorkerId: worker.WorkerAccount().String(),
NodeInfo: types.PbToNodeInfo(worker.info.nodeInfo.Info),
Models: types.PbToModelInfo(worker.info.nodeInfo.Models),
Hardware: types.PbToHardwareInfo(worker.info.nodeInfo.Hardware),
})
if err != nil {
log.WithError(err).Error("insert worker info failed")
return err
}
return nil
}
......@@ -185,6 +197,11 @@ func (wm *WorkerManager) InActiveWorker(worker *Worker) {
wm.rdb.Del(context.Background(), workerBootedResourceInfoKey(worker))
if worker.info.nodeInfo != nil {
wm.rmWorkerFromSets(worker, worker.info.nodeInfo.Info.BenefitAddress)
n, err := wm.workerInfoOperator.DeleteByWorkerId(context.Background(), worker.WorkerAccount().String())
if err != nil {
log.WithError(err).Error("delete worker info failed")
}
log.Debugf("delete worker info count %d", n)
}
}
}
......
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