Allow for all object names to be changed after creation

  • 4
  • Idea
  • Updated 5 years ago
Make it possible to change/edit/rename any object in HiveManager, from hives to networks to network profiles, etc. Currently, once an object is created, the name given is set in stone. The only way to change things is to clone the object, assuming that is even permitted (e.g., cloning a hive is non-trivial, even with a HM VA) so you can name the new object the same as the old, then delete the old. Otherwise, you must delete the object, then recreate it from scratch with the new name. And you can only do this if the object isn't in use/associated to other objects in the system. And if the object is something with a lot of configuration steps (e.g., network profile), you have a bit of work ahead of you.

It strikes me as odd that the system works this way, as it indicates that the names given to objects are used as identifiers/keys for those objects (think primary keys in DBMS). I would think that the smarter play is to use an internal identifier (think inodes in *nix filesystems or RowID/OID columns in some DBMS such as SQLite, MySQL, PostgreSQL, etc.). When a user creates an object, a unique identifier is automatically created that the user never sees, and it is this unique identifier that is mapped to any relations between objects/etc. NOT the name. But the user only sees/works with the name. Thus changing the name of an object is no different than changing any other attribute of an object/record. Mind you, the code should still check for duplicate names in any/all cases to prevent two objects of the same type having the exact same name, as that could lead to confusion (e.g., what if you had 2 network profiles named "Office"). But by using the internal identifier for the object in every place where that object is used, changing the name of the object would have no impact. In fact, change the object name, and magically it appears with its new name everywhere.

This is something that's been done for quite some time now in other systems, as it provides far more flexibility and allows users to get things done without worrying that they're going to have to live with whatever name they chose. Currently I have expend a lot more energy/time and think very carefully about how to name an object, as I really don't want to have to go through the hell it's going to take to simply change it. For example, if I name a network "customer-A.B.C.D/subnet" thinking that it would nice to see networks sorted by customer name, then a year from now it's decided that it would be more functional if networks were named "A.B.C.D/subnet-customer", good luck. That's a lot of work. First the network has to be removed from any object before you can even delete it. Then you have to create a new network object with the new naming scheme, and then you have to put it back everywhere it was before.

Anyway, just something to consider for v7 or v8 maybe, as it likely would require a bit of work. But it would be EXTREMELY useful and make HiveManager much more flexible and tolerant of missteps early on.
Photo of Frank

Frank

  • 15 Posts
  • 8 Reply Likes

Posted 5 years ago

  • 4
Photo of Mike Kouri

Mike Kouri, Official Rep

  • 1030 Posts
  • 271 Reply Likes
Frank,
Thank you for the suggestion and for taking the time to explain/justify it for us. As you mention in your last paragraph, this would involve a lot of changes under the sheets, but I see the value in your suggestion and will make sure that our HiveManager team is aware of it while they are planning the next generation of user interface for our products.