The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::OpenNebula - Access OpenNebula RPC via Perl.

DESCRIPTION

With this module you can access the OpenNebula XML-RPC service.

To inspect the return values of the methods we suggest to use Data::Dumper.

SYNOPSIS

 use Net::OpenNebula;
 use Data::Dumper; # for the Dumper() function.
    
 my $one = Net::OpenNebula->new(
    url      => "http://server:2633/RPC2",
    user     => "oneadmin",
    password => "onepass",
 );
    
 my @vms = $one->get_vms();
     
 print Dumper(@vms);

METHODS

new(%option)

This is the constructor.

 my $one = Net::OpenNebula->new(
    url      => "http://server:2633/RPC2",
    user     => "oneadmin",
    password => "onepass",
 );
 
get_clusters()

This function calls one.clusterpool.info. This will return information of all clusters in the pool.

 my @clusters = $one->get_clusters;
get_hosts()

This function calls one.hostpool.info. This will return information of all hosts in the pool.

 my @hosts = $one->get_hosts;
get_host($id)

This function calls one.host.info. This will return information the given host. You need to refer to the host by its OpenNebula id.

 my $host = $one->get_host(5);
get_vms()

This function calls one.vmpool.info. This will return information of all known virtual machines.

 my @vms = $one->get_vms;
get_vm()

This function calls one.vm.info. This will return information of the given virtual machine.

 my $vm = $one->get_vm(8);

You can also use the virtual machine's name.

 my $vm = $one->get_vm('myvm');
get_templates()

This function calls one.templatepool.info. This will return information of all the templates available in OpenNebula.

 my @templates = $one->get_templates;
create_vm(%option)

This function will call one.vm.allocate and create a new virtual machine.

 my $vm = $one->create_vm(
    template => 7,
    name     => 'vmname',
 );

You can also use the template name.

 my $vm = $one->create_vm(
    template => 'centos',
    name     => 'vmname',
 );
create_host(%option)

This function will call one.host.allocate and register a new host into OpenNebula.

 my $host = $one->create_host(
    name    => 'my-computenode',
    im_mad  => 'im_mad_name',  # optional
    vmm_mad => 'vmm_mad_name', # optional
    vnm_mad => 'vnm_mad_name', # optional
    cluster => 'my-computenode',
 );

The cluster option is optional. All other options are mandatory.