Age | Commit message (Collapse) | Author |
|
- now default type is 'nil', which is collapsed to flat config via
Outputs#to_cfg
- if type is not 'nil' then name is automatically set if not set by
model
- if name and type is set, separate file is created
- if name is not set, but type is set, outputs from type are collapsed
as with 'nil' types
This model:
cmd 'show ip cef' do |out|
out.type = 'poop'
out.name = false
out
end
cmd 'show process cpu' do |out|
out.type = 'poop'
out.name = 'my_cpu'
out
end
cmd 'show memory statistics' do |out|
out.type = 'poop'
out.name = false
out
end
cmd 'show ip bgp summary' do |out|
out.type = 'poop'
end
Would produce git output:
[ytti@ytti.fi ~/.config/oxidized]% ls poop
bu.ip.fi bu.ip.fi--cpu bu.ip.fi--show_ip_bgp_summary
[ytti@ytti.fi ~/.config/oxidized]%
bu.ip.fi contains the collapsed stuff
bu.ip.fi--cpu is manually named
bu.ip.fi--show_ip_bgp_summary is automatically named
|
|
The model will look like this:
cmd 'show ip cef' do |out|
out.type = 'poop'
out
end
cmd 'show process cpu' do |out|
out.type = 'poop'
out
end
cmd 'show memory statistics' do |out|
out.type = 'poop'
out
end
I think it's cleaner.
|
|
These objects have some keys, such as 'type' and 'name', which allows
our output model to discriminate on them.
If ios.rb contains this:
cmd 'show ip cef' do |out|
{ output: out, type: 'poop' }
end
cmd 'show process cpu' do |out|
{ output: out, type: 'poop' }
end
cmd 'show memory statistics' do |out|
{ output: out, type: 'poop' }
end
Our git output looks like this:
[ytti@ytti.fi ~/.config/oxidized]% git clone oxidized.git
Cloning into 'oxidized'...
done.
[ytti@ytti.fi ~/.config/oxidized]% git clone poop.git
Cloning into 'poop'...
done.
[ytti@ytti.fi ~/.config/oxidized]% ls poop
bu.ip.fi--show_ip_cef bu.ip.fi--show_memory_statistics bu.ip.fi--show_process_cpu
[ytti@ytti.fi ~/.config/oxidized]% ls oxidized
bu.ip.fi
[ytti@ytti.fi ~/.config/oxidized]%
Where oxidized repo contains standard config for all unspecified types (type is
then 'cfg'), for all specified types instead of collapsing it into single
string, we store them in 'type' repo with filename including 'name' of the
command.
|
|
|
|
|
|
- ios show first line of 'show version'
- junos display omitted config
|
|
|
|
|
|
ALU ISAM DSLAM does this
|
|
|
|
|
|
|
|
|
|
Without this, config gets 'true' value, which is not string, and git
output will barf.
|
|
+ bumpup gemspec
|
|
|
|
|
|
ScreenOS support
|
|
|
|
Brocade Vyatta model added
|
|
|
|
|
|
Updates
|
|
|
|
|
|
|
|
|
|
|
|
instructions for CentOS, OL and RHEL
|
|
|
|
|
|
Added Brocade Fabric OS support
|
|
|
|
|
|
|
|
we now support network based SQL and 'file' make little sense in
postgres/mysql, changing that to 'database' makes it reusable for both
use cases.
|
|
Added Force10 support
|
|
We need to return value of 'r' instead of value of previous evaluation.
|
|
|
|
- actually start to follow semantic version
- a.b.c a == major, b == minor c == patch
- c only for bug-fixes etc
- b for non-breaking new features
- a for breaking new featires
- a == 0 is special, can break anywhere
- http://semver.org
- add more specific version restrictions for gems
|
|
We are doing this in sql.rb
:user => @cfg.sql.user?
:password => @cfg.sql.password?
As 'asetus' will accept arbitrary chain
@cfg.sql.one.two.three
it is clear that 'one' or 'two' cannot _ever_ return nil/false,
otherwise you cannot create 'three'.
So if there isn't value of one/two, instance of 'asetus' is returned,
upon which we can build two, and then tree'.
one?, two?, three? version existed in old asetus, as strict boolean test
@cfg.sql.one? would return true, false or nil
In newer version, instead of returning true, it returns actual value.
|
|
SQL file in configuration renamed to database.
Should the generated example file have host+user+password+query?
|
|
Generic SQL support for source
|
|
config option "file" got renamed to "database", added authentication options for other SQL adapters and an optional query argument to overwrite the generic query.
config snipplet:
sql:
adapter: mysql2
user: sqluser
password: sekrit
host: mysql.local
database: inventory
table: devices
query: SELECT `fqhn` AS `name`, lower(`vendor`) AS `model` FROM `devices` INNER JOIN `devtypes` ON (`devtypes`.`id` = `devices`.`model_id`) WHERE (`aktiv` = 'J')
map:
name: name
model: model
|
|
|
|
|
|
|
|
core.rb: Improve error message
|
|
|
|
a) put metainformation on top, rancid style
b) remove changing data from 'show system'
|