summaryrefslogtreecommitdiff
path: root/README.md
blob: 5e2b58438715524939f4942067ee9e5feb63091f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Pitch
 * automatically adds/removes threads to meet configured retrieval interval
 * can move node immediately to head-of-queue (maybe trigger from snmp trap or syslog), to be serviced by next spawned thread

# Install
 early days, but try to run it and edit ~/.config/oxidized/config

# API
## Input
 * gets config from nodes
 * must implement 'connect', 'get'
 * 'ssh' and 'telnet' implemented

## Output
 * stores config
 * must implement 'update'
 * 'git' and 'file' (store as flat ascii) implemented

## Source
 * gets list of nodes to poll
 * must implement 'load'
 * source can have 'name', 'model', 'group', 'username', 'password', 'input', 'output', 'prompt'
   * name - name of the devices
   * model - model to use ios/junos/xyz, model is loaded dynamically when needed (Also default in config file)
   * input - method to acquire config, loaded dynamically as needed (Also default in config file)
   * output - method to store config, loaded dynamically as needed (Also default in config file)
   * prompt - prompt used for node (Also default in config file, can be specified in model too)
 * 'sql' and 'csv' (supports any format with single entry per line, like router.db)

## Model
 * lists commands to gather from given device model
 * can use 'cmd', 'prompt', 'comment', 'cfg'
 * cfg is executed in input/output/source context
 * cmd is executed in instance of model
 * 'junos' and 'ios' implemented