Feat/workflow phase2 (#4687)
This commit is contained in:
@@ -6,6 +6,7 @@ from .create_site_record_when_app_created import handle
|
||||
from .deduct_quota_when_messaeg_created import handle
|
||||
from .delete_installed_app_when_app_deleted import handle
|
||||
from .delete_tool_parameters_cache_when_sync_draft_workflow import handle
|
||||
from .delete_workflow_as_tool_when_app_deleted import handle
|
||||
from .update_app_dataset_join_when_app_model_config_updated import handle
|
||||
from .update_app_dataset_join_when_app_published_workflow_updated import handle
|
||||
from .update_provider_last_used_at_when_messaeg_created import handle
|
||||
|
@@ -10,18 +10,22 @@ def handle(sender, **kwargs):
|
||||
app = sender
|
||||
for node_data in kwargs.get('synced_draft_workflow').graph_dict.get('nodes', []):
|
||||
if node_data.get('data', {}).get('type') == NodeType.TOOL.value:
|
||||
tool_entity = ToolEntity(**node_data["data"])
|
||||
tool_runtime = ToolManager.get_tool_runtime(
|
||||
provider_type=tool_entity.provider_type,
|
||||
provider_name=tool_entity.provider_id,
|
||||
tool_name=tool_entity.tool_name,
|
||||
tenant_id=app.tenant_id,
|
||||
)
|
||||
manager = ToolParameterConfigurationManager(
|
||||
tenant_id=app.tenant_id,
|
||||
tool_runtime=tool_runtime,
|
||||
provider_name=tool_entity.provider_name,
|
||||
provider_type=tool_entity.provider_type,
|
||||
identity_id=f'WORKFLOW.{app.id}.{node_data.get("id")}'
|
||||
)
|
||||
manager.delete_tool_parameters_cache()
|
||||
try:
|
||||
tool_entity = ToolEntity(**node_data["data"])
|
||||
tool_runtime = ToolManager.get_tool_runtime(
|
||||
provider_type=tool_entity.provider_type,
|
||||
provider_id=tool_entity.provider_id,
|
||||
tool_name=tool_entity.tool_name,
|
||||
tenant_id=app.tenant_id,
|
||||
)
|
||||
manager = ToolParameterConfigurationManager(
|
||||
tenant_id=app.tenant_id,
|
||||
tool_runtime=tool_runtime,
|
||||
provider_name=tool_entity.provider_name,
|
||||
provider_type=tool_entity.provider_type,
|
||||
identity_id=f'WORKFLOW.{app.id}.{node_data.get("id")}'
|
||||
)
|
||||
manager.delete_tool_parameters_cache()
|
||||
except:
|
||||
# tool dose not exist
|
||||
pass
|
||||
|
@@ -0,0 +1,14 @@
|
||||
from events.app_event import app_was_deleted
|
||||
from extensions.ext_database import db
|
||||
from models.tools import WorkflowToolProvider
|
||||
|
||||
|
||||
@app_was_deleted.connect
|
||||
def handle(sender, **kwargs):
|
||||
app = sender
|
||||
workflow_tools = db.session.query(WorkflowToolProvider).filter(
|
||||
WorkflowToolProvider.app_id == app.id
|
||||
).all()
|
||||
for workflow_tool in workflow_tools:
|
||||
db.session.delete(workflow_tool)
|
||||
db.session.commit()
|
Reference in New Issue
Block a user