diff --git a/html/includes/graphs/device/smokeping_all_common.inc.php b/html/includes/graphs/device/smokeping_all_common.inc.php index edff0d7e5e..3549633bf3 100644 --- a/html/includes/graphs/device/smokeping_all_common.inc.php +++ b/html/includes/graphs/device/smokeping_all_common.inc.php @@ -38,7 +38,11 @@ foreach ($smokeping_files[$direction][$device['hostname']] as $source => $filena $descr = rrdtool_escape($source, $descr_len); - $filename = $config['smokeping']['dir'] . $filename; + if ($config['smokeping']['integration'] === true) { + $filename = $config['smokeping']['dir'] .'/'. $device['type'] .'/'. $filename; + } else { + $filename = $config['smokeping']['dir'] . $filename; + } $rrd_options .= " DEF:median$i=".$filename.":median:AVERAGE "; $rrd_options .= " DEF:loss$i=".$filename.":loss:AVERAGE"; $rrd_options .= " CDEF:ploss$i=loss$i,$pings,/,100,*"; diff --git a/html/includes/graphs/device/smokeping_all_common_avg.inc.php b/html/includes/graphs/device/smokeping_all_common_avg.inc.php index 12681140ac..3178e613c6 100644 --- a/html/includes/graphs/device/smokeping_all_common_avg.inc.php +++ b/html/includes/graphs/device/smokeping_all_common_avg.inc.php @@ -39,7 +39,11 @@ foreach ($smokeping_files[$direction][$device['hostname']] as $source => $filena $descr = rrdtool_escape($source, $descr_len); - $filename = $config['smokeping']['dir'] . $filename; + if ($config['smokeping']['integration'] === true) { + $filename = $config['smokeping']['dir'] .'/'. $device['type'] .'/'. $filename; + } else { + $filename = $config['smokeping']['dir'] . $filename; + } $rrd_options .= " DEF:median$i=".$filename.":median:AVERAGE "; $rrd_options .= " CDEF:dm$i=median$i,UN,0,median$i,IF"; $rrd_options .= " DEF:loss$i=".$filename.":loss:AVERAGE"; diff --git a/html/includes/graphs/device/smokeping_common.inc.php b/html/includes/graphs/device/smokeping_common.inc.php index c158e8267e..ce9df8a4e4 100644 --- a/html/includes/graphs/device/smokeping_common.inc.php +++ b/html/includes/graphs/device/smokeping_common.inc.php @@ -1,26 +1,3 @@ +$smokeping_files = get_smokeping_files($device); diff --git a/html/includes/graphs/smokeping/auth.inc.php b/html/includes/graphs/smokeping/auth.inc.php index 55e9f80eed..ff2d92795e 100644 --- a/html/includes/graphs/smokeping/auth.inc.php +++ b/html/includes/graphs/smokeping/auth.inc.php @@ -1,8 +1,8 @@ "500") if($src['hostname'] == $config['own_hostname']) { - $filename = $config['smokeping']['dir'] . $device['hostname'].'.rrd'; - if (!file_exists($filename)) + if ($config['smokeping']['integration'] === true) { + $filename_dir = $config['smokeping']['dir'] .'/'. $device['type'] .'/'; + } else { + $filename_dir = $config['smokeping']['dir']; + } + if (!file_exists($filename_dir.$device['hostname'].'.rrd')) { // Try with dots in hostname replaced by underscores - $filename = $config['smokeping']['dir'] . str_replace(".", "_", $device['hostname']).'.rrd'; + $filename = $filename_dir . str_replace(".", "_", $device['hostname']).'.rrd'; } } else { - $filename = $config['smokeping']['dir'] . $device['hostname'] .'~'.$src['hostname'].'.rrd'; + $filename = $filename_dir . $device['hostname'] .'~'.$src['hostname'].'.rrd'; if (!file_exists($filename)) { // Try with dots in hostname replaced by underscores - $filename = $config['smokeping']['dir'] . str_replace(".", "-", $device['hostname']) .'~'.$src['hostname'].'.rrd'; + $filename = $filename_dir . str_replace(".", "-", $device['hostname']) .'~'.$src['hostname'].'.rrd'; } } diff --git a/html/pages/device.inc.php b/html/pages/device.inc.php index c72daf9bfe..93149f601b 100644 --- a/html/pages/device.inc.php +++ b/html/pages/device.inc.php @@ -138,34 +138,7 @@ if (device_permitted($vars['device']) || $check_device == $vars['device']) '); } - if (isset($config['smokeping']['dir'])) - { - $smokeping_files = array(); - if ($handle = opendir($config['smokeping']['dir'])) - { - while (false !== ($file = readdir($handle))) - { - if ($file != "." && $file != "..") - { - if (eregi(".rrd", $file)) - { - if (eregi("~", $file)) - { - list($target,$slave) = explode("~", str_replace(".rrd", "", $file)); - $target = str_replace("_", ".", $target); - $smokeping_files['in'][$target][$slave] = $file; - $smokeping_files['out'][$slave][$target] = $file; - } else { - $target = str_replace(".rrd", "", $file); - $target = str_replace("_", ".", $target); - $smokeping_files['in'][$target][$config['own_hostname']] = $file; - $smokeping_files['out'][$config['own_hostname']][$target] = $file; - } - } - } - } - } - } + $smokeping_files = get_smokeping_files($device); if (count($smokeping_files['in'][$device['hostname']]) || count($smokeping_files['out'][$device['hostname']])) { diff --git a/includes/common.php b/includes/common.php index 8e7499841d..514d42e180 100644 --- a/includes/common.php +++ b/includes/common.php @@ -747,4 +747,34 @@ function get_graph_subtypes($type) return $types; } -?> +function get_smokeping_files($device) { + global $config; + if (isset($config['smokeping']['dir'])) { + $smokeping_files = array(); + if ($config['smokeping']['integration'] === true) { + $smokeping_dir = $config['smokeping']['dir'] . "/" . $device['type']; + } else { + $smokeping_dir = $config['smokeping']['dir']; + } + if ($handle = opendir($smokeping_dir)) { + while (false !== ($file = readdir($handle))) { + if ($file != "." && $file != "..") { + if (eregi(".rrd", $file)) { + if (eregi("~", $file)) { + list($target,$slave) = explode("~", str_replace(".rrd", "", $file)); + $target = str_replace("_", ".", $target); + $smokeping_files['in'][$target][$slave] = $file; + $smokeping_files['out'][$slave][$target] = $file; + } else { + $target = str_replace(".rrd", "", $file); + $target = str_replace("_", ".", $target); + $smokeping_files['in'][$target][$config['own_hostname']] = $file; + $smokeping_files['out'][$config['own_hostname']][$target] = $file; + } + } + } + } + } + } + return $smokeping_files; +}