DracPerl::Client - API Client for Dell's management interface (iDRAC)
Jules Decol - @Apcros
A client to interact with the iDRAC API on Dell Poweredge servers
# Create the client my $drac_client = DracPerl::Client->new({ user => "username", password => "password", url => "https://dracip", }); # Get what you're interested in # Login is done implicitly, you can save and resume sessions. See below my $parsed_xml = $drac_client->get({ commands => ['fans']});
This been created because I find the web interface of iDrac slow and far from being easy to use. I have the project of creating a full new iDrac front-end, but of course that project required an API Client. Because this is something that seem to be quite lacking in the PowerEdge community, I made a standalone repo/project for that :)
The DRAC API this client is exploiting is meant to be used only by the DRAC front-end and therefore comes with it loads of weirdness.
- A lot of fields have trailing whitespace in them (Possible update coming soon to clean theses) - When no data is available some fields will be empty, some will be 'N/A', there seem to be no consistency there - Some fields are padded (See DracPerl::Models::Abstract::PhysicalDisk )
Please note that depending on your network config you might have trouble accessing DRAC from the server itself. (If you are inside a VM running on the Dell server for example)
Login can be extremely capricious, Max retries avoid being too annoyed by that. Defaulted to 5.
Will return a hash containing models of all the methods or collection you called.
my $result = $drac_client->get({ commands => ['fans'], collections => ['lcd'] }); # $result will contain : { fans => .. #DracPerl::Models::Commands::DellDefault::Fans, lcd => .. #DracPerl::Models::Commands::Collection::LCD }
Can be called explicitly or is called by default if get is called and no session is available You can pass it a saved session in order to restore it.
$drac_client->openSession($saved_session) #Will restore a session $drac_client->openSession() #Will open a new one
This will return the current session. (Basically the token and the cookie jar).
Invalidate the current session
Check with a quick api call if your current session is still useable.
A command is a single field defined by the DRAC API. They can be send in the "commands" hash key on the get method
Here's the list of supported commands :
batteries - DracPerl::Models::Commands::DellDefault::Batteries
eventLogEntries - DracPerl::Models::Commands::DellDefault::EventLogEntries
racLogEntries - DracPerl::Models::Commands::DellDefault::RacLogEntries
fans - DracPerl::Models::Commands::DellDefault::Fans
fansRedundancy - DracPerl::Models::Commands::DellDefault::FansRedundancy
getInv - DracPerl::Models::Commands::DellDefault::GetInv
intrusion - DracPerl::Models::Commands::DellDefault::Intrusion
powerSupplies - DracPerl::Models::Commands::DellDefault::PowerSupplies
temperatures - DracPerl::Models::Commands::DellDefault::Temperatures
voltages - DracPerl::Models::Commands::DellDefault::Voltages
Collections are groups of field. This is not a Dell terminology. This was created because some interfaces pages (LCD information for example) will need several commands and the commands themselves are too small to justify having a standalone model for them.
systemInformations - DracPerl::Models::Commands::Collection::SystemInformations
lcd - DracPerl::Models::Commands::Collection::LCD
To install DracPerl::Client, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DracPerl::Client
CPAN shell
perl -MCPAN -e shell install DracPerl::Client
For more information on module installation, please visit the detailed CPAN module installation guide.