Changeset 2067

Show
Ignore:
Timestamp:
18/04/09 20:31:15 (3 years ago)
Author:
kjellm
Message:

Added fetch_service_config to node

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/server/lib/Munin/Master/Node.pm

    r2065 r2067  
    4747    ) or croak "Failed to create socket: $!"; 
    4848 
    49     my $greeting = $self->_read_socket_single(); 
     49    my $greeting = $self->_node_read_single(); 
    5050 
    5151    $self->_run_starttls_if_required(); 
     
    6464        logger       => \&logger, 
    6565        read_fd      => fileno($self->{socket}), 
    66         read_func    => sub { _read_socket_single($self) }, 
     66        read_func    => sub { _node_read_single($self) }, 
    6767        tls_ca_cert  => $config->{tls_ca_certificate}, 
    6868        tls_cert     => $config->{tls_certificate}, 
     
    9494    my ($self) = @_; 
    9595 
    96     $self->_write_socket_single("cap $self->{master_capabilities}\n"); 
    97     my @lines = $self->_read_socket(); 
     96    $self->_node_write_single("cap $self->{master_capabilities}\n"); 
     97    my @lines = $self->_node_read(); 
    9898 
    9999    if (index($lines[0], '# Unknown command') == 0) { 
     
    114114    my ($self) = @_; 
    115115     
    116     $self->_write_socket_single("list\n"); # FIX specify which host 
    117     my $list = $self->_read_socket_single(); 
     116    $self->_node_write_single("list\n"); # FIX specify which host 
     117    my $list = $self->_node_read_single(); 
    118118     
    119119    return split / /, $list; 
    120120} 
    121121 
    122 sub fetch_service_config {} 
     122sub fetch_service_config { 
     123    my ($self, $service) = @_; 
     124 
     125    logger("[DEBUG] Configuring service: $service") if $config->{debug}; 
     126    $self->_node_write_single("config $service\n"); 
     127 
     128    my @lines = $self->_node_read(); 
     129     
     130    my @global_config = (); 
     131    my @data_source_config = (); 
     132 
     133    for my $line (@lines) { 
     134        croak "Client reported timeout in configuration of '$service'" 
     135            if $line =~ /\# timeout/; 
     136         
     137        next unless $line; 
     138        next if $line =~ /^\#/; 
     139         
     140 
     141        if ($line =~ m{\A (\w+)\.(\w+) \s+ (.+) }xms) { 
     142            push @data_source_config, [$1, $2, $3]; 
     143            # FIX sanitise $1 and $2 if label some where 
     144            logger("config: $service->$1.$2 = $3") if $config->{debug}; 
     145            # FIX graph_order 
     146        }  
     147        elsif ($line =~ m{\A (\w+) \s+ (.+) }xms) { 
     148            push @global_config, [$1, $2]; 
     149            logger ("Config: $service->$1 = $2") if $config->{debug}; 
     150            # FIX graph_order 
     151        } 
     152    } 
     153 
     154    return (global => \@global_config, data_source => \@data_source_config); 
     155
    123156 
    124157sub fetch_service_data {} 
    125158 
    126 sub _starttls {} 
    127  
    128  
    129  
    130 sub _write_socket_single { 
     159 
     160sub _node_write_single { 
    131161    my ($self, $text) = @_; 
    132162 
     
    148178} 
    149179 
    150 sub _read_socket_single { 
     180sub _node_read_single { 
    151181    my ($self) = @_; 
    152182    my $res; 
     
    170200 
    171201 
    172 sub _read_socket
     202sub _node_read
    173203    my ($self) = @_; 
    174204    my @array = ();  
  • trunk/server/lib/Munin/Master/UpdateWorker.pm

    r2065 r2067  
    66 
    77use Carp; 
     8use English qw(-no_match_vars); 
    89use Munin::Master::Node; 
    910 
     
    3031        my @services     = $self->{node}->list_services(); 
    3132         
     33        for my $service (@services) { 
     34            eval { 
     35                my %service_config = $self->{node}->fetch_service_config($service); 
     36                use Data::Dumper; warn Dumper(\%service_config); 
     37 
     38            }; 
     39            if ($EVAL_ERROR) { 
     40                # FIX use old config if exists, else stop all further 
     41                # processing og service 
     42            } 
     43 
     44        } 
     45 
    3246        $retval->{services}     = \@services; 
    3347        $retval->{capabilities} = \@capabilities;