[freeside-commits] branch FREESIDE_4_BRANCH updated. 5069e4b5dc1b71eb3df22223ff3cfb84efb96daf
Jonathan Prykop
jonathan at 420.am
Fri Jul 3 15:29:38 PDT 2015
The branch, FREESIDE_4_BRANCH has been updated
via 5069e4b5dc1b71eb3df22223ff3cfb84efb96daf (commit)
from 43ec777308c7717e2f4fb75ac96a710baa4b87ba (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5069e4b5dc1b71eb3df22223ff3cfb84efb96daf
Author: Jonathan Prykop <jonathan at freeside.biz>
Date: Fri Jul 3 17:19:53 2015 -0500
RT#18834: Cacti integration [trailing slash handling, changed cache dir]
diff --git a/FS/FS/part_export/cacti.pm b/FS/FS/part_export/cacti.pm
index c83e453..7de9794 100644
--- a/FS/FS/part_export/cacti.pm
+++ b/FS/FS/part_export/cacti.pm
@@ -217,7 +217,7 @@ sub ssh_insert {
# $desc =~ s/'/'\\''/g;
$desc =~ s/'//g;
my $cmd = $php
- . $opt{'script_path'}
+ . trailslash($opt{'script_path'})
. q(add_device.php --description=')
. $desc
. q(' --ip=')
@@ -233,7 +233,7 @@ sub ssh_insert {
# Add host to tree
if ($opt{'tree_id'}) {
$cmd = $php
- . $opt{'script_path'}
+ . trailslash($opt{'script_path'})
. q(add_tree.php --type=node --node-type=host --tree-id=)
. $opt{'tree_id'}
. q( --host-id=)
@@ -246,7 +246,7 @@ sub ssh_insert {
# Get list of graph templates for new id
$cmd = $php
- . $opt{'script_path'}
+ . trailslash($opt{'script_path'})
. q(freeside_cacti.php --get-graph-templates --host-template=)
. $opt{'template_id'};
my $ginfo = { map { $_ ? ($_ => undef) : () } split(/\n/,ssh_cmd(%opt, 'command' => $cmd)) };
@@ -301,7 +301,7 @@ sub ssh_insert {
# create the graph
$cmd = $php
- . $opt{'script_path'}
+ . trailslash($opt{'script_path'})
. q(add_graphs.php --graph-type=)
. ($isds ? 'ds' : 'cg')
. q( --graph-template-id=)
@@ -335,7 +335,7 @@ sub ssh_insert {
sub ssh_delete {
my %opt = @_;
my $cmd = $php
- . $opt{'script_path'}
+ . trailslash($opt{'script_path'})
. q(freeside_cacti.php --drop-device --ip=')
. $opt{'hostname'}
. q(');
@@ -367,7 +367,7 @@ sub process_graphs {
my ($job,$param) = @_;
$job->update_statustext(10);
- my $cachedir = $FS::UID::cache_dir . '/cacti-graphs/';
+ my $cachedir = trailslash($FS::UID::cache_dir,'cache.'.$FS::UID::datasrc,'cacti-graphs');
# load the service
my $svcnum = $param->{'svcnum'} || die "No svcnum specified";
@@ -413,7 +413,7 @@ sub process_graphs {
# get list of graphs for this svc from cacti server
my $cmd = $php
- . $self->option('script_path')
+ . trailslash($self->option('script_path'))
. q(freeside_cacti.php --get-graphs --ip=')
. $svc->ip_addr
. q(');
@@ -432,7 +432,9 @@ sub process_graphs {
'rsh' => 'ssh',
'verbose' => 1,
'recursive' => 1,
- 'source' => $self->option('graphs_path'),
+ 'quote-src' => 1,
+ 'quote-dst' => 1,
+ 'source' => trailslash($self->option('graphs_path')),
'dest' => $cachedir,
'include' => [
(map { q('**graph_).${$_}[0].q(*.png') } @graphs),
@@ -442,8 +444,9 @@ sub process_graphs {
],
});
#don't know why a regular $rsync->exec isn't doing includes right, but this does
- my $error = system(join(' ',@{$rsync->getcmd()}));
- die "rsync failed with exit status $error" if $error;
+ my $rscmd = join(' ',@{$rsync->getcmd()});
+ my $error = system($rscmd);
+ die "rsync ($rscmd) failed with exit status $error" if $error;
$job->update_statustext(50);
@@ -551,6 +554,19 @@ sub ssh_cmd {
return $output;
}
+#there's probably a better place to put this?
+#makes sure there's a trailing slash between/after input
+#doesn't add leading slashes
+sub trailslash {
+ my @paths = @_;
+ my $out = '';
+ foreach my $path (@paths) {
+ $out .= $path;
+ $out .= '/' unless $out =~ /\/$/;
+ }
+ return $out;
+}
+
=head1 METHODS
=over 4
-----------------------------------------------------------------------
Summary of changes:
FS/FS/part_export/cacti.pm | 36 ++++++++++++++++++++++++++----------
1 file changed, 26 insertions(+), 10 deletions(-)
More information about the freeside-commits
mailing list