mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-21 17:21:09 +01:00
refactor: replace activeNodes with allList in dependency dialogs and related components
This commit is contained in:
@@ -1,13 +1,14 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/crawlab-team/crawlab/core/models/service"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"time"
|
||||
|
||||
"github.com/crawlab-team/crawlab/core/constants"
|
||||
"github.com/crawlab-team/crawlab/core/entity"
|
||||
"github.com/crawlab-team/crawlab/core/models/models"
|
||||
"github.com/crawlab-team/crawlab/core/mongo"
|
||||
mongo2 "go.mongodb.org/mongo-driver/mongo"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -44,7 +45,7 @@ func GetStatsOverview(_ *gin.Context, params *GetStatsOverviewParams) (response
|
||||
var data GetStatsOverviewResponse
|
||||
|
||||
// nodes
|
||||
data.Nodes, err = mongo.GetMongoCol(models.GetCollectionNameByInstance(models.Node{})).Count(bson.M{"active": true})
|
||||
data.Nodes, err = service.GetCollection[models.Node]().Count(bson.M{"active": true})
|
||||
if err != nil {
|
||||
if err.Error() != mongo2.ErrNoDocuments.Error() {
|
||||
return nil, err
|
||||
@@ -53,7 +54,7 @@ func GetStatsOverview(_ *gin.Context, params *GetStatsOverviewParams) (response
|
||||
}
|
||||
|
||||
// projects
|
||||
data.Projects, err = mongo.GetMongoCol(models.GetCollectionNameByInstance(models.Project{})).Count(nil)
|
||||
data.Projects, err = service.GetCollection[models.Project]().Count(nil)
|
||||
if err != nil {
|
||||
if err.Error() != mongo2.ErrNoDocuments.Error() {
|
||||
return nil, err
|
||||
@@ -62,7 +63,7 @@ func GetStatsOverview(_ *gin.Context, params *GetStatsOverviewParams) (response
|
||||
}
|
||||
|
||||
// spiders
|
||||
data.Spiders, err = mongo.GetMongoCol(models.GetCollectionNameByInstance(models.Spider{})).Count(nil)
|
||||
data.Spiders, err = service.GetCollection[models.Spider]().Count(nil)
|
||||
if err != nil {
|
||||
if err.Error() != mongo2.ErrNoDocuments.Error() {
|
||||
return nil, err
|
||||
@@ -71,7 +72,7 @@ func GetStatsOverview(_ *gin.Context, params *GetStatsOverviewParams) (response
|
||||
}
|
||||
|
||||
// schedules
|
||||
data.Schedules, err = mongo.GetMongoCol(models.GetCollectionNameByInstance(models.Schedule{})).Count(nil)
|
||||
data.Schedules, err = service.GetCollection[models.Schedule]().Count(nil)
|
||||
if err != nil {
|
||||
if err.Error() != mongo2.ErrNoDocuments.Error() {
|
||||
return nil, err
|
||||
@@ -80,7 +81,7 @@ func GetStatsOverview(_ *gin.Context, params *GetStatsOverviewParams) (response
|
||||
}
|
||||
|
||||
// tasks
|
||||
data.Tasks, err = mongo.GetMongoCol(models.GetCollectionNameByInstance(models.Task{})).Count(nil)
|
||||
data.Tasks, err = service.GetCollection[models.Task]().Count(nil)
|
||||
if err != nil {
|
||||
if err.Error() != mongo2.ErrNoDocuments.Error() {
|
||||
return nil, err
|
||||
@@ -89,7 +90,7 @@ func GetStatsOverview(_ *gin.Context, params *GetStatsOverviewParams) (response
|
||||
}
|
||||
|
||||
// error tasks
|
||||
data.ErrorTasks, err = mongo.GetMongoCol(models.GetCollectionNameByInstance(models.Task{})).Count(bson.M{"status": constants.TaskStatusError})
|
||||
data.ErrorTasks, err = service.GetCollection[models.Task]().Count(bson.M{"status": constants.TaskStatusError})
|
||||
if err != nil {
|
||||
if err.Error() != mongo2.ErrNoDocuments.Error() {
|
||||
return nil, err
|
||||
@@ -111,15 +112,18 @@ func GetStatsOverview(_ *gin.Context, params *GetStatsOverviewParams) (response
|
||||
var res struct {
|
||||
Results int `bson:"results"`
|
||||
}
|
||||
if err := mongo.GetMongoCol(models.GetCollectionNameByInstance(models.TaskStat{})).Aggregate(pipeline, nil).One(&res); err != nil {
|
||||
return nil, err
|
||||
if err := service.GetCollection[models.TaskStat]().Aggregate(pipeline, nil).One(&res); err != nil {
|
||||
if !errors.Is(err, mongo2.ErrNoDocuments) {
|
||||
return nil, err
|
||||
}
|
||||
res.Results = 0
|
||||
}
|
||||
data.Results = res.Results
|
||||
|
||||
// users
|
||||
data.Users, err = mongo.GetMongoCol(models.GetCollectionNameByInstance(models.User{})).Count(nil)
|
||||
data.Users, err = service.GetCollection[models.User]().Count(nil)
|
||||
if err != nil {
|
||||
if err.Error() != mongo2.ErrNoDocuments.Error() {
|
||||
if !errors.Is(err, mongo2.ErrNoDocuments) {
|
||||
return nil, err
|
||||
}
|
||||
data.Users = 0
|
||||
@@ -168,7 +172,7 @@ func GetStatsDaily(_ *gin.Context, params *GetStatsDailyParams) (response *Respo
|
||||
}},
|
||||
}
|
||||
var results []entity.StatsDailyItem
|
||||
if err := mongo.GetMongoCol(models.GetCollectionNameByInstance(models.TaskStat{})).Aggregate(pipeline, nil).All(&results); err != nil {
|
||||
if err := service.GetCollection[models.TaskStat]().Aggregate(pipeline, nil).All(&results); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return GetDataResponse(results)
|
||||
@@ -248,7 +252,7 @@ func getTaskStatsByStatus(query bson.M) (data []GetStatsTaskResponseByStatusItem
|
||||
},
|
||||
}},
|
||||
}
|
||||
if err := mongo.GetMongoCol(models.GetCollectionNameByInstance(models.Task{})).Aggregate(pipeline, nil).All(&data); err != nil {
|
||||
if err := service.GetCollection[models.Task]().Aggregate(pipeline, nil).All(&data); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
@@ -283,7 +287,7 @@ func getTaskStatsByNode(query bson.M) (data []GetStatsTaskResponseByNodeItem, er
|
||||
},
|
||||
}},
|
||||
}
|
||||
if err := mongo.GetMongoCol(models.GetCollectionNameByInstance(models.Task{})).Aggregate(pipeline, nil).All(&data); err != nil {
|
||||
if err := service.GetCollection[models.Task]().Aggregate(pipeline, nil).All(&data); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
@@ -319,7 +323,7 @@ func getTaskStatsBySpider(query bson.M) (data []GetStatsTaskResponseBySpiderItem
|
||||
}},
|
||||
{{"$limit", 10}},
|
||||
}
|
||||
if err := mongo.GetMongoCol(models.GetCollectionNameByInstance(models.Task{})).Aggregate(pipeline, nil).All(&data); err != nil {
|
||||
if err := service.GetCollection[models.Task]().Aggregate(pipeline, nil).All(&data); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
|
||||
@@ -172,5 +172,6 @@
|
||||
"json-editor-vue": "^0.17.0",
|
||||
"semver": "^7.6.3",
|
||||
"uuid": "^10.0.0"
|
||||
}
|
||||
},
|
||||
"packageManager": "pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1"
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ const ns: ListStoreNamespace = 'dependency';
|
||||
const store = useStore();
|
||||
const { dependency: state, node: nodeState } = store.state as RootStoreState;
|
||||
|
||||
const activeNodes = computed(() => nodeState.activeNodes.filter(n => n.active));
|
||||
const activeNodes = computed(() => nodeState.allNodes.filter(n => n.active));
|
||||
|
||||
const toInstallNodes = computed(() => {
|
||||
const { mode, node_ids } = state.installForm;
|
||||
|
||||
@@ -9,7 +9,7 @@ const ns: ListStoreNamespace = 'dependency';
|
||||
const store = useStore();
|
||||
const { dependency: state, node: nodeState } = store.state as RootStoreState;
|
||||
|
||||
const activeNodes = computed(() => nodeState.activeNodes.filter(n => n.active));
|
||||
const activeNodes = computed(() => nodeState.allNodes.filter(n => n.active));
|
||||
|
||||
const toUninstallNodes = computed(() => {
|
||||
const { mode, node_ids } = state.uninstallForm;
|
||||
|
||||
@@ -18,7 +18,7 @@ const useNode = (store: Store<RootStoreState>) => {
|
||||
const formRules: FormRules = {};
|
||||
|
||||
const activeNodesSorted = computed(() => {
|
||||
return state.activeNodes
|
||||
return state.allNodes
|
||||
.filter(n => n.active)
|
||||
.sort((a, b) => {
|
||||
if (a.is_master) return -1;
|
||||
|
||||
@@ -31,7 +31,7 @@ const useNotificationAlert = (store: Store<RootStoreState>) => {
|
||||
() =>
|
||||
[
|
||||
{ label: t('common.mode.all'), value: EMPTY_OBJECT_ID },
|
||||
...nodeState.activeNodes
|
||||
...nodeState.allNodes
|
||||
.filter(node => node.active)
|
||||
.map(node => ({
|
||||
label: node.name,
|
||||
|
||||
@@ -94,9 +94,10 @@ const activeTemplateOption = computed<SpiderTemplate | undefined>(() => {
|
||||
return getSpiderTemplates().find(d => d.name === form.value.template);
|
||||
});
|
||||
|
||||
const getActiveNodes = async () => {
|
||||
await store.dispatch('node/getActiveNodes');
|
||||
const getAllNodes = async () => {
|
||||
await store.dispatch('node/getAllNodes');
|
||||
};
|
||||
onBeforeMount(getAllNodes);
|
||||
|
||||
defineExpose({
|
||||
validate,
|
||||
|
||||
@@ -7,17 +7,17 @@ type NodeStoreModule = BaseModule<
|
||||
|
||||
interface NodeStoreState extends BaseStoreState<CNode> {
|
||||
nodeMetricsMap: Record<string, Metric>;
|
||||
activeNodes: CNode[];
|
||||
allNodes: CNode[];
|
||||
}
|
||||
|
||||
type NodeStoreGetters = BaseStoreGetters<CNode>;
|
||||
|
||||
interface NodeStoreMutations extends BaseStoreMutations<CNode> {
|
||||
setNodeMetricsMap: StoreMutation<NodeStoreState, Record<string, Metric>>;
|
||||
setActiveNodes: StoreMutation<NodeStoreState, CNode[]>;
|
||||
setAllNodes: StoreMutation<NodeStoreState, CNode[]>;
|
||||
}
|
||||
|
||||
interface NodeStoreActions extends BaseStoreActions<CNode> {
|
||||
getNodeMetrics: StoreAction<NodeStoreState>;
|
||||
getActiveNodes: StoreAction<NodeStoreState>;
|
||||
getAllNodes: StoreAction<NodeStoreState>;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ const state = {
|
||||
{ id: TAB_NAME_MONITORING, title: 'common.tabs.monitoring' },
|
||||
],
|
||||
nodeMetricsMap: {},
|
||||
activeNodes: [],
|
||||
allNodes: [],
|
||||
} as NodeStoreState;
|
||||
|
||||
const getters = {
|
||||
@@ -33,8 +33,8 @@ const mutations = {
|
||||
setNodeMetricsMap(state: NodeStoreState, metricsMap: Record<string, Metric>) {
|
||||
state.nodeMetricsMap = metricsMap;
|
||||
},
|
||||
setActiveNodes: (state: NodeStoreState, activeNodes: CNode[]) => {
|
||||
state.activeNodes = activeNodes;
|
||||
setAllNodes: (state: NodeStoreState, allNodes: CNode[]) => {
|
||||
state.allNodes = allNodes;
|
||||
},
|
||||
} as NodeStoreMutations;
|
||||
|
||||
@@ -51,9 +51,9 @@ const actions = {
|
||||
commit('setNodeMetricsMap', res.data);
|
||||
return res;
|
||||
},
|
||||
async getActiveNodes({ commit }: StoreActionContext<NodeStoreState>) {
|
||||
async getAllNodes({ commit }: StoreActionContext<NodeStoreState>) {
|
||||
const res = await get<CNode[]>('/nodes');
|
||||
commit('setActiveNodes', res.data || []);
|
||||
commit('setAllNodes', res.data || []);
|
||||
return res;
|
||||
},
|
||||
} as NodeStoreActions;
|
||||
|
||||
Reference in New Issue
Block a user