Bug 1588650

Summary: discovered host(s) section in import cluster screen is slightly inconsistent/misleading
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: Martin Bukatovic <mbukatov>
Component: web-admin-tendrl-uiAssignee: Neha Gupta <negupta>
Status: CLOSED ERRATA QA Contact: Martin Bukatovic <mbukatov>
Severity: low Docs Contact:
Priority: unspecified    
Version: rhgs-3.4CC: julim, nthomas, rhs-bugs, sankarshan
Target Milestone: ---   
Target Release: RHGS 3.4.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tendrl-ui-1.6.3-4.el7rhgs Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-09-04 07:07:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1503137    
Attachments:
Description Flags
screenshot 1: import cluster screen
none
screenshot 2: import cluster screen when filtering some hosts
none
screenshot 3: import cluster screen when no hosts are shown after filtering none

Description Martin Bukatovic 2018-06-07 16:45:43 UTC
Description of problem
======================

*Import Cluster* wizard shows list of "Discovered Host(s)" with an option
to filter machines there. The text states:

> Review the hosts for the and click Import to monitor this cluster.

This is a good way to check if one tries to import
the correct cluster (eg. making sure that one particular machine or subset
of machines is present), but it has no effect on the actual import itself.

The problem is that the when the filter returns no results and no hosts are
displayed, the import button is missing.

This could make someone to think that this filtering has some effect on the
import (eg. that it's possible to import just a subset of a trusted storage
pool by using the filter feature here).

Version-Release number
======================

tendrl-ui-1.6.3-3.el7rhgs.noarch

Other RHGS WA components on the server machine:

```
# rpm -qa | grep tendrl | sort
tendrl-ansible-1.6.3-4.el7rhgs.noarch
tendrl-api-1.6.3-3.el7rhgs.noarch
tendrl-api-httpd-1.6.3-3.el7rhgs.noarch
tendrl-commons-1.6.3-6.el7rhgs.noarch
tendrl-grafana-plugins-1.6.3-4.el7rhgs.noarch
tendrl-grafana-selinux-1.5.4-2.el7rhgs.noarch
tendrl-monitoring-integration-1.6.3-4.el7rhgs.noarch
tendrl-node-agent-1.6.3-6.el7rhgs.noarch
tendrl-notifier-1.6.3-3.el7rhgs.noarch
tendrl-selinux-1.5.4-2.el7rhgs.noarch
tendrl-ui-1.6.3-3.el7rhgs.noarch
```

How reproducible
================

100 %

Steps to Reproduce
==================

1. Prepare gluster trusted storage pool
2. Install RHGS WA using tendrl-ansible
3. Log into the WA web ui and click import
4. Try filtering hosts in Discovered Host(s) section so that no results
   would be shown

Actual results
==============

Instead of list of hosts, "No Hosts Detected" is shown.

The import and Cancel buttons are not visible, so that one can't start import.

Expected results
================

Instead of list of hosts, "No Hosts Detected" is shown.

Import and Cancel buttons are still accessible.

Additional info
===============

Do we need to tweak the text a bit, eg. making it more clear or moving it
around? I have no particular opinion there.

The fact that the host selection is not passed further could be checked by
inspecting http requests during import. Using firefox inspector, I see:

```
POST http://mbukatov-usm1-server.example.com/api/1.0/clusters/84ffce52-031b-415f-a8a0-c878043dfd89/import

Headers:
Host: mbukatov-usm1-server.example.com
User-Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://mbukatov-usm1-server.usmqe.lab.eng.brq.redhat.com/
Authorization: Bearer b792589aefab9061fe0181fbef13f98a3ba9b000d07ae48b56d3fa8a5bbe6363
Content-Length: 89
Content-Type: text/plain;charset=UTF-8
Connection: keep-alive

Body:
{"Cluster.volume_profiling_flag":"leave-as-is","Cluster.short_name":"cluster_2018_06_07"}
```

Related Design Document:

https://redhat.invisionapp.com/share/8QCOEVEY9#/screens/247445416

Comment 1 Martin Bukatovic 2018-06-07 16:47:51 UTC
Linking related BZ: 1584660

Comment 2 Martin Bukatovic 2018-06-07 16:52:06 UTC
Question for Ju: do you think that we need to do anything besides allowing import
with empty host list?

Comment 3 Martin Bukatovic 2018-06-07 16:53:18 UTC
Created attachment 1448787 [details]
screenshot 1: import cluster screen

Comment 4 Martin Bukatovic 2018-06-07 16:54:20 UTC
Created attachment 1448788 [details]
screenshot 2: import cluster screen when filtering some hosts

Comment 5 Martin Bukatovic 2018-06-07 16:56:58 UTC
Created attachment 1448789 [details]
screenshot 3: import cluster screen when no hosts are shown after filtering

Comment 6 Ju Lim 2018-06-12 14:49:22 UTC
In reviewing the screenshots, I observed the following:

(1) 1 or more hosts need to be visible for the "Import" button to be enabled.

(2) The filter (to the host table) is for locating a specific host(s) with the host table, but it is not needed for performing the import.

(3) It's confusing as user loses context of what the total number of discovered hosts vs. filtered hosts when a filter is applied. E.g. 2 of 10 discovered hosts, whereby 2 hosts filtered out of a total list of 10 discovered hosts.  Refer to https://www.patternfly.org/pattern-library/content-views/table-view/ for further information.

My recommendations are as follow:
(1) Update UI to include the <filtered item count> of <total items> Discovered hosts when filtered is applied.

(2) With regards to Import not enabled until all hosts are not filtered.  It's behaving the way it should as if we put a filter and let users Import, it can be confusing to users whether all or a subset of nodes are being imported.  

Hence, my suggestion is to add a validation that provides a message (like you get when you put invalid text in the custom cluster name -- see https://redhat.invisionapp.com/share/8QCOEVEY9#/screens/279647239) so that if there is any filters on the discovered hosts, that the filter has to be cleared or removed before the Import is enabled.  E.g. "Review the discovered host list, and ensure there are no filters applied before proceeding with Import."

Comment 7 Martin Bukatovic 2018-06-13 09:09:50 UTC
QE team will verify that the Ju's suggestion in comment 6 is implemented.

Comment 11 Martin Bukatovic 2018-06-20 18:17:22 UTC
Checking tendrl-ui-1.6.3-4.el7rhgs.noarch

When filter for "Discovered Host(s)" is applied, the page reports eg.:

> 1 of 4 Discovered - Hosts -

where 1 is number of hosts which matches active filters, and 4 is total number
of discovered hosts.

When the filter matches no hosts, the page works the same as before, shows:

> No Hosts Detected

This matches the suggestion in comment 6.

When one clicks on "Import" button while some filters are active, the error
is shown on the top of the page:

> Review the discovered host list, and ensure there are no filters applied
> before proceeding with Import.

This remains on the page even after the filters are removed. I have no
problem with that.

When the filters are removed, the it's possible to start import again.

Comment 13 errata-xmlrpc 2018-09-04 07:07:28 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2018:2616