To streamline UX TripleO UI is currently doing nodes tagging and assignment in a single action. Those 2 operations are very distinct: Nodes tagging is operation on the node which allows user to define what role the node is supposed to be used for. Nodes assignment is simply setting the nodes count parameter on a role.
Doing these operations at once brings several problems:
- TripleO UI displays assigned nodes count on a Deployment Plan page as a number of nodes tagged to a specific role. This is getting off sync if the user changes the nodes count parameter. Actually the counts are off sync from the start because default plan has ComputeCount and ControllerCount parameters set to 1. If we reverse this and show node count parameters value in DeploymentPlan Page, then the user gets confused when he toggles nodes assignment, because regardless of what the count parameter is set to, the assignment table shows no assigned nodes, because none of them is tagged.
- GUI/CLI interoperability - if user sets the nodes count parameters or tags nodes any other way then using GUI, the GUI is getting off sync
Proper solution of this problem is to split nodes assignment and tagging. The tagging is an operation on nodes, so it should be done in a nodes table. Nodes assignment on Deployment Plan page is then a matter of setting the value to the nodes count parameters. The maximum number of nodes allowed to set those parameters to is the count of untagged nodes + nodes tagged with the role we are setting the count for.
I've put together some wireframes for review splitting out the two actions. Take a look here and feel free to leave any comments: /openstack. invisionapp. com/share/ PA99PGMZV
https:/