mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-22 17:31:03 +01:00
feat: optimized dependency api
This commit is contained in:
@@ -57,6 +57,8 @@ func GetFilter(c *gin.Context) (f *entity.Filter, err error) {
|
||||
items = append(items, item)
|
||||
}
|
||||
conditions[i].Value = items
|
||||
default:
|
||||
return nil, errors2.New("invalid type")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,13 +2,10 @@ package entity
|
||||
|
||||
import "go.mongodb.org/mongo-driver/bson/primitive"
|
||||
|
||||
type DependencyResult struct {
|
||||
type DependencyRepo struct {
|
||||
Name string `json:"name,omitempty" bson:"name,omitempty"`
|
||||
NodeIds []primitive.ObjectID `json:"node_ids,omitempty" bson:"node_ids,omitempty"`
|
||||
Versions []string `json:"versions,omitempty" bson:"versions,omitempty"`
|
||||
LatestVersion string `json:"latest_version" bson:"latest_version"`
|
||||
Count int `json:"count,omitempty" bson:"count,omitempty"`
|
||||
Upgradable bool `json:"upgradable" bson:"upgradable"`
|
||||
Downgradable bool `json:"downgradable" bson:"downgradable"`
|
||||
Installable bool `json:"installable" bson:"installable"`
|
||||
Type string `json:"type" bson:"type"`
|
||||
}
|
||||
|
||||
@@ -151,21 +151,15 @@ func (svr NodeServiceServer) GetSubscribeStream(nodeId primitive.ObjectID) (stre
|
||||
var nodeSvr *NodeServiceServer
|
||||
var nodeSvrOnce = new(sync.Once)
|
||||
|
||||
func NewNodeServiceServer() (res *NodeServiceServer, err error) {
|
||||
func NewNodeServiceServer() *NodeServiceServer {
|
||||
if nodeSvr != nil {
|
||||
return nodeSvr, nil
|
||||
return nodeSvr
|
||||
}
|
||||
nodeSvrOnce.Do(func() {
|
||||
nodeSvr = &NodeServiceServer{
|
||||
subs: make(map[primitive.ObjectID]grpc.NodeService_SubscribeServer),
|
||||
}
|
||||
nodeSvr.cfgSvc = nodeconfig.GetNodeConfigService()
|
||||
if err != nil {
|
||||
log.Errorf("[NodeServiceServer] error: %s", err.Error())
|
||||
}
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nodeSvr, nil
|
||||
return nodeSvr
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ import (
|
||||
"github.com/spf13/viper"
|
||||
"google.golang.org/grpc"
|
||||
"net"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type GrpcServer struct {
|
||||
@@ -49,9 +50,7 @@ func (svr *GrpcServer) SetConfigPath(path string) {
|
||||
|
||||
func (svr *GrpcServer) Init() (err error) {
|
||||
// register
|
||||
if err := svr.register(); err != nil {
|
||||
return err
|
||||
}
|
||||
svr.register()
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -131,16 +130,14 @@ func NewGrpcServer() (svr *GrpcServer, err error) {
|
||||
if viper.GetString("grpc.server.address") != "" {
|
||||
svr.address, err = entity.NewAddressFromString(viper.GetString("grpc.server.address"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
log.Fatalf("[NewGrpcServer] failed to parse grpc server address: %v", err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
svr.nodeCfgSvc = nodeconfig.GetNodeConfigService()
|
||||
|
||||
svr.NodeSvr, err = NewNodeServiceServer()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
svr.NodeSvr = NewNodeServiceServer()
|
||||
svr.ModelBaseServiceSvr = NewModelBaseServiceServer()
|
||||
svr.TaskSvr, err = NewTaskServiceServer()
|
||||
if err != nil {
|
||||
@@ -167,22 +164,20 @@ func NewGrpcServer() (svr *GrpcServer, err error) {
|
||||
)
|
||||
|
||||
// initialize
|
||||
if err := svr.Init(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
svr.Init()
|
||||
|
||||
return svr, nil
|
||||
}
|
||||
|
||||
var _serverV2 *GrpcServer
|
||||
var _server *GrpcServer
|
||||
var _serverOnce sync.Once
|
||||
|
||||
func GetGrpcServerV2() (svr *GrpcServer, err error) {
|
||||
if _serverV2 != nil {
|
||||
return _serverV2, nil
|
||||
}
|
||||
_serverV2, err = NewGrpcServer()
|
||||
func GetGrpcServer() (svr *GrpcServer, err error) {
|
||||
_serverOnce.Do(func() {
|
||||
_server, err = NewGrpcServer()
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return _serverV2, nil
|
||||
return _server, nil
|
||||
}
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"github.com/crawlab-team/crawlab/core/entity"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
type DependencyV2 struct {
|
||||
any `collection:"dependencies"`
|
||||
BaseModelV2[DependencyV2] `bson:",inline"`
|
||||
Name string `json:"name" bson:"name"`
|
||||
Description string `json:"description" bson:"description"`
|
||||
NodeId primitive.ObjectID `json:"node_id" bson:"node_id"`
|
||||
Type string `json:"type" bson:"type"`
|
||||
LatestVersion string `json:"latest_version" bson:"latest_version"`
|
||||
Version string `json:"version" bson:"version"`
|
||||
Result entity.DependencyResult `json:"result" bson:"-"`
|
||||
Name string `json:"name" bson:"name"`
|
||||
Description string `json:"description" bson:"description"`
|
||||
NodeId primitive.ObjectID `json:"node_id" bson:"node_id"`
|
||||
Type string `json:"type" bson:"type"`
|
||||
LatestVersion string `json:"latest_version" bson:"latest_version"`
|
||||
Version string `json:"version" bson:"version"`
|
||||
NodeIds []primitive.ObjectID `json:"node_ids,omitempty" bson:"-"`
|
||||
Versions []string `json:"versions,omitempty" bson:"-"`
|
||||
}
|
||||
|
||||
@@ -333,7 +333,7 @@ func newMasterServiceV2() (res *MasterService, err error) {
|
||||
svc.cfgSvc = config.GetNodeConfigService()
|
||||
|
||||
// grpc server
|
||||
svc.server, err = server.GetGrpcServerV2()
|
||||
svc.server, err = server.GetGrpcServer()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -241,7 +241,7 @@ func NewTaskSchedulerService() (svc2 *Service, err error) {
|
||||
interval: 5 * time.Second,
|
||||
}
|
||||
svc.nodeCfgSvc = nodeconfig.GetNodeConfigService()
|
||||
svc.svr, err = server.GetGrpcServerV2()
|
||||
svc.svr, err = server.GetGrpcServer()
|
||||
if err != nil {
|
||||
log.Errorf("failed to get grpc server: %v", err)
|
||||
return nil, err
|
||||
|
||||
@@ -966,6 +966,7 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGi
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s=
|
||||
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
|
||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=
|
||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw=
|
||||
github.com/kr/pty v1.1.8 h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI=
|
||||
github.com/linxGnu/gumble v1.0.0 h1:OAJud8Hy4rmV9I5p/KTRiVpwwklMTd9Ankza3Mz7a4M=
|
||||
|
||||
Reference in New Issue
Block a user