Changeset 10581 for lang/perl/Punc/trunk

Show
Ignore:
Timestamp:
04/27/08 18:47:27 (7 months ago)
Author:
mizzy
Message:

ホストリストの自動取得対応した。punc "*" call とか実行できる。

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

Legend:

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

    r10463 r10581  
    55our $VERSION = '0.01'; 
    66our $AUTOLOAD; 
     7use Punc::ConfigLoader; 
    78use Punc::Client::Request; 
    89use UNIVERSAL::require; 
    910use FindBin; 
     11use UNIVERSAL::require; 
    1012 
    1113sub new { 
    1214    my ( $class, $target ) = @_; 
    1315 
     16    $target =~ s/\*/\.\*/g; 
     17 
    1418    ### TODO: confdir のデフォルト値を変更 
    15     ## TODO: $target から対象ホストをリストアップ 
     19    my $confdir = "$FindBin::Bin/../etc"; 
     20    my $yaml    = File::Spec->catfile($confdir, 'punc.yaml'); 
     21    my $conf    = -f $yaml ? Punc::ConfigLoader->new->load($yaml) : {}; 
     22    $conf->{confdir} = $confdir; 
     23 
     24    my $hosts_class = ucfirst $conf->{hosts_class} || 'File'; 
     25    $hosts_class = "Punc::Hosts::$hosts_class"; 
     26    $hosts_class->require; 
     27    my $hosts = $hosts_class->get_hosts({ target => $target, conf => $conf }); 
    1628 
    1729    bless { 
    18         hosts   => [ $target ], 
    19         confdir => "$FindBin::Bin/../etc", 
     30        hosts => $hosts, 
     31        conf  => $conf, 
    2032    }, $class; 
    2133} 
     
    2840 
    2941    return Punc::Client::Request->new({ 
    30         confdir => $self->{confdir}, 
    31         hosts   => $self->{hosts}, 
    32         module  => $module, 
     42        conf   => $self->{conf}, 
     43        hosts  => $self->{hosts}, 
     44        module => $module, 
    3345    }); 
    3446} 
  • lang/perl/Punc/trunk/lib/Punc/Client/Request.pm

    r10463 r10581  
    1313    my ( $class, $args ) = @_; 
    1414 
     15    my $confdir = $args->{conf}->{confdir}; 
     16 
    1517    $ENV{HTTPS_VERSION}   = 3; 
    1618    $ENV{HTTPS_CERT_FILE} = File::Spec->catfile( 
    17         $args->{confdir}, 'ssl', 'ca', 'ca.cert' 
     19        $confdir, 'ssl', 'ca', 'ca.cert' 
    1820    ); 
    1921    $ENV{HTTPS_KEY_FILE}  = File::Spec->catfile( 
    20         $args->{confdir}, 'ssl', 'ca', 'ca.key' 
     22        $confdir, 'ssl', 'ca', 'ca.key' 
    2123    ); 
    2224 
     
    3234    for my $host ( @{ $self->{hosts} } ) { 
    3335 
    34         my $url    = "https://$host:7080/$self->{module}"; 
     36        my $url     = "https://$host:7080/$self->{module}"; 
    3537        my $callobj = { 
    3638            method  => $self->{method}, 
     
    3840        }; 
    3941 
    40         my $res = $self->{client}->call($url, $callobj); 
     42        my $res = $self->{client}->call($url, $callobj) or warn @?; 
    4143 
    4244        if( $res ) {