| 89 | | return $class->SUPER::session(-hostname => $host, |
|---|
| 90 | | -community => $community, |
|---|
| 91 | | -port => $port, |
|---|
| 92 | | ($version ? (-version => $version) : ())); |
|---|
| | 90 | my $self = $class->SUPER::session(-hostname => $host, |
|---|
| | 91 | -community => $community, |
|---|
| | 92 | -port => $port, |
|---|
| | 93 | ($version ? (-version => $version) : ())); |
|---|
| | 94 | |
|---|
| | 95 | $self->{_munin_args} = \%args; |
|---|
| | 96 | return $self; |
|---|
| | 97 | } |
|---|
| | 98 | |
|---|
| | 99 | =head2 args() - get plugin commandline arguments |
|---|
| | 100 | |
|---|
| | 101 | $args = $session->args(); |
|---|
| | 102 | |
|---|
| | 103 | This method returns command line (symlink name) arguments for the |
|---|
| | 104 | plugin. |
|---|
| | 105 | |
|---|
| | 106 | The plugin name is taken from the C<-name> argument to C<session()> or |
|---|
| | 107 | assumed to be a single word if unspecified. |
|---|
| | 108 | |
|---|
| | 109 | =cut |
|---|
| | 110 | |
|---|
| | 111 | sub args { |
|---|
| | 112 | my $self = shift; |
|---|
| | 113 | my $n = shift; |
|---|
| | 114 | my $args = $self->{'_munin_args'}; |
|---|
| | 115 | my $name = $args->{'-name'}; |
|---|
| | 116 | |
|---|
| | 117 | if (!exists $args->{'_args'}) { |
|---|
| | 118 | if (defined $name) { |
|---|
| | 119 | $re = qr/^(?:.*\/)?snmp_(?:[^_]*)_\Q$name\E_(.*)/; |
|---|
| | 120 | } else { |
|---|
| | 121 | $re = qr/^(?:.*\/)?snmp_(?:[^_]*)_[^_]+_(.*)/; |
|---|
| | 122 | } |
|---|
| | 123 | |
|---|
| | 124 | if ($0 =~ $re) { |
|---|
| | 125 | $args->{'_args'} = [ split('_', $1) ]; |
|---|
| | 126 | } else { |
|---|
| | 127 | $args->{'_args'} = []; |
|---|
| | 128 | } |
|---|
| | 129 | } |
|---|
| | 130 | |
|---|
| | 131 | return $args->{'_args'}; |
|---|