diff --git a/scalpels/cli/actions/report.py b/scalpels/cli/actions/report.py index 529d23c..268edd2 100644 --- a/scalpels/cli/actions/report.py +++ b/scalpels/cli/actions/report.py @@ -6,6 +6,9 @@ from scalpels.db import api as db_api def run(config): print "command report: %s" % config last_task = db_api.task_get_last() + if not last_task: + print "no task yet." + return print "task: <%s>" % last_task.uuid results = [] for ret_uuid in last_task.results: diff --git a/scalpels/cli/actions/setup.py b/scalpels/cli/actions/setup.py index 9412723..a8357e0 100644 --- a/scalpels/cli/actions/setup.py +++ b/scalpels/cli/actions/setup.py @@ -7,5 +7,6 @@ def run(config): print "command setup: %s" % config if config["force"]: db_api.db_drop() + db_api.db_create() else: db_api.db_create() diff --git a/scalpels/cli/actions/start.py b/scalpels/cli/actions/start.py index d8b9199..1541cc6 100644 --- a/scalpels/cli/actions/start.py +++ b/scalpels/cli/actions/start.py @@ -4,7 +4,18 @@ from scalpels.db import api as db_api +def _parse_agent_from_config(config): + if config.get("agent") is None: + return config + parsed_agents = [] + for ag in config.get("agent"): + parsed_agents.extend(ag.split(",")) + config.update({"agent":parsed_agents}) + return config + + def run(config): + config = _parse_agent_from_config(config) print "command start: %s" % config data = [config] rets = [] diff --git a/scalpels/cli/shell.py b/scalpels/cli/shell.py index 2854549..0359986 100755 --- a/scalpels/cli/shell.py +++ b/scalpels/cli/shell.py @@ -23,7 +23,8 @@ def main(): # setup start actions start = subparsers.add_parser("start") - start.add_argument("--file", action="store", dest="file", help="config file for this task", required=True) + start.add_argument("-f", "--file", action="store", dest="file", help="config file for this task", required=False) + start.add_argument("-a", "--agent", action="append", dest="agent", help="agent(s) to run", required=False) # setup report actions report = subparsers.add_parser("report") diff --git a/scalpels/db/sqlalchemy/api.py b/scalpels/db/sqlalchemy/api.py index e02335c..dea48ff 100644 --- a/scalpels/db/sqlalchemy/api.py +++ b/scalpels/db/sqlalchemy/api.py @@ -66,5 +66,7 @@ def result_get(result_uuid): return ret def task_get_last(): - tasks = model_query(models.Task) - return tasks[-1] + tasks = model_query(models.Task).all() + if len(tasks) > 0: + return tasks[-1] + return None