summaryrefslogtreecommitdiff
path: root/lib/oxidized/node.rb
AgeCommit message (Collapse)Author
2015-02-21allow setting IP from sourceSaku Ytti
sql/csv can now set IP as well as name, useful if you don't have FQDN. If IP is given, then we don't try to resolve name. closes #78
2014-07-24return false when crash in model/nodeSaku Ytti
Without this, config gets 'true' value, which is not string, and git output will barf.
2014-07-11reset retry count on successSaku Ytti
2014-07-11add support for retrying failed attemptsSaku Ytti
Looks like this in syslog: Jul 11 21:05:53 ytti oxidized[9820]: 10.10.10.10 raised Errno::ENETUNREACH with msg "Network is unreachable - connect(2) for "10.10.10.10" port 22" Jul 11 21:05:53 ytti oxidized[9820]: 10.10.10.10 raised Errno::ENETUNREACH with msg "Network is unreachable - connect(2) for "10.10.10.10" port 23" Jul 11 21:05:54 ytti oxidized[9820]: 10.10.10.10 status no_connection, retry attempt 1 Jul 11 21:05:54 ytti oxidized[9820]: 10.10.10.10 raised Errno::ENETUNREACH with msg "Network is unreachable - connect(2) for "10.10.10.10" port 22" Jul 11 21:05:54 ytti oxidized[9820]: 10.10.10.10 raised Errno::ENETUNREACH with msg "Network is unreachable - connect(2) for "10.10.10.10" port 23" Jul 11 21:05:55 ytti oxidized[9820]: 10.10.10.10 status no_connection, retry attempt 2 Jul 11 21:05:55 ytti oxidized[9820]: 10.10.10.10 raised Errno::ENETUNREACH with msg "Network is unreachable - connect(2) for "10.10.10.10" port 22" Jul 11 21:05:55 ytti oxidized[9820]: 10.10.10.10 raised Errno::ENETUNREACH with msg "Network is unreachable - connect(2) for "10.10.10.10" port 23" Jul 11 21:05:56 ytti oxidized[9820]: 10.10.10.10 status no_connection, retry attempt 3 Jul 11 21:05:56 ytti oxidized[9820]: 10.10.10.10 raised Errno::ENETUNREACH with msg "Network is unreachable - connect(2) for "10.10.10.10" port 22" Jul 11 21:05:56 ytti oxidized[9820]: 10.10.10.10 raised Errno::ENETUNREACH with msg "Network is unreachable - connect(2) for "10.10.10.10" port 23" Jul 11 21:05:57 ytti oxidized[9820]: 10.10.10.10 status no_connection, retries exhausted, giving up
2014-07-09Require OpenStructSaku Ytti
How this works in ruby2.0 normally? What component has loaded this implicitly? Thanks to @RichiH for spotting.
2014-06-06fix: node#last= didn't handle nilAnton Aksola
temporary fix. Maybe node#last should check the type or we shouldn't use last for the nodes#next in the first place
2014-05-16don't store error Node raisedSaku Ytti
We may need this in future, but as we don't need this in oxidized-script now after all, I don't want something to be implemented just-in-case
2014-05-16store error node#run raisedSaku Ytti
2014-05-07Stats for nodeSaku Ytti
So that we can easily check last time node failed/succceded etc
2014-05-05missing editsAnton Aksola
2014-05-05Introduce node and group level varsAnton Aksola
Variables can now be fed to model from multiple locations. In order of preference: 1) node (from source) 2) group 3) global In a model vars should be accessed via 'vars' helper method though it is not required. Helper method ignores nil values so care needs to taken when designing model behaviour. Support for node level vars is currently available on sql source via 'vars_map' configuration. Following example populates node vars 'enable' and 'somevariable' from sql columns 'var_enable' and 'var_somevariable' sql: adapter: sqlite file: /home/aakso/.config/oxidized/sqrouter.db table: nodes map: name: hostname model: model group: node_group username: username password: password vars_map: enable: var_enablepw somevariable: var_somevariable
2014-05-02Introduce group level configuration for authAnton Aksola
For rancid-like behaviour one can now set username and password for node groups. These parameters are considered in the following order: 1) node parameters (from source) 2) group level parameters 3) global level parameters example configuration for group 'testlab' groups: testlab: username: testuser password: testpassword
2014-04-14Use 'asetus' for configuration filesSaku Ytti
Main benefits a) we get support for system wide configs b) we don't use symbols in config file, they're confusing to non-rubyist
2014-04-13Subclass all errors from OxidizedErrorSaku Ytti
2014-03-02Change dynamic loadingSaku Ytti
If we use assignment method (#method=) we don't get return value, so we never know that manager fails to load. Also we do not want to rescue failures of input/output/source loading, they are catastrophic and should fail whole process, loading of model is not catastrophic.
2014-02-28Rescue all StandardError from modulesSaku Ytti
If module crashes with unexpected error class, rescue it, and write it backtrace Also log if unknown model is attempted instead of crash
2014-02-23Migrate to sinatra/puma from webrickSaku Ytti
As I can't do IO#select on sinatra/puma to run it when I have time, I have to run it on separate thread. This means Nodes container needs to be thread safe, it now has ghetto mutex locking, but I probably need to be be more focused what are the external methods that can be called and wrap those in @mutex.synchronize Provide also HTML UI not just JSON for ghetto UI to people who don't want to integrate
2014-02-20Figure out which parent class we rescuedSaku Ytti
Rakefile changes Bump up gemspec version
2014-02-10Handle exceptions with different log levelsSaku Ytti
2014-02-07Add AOS (ALU OmniSwitch) supportSaku Ytti
Specifically AOS 6, vxworks era, not linux era 7
2014-02-07Ignore ssh keys, change input exceptionsSaku Ytti
Now input ssh has configuration secure which is false by default, meaning we don't care about changing keys. It breaks ssh security model but rancid does it too. Also input models error handling is now mostly moved to node.rb for centralized handling + logging. With input models only defining which errors they want to receover from.
2013-04-26Fix: telnet exceptions, broken json/ext, typoSaku Ytti
Kudos to Samer Abdel-Hafez for noticing
2013-04-21Add input method fallback, e.g. if ssh does not work, try telnetSaku Ytti
2013-04-20Example of Syslog triggered fetchSaku Ytti
'syslog.rb' listed to UDP port (or reads file). When IOS or JunOS style config change/commit message is seen, it triggers immediate update ot config It transports commit message (junos) remote host from which change was mde (ios) and who made the change (junos+ios). This is carried over to the 'output' methods, that is, 'git blame' will show IOS/JunOS user-name who made the change.
2013-04-19Add restful APISaku Ytti
2013-04-17Initial commitSaku Ytti
Silly for shit-and-giggles attempt at rancid