now we could run: sca start -a xx -a yy -f tools/agents.json
This commit is contained in:
parent
f56b99c950
commit
68b5b170cd
@ -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
16
tools/agents.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"agents": [
|
||||
{
|
||||
"name": "mysql"
|
||||
},
|
||||
{
|
||||
"name": "rabbit"
|
||||
},
|
||||
{
|
||||
"name": "traffic"
|
||||
},
|
||||
{
|
||||
"name": "rpctraffic"
|
||||
}
|
||||
]
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user