Github user ProjectMoon commented on the pull request:
https://github.com/apache/cloudstack/pull/1492#issuecomment-209875708
> @ProjectMoon correct resource naming is critical to the proper operation
of the management server. We have had a significant bugs and production issues
caused by subtle changes to resource naming strategies between releases where
CloudStack suddenly can't find a resource on the device it is attempting to
control.
> Have you performed any upgrade testing for this PR? If so, what tests
have you performed in which configurations?
We have not specifically performed any upgrade testing. Our current stable
version is based on 4.7.1, and essentially our "upgrade testing" has consisted
of deploying 4.7.1 before and after our development of this feature is
complete. The configuration has been tested with KVM, VmWare, and the
simulator.
> Also, could you please add an FS to the wiki and start a conversation on
dev@? Given the importance of resource naming, it would be extremely helpful to
have an explanation of the design and its operation.
As far as I know, I don't have access to the wiki. Otherwise I would add to
it. Do I need to register a separate account or can I use my Apache JIRA
account?
> @ProjectMoon we'll need more information on why you're doing this, why we
should have it, what is fixes and will it guarantee backward resource-name
compatibility (for example, vmware vms have this strictly tie up with internal
ACS vm name, such config are set in each vmware's VM's annotations) and upgrade
paths
* **Why we are doing this**: we implement our own naming scheme for the
supported resources. On our 4.2 branch we hacked this in, but now we want to
present a framework that we can extend, and open the possibilities to other.
* **Why should mainline have this**: More flexibility for developers,
easier testing (static classes notoriously cause problems), a unified way to
generate names (DRY principle).
* **What it fixes**: It doesn't _fix_ anything per se, but the refactoring
helps move us towards a cleaner codebase.
* **Backwards compatibility**: The default plugin generates names and UUIDs
in the exact same way as before, so yes.
VmWare is an interesting case though. Can you describe in more detail/point
me to where this stuff happens so I can verify that custom naming plugins will
not break it?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---