From a111293b6aa333fdfe727df17eaf4a66ba9c6672 Mon Sep 17 00:00:00 2001 From: Jonathan Prykop Date: Tue, 24 Nov 2015 02:32:41 -0600 Subject: [PATCH] RT#38989: Incorrect paths when cacti is installed from source --- FS/FS/part_export/cacti.pm | 11 ++++++++++- bin/freeside_cacti.php | 27 +++++++++++++++------------ 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/FS/FS/part_export/cacti.pm b/FS/FS/part_export/cacti.pm index a1447ac7b..0220ff7d9 100644 --- a/FS/FS/part_export/cacti.pm +++ b/FS/FS/part_export/cacti.pm @@ -55,6 +55,8 @@ tie my %options, 'Tie::IxHash', 'delete_graphs' => { label => 'Delete associated graphs and data sources when unprovisioning', type => 'checkbox', }, + 'include_path' => { label => 'Path to cacti include dir (relative to script_path)', + default => '../site/include/' }, 'cacti_graph_template_id' => { 'label' => 'Graph Template', 'type' => 'custom', @@ -193,6 +195,7 @@ sub _delete_queue { 'hostname' => $svc_broadband->ip_addr, 'script_path' => $self->option('script_path'), 'delete_graphs' => $self->option('delete_graphs'), + 'include_path' => $self->option('include_path'), ); return ($queue,$error); } @@ -251,6 +254,8 @@ sub ssh_insert { . trailslash($opt{'script_path'}) . q(freeside_cacti.php --get-graph-templates --host-template=) . $opt{'template_id'}; + $cmd .= q( --include-path=') . $self->option('include_path') . q(') + if $self->option('include_path'); my $ginfo = { map { $_ ? ($_ => undef) : () } split(/\n/,ssh_cmd(%opt, 'command' => $cmd)) }; # Add extra config info @@ -343,6 +348,8 @@ sub ssh_delete { . q('); $cmd .= q( --delete-graphs) if $opt{'delete_graphs'}; + $cmd .= q( --include-path=') . $opt{'include_path'} . q(') + if $opt{'include_path'}; my $response = ssh_cmd(%opt, 'command' => $cmd); die "Error removing from cacti: " . $response if $response; @@ -420,6 +427,8 @@ sub process_graphs { . q(freeside_cacti.php --get-graphs --ip=') . $svc->ip_addr . q('); + $cmd .= q( --include-path=') . $self->option('include_path') . q(') + if $self->option('include_path'); my @graphs = map { [ split(/\t/,$_) ] } split(/\n/, ssh_cmd( 'host' => $self->machine, @@ -501,7 +510,7 @@ sub process_graphs { } unlink($thumbfile); } else { - $svchtml .= qq(

File $thumbfile does not exist, skipping

); + $svchtml .= qq(

Error loading graph: $$graph[0]

); } $job->update_statustext(49 + int($i / @graphs) * 50); } diff --git a/bin/freeside_cacti.php b/bin/freeside_cacti.php index 9f8e4dde9..be9ea4e1a 100755 --- a/bin/freeside_cacti.php +++ b/bin/freeside_cacti.php @@ -31,22 +31,11 @@ if (!isset($_SERVER["argv"][0]) || isset($_SERVER['REQUEST_METHOD']) || isset($ /* We are not talking to the browser */ $no_http_headers = true; -/* -Currently, only drop-device and get-graphs is actually being used by Freeside integration, -but keeping commented out code for potential future development. -*/ - -include(dirname(__FILE__)."/../site/include/global.php"); -include_once($config["base_path"]."/lib/api_device.php"); -include_once($config["base_path"]."/lib/api_automation_tools.php"); -include_once($config["base_path"]."/lib/api_data_source.php"); -include_once($config["base_path"]."/lib/api_graph.php"); -include_once($config["base_path"]."/lib/functions.php"); - /* process calling arguments */ $action = ''; $ip = ''; $host_template = ''; +$include_path = "../site/include/"; $delete_graphs = FALSE; $parms = $_SERVER["argv"]; array_shift($parms); @@ -77,6 +66,9 @@ if (sizeof($parms)) { case "--delete-graphs": $delete_graphs = TRUE; break; + case "--include-path": + $include_path = trim($value); + break; case "--version": case "-V": case "-H": @@ -90,6 +82,17 @@ if (sizeof($parms)) { die(default_die()); } +$include_path = dirname(__FILE__).'/'.$include_path.'/global.php'; +if (!file_exists($include_path)) { + die("File " . $include_path . "/global.php not found (check include_path in freeside export config)"); +} +include($include_path); +include_once($config["base_path"]."/lib/api_device.php"); +include_once($config["base_path"]."/lib/api_automation_tools.php"); +include_once($config["base_path"]."/lib/api_data_source.php"); +include_once($config["base_path"]."/lib/api_graph.php"); +include_once($config["base_path"]."/lib/functions.php"); + /* Now take an action */ switch ($action) { case "get-graphs": -- 2.11.0