Detect if the destination of a rename is already in the system.

Patch by RobJE.



git-svn-id: http://www.observium.org/svn/observer/trunk@2985 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
Tom Laermans
2012-04-07 22:31:45 +00:00
parent ff91c4d61b
commit 02531d8bd9
2 changed files with 10 additions and 2 deletions

View File

@ -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));

View File

@ -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");
}