summaryrefslogtreecommitdiff
path: root/lib/oxidized
AgeCommit message (Collapse)Author
2015-03-07Fix: Handle missing output fileJ. Brandt Buckley
If no output file is found, return nil. Previously, it would try to find the output file by doing a recursive glob search in the config dir. It would then try to open the file for reading regardless of whether any file was found. I ran into this when I fired up oxidized for the first time and tried to access a switch config on oxidized-web before it had a chance to collect it. In this scenario, you get a stack trace on the switch config page (e.g. `http://oxidized.example.com:8888/node/fetch/switch-001.example.com`): ``` Puma caught this error: undefined method `join' for #<String:0x007f3a3c4283f8> (NoMethodError) /usr/lib64/ruby/gems/2.2.0/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:37:in `rescue in call' /usr/lib64/ruby/gems/2.2.0/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call' /usr/lib64/ruby/gems/2.2.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in `call' /usr/lib64/ruby/gems/2.2.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call' /usr/lib64/ruby/gems/2.2.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `block in call' /usr/lib64/ruby/gems/2.2.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1788:in `synchronize' /usr/lib64/ruby/gems/2.2.0/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `call' /usr/lib64/ruby/gems/2.2.0/gems/rack-1.6.0/lib/rack/urlmap.rb:66:in `block in call' /usr/lib64/ruby/gems/2.2.0/gems/rack-1.6.0/lib/rack/urlmap.rb:50:in `each' /usr/lib64/ruby/gems/2.2.0/gems/rack-1.6.0/lib/rack/urlmap.rb:50:in `call' /usr/lib64/ruby/gems/2.2.0/gems/rack-1.6.0/lib/rack/builder.rb:153:in `call' /usr/lib64/ruby/gems/2.2.0/gems/puma-2.11.1/lib/puma/server.rb:507:in `handle_request' /usr/lib64/ruby/gems/2.2.0/gems/puma-2.11.1/lib/puma/server.rb:375:in `process_client' /usr/lib64/ruby/gems/2.2.0/gems/puma-2.11.1/lib/puma/server.rb:262:in `block in run' /usr/lib64/ruby/gems/2.2.0/gems/puma-2.11.1/lib/puma/thread_pool.rb:104:in `call' /usr/lib64/ruby/gems/2.2.0/gems/puma-2.11.1/lib/puma/thread_pool.rb:104:in `block in spawn_thread' ```
2015-03-06Log prompt detection failuresSamer Abdel-Hafez
2015-03-03fixes for EOS switches with enable secret configuredMartin Pels
2015-02-27better prompt for Arista EOSSamer Abdel-Hafez
2015-02-27Minor cosmetic changes and additionsSamer Abdel-Hafez
2015-02-26Resolves #81Florian Hibler
2015-02-26Resolves #80Florian Hibler
2015-02-26Fixing formattingFlorian Hibler
2015-02-26Fixing HUP trapFlorian Hibler
2015-02-24kill -hup reloads nodesSaku Ytti
2015-02-24set_cmd can't be nilSaku Ytti
still not sure if this is the right way to guard non-string blocks...
2015-02-23guard against model returning non-stringSaku Ytti
Return empty string instead of what ever model returned. Closes #63
2015-02-22Give more helpful error message from git errorsSaku Ytti
closes #61
2015-02-22refactor HOLB preventionSaku Ytti
Still not sure we want this. But previous one might have caused infinite loop in #work. Consider we have just 1 node all together, and our rotation interval is more than our MAX_INTER_JOB_GAP, then we'd add @want to 2, instead of 1. Now we want more threads than we have nodes, and 'while @jobs.size < @jobs.want' will never be true
2015-02-22run #duration not #new_countSaku Ytti
@duration isn't set before #duration is ran
2015-02-22Allow node to be removed while collectingSaku Ytti
Closes #68 (hopefully at least) Further, our TODO to refactor/redesign the code to move state from memory to disk should help.
2015-02-21Force new job if too long since last jobSaku Ytti
MAX_INTER_JOB_GAP is now 300s, if latest job was started 300s ago, we add new job. Ratioanele is that if we want n jobs, and all these jobs are taking very very long, or perhaps hanging, then we are blocking everything else too. Consider you have use one job, because it's enough to meet your rotation interval quota. Then some one box is somehow taking tens of minutes or hours, we won't figure out new amount of workers until it finishes, so we're blocking all other jobs from spawning. I'm not super happy about this solution, not really sure what is the right wayt to tackle it.
2015-02-21Increase rolling average viewSaku Ytti
Previously view was 2 nodes, so if average was 7s then some node took 1000s your average would be 503.5s. Now we're looking rolling average of each node, which might not be wise either, perhaps I should limit it to last 100 or 1000 nodes. Since we really don't want another place where we have potentially unbounded amount of state...
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
2015-02-19Logout behaviour fixed.fhibler
2015-02-19Password detection fixedfhibler
2015-02-07Added model for Comware based devicesJasper
Added support for Comware based devices from HP (A-series), H3C and 3Com.
2015-01-20stop Aruba changing the diff each 'show inventory'Charlie Allom
Also fix the boilerplate comment to reflect the OEM relationship
2014-12-13Skip commentsSaku Ytti
closes #64
2014-12-03Merge branch 'master' into cfg_as_objectSaku Ytti
2014-10-27model/asa: ASA prompt contains HA Failover state separated by slashesStefan Schlesinger
2014-10-23model/asa: removing >show clock and ignoring uptime in >show versionStefan Schlesinger
2014-10-23model/asa: fixing prompt - hostname regex taken from ios modelStefan Schlesinger
2014-10-02Fixed more ever changing output in powerconnect model, only shows up on some ↵Eric
firmware versions
2014-09-26Removed ever-changing output from powerconnect model, thanks @artmannEric
2014-09-22Added model for cisco NXOSEric
2014-09-22Fixed small bug in powerconnect enable codeEric
2014-08-30Remove ntp clock-period completelySaku Ytti
emj complained that it sometimes pops in, sometimes pops out. I guess really no point having it there.
2014-08-25Return true if node_want is nilJari Salo
- Otherwise all nodes can not be loaded.
2014-08-25Match IP address explicitlyJari Salo
- New method node_want? - Don't match node to node[:name] if node[:name] is an ip address. Otherwise we might match to wrong ip address.
2014-08-24Add Brocade NOSSaku Ytti
2014-08-24Add ExtremeXOSSaku Ytti
2014-08-19Merge branch 'master' into cfg_as_objectSaku Ytti
2014-08-18Add model for Cisco small business switchesMatthew Boehlig
Supports 200, 300, 500, and ESW2 series switches
2014-08-16Merge branch 'master' into cfg_as_objectSaku Ytti
2014-08-16Closes #32Saku Ytti
2014-08-16Closes #37Saku Ytti
2014-08-16Closes #35Saku Ytti
2014-08-16Closes #35Saku Ytti
2014-08-16Merge branch 'master' into cfg_as_objectSaku Ytti
2014-08-15Added enable magic for powerconnect model, fixed pagination issuesEric
2014-08-15Add Ubiquiti AirOS modelWill Glynn
2014-08-14Merge branch 'master' into cfg_as_objectSaku Ytti
2014-08-14fix ios-xr promptSaku Ytti
2014-08-14never accept empty config in commitSaku Ytti