use Date::Format;
use XML::Simple;
use FS::svc_port;
-use FS::Record qw(qsearch);
+use FS::Record qw(qsearch dbh);
use Torrus::ConfigTree;
#$DEBUG = 0;
# hardcoded for 'main' tree for now
my $self = shift;
my $serviceid = shift;
- my $hash = $self->get_router_serviceids(undef,$serviceid);
+ my $hash = $self->get_router_serviceids(undef,$serviceid) or return '';
my @keys = keys %$hash; # yeah this is weird...
my $host = $keys[0];
my $iface = $hash->{$keys[0]};
print $new $ddx;
close $new;
- # `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 $!;
sub _torrus_reload {
my($self) = @_;
- #i should use IPC::Run and have better error checking
+ #i should use IPC::Run and have better error checking (commands are silent
+ # for success, or output errors)
system('torrus', 'devdiscover', "--in=$ddxfile");
}
+sub torrus_serviceids {
+ my $self = shift;
+
+ #is this going to get too slow or will the index make it okay?
+ my $sth = dbh->prepare("SELECT DISTINCT(serviceid) FROM srvexport")
+ or die dbh->errstr;
+ $sth->execute or die $sth->errstr;
+ my %serviceid = ();
+ while ( my $row = $sth->fetchrow_arrayref ) {
+ my $serviceid = $row->[0];
+ $serviceid =~ s/_(IN|OUT)$//;
+ $serviceid{$serviceid}=1;
+ }
+ my @serviceids = sort keys %serviceid;
+
+ @serviceids;
+
+}
+
1;