Workflow is almost done.
This commit is contained in:
@@ -25,6 +25,20 @@ class WorkflowManager:
|
||||
async def get_agent_default_workflow(self,agent_id:str) -> Workflow:
|
||||
pass
|
||||
|
||||
|
||||
async def _load_workflow_agents(self,workflow:Workflow) -> bool:
|
||||
for v in workflow.role_group.roles.values():
|
||||
agent = await AgentManager().get(v.agent_name)
|
||||
if agent is None:
|
||||
logger.error(f"load agent {v.agent_name} failed!")
|
||||
return False
|
||||
v.agent = agent
|
||||
|
||||
for sub_workflow in workflow.sub_workflows.values():
|
||||
if await self._load_workflow_agents(sub_workflow) is False:
|
||||
return False
|
||||
return True
|
||||
|
||||
async def get_workflow(self,workflow_id:str) -> Workflow:
|
||||
the_workflow : Workflow = self.loaded_workflow.get(workflow_id)
|
||||
if the_workflow:
|
||||
@@ -39,14 +53,9 @@ class WorkflowManager:
|
||||
if the_workflow is None:
|
||||
logger.warn(f"load workflow {workflow_id} from media failed!")
|
||||
|
||||
for v in the_workflow.role_group.roles.values():
|
||||
agent = await AgentManager().get(v.agent_name)
|
||||
if agent is None:
|
||||
logger.error(f"load agent {v.agent_name} failed!")
|
||||
return None
|
||||
v.agent = agent
|
||||
|
||||
|
||||
if await self._load_workflow_agents(the_workflow) is False:
|
||||
return None
|
||||
|
||||
return the_workflow
|
||||
|
||||
async def _load_workflow_from_media(self,workflow_media:PackageMediaInfo) -> Workflow:
|
||||
@@ -64,10 +73,12 @@ class WorkflowManager:
|
||||
config_data = await config_file.read()
|
||||
config = toml.loads(config_data)
|
||||
result_workflow = Workflow()
|
||||
result_workflow.db_file = self.db_file
|
||||
|
||||
if result_workflow.load_from_config(config) is False:
|
||||
logger.error(f"load workflow from {workflow_media} failed!")
|
||||
return None
|
||||
result_workflow.db_file = self.db_file
|
||||
|
||||
return result_workflow
|
||||
except Exception as e:
|
||||
logger.error(f"read workflow.toml cfg from {workflow_media} failed! unexpected error occurred: {str(e)}")
|
||||
|
||||
Reference in New Issue
Block a user