POE::Component::SmokeBox::Backend - smoker backend to POE::Component::SmokeBox
version 0.52
use strict; use warnings; use Data::Dumper; use POE qw(Component::SmokeBox::Backend); my $perl = '/home/cpan/rel/perl-5.8.8/bin/perl'; POE::Session->create( package_states => [ 'main' => [qw(_start _results)], ], ); $poe_kernel->run(); exit 0; sub _start { my ($kernel,$heap) = @_[KERNEL,HEAP]; $heap->{backend} = POE::Component::SmokeBox::Backend->smoke( event => '_results', perl => $perl, type => 'CPANPLUS::YACSmoke', command => 'smoke', module => 'K/KA/KANE/CPANPLUS-0.84.tar.gz', ); return; } sub _results { my ($kernel,$heap,$result) = @_[KERNEL,HEAP,ARG0]; print Dumper( $result ); return; }
POE::Component::SmokeBox::Backend is the smoker backend to POE::Component::SmokeBox::JobQueue and ultimately POE::Component::SmokeBox.
It takes a processes a single CPAN distribution against a given perl executable using a configurable backend type ( currently, CPAN::YACSmoke, CPANPLUS::YACSmoke or CPAN::Reporter ), monitors the process for idle ( ie. no output ) or excess runtime, and returns the results to the requesting POE::Session.
perl
spawn
Creates a new POE::Component::SmokeBox::Backend component. Takes a number of parameters:
'event', the event to return the results to, mandatory; 'session', specify an alternative POE session to send the results to; 'command', the backend command to run: check, index, smoke, default is check; 'perl', the path to the perl executable to use, default is $^X; 'type', the type of backend to use, default is CPANPLUS::YACSmoke; 'idle', change the idle timeout, specified in seconds, default is 600; 'timeout', change runtime timeout, specified in seconds, default is 3600; 'module', the module to process, mandatory if 'smoke' command is specified; 'env', a hashref of %ENV values to set when processing; 'no_log', enable to not store the job output log, default is false;
You may also pass in arbitary parameters which will passed back to you in the event specified. These arbitary parameters must be prefixed with an underscore.
event
Returns a POE::Component::SmokeBox::Backend object.
check
As above, but automagically runs a check.
index
As above, but automagically runs an index.
smoke
As above, but automagically runs an smoke.
session_id
Returns the component's POE::Session ID.
shutdown
Terminates the component. The current job is killed as a result.
current_log
Returns an arrayref containing lines of output from the current job.
ARG0 of the event specified in one of the constructors will be a hashref with the following keys:
'log', an arrayref of STDOUT and STDERR produced by the job; 'PID', the process ID of the POE::Wheel::Run; 'status', the $? of the process; 'start_time', the time in epoch seconds when the job started running; 'end_time', the time in epoch seconds when the job finished; 'idle_kill', only present if the job was killed because of excessive idle; 'excess_kill', only present if the job was killed due to excessive runtime; 'term_kill', only present if the job was killed due to a poco shutdown event; 'cb_kill', only present if the job was killed due to the callback returning false;
Plus any of the parameters given to one of the constructors, including arbitary ones.
Setting the environment variable PERL5_SMOKEBOX_DEBUG will cause the component to spew out lots of information on STDERR.
PERL5_SMOKEBOX_DEBUG
POE::Component::SmokeBox
POE::Component::SmokeBox::Backend::Base
Chris Williams <chris@bingosnet.co.uk>
This software is copyright (c) 2017 by Chris Williams.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install POE::Component::SmokeBox, copy and paste the appropriate command in to your terminal.
cpanm
cpanm POE::Component::SmokeBox
CPAN shell
perl -MCPAN -e shell install POE::Component::SmokeBox
For more information on module installation, please visit the detailed CPAN module installation guide.