PITA::Image - PITA Guest Manager for inside system images


PITA-Image documentation  | view source Contained in the PITA-Image distribution.

Index


NAME

Top

PITA::Image - PITA Guest Manager for inside system images

SYNOPSIS

Top

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

DESCRIPTION

Top

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.

Setting up a Testing Image

Top

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.

METHODS

Top

new

  my $manager = PITA::Image->new(
      injector => '/mnt/hdb1',
      workarea => '/tmp',
  );

The new creates a new image manager. It takes two named parameters.

injector

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.

workarea

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.

SUPPORT

Top

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.

AUTHOR

Top

Adam Kennedy <adamk@cpan.org>, http://ali.as/

SEE ALSO

Top

The Perl Image Testing Architecture (http://ali.as/pita/)

PITA, PITA::XML, PITA::Scheme

COPYRIGHT

Top


PITA-Image documentation  | view source Contained in the PITA-Image distribution.