App-Oozie
view release on metacpan or search on metacpan
lib/App/Oozie/Deploy.pm view on Meta::CPAN
)],
},
);
has ttlib_base_dir => (
is => 'rw',
isa => IsDir,
lazy => 1,
default => sub {
my $self = shift;
my $first_guess = File::Spec->catdir( $self->local_oozie_code_path, 'lib' );
return $first_guess if App::Oozie::Types::Common->get_type(IsDir)->check( $first_guess );
(my $whereami = __FILE__) =~ s{ [.]pm \z }{}xms;
my $base = File::Spec->catdir( $whereami, 'ttlib' );
return $base if App::Oozie::Types::Common->get_type(IsDir)->check( $base );
die 'Failed to locate the ttlib path!';
},
);
# this will be used for dynamic includes/directives etc. It will be inside
# ttlib_base_dir
has ttlib_dynamic_base_dir_name => (
lib/App/Oozie/Deploy.pm view on Meta::CPAN
) {
$self->verify_git_tag;
}
my $wfs = $self->collect_names_to_deploy( $workflows );
my($total_errors, $validation_errors);
my @update_coord;
for my $workflow ( @{ $wfs } ) {
my($t_validation_errors, $t_total_errors, $dest, $cvc) = $self->process_workflow( $workflow );
push @update_coord, $self->guess_running_coordinator( $workflow, $cvc, $dest );
$total_errors += $t_validation_errors;
$validation_errors += $t_total_errors;
}
if ($total_errors) {
$logger->fatal( sprintf 'ERROR: %s errors were encountered during this run. Please fix it!', $total_errors );
$logger->fatal( 'The --force option has been disabled, as not enough really paid attention.' );
$logger->fatal( 'Fixing the errors is really your best and easiest option.' );
$logger->logdie( 'Failed.' );
}
lib/App/Oozie/Deploy.pm view on Meta::CPAN
sub max_wf_xml_length {
my $self = shift;
my $ooz_admin = $self->oozie->admin('configuration');
my $conf_val = $ooz_admin->{'oozie.service.WorkflowAppService.WorkflowDefinitionMaxLength'};
return $conf_val
|| $self->logger->logdie( 'Unable to fetch the ooozie configuration WorkflowDefinitionMaxLength!' );
}
sub guess_running_coordinator {
state $is_running = { map { $_ => 1 } OOZIE_STATES_RUNNING };
my $self = shift;
my $workflow = shift;
my $cvc = shift;
my $dest = shift;
my $logger = $self->logger;
$logger->info( 'Probing for existing coordinators ...' );
lib/App/Oozie/Deploy.pm view on Meta::CPAN
=head2 collect_data_for_deployment_meta_file
=head2 collect_names_to_deploy
=head2 compile_templates
=head2 create_deployment_meta_file
=head2 destination_path
=head2 guess_running_coordinator
=head2 max_wf_xml_length
=head2 maybe_update_coordinators
=head2 pre_verification
=head2 process_templates
=head2 process_workflow
lib/App/Oozie/Run.pm view on Meta::CPAN
option define => (
is => 'rw',
format => 's@',
default => sub { [] },
doc => q{Define extra parameters for oozie, like "--define 'foo=bar'"},
);
option path => (
is => 'rw',
format => 's',
default => \&_option_build_guess_wf_path,
lazy => 1,
doc => 'HDFS location for the workflow. Defaults to <default_hdfs_destination>/<workflow-basename>',
);
option sla_duration => (
is => 'rw',
isa => Int,
format => 'i',
doc => remove_newline( <<'DOC' ),
the runtime, in minutes, after which a workflow deployed using the --sla
lib/App/Oozie/Run.pm view on Meta::CPAN
has basedir => (
is => 'rw',
);
has errors => (
is => 'rw',
default => sub { [] },
);
sub _option_build_guess_wf_path {
my $self = shift;
my $wf_dir = $self->basedir;
my $rv;
# Should be the same on local file system and HDFS
my $relativePath;
my $local_wf_basedir = '/workflows/';
if (File::Spec->file_name_is_absolute($wf_dir)) {
my $workflowsPartIndex = rindex($wf_dir, $local_wf_basedir);
lib/App/Oozie/Run.pm view on Meta::CPAN
$relativePath = $wf_dir;
}
if ( $relativePath ) {
$rv = File::Spec->catfile(
$self->oozie_basepath,
trim_slashes( $relativePath ),
);
}
else {
die 'Failed to guess the workflow path!';
}
return $rv;
}
sub run {
my $self = shift;
my $wf_dir = shift || $self->logger->logdie( 'Please specify a workflow/coordinator/bundle to run' );
my $logger = $self->logger;
lib/App/Oozie/Run.pm view on Meta::CPAN
$self->log_versions if $self->verbose;
$self->basedir( $wf_dir );
my $CWD = getcwd() || die "Can't happen: unable to get cwd: $!";
if ( ! chdir $wf_dir ) {
die sprintf 'Cannot chdir to %s: %s -- Current dir: %s', $wf_dir, $!, $CWD;
}
if ( ! $self->appname ) {
my $guess = basename getcwd;
$logger->info( 'appname is not set, using the basedir=' . $guess );
$self->appname( $guess );
}
# move to constructor?
(my $appname = $self->appname) =~ s{ [/]+ \z }{}xms;
$self->appname( $appname );
$self->logger->info( sprintf 'Job name: %s', $self->appname );
$self->logger->info( sprintf 'Job path (HDFS dir): %s', $self->path );
$self->setup_dates;
( run in 0.508 second using v1.01-cache-2.11-cpan-748bfb374f4 )