Hi,
a better way to tackle renaming issues is to *never* make use of user
defined names in rules, groups, folders, etc. and to do it as follows:
* For each new entity for which a user chooses a name, like hosts,
groups, folders, etc., also generate a permanent UUID. Then add an entry
to a mapping that maps between UUIDs and the names chosen by the user
and viceversa.
* Internally, in rules, folders, group, etc. which refer to named
entities, use only the UUIDs, *never* user chosen names.
* When presenting the internal structures to the user for reading or
modifying, map the UUIDs to the names and viceversa.
A rename then becomes a simple matter of updating the mapping between
the name and the UUID and does not require the complex operations you
describe.
Just to make it clear, this is not a new invention but it is a simple
application of well-known db engineering best practices.
Regards