projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
torrus, add interface UI, RT10574
[freeside.git]
/
FS
/
FS
/
NetworkMonitoringSystem
/
Torrus_Internal.pm
diff --git
a/FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm
b/FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm
index
68356e7
..
5d1bb06
100644
(file)
--- a/
FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm
+++ b/
FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm
@@
-5,6
+5,7
@@
use strict;
use Fcntl qw(:flock);
use IO::File;
use File::Slurp qw(slurp);
use Fcntl qw(:flock);
use IO::File;
use File::Slurp qw(slurp);
+use Date::Format;
#$DEBUG = 0;
#$me = '[FS::NetworkMonitoringSystem::Torrus_Internal]';
#$DEBUG = 0;
#$me = '[FS::NetworkMonitoringSystem::Torrus_Internal]';
@@
-13,6
+14,13
@@
our $lock;
our $lockfile = '/usr/local/etc/torrus/discovery/FSLOCK';
our $ddxfile = '/usr/local/etc/torrus/discovery/routers.ddx';
our $lockfile = '/usr/local/etc/torrus/discovery/FSLOCK';
our $ddxfile = '/usr/local/etc/torrus/discovery/routers.ddx';
+sub new {
+ my $class = shift;
+ my $self = {};
+ bless $self, $class;
+ return $self;
+}
+
sub add_router {
my($self, $ip) = @_;
sub add_router {
my($self, $ip) = @_;
@@
-27,6
+35,8
@@
sub add_router {
$self->_torrus_newddx($ddx);
$self->_torrus_newddx($ddx);
+}
+
sub add_interface {
my($self, $router_ip, $interface, $serviceid ) = @_;
sub add_interface {
my($self, $router_ip, $interface, $serviceid ) = @_;
@@
-46,11
+56,11
@@
sub add_interface {
next unless $line =~ /^\s*<param\s+name="snmp-host"\s+value="$router_ip"\/?>/i;
while ( my $hostline = shift(@ddx) ) {
next unless $line =~ /^\s*<param\s+name="snmp-host"\s+value="$router_ip"\/?>/i;
while ( my $hostline = shift(@ddx) ) {
- $new .= "$hostline\n";
+ $new .= "$hostline\n"
unless $hostline =~ /^\s+<\/host>\s*/i
;
if ( $hostline =~ /^\s*<param name="RFC2863_IF_MIB::external-serviceid"\/?>/i ) {
while ( my $paramline = shift(@ddx) ) {
if ( $hostline =~ /^\s*<param name="RFC2863_IF_MIB::external-serviceid"\/?>/i ) {
while ( my $paramline = shift(@ddx) ) {
- if ( $paramline =~ /^\s*</param>/ ) {
+ if ( $paramline =~ /^\s*<
\
/param>/ ) {
$new .= "$newline\n$paramline";
last; #paramline
} else {
$new .= "$newline\n$paramline";
last; #paramline
} else {
@@
-65,7
+75,7
@@
sub add_interface {
$new .=
qq( <param name="RFC2863_IF_MIB::external-serviceid">\n).
qq( $newline\n").
$new .=
qq( <param name="RFC2863_IF_MIB::external-serviceid">\n).
qq( $newline\n").
- qq( </param>\n)
.
+ qq( </param>\n)
;
}
$new .= $hostline;
last; #hostline
}
$new .= $hostline;
last; #hostline
@@
-80,7
+90,7
@@
sub add_interface {
}
sub _torrus_lock {
}
sub _torrus_lock {
- $lock = new IO::
:
File ">>$lockfile" or die $!;
+ $lock = new IO::File ">>$lockfile" or die $!;
flock($lock, LOCK_EX);
}
flock($lock, LOCK_EX);
}
@@
-102,7
+112,10
@@
sub _torrus_newddx {
or die "can't write to $ddxfile.new: $!";
print $new $ddx;
close $new;
or die "can't write to $ddxfile.new: $!";
print $new $ddx;
close $new;
- rename("$ddxfile", $ddxfile.`date +%Y%m%d%H%M%S`) or die $!;
+
+ # `date ...` created file names with weird chars in them
+ my $tmpname = $ddxfile . Date::Format::time2str('%Y%m%d%H%M%S',time);
+ rename("$ddxfile", $tmpname) or die $!;
rename("$ddxfile.new", $ddxfile) or die $!;
$self->_torrus_reload;
rename("$ddxfile.new", $ddxfile) or die $!;
$self->_torrus_reload;