[freeside-commits] branch master updated. 53b6529e6a9c3eb3a314d87e4a405b17af4daf45

Jonathan Prykop jonathan at 420.am
Fri Jul 3 15:20:48 PDT 2015


The branch, master has been updated
       via  53b6529e6a9c3eb3a314d87e4a405b17af4daf45 (commit)
      from  1cfaa817b9cfb0a3d628c571e4505b5e0c4e9954 (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 53b6529e6a9c3eb3a314d87e4a405b17af4daf45
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