From c35281568aa4bd100f7d69123fe248e6e2bc67ce Mon Sep 17 00:00:00 2001 From: rootkit Date: Thu, 19 Mar 2026 02:31:04 +0800 Subject: [PATCH] arch and todo --- Lib/playbookloader.py | 27 --------------------------- PLUGINS/SIRP/sirpapi.py | 27 ++++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 28 deletions(-) diff --git a/Lib/playbookloader.py b/Lib/playbookloader.py index e6f4a24..51970f5 100644 --- a/Lib/playbookloader.py +++ b/Lib/playbookloader.py @@ -4,8 +4,6 @@ from pathlib import Path from Lib.configs import BASE_DIR from Lib.log import logger from Lib.xcache import Xcache -from PLUGINS.SIRP.sirpapi import Playbook, Case, Alert, Artifact -from PLUGINS.SIRP.sirpmodel import PlaybookModel, PlaybookJobStatus class PlaybookLoader: @@ -75,28 +73,3 @@ class PlaybookLoader: def list_playbook_config(cls): all_modules_config = Xcache.list_module_configs() return all_modules_config - - @classmethod - def run_playbook_job(cls, type, name, user_input=None, source_rowid=None, id=None): - if source_rowid is None: - if id is None: - raise Exception("id is required when source_rowid is None") - else: - if type == "CASE": - record = Case.get_by_id(id) - source_rowid = record.rowid - elif type == "ALERT": - record = Alert.get_by_id(id) - source_rowid = record.rowid - elif type == "ARTIFACT": - record = Artifact.get_by_id(id) - source_rowid = record.rowid - - model = PlaybookModel() - model.source_rowid = source_rowid - model.job_status = PlaybookJobStatus.PENDING - model.type = type - model.name = name - model.user_input = user_input - rowid = Playbook.create(model) - return rowid diff --git a/PLUGINS/SIRP/sirpapi.py b/PLUGINS/SIRP/sirpapi.py index b1de64e..7892936 100644 --- a/PLUGINS/SIRP/sirpapi.py +++ b/PLUGINS/SIRP/sirpapi.py @@ -8,7 +8,7 @@ from PLUGINS.SIRP.nocolyapi import WorksheetRow from PLUGINS.SIRP.nocolymodel import AccountModel, Condition, Group, Operator from PLUGINS.SIRP.sirpbase import BaseWorksheetEntity from PLUGINS.SIRP.sirpmodel import EnrichmentModel, ArtifactModel, AlertModel, CaseModel, TicketModel, MessageModel, PlaybookModel, PlaybookJobStatus, \ - KnowledgeAction, KnowledgeModel, Severity, Confidence + KnowledgeAction, KnowledgeModel, Severity, Confidence, PlaybookType class Enrichment(BaseWorksheetEntity[EnrichmentModel]): @@ -547,6 +547,31 @@ class Playbook(BaseWorksheetEntity[PlaybookModel]): rowid = Playbook.update(playbook_model_tmp) return rowid + @classmethod + def add_pending_playbook(cls, type: PlaybookType, name, user_input=None, source_rowid=None, record_id=None): + if source_rowid is None: + if record_id is None: + raise Exception("id is required when source_rowid is None") + else: + if type == PlaybookType.CASE: + record = Case.get_by_id(record_id) + source_rowid = record.rowid + elif type == PlaybookType.ALERT: + record = Alert.get_by_id(record_id) + source_rowid = record.rowid + elif type == PlaybookType.ARTIFACT: + record = Artifact.get_by_id(record_id) + source_rowid = record.rowid + + model = PlaybookModel() + model.source_rowid = source_rowid + model.job_status = PlaybookJobStatus.PENDING + model.type = type + model.name = name + model.user_input = user_input + rowid = Playbook.create(model) + return rowid + class Knowledge(BaseWorksheetEntity[KnowledgeModel]): """PlaybookLoader 实体类"""