@@ -9,9 +9,9 @@ extern crate serde_derive;
9
9
10
10
use inquisitor_lib:: { current_ts, read_cfg, AgentPlugin } ;
11
11
use std:: collections:: HashMap ;
12
+ use std:: path:: PathBuf ;
12
13
use std:: process:: Command ;
13
14
14
-
15
15
#[ derive( Debug , PartialEq , Serialize , Deserialize ) ]
16
16
struct Config {
17
17
enabled : bool ,
@@ -24,43 +24,26 @@ pub struct Plugin {
24
24
last_call_map : HashMap < String , i64 > ,
25
25
periodicity_map : HashMap < String , i64 > ,
26
26
processes : Vec < String > ,
27
- enabled : bool ,
28
- cfg_file : String
27
+ enabled : bool
29
28
}
30
29
31
- impl Plugin {
32
- fn config ( & mut self ) -> Result < ( ) , String > {
33
- let cfg = read_cfg :: < Config > ( self . cfg_file . clone ( ) ) ?;
34
- self . enabled = cfg. enabled ;
35
- if !self . enabled {
36
- return Ok ( ( ) ) ;
37
- }
38
- self . processes = cfg. processes ;
39
-
40
- for i in 0 ..self . processes . len ( ) {
41
- self . periodicity_map
42
- . insert ( self . processes [ i] . clone ( ) , cfg. periodicity_arr [ i] ) ;
43
- self . last_call_map . insert ( self . processes [ i] . clone ( ) , 0 ) ;
30
+ pub fn new ( mut cfg_path : PathBuf ) -> Result < Plugin , String > {
31
+ cfg_path. push ( "process_counter.yml" ) ;
32
+ let cfg = read_cfg :: < Config > ( & cfg_path) ?;
33
+ if cfg. enabled {
34
+ let mut plugin = Plugin {
35
+ enabled : true ,
36
+ last_call_map : HashMap :: new ( ) ,
37
+ periodicity_map : HashMap :: new ( ) ,
38
+ processes : cfg. processes
39
+ } ;
40
+ for i in 0 ..plugin. processes . len ( ) {
41
+ plugin
42
+ . periodicity_map
43
+ . insert ( plugin. processes [ i] . clone ( ) , cfg. periodicity_arr [ i] ) ;
44
+ plugin. last_call_map . insert ( plugin. processes [ i] . clone ( ) , 0 ) ;
44
45
}
45
- Ok ( ( ) )
46
- }
47
- }
48
-
49
- pub fn new ( cfg_dir : String ) -> Result < Plugin , String > {
50
- let cfg_file = format ! ( "{}/process_counter.yml" , cfg_dir) ;
51
-
52
- let mut new_plugin = Plugin {
53
- enabled : false ,
54
- last_call_map : HashMap :: new ( ) ,
55
- periodicity_map : HashMap :: new ( ) ,
56
- processes : Vec :: new ( ) ,
57
- cfg_file
58
- } ;
59
-
60
- new_plugin. config ( ) ?;
61
-
62
- if new_plugin. enabled {
63
- Ok ( new_plugin)
46
+ Ok ( plugin)
64
47
} else {
65
48
Err ( "Process counter disabled" . into ( ) )
66
49
}
0 commit comments