GRNOC::Config - The GRNOC Default Config parser
Version 1.0.9
A module to allow everyone to access config files in a fairly standard way. Uses XML::XPath and XML::Simple to parse our XML files, and stores all configs it has access to in this module
Setting debug to true will give you extra debugging output (default is off) Setting force_array to true will return everything in an array even if there is only 1 object returned (default is on)
When asking for attributes denoted by '@' it will return only the attribute(s) without the hash
use GRNOC::Config; my $foo = GRNOC::Config->new(config_file => '/etc/grnoc/db.xml', debug => 0, force_array => 0 schema => '/path/to/schema.csd') my $db_username = $foo->get("/config/db/credentials"); print $db_username->{'user'}; print $db_username->{'password'}; #just 1 attribute my $user = $foo->get("/config/db/credentials[1]/@user"); my $password = $foo->get("/config/db/credentials[1]/@password"); #if I have more than 1 result I get an array my $hosts = $foo->get("/config/hosts") or die Dumper($foo->get_error()); foreach my $host ($hosts){ print $host->{'hostname'}; } ##turn debugging on $foo->{'debug'} = 1; ##get errors print Dumper($foo->get_errors()); # I always want an array... even if I only get 1 result $foo->{'force_array'} = 1; $db_username = $foo->get("/config/db/credentials") or die Dumper($foo->get_error()); print @{db_username}[0]->{'user'} print @{db_username}[0]->{'password'} $user = $foo->get("/config/db/credentials[1]/@user") or die Dumper($foo->get_error()); $password = $foo->get("/config/db/credentials[1]/@password") or die Dumper($foo->get_error()); $user = @{$user}[0]; $password = @{$password}[0]; my $valid = $foo->validate(); if(!$valid){ print STDERR Dumper($foo->get_error()); } my $valid2 = $foo->validate("/path/to/new/schema.xsd"); ...
returns the requested data from the config file must pass in the path of the node/attribute you want from the XML. Attributes are denoted by '@'
to get an attribute the call would look like
$foo->get("/path/to/@object");
$foo->get2("/path/to/@object");
$foo->get3("/path/to/@object");
my $valid = $config->validate(); or my $valid = $config->validate("/path/to/schema.xsd"); returns 1 if xml validates returns 0 if it fails to valiate returns -1 if there is a problem with your schema
returns any error that is generated from this module
my $config = GRNOC::Config->new(config_file => $file, force_array => 0, debug => 0); or my $config = GRNOC::Config->new( xml_string => $string);
To install GRNOC::Config, copy and paste the appropriate command in to your terminal.
cpanm
cpanm GRNOC::Config
CPAN shell
perl -MCPAN -e shell install GRNOC::Config
For more information on module installation, please visit the detailed CPAN module installation guide.