[![Build Status](https://travis-ci.org/apcros/Drac-Perl.svg?branch=master)](https://travis-ci.org/apcros/Drac-Perl)
# NAME

DracPerl::Client - API Client for Dell's management interface (iDRAC)

# AUTHOR

Jules Decol (@Apcros)

# SYNOPSIS

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("fans");

# DESCRIPTION

## WHY ?

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 :)

## TODO

What's to come ? 

\- Better error handling

\- Integration with Log4Perl

\- Full list of supported Method 

\- Few method to abstract commons operations

# OBJECT ARGUMENTS

## max\_retries

Login can be extremely capricious, Max retries avoid being too
annoyed by that. Defaulted to 5.

# METHODS

## openSession

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

## saveSession

This will return the current session. (Basically the token and the cookie jar).

## closeSession

Invalidate the current session

## isAlive

Check with a quick api call if your current session is still useable.