diff --git a/includes/functions.php b/includes/functions.php index 832d5c758..ca03a8eb4 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -127,6 +127,7 @@ function renamehost($id, $new, $source = 'console') { global $config; + ## FIXME does not check if destination exists! $host = dbFetchCell("SELECT `hostname` FROM `devices` WHERE `device_id` = ?", array($id)); rename($config['rrd_dir']."/$host",$config['rrd_dir']."/$new"); $return = dbUpdate(array('hostname' => $new), 'devices', 'device_id=?', array($id)); diff --git a/renamehost.php b/renamehost.php index e949a7ffc..0abb5a8a6 100755 --- a/renamehost.php +++ b/renamehost.php @@ -13,8 +13,15 @@ if ($argv[1] && $argv[2]) $id = getidbyname($host); if ($id) { - renamehost($id, $argv[2], 'console'); - echo("Renamed $host\n"); + $tohost = strtolower($argv[2]); + $toid = getidbyname($tohost); + if ($toid) + { + echo("NOT renamed. New hostname $tohost already exists.\n"); + } else { + renamehost($id, $tohost, 'console'); + echo("Renamed $host\n"); + } } else { echo("Host doesn't exist!\n"); }