Split nodes tagging and assignment

Bug #1640103 reported by Jiri Tomasek
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
High
Jiri Tomasek

Bug Description

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.

Tags: ui
Revision history for this message
Liz Blanchard (lblanchard) wrote :

I've put together some wireframes for review splitting out the two actions. Take a look here and feel free to leave any comments:
https://openstack.invisionapp.com/share/PA99PGMZV

Changed in tripleo:
milestone: ocata-2 → ocata-3
Changed in tripleo:
milestone: ocata-3 → ocata-rc1
Changed in tripleo:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-ui (master)

Reviewed: https://review.openstack.org/424547
Committed: https://git.openstack.org/cgit/openstack/tripleo-ui/commit/?id=95b70b100e614656c3b2c89c657665e9b40a2a8c
Submitter: Jenkins
Branch: master

commit 95b70b100e614656c3b2c89c657665e9b40a2a8c
Author: Jiri Tomasek <email address hidden>
Date: Mon Jan 23 15:53:29 2017 +0100

    Nodes Table tagging

    This change adds Nodes table action to tag Nodes to a Profile

    By selecting nodes in table and clicking 'Tag Nodes' table action,
    A form is displayed to let user select from existing profiles or
    specify custom one. Available profiles are gathered from the list
    of existing profiles on all nodes and roles available in current plan

    The way Nodes are stored in app state is slightly changed. Node ports
    are normalized into separate map in nodes state. References to them
    are stored in 'portsDetail' Node attribute rather than 'ports'
    so in case when node is updated (response does not include nested
    ports), the portsDetail won't get overwritten

    Partial-Bug: #1640103
    Change-Id: Icc61fbeda133845b5aadef8b749db20c2c411d3a

Changed in tripleo:
milestone: ocata-rc1 → ocata-rc2
Changed in tripleo:
milestone: ocata-rc2 → pike-1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Reviewed: https://review.openstack.org/433449
Committed: https://git.openstack.org/cgit/openstack/tripleo-ui/commit/?id=eb64c44c864a3dafb7536e68bd991b9057803f5a
Submitter: Jenkins
Branch: master

commit eb64c44c864a3dafb7536e68bd991b9057803f5a
Author: Jiri Tomasek <email address hidden>
Date: Fri Feb 10 15:21:59 2017 +0100

    Update DeploymentPlan page node counts

    Nodes counts assigned to Roles are calculated based on actual
    'Nodes count' parameters in the plan rather than nodes tagged
    to Roles

    This change allows GUI to differentiate between tagging Nodes
    to Roles and setting counts of Nodes to be deployed as a Role
    and avoid syncing problems between those 2 different aspects

    Deployment Plan page now displays global number of Nodes
    available to distribute among Roles as well as number of assigned
    Nodes and number of Nodes available to assign for each specific
    Role at given time. Number of available nodes for each Role
    depends on tagging applied as well as number of nodes assigned
    to other Roles.

    This change does not solve Nodes Assignment itself as it is
    supposed to be done in a subsequent patch. Nodes assignment still
    works under old rules

    Partial-Bug: #1640103
    Closes-Bug: #1648002
    Change-Id: I1f3bfe4276c8c6da48a052497883a7f0b570a157

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Reviewed: https://review.openstack.org/445526
Committed: https://git.openstack.org/cgit/openstack/tripleo-ui/commit/?id=bd07eb24c0893236dbd3080f03f027756f65f551
Submitter: Jenkins
Branch: master

commit bd07eb24c0893236dbd3080f03f027756f65f551
Author: Jiri Tomasek <email address hidden>
Date: Tue Mar 7 18:44:22 2017 +0100

    Introduce nodes assignment using NodePicker component

    This change finishes the ongoing effor to separate Nodes tagging
    and Nodes assignment into separate proceses

    * Introduces NodePicker component to allow user to set number of
      Nodes to deploy as a specific Role
    * Refactors Nodes assignment related selectors into separate module
    * Adds selectors which take nodesAssignment form values into account
      to calculate available Nodes realtime
    * Uses huge amount of redux-form functionality to achieve expected behavior
    * Nodes Assignment form is submitted each time an input value changes
      without re-rendering all form inputs
    * API call which updates the Node count parameters is debounced, so it
      is not issued too many times when user clicks fast to increase Nodes
      count
    * Adds custom styling for NodePicker component
    * Updates UpdateParameters action to support nodesAssignment form

    Closes-Bug: #1640103
    Change-Id: If7701190954d54b75421e5c1be6a8382b9f5c746

Changed in tripleo:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-ui 7.0.0

This issue was fixed in the openstack/tripleo-ui 7.0.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.