Skip to content

Commit

Permalink
Added disbale parameter to the config of plugins, removed db testing …
Browse files Browse the repository at this point in the history
…binary from git, small changes to web ui
  • Loading branch information
George3d6 committed Mar 16, 2018
1 parent 48bb914 commit e750357
Showing 14 changed files with 87 additions and 9 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -5,5 +5,6 @@ receptor/receptor_processed.rs
agent/status.rs
agent/plugins
receptor/plugins
receptor/database.sqlite
agent/agent_processed.rs
endpoints
12 changes: 11 additions & 1 deletion agent_plugins/alive.rs
Original file line number Diff line number Diff line change
@@ -11,19 +11,26 @@ use utils;
pub struct Plugin {
last_call_ts: i64,
periodicity: i64,
disable: bool,
}

impl Plugin {
fn config(plugin: &mut Plugin) {
let config = utils::get_yml_config(&format!("{}.yml",file!().replace("plugins/", "").replace(".rs", "")));
if config["disable"].as_bool().unwrap_or(false) {
plugin.disable = true;
return
} else {
plugin.disable = false;
}
plugin.periodicity = config["periodicity"].as_i64().expect("Can't read periodicity as i64");
}
}

impl AgentPlugin for Plugin {

fn new() -> Plugin {
let mut new_plugin = Plugin{last_call_ts: 0, periodicity: 0};
let mut new_plugin = Plugin{disable: false, last_call_ts: 0, periodicity: 0};
Plugin::config(&mut new_plugin);
return new_plugin
}
@@ -38,6 +45,9 @@ impl AgentPlugin for Plugin {
}

fn ready(&self) -> bool {
if self.disable {
return false
}
return self.last_call_ts + self.periodicity < utils::current_ts()
}
}
4 changes: 3 additions & 1 deletion agent_plugins/alive.yml
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
periodicity: 20
disable: true

periodicity: 1
13 changes: 11 additions & 2 deletions agent_plugins/command_runner.rs
Original file line number Diff line number Diff line change
@@ -16,12 +16,18 @@ pub struct Plugin {
last_call_map: HashMap<String, i64>,
periodicity_map: HashMap<String, i64>,
commands: Vec<Vec<String>>,
disable: bool,
}

impl Plugin {
fn config(plugin: &mut Plugin) {
let config = utils::get_yml_config(&format!("{}.yml",file!().replace("plugins/", "").replace(".rs", "")));

if config["disable"].as_bool().unwrap_or(false) {
plugin.disable = true;
return
} else {
plugin.disable = false;
}
plugin.commands = config["commands"].as_vec().expect("Can't read commands vector")
.iter().map(|x| x.as_vec().expect("Can't read command")
.iter().map(|x| String::from(x.as_str().expect("Can't read command element"))).collect())
@@ -41,7 +47,7 @@ impl Plugin {
impl AgentPlugin for Plugin {

fn new() -> Plugin {
let mut new_plugin = Plugin{last_call_map: HashMap::new(), periodicity_map: HashMap::new(), commands: Vec::new()};
let mut new_plugin = Plugin{disable: false, last_call_map: HashMap::new(), periodicity_map: HashMap::new(), commands: Vec::new()};
Plugin::config(&mut new_plugin);
return new_plugin
}
@@ -78,6 +84,9 @@ impl AgentPlugin for Plugin {
}

fn ready(&self) -> bool {
if self.disable {
return false
}
for (name, _) in &self.last_call_map {
if self.last_call_map.get(name).unwrap() + self.periodicity_map.get(name).unwrap() < utils::current_ts() {
return true
2 changes: 2 additions & 0 deletions agent_plugins/command_runner.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
disable: true

periodicity_arr:
- 30

15 changes: 13 additions & 2 deletions agent_plugins/file_checker.rs
Original file line number Diff line number Diff line change
@@ -27,12 +27,20 @@ pub struct Plugin {
last_call_ts: i64,
periodicity: i64,
file_info_map: HashMap<String, FileInfo>,
disable: bool,
}

impl Plugin {
fn config(plugin: &mut Plugin) {
let config = utils::get_yml_config(&format!("{}.yml",file!().replace("plugins/", "").replace(".rs", "")));

if config["disable"].as_bool().unwrap_or(false) {
plugin.disable = true;
return
} else {
plugin.disable = false;
}

let keyphrase: Vec<String> = config["keyphrase"].as_vec().expect("Can't read commands vector")
.iter().map(|x| String::from(x.as_str().expect("Can't read command element"))).collect();

@@ -55,7 +63,7 @@ impl Plugin {
impl AgentPlugin for Plugin {

fn new() -> Plugin {
let mut new_plugin = Plugin{last_call_ts: 0, periodicity: 0, file_info_map: HashMap::new()};
let mut new_plugin = Plugin{disable: false, last_call_ts: 0, periodicity: 0, file_info_map: HashMap::new()};
Plugin::config(&mut new_plugin);
return new_plugin
}
@@ -66,7 +74,7 @@ impl AgentPlugin for Plugin {

fn gather(&mut self) -> Result<String, String> {
self.last_call_ts = utils::current_ts();

let mut results = Vec::new();
let mut new_file_info_arr = Vec::new();

@@ -102,6 +110,9 @@ impl AgentPlugin for Plugin {
}

fn ready(&self) -> bool {
if self.disable {
return false
}
return self.last_call_ts + self.periodicity < utils::current_ts()
}
}
2 changes: 2 additions & 0 deletions agent_plugins/file_checker.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
disable: true

periodicity: 20

files:
13 changes: 12 additions & 1 deletion agent_plugins/process_counter.rs
Original file line number Diff line number Diff line change
@@ -16,12 +16,20 @@ pub struct Plugin {
last_call_map: HashMap<String, i64>,
periodicity_map: HashMap<String, i64>,
processes: Vec<String>,
disable: bool,
}

impl Plugin {
fn config(plugin: &mut Plugin) {
let config = utils::get_yml_config(&format!("{}.yml",file!().replace("plugins/", "").replace(".rs", "")));

if config["disable"].as_bool().unwrap_or(false) {
plugin.disable = true;
return
} else {
plugin.disable = false;
}

plugin.processes = config["processes"].as_vec().expect("Can't read commands vector")
.iter().map(|x| String::from(x.as_str().expect("Can't read command element"))).collect();

@@ -38,7 +46,7 @@ impl Plugin {
impl AgentPlugin for Plugin {

fn new() -> Plugin {
let mut new_plugin = Plugin{last_call_map: HashMap::new(), periodicity_map: HashMap::new(), processes: Vec::new()};
let mut new_plugin = Plugin{disable: false, last_call_map: HashMap::new(), periodicity_map: HashMap::new(), processes: Vec::new()};
Plugin::config(&mut new_plugin);
return new_plugin
}
@@ -77,6 +85,9 @@ impl AgentPlugin for Plugin {
}

fn ready(&self) -> bool {
if self.disable {
return false
}
for (name, _) in &self.last_call_map {
if self.last_call_map.get(name).unwrap() + self.periodicity_map.get(name).unwrap() < utils::current_ts() {
return true
2 changes: 2 additions & 0 deletions agent_plugins/process_counter.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
disable: true

periodicity_arr:
- 8
- 12
14 changes: 13 additions & 1 deletion agent_plugins/system_monitor.rs
Original file line number Diff line number Diff line change
@@ -14,6 +14,7 @@ pub struct Plugin {
sys: System,
last_call_ts: i64,
periodicity: i64,
disable: bool,
}

#[derive(Serialize, Debug)]
@@ -28,14 +29,22 @@ struct MachineState<'a> {
impl Plugin {
fn config(plugin: &mut Plugin) {
let config = utils::get_yml_config(&format!("{}.yml",file!().replace("plugins/", "").replace(".rs", "")));

if config["disable"].as_bool().unwrap_or(false) {
plugin.disable = true;
return
} else {
plugin.disable = false;
}

plugin.periodicity = config["periodicity"].as_i64().expect("Can't read periodicity as i64")
}
}

impl AgentPlugin for Plugin {

fn new() -> Plugin {
let mut new_plugin = Plugin{sys: System::new(), last_call_ts: 0, periodicity: 0};
let mut new_plugin = Plugin{disable: false, sys: System::new(), last_call_ts: 0, periodicity: 0};
Plugin::config(&mut new_plugin);
return new_plugin
}
@@ -83,6 +92,9 @@ impl AgentPlugin for Plugin {
}

fn ready(&self) -> bool {
if self.disable {
return false
}
return self.last_call_ts + self.periodicity < utils::current_ts()
}
}
2 changes: 2 additions & 0 deletions agent_plugins/system_monitor.yml
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
disable: true

periodicity: 20
Binary file modified receptor/database.sqlite
Binary file not shown.
14 changes: 13 additions & 1 deletion receptor_plugins/sync_check.rs
Original file line number Diff line number Diff line change
@@ -12,19 +12,28 @@ use std::string::String;
pub struct Plugin {
last_call_ts: i64,
periodicity: i64,
disable: bool,
}

impl Plugin {
fn config(plugin: &mut Plugin) {
let config = utils::get_yml_config(&format!("{}.yml",file!().replace("plugins/", "").replace(".rs", "")));

if config["disable"].as_bool().unwrap_or(false) {
plugin.disable = true;
return
} else {
plugin.disable = false;
}

plugin.periodicity = config["periodicity"].as_i64().expect("Can't read periodicity as i64");
}
}

impl ReceptorPlugin for Plugin {

fn new() -> Plugin {
let mut new_plugin = Plugin{last_call_ts: 0, periodicity: 0};
let mut new_plugin = Plugin{disable: false, last_call_ts: 0, periodicity: 0};
Plugin::config(&mut new_plugin);
return new_plugin
}
@@ -54,6 +63,9 @@ impl ReceptorPlugin for Plugin {
}

fn ready(&self) -> bool {
if self.disable {
return false
}
return self.last_call_ts + self.periodicity < utils::current_ts()
}
}
2 changes: 2 additions & 0 deletions receptor_plugins/sync_check.yml
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
disable: true

periodicity: 20

0 comments on commit e750357

Please sign in to comment.