Changeset 11215 for lang/perl/Punc/trunk

Show
Ignore:
Timestamp:
05/06/08 20:28:50 (7 months ago)
Author:
mizzy
Message:

エラーハンドリングをみなおしたり、徐々にMoose化していったり

Location:
lang/perl/Punc/trunk/lib
Files:
11 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Punc/trunk/lib/Punc.pm

    r11213 r11215  
    3838 
    3939    $module = 'Pfacter::' . lc $module; 
    40     $module->require or die $@; 
     40    $module->require or $self->log( error => $@ ); 
    4141 
    4242    my $pfact = $module->pfact($self); 
  • lang/perl/Punc/trunk/lib/Punc/ConfigLoader.pm

    r10103 r11215  
    1212sub load { 
    1313    my ( $self, $file ) = @_; 
    14     my $config = YAML::LoadFile($file) or die $!; 
    15     return $config; 
     14    my $config = YAML::LoadFile($file) or Punc->context->log( error => $! ); 
     15    return $config || {}; 
    1616} 
    1717 
  • lang/perl/Punc/trunk/lib/Punc/Daemon.pm

    r11195 r11215  
    4545            ); 
    4646 
     47            Punc->context->log( error => $res->{error} ) if $res->{error}; 
     48 
    4749            my $json = to_json({ 
    4850                result => $res->{result}, 
  • lang/perl/Punc/trunk/lib/Punc/Hosts.pm

    r11181 r11215  
    11package Punc::Hosts; 
    22 
    3 sub get_hosts { 
    4     die; 
    5 } 
     3use Moose; 
     4 
     5package Punc::Hosts::Role; 
     6 
     7use Moose::Role; 
     8 
     9require 'get_hosts'; 
    610 
    7111; 
  • lang/perl/Punc/trunk/lib/Punc/Hosts/File.pm

    r11181 r11215  
    22use File::Spec; 
    33use File::Basename; 
     4use Moose; 
     5 
     6extends 'Punc::Hosts'; 
     7with 'Punc::Hosts::Role'; 
    48 
    59sub get_hosts { 
    610    my ( $class, $args ) = @_; 
    711 
    8     $confdir = $args->{conf}->{confdir}; 
     12    my $confdir = $args->{conf}->{confdir}; 
    913    my $certdir = File::Spec->catdir($confdir, 'ssl', 'certs'); 
    1014    my @files = glob("$certdir/*"); 
  • lang/perl/Punc/trunk/lib/Punc/Logger/StdErr.pm

    r11213 r11215  
    1111} 
    1212 
    13  
    14131; 
  • lang/perl/Punc/trunk/lib/Punc/Master/Daemon.pm

    r10154 r11215  
    9595        $self->{ca}->{certdir}, 
    9696        "${hostname}.cert" 
    97     ) or die $!; 
     97    ) or do { return { error => $! } }; 
     98 
    9899    my $cert = do { local $/; <$cert_fh> }; 
    99100    close $cert_fh; 
     
    102103        $self->{ca}->{cadir}, 
    103104        'ca.cert' 
    104     ) or die $!; 
     105    ) or do { return { error => $! } }; 
     106 
    105107    my $cacert = do { local $/; <$cacert_fh> }; 
    106108    close $cacert_fh; 
  • lang/perl/Punc/trunk/lib/Punc/Slave/Daemon.pm

    r10463 r11215  
    7373        my $cert = $res->content->{result}->{cert}; 
    7474        open my $cert_fh, '>', File::Spec->catfile($self->{certdir}, "${fqdn}.cert") 
    75             or die; 
     75            or die $!; 
    7676        print $cert_fh $cert; 
    7777        close $cert_fh; 
     
    7979        my $cacert = $res->content->{result}->{cacert}; 
    8080        open my $cacert_fh, '>', File::Spec->catfile($self->{certdir}, 'ca.cert') 
    81             or die; 
     81            or die $!; 
    8282        print $cacert_fh $cacert; 
    8383        close $cacert_fh; 
     
    9393    $module = ucfirst $module; 
    9494    $module = "Punc::Slave::Module::$module"; 
    95     $module->require or die $@; 
     95    $module->require or do { return { error => "no such module: $module" } }; 
    9696 
    9797    my $res; 
     
    101101    else { 
    102102        my $obj = $module->new; 
    103         $res = $obj->exec($method, $args); 
     103        my $module_to_delegate = $obj->delegate; 
     104        if ( $module_to_delegate ) { 
     105            $res = $module_to_delegate->exec($method, $args); 
     106        } 
     107        else { 
     108            Punc->context->log( error => $obj->errstr ); 
     109            return { error => $obj->errstr }; 
     110        } 
    104111    } 
    105112 
  • lang/perl/Punc/trunk/lib/Punc/Slave/Module.pm

    r11213 r11215  
    11package Punc::Slave::Module; 
    22 
    3 use strict; 
    4 use warnings; 
    53use Moose; 
    64use Module::Pluggable; 
    75 
    8 extends 'Class::Data::Inheritable'; 
     6extends 'Class::Data::Inheritable', 'Class::ErrorHandler'; 
    97 
    108__PACKAGE__->mk_classdata('default_for'); 
     
    2018sub new { 
    2119    my $class = shift; 
    22     my $self = bless {}, $class; 
    23     $self->delegate; 
     20    bless {}, $class; 
    2421} 
    2522 
     
    3128    for my $module ( @modules ) { 
    3229        next if $module =~ /Role$/; 
    33         $module->require or die $@; 
     30        $module->require or do { 
     31            return $self->error($@); 
     32        }; 
    3433        my $default_for = $module->default_for; 
    3534        next unless $default_for; 
     
    3736        if ( grep { Punc->context->fact($fact) =~ /$_/i } @{ $default_for->{$fact} } ) { 
    3837            $module_to_delegate = $module; 
     38            last; 
    3939        } 
    4040    } 
    4141 
    42     Punc->context->log( info => "Delegated to $module_to_delegate." ); 
    43     bless $self, $module_to_delegate; 
     42    if ( $module_to_delegate ) { 
     43        Punc->context->log( info => "Delegated to $module_to_delegate." ); 
     44        bless $self, $module_to_delegate; 
     45    } 
     46    else { 
     47        return $self->error('Could not find a module to delegate.'); 
     48    } 
    4449} 
    4550 
  • lang/perl/Punc/trunk/lib/Punc/Slave/Module/File.pm

    r11184 r11215  
    1717    $dest_dir->mkpath unless -d $dest_dir; 
    1818 
    19     open my $fh, '>', $dest_file or die $!; 
     19    open my $fh, '>', $dest_file or do { 
     20        Punc->context->log( error => $! ); 
     21        return { error => $! }; 
     22    }; 
     23 
    2024    print $fh $args->{content}; 
    2125    close $fh; 
  • lang/perl/Punc/trunk/lib/Punc/Slave/Module/Service/RedHat.pm

    r11195 r11215  
    33use strict; 
    44use warnings; 
    5 use Punc::Slave::Module::Service { operatingsystem => [ qw / redhat fedora centos / ] }; 
     5use Punc::Slave::Module::Service { operatingsystem => [ qw / redhat centos fedora / ] }; 
    66use Moose; 
    77