summaryrefslogtreecommitdiff
path: root/FS/FS/Tron.pm
diff options
context:
space:
mode:
Diffstat (limited to 'FS/FS/Tron.pm')
-rw-r--r--FS/FS/Tron.pm46
1 files changed, 35 insertions, 11 deletions
diff --git a/FS/FS/Tron.pm b/FS/FS/Tron.pm
index 26ab639..78af0fe 100644
--- a/FS/FS/Tron.pm
+++ b/FS/FS/Tron.pm
@@ -9,34 +9,56 @@ use FS::Record qw( qsearchs );
use FS::svc_external;
use FS::cust_svc_option;
-our @EXPORT_OK = qw( tron_scan tron_lint);
+our @EXPORT_OK = qw( tron_ping tron_scan tron_lint);
our %desired = (
- #lenient for now, so we can fix up important stuff
+ #less lenient, we need to make sure we upgrade deb 4 & pg 7.4
'freeside_version' => qr/^1\.(7\.3|9\.0)/,
- 'debian_version' => qr/^4/,
+ 'debian_version' => qr/^5/, #qr/^5.0.[2-9]$/ #qr/^4/,
'apache_mpm' => qw/^(Prefork|$)/,
+ 'pg_version' => qr/^8\.[1-9]/,
+ 'apache_version' => qr/^2/,
#payment gateway survey
# 'payment_gateway' => qw/^authorizenet$/,
#stuff to add/replace later
- #'pg_version' => qr/^8\.[1-9]/,
- #'apache_version' => qr/^2/,
#'apache_mpm' => qw/^Prefork/,
+ #'pg_version' => qr/^8\.[3-9]/,
);
-sub tron_scan {
- my $cust_svc = shift;
+sub _cust_svc_external {
+ my $cust_svc_or_svcnum = shift;
- my $svc_external;
- if ( ref($cust_svc) ) {
+ my ( $cust_svc, $svc_external );
+ if ( ref($cust_svc_or_svcnum) ) {
+ $cust_svc = $cust_svc_or_svcnum;
$svc_external = $cust_svc->svc_x;
} else {
- $svc_external = qsearchs('svc_external', { 'svcnum' => $cust_svc } );
+ $svc_external = qsearchs('svc_external', { svcnum=>$cust_svc_or_svcnum } );
$cust_svc = $svc_external->cust_svc;
}
+ ( $cust_svc, $svc_external );
+
+}
+
+sub tron_ping {
+ my( $cust_svc, $svc_external ) = _cust_svc_external(shift);
+
+ my %hash = ();
+ my $machine = $svc_external->title; # or better as a cust_svc_option??
+ sshopen2($machine, *READER, *WRITER, '/bin/echo pong');
+ my $pong = scalar(<READER>);
+ close READER;
+ close WRITER;
+
+ $pong =~ /pong/;
+}
+
+sub tron_scan {
+ my( $cust_svc, $svc_external ) = _cust_svc_external(shift);
+
#don't scan again if things are okay
my $bad = 0;
foreach my $option ( keys %desired ) {
@@ -48,7 +70,9 @@ sub tron_scan {
#do the scan
my %hash = ();
my $machine = $svc_external->title; # or better as a cust_svc_option??
- sshopen2($machine, *READER, *WRITER, '/usr/local/bin/freeside-yori all');
+ #sshopen2($machine, *READER, *WRITER, '/usr/local/bin/freeside-yori all');
+ #fix freeside users' patch if necessary, since packages put this in /usr/bin
+ sshopen2($machine, *READER, *WRITER, 'freeside-yori all');
while (<READER>) {
chomp;
my($option, $value) = split(/: ?/);