Changeset 3408

Show
Ignore:
Timestamp:
03/10/10 14:22:28 (2 years ago)
Author:
ligne
Message:

merge r3406 (multigraph support for munin-node) into 1.4 maintenance branch.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.4-stable/node/lib/Munin/Node/Server.pm

    r3164 r3408  
    2424 
    2525# Services that require the server to support multigraph plugins. 
    26 my @multigraph_services
     26my (@multigraph_services, @dirtyconfig_services)
    2727 
    2828# Which hosts this node's services applies to. Typically this is the 
     
    9090                || $config->{fqdn}; 
    9191 
     92        # hostname checks are case insensitive, so store everything in lowercase 
     93        $node = lc($node); 
     94 
    9295        print STDERR "\tAdding to node $node\n" if $config->{DEBUG}; 
    9396        push @{$nodes{$node}}, $service; 
     
    9598        # Note any plugins that require particular server capabilities. 
    9699        if (grep /^multigraph\s+/, @response) { 
    97             print STDERR "\tAdding to multigraph plugins\n" 
    98                 if $config->{DEBUG}; 
     100            print STDERR "\tAdding to multigraph plugins\n" if $config->{DEBUG}; 
    99101            push @multigraph_services, $service; 
     102        } 
     103        if (grep /^[A-Za-z0-9_]+\.value /, @response) { 
     104            # very dirty plugins -- they do a dirtyconfig even when 
     105            # "not allowed" by their environment. 
     106            print STDERR "\tAdding to dirty plugins\n" if $config->{DEBUG}; 
     107            push @dirtyconfig_services, $service; 
    100108        } 
    101109    } 
     
    213221    my ($session, $server_capabilities) = @_; 
    214222 
    215     my @node_cap = qw( multigraph ); 
     223    my @node_cap = qw/ 
     224        multigraph 
     225        dirtyconfig 
     226    /; 
     227     
    216228    $session->{server_capabilities} = { 
    217229            map { $_ => 1 } split(/ /, $server_capabilities) 
    218230    }; 
     231 
     232    $ENV{MUNIN_CAP_DIRTYCONFIG} = 1 if ($session->{server_capabilities}{dirtyconfig}); 
    219233 
    220234    _net_write($session, sprintf("cap %s\n",join(" ", @node_cap))); 
     
    297311 
    298312    if (exists $nodes{$node}) { 
    299         # remove any plugins that require capabilities the server doesn't provide 
    300313        my @services = @{$nodes{$node}}; 
     314 
     315        # remove any plugins that require capabilities the master doesn't support 
    301316        @services = Munin::Node::Utils::set_difference(\@services, \@multigraph_services) 
    302317            unless $session->{server_capabilities}{multigraph}; 
     318        @services = Munin::Node::Utils::set_difference(\@services, \@dirtyconfig_services) 
     319            unless $session->{server_capabilities}{dirtyconfig}; 
    303320 
    304321        _net_write($session, join(" ", @services));