Age | Commit message (Collapse) | Author |
|
Add the Cumulus feature
Add Cumulus feature
|
|
|
|
hide enable secret when remove_secret is enabled
|
|
|
|
Added a check for 35xx switches
Also extract only on the model number, not the suffix (P or F) as we dont need that.
|
|
Using some libraries, in this case pygit2 the initial commit cannot be seen, a change and new commit fixes this.
Adding index.write appears to be a simple fix, as confirmed in this rugged issue:
https://github.com/libgit2/rugged/issues/441
|
|
Some PowerConnect models were skipping fine as "Uptime" for example is shown across one line. Some models show this as a heading, and then lines for each stack member and so this was being included in the configuration. This will skip that "section" which is terminated by the next blank line.
|
|
|
|
|
|
At the old version it didn't backup things like ldap passwords, which ended up in output marked as '****'.
pre: ldap-login-password *****
now: ldap-login-password wBGqqqCY5SjZ8hY
|
|
|
|
|
|
|
|
#89. Fixed by sending both commands and allowing one of them to fail.
|
|
Add back ability to use passwordless enable on EOS
|
|
This commit adds the ability to go into Privileged EXEC mode when no password is required by setting `enable: true`.
By default, in Arista EOS you aren't prompted for a password when entering Privileged EXEC (or privilege mode 15) mode. In PR #86, oxidized began always expecting a password.
An unquoted `true` in YAML is a boolean. So when `var(:enabled)` is `TrueClass`, we interpret this as meaning that the user wishes to go into Privileged EXEC mode and does not require a password.
|
|
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'
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
still not sure if this is the right way to guard non-string blocks...
|
|
Return empty string instead of what ever model returned.
Closes #63
|
|
closes #61
|
|
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
|
|
@duration isn't set before #duration is ran
|
|
Closes #68 (hopefully at least)
Further, our TODO to refactor/redesign the code to move state from
memory to disk should help.
|
|
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.
|
|
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...
|
|
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
|
|
|
|
|
|
Added support for Comware based devices from HP (A-series), H3C and
3Com.
|
|
Also fix the boilerplate comment to reflect the OEM relationship
|
|
closes #64
|
|
|
|
|
|
|
|
|
|
firmware versions
|
|
|
|
|
|
|
|
emj complained that it sometimes pops in, sometimes pops out. I guess
really no point having it there.
|
|
- Otherwise all nodes can not be loaded.
|