NAME

Xen::Control - control and fetch information about xen domains

SYNOPSIS

        my $xen = Xen::Control->new();
        my @domains = $xen->ls;

DESCRIPTION

This is a wrapper module interface to Xen `xm` command.

PROPERTIES

        xm_cmd
        rm_cmd
        hibernation_folder

xm_cmd
Holds the command that is used execute xm command. By default it is `sudo xm`.

rm_cmd
Holds the command that is executed to remove xen state files after beeing restored. default is `sudo rm`.

hibernation_folder
Holds the folder where hibernation domain files will be stored.

XM_METHODS

"xm" calling methods methods.

create($domain_name)
Starts domain with $domain_name. If the domain is hibernated the the function calls "restore" otherwise "$self->xm('create', $domain_name.'.cfg')".

ls
list
Returns an array of Xen::Domain objects representing curently running Xen machines.

save($domain_name)
Hibernate domain named $domain_name. If the name is is not set - undef, will hibernate all domains.

restore($domain_name)
Wakeup hibernated domain named $domain_name. If the name is is not set - undef, will wakeup all hibernated domains.

shutdown($domain_name)
Shutdown domain named $domain_name. If the name is is not set - undef, will shutdown all domains.

xm(@args)
Execute "$self->xm_cmd" with @args and return the output. Dies if the execution fails.

METHODS

Other object methods, mostly for internal usage.

new()
Object constructor.

hibernated_filename($domain_name)
Returns filename with path of the $domain_name domain.

hibernated_domains()
Search through "$self->hibernation_folder" for files that end up with ".xen" extension and return their names without the extension. So the return value is an array of hibernated domain names.

TODO

Try IPC::System::Simple instead of ``.

LINKS

Subversion repository <https://cle.sk/repos/pub/cpan/Xen-Control/>

BUGS

Please report any bugs or feature requests to "bug-xen-control at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Xen-Control>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Xen::Control

You can also look for information at:

ACKNOWLEDGEMENTS
COPYRIGHT & LICENSE

Copyright 2008 Jozef Kutej, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.