now we could run: sca start -a xx -a yy -f tools/agents.json

This commit is contained in:
Kun Huang 2015-10-22 11:02:31 +08:00
parent f56b99c950
commit 68b5b170cd
2 changed files with 39 additions and 7 deletions

View File

@ -2,22 +2,38 @@
#-*- coding:utf-8 -*-
# Author: Kun Huang <academicgareth@gmail.com>
import os
import json
from scalpels.db import api as db_api
def _parse_agent_from_config(config):
def _parse_agents_from_args(config):
parsed_agents = set()
if config.get("agent") is None:
return config
parsed_agents = []
return parsed_agents
for ag in config.get("agent"):
parsed_agents.extend(ag.split(","))
parsed_agents |= set(ag.split(","))
config.update({"agent":parsed_agents})
return config
return parsed_agents
def _parse_agents_from_file(config):
parsed_agents = set()
if config.get("file") is None:
return parsed_agents
fpath = config.get("file")
if not os.path.isfile(fpath):
return parsed_agents
with open(fpath) as f:
data = json.load(f)
for ag in data["agents"]:
parsed_agents.add(ag["name"])
return parsed_agents
def run(config):
config = _parse_agent_from_config(config)
print "command start: %s" % config
data = [config]
agents = _parse_agents_from_args(config)
agents |= _parse_agents_from_file(config)
data = {"agents": list(agents)}
rets = []
ret = db_api.result_create(data)
rets.append(ret.uuid)

16
tools/agents.json Normal file
View File

@ -0,0 +1,16 @@
{
"agents": [
{
"name": "mysql"
},
{
"name": "rabbit"
},
{
"name": "traffic"
},
{
"name": "rpctraffic"
}
]
}