| PITA-Image documentation | view source | Contained in the PITA-Image distribution. |
PITA::Image - PITA Guest Manager for inside system images
A typical startup script
#!/usr/bin/perl
use strict;
use IPC::Run3;
use PITA::Image;
# Wrap the main actions in an eval to catch errors
eval {
# Configure the image manager
my $manager = PITA::Image->new(
injector => '/mnt/hbd1',
workarea => '/tmp',
);
$manager->add_platform(
scheme => 'perl5',
path => '', # Default system Perl
);
$manager->add_platform(
scheme => 'perl5',
path => '/opt/perl5-6-1/bin/perl'
);
# Run the tasks
$manager->run;
# Report the results
$manager->report;
};
# Shut down the computer on completion or failure
run3( [ 'shutdown', '-h', '0' ], \undef );
exit(0);
And a typical configuration image.conf
class=PITA::Image version=0.10 support=http://10.0.2.2/ [ task ] task=Test scheme=perl5.make path=/usr/bin/perl request=request-512311.conf
While most of the PITA system exists outside the guest images and tries to have as little interaction with them as possible, there is one part that needs to be run from inside it.
The PITA::Image class lives inside the image and has the
responsibility of accepting the injector directory at startup, executing
the requested tasks, and then shutting down the (virtual) computer.
Each image that will be set up will require a bit of customization, as the entire point of this type of testing is that every environment is different.
However, by keeping most of the functionality in the
PITA::Image and PITA::Scheme classes, all you should need
to do is to arrange for a relatively simple Perl script to be launched,
that feeds some initial configuration to to a new
PITA::Image object.
And it should do the rest.
my $manager = PITA::Image->new(
injector => '/mnt/hdb1',
workarea => '/tmp',
);
The new creates a new image manager. It takes two named parameters.
The required injector param is a platform-specific path to the
root of the already-mounted /dev/hdb1 partition (or the equivalent
on your operating system). The image configuration is expected to
exist at image.conf within this directory.
The optional workarea param provides a directory writable by the
current user that can be used to hold any files and do any processing
in during the running of the image tasks.
If you do not provide a value, File::Temp::tempdir() will be used
to find a default usable directory.
Returns a new PITA::Image object, or dies on error.
Bugs should be reported via the CPAN bug tracker at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=PITA-Image
For other issues, contact the author.
Adam Kennedy <adamk@cpan.org>, http://ali.as/
The Perl Image Testing Architecture (http://ali.as/pita/)
Copyright 2005 - 2011 Adam Kennedy.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
| PITA-Image documentation | view source | Contained in the PITA-Image distribution. |