Bug 1840157

Summary: [GUI] Colocation constraint can't be added [rhel-8.1.0.z]
Product: Red Hat Enterprise Linux 8 Reporter: RHEL Program Management Team <pgm-rhel-tools>
Component: pcsAssignee: Miroslav Lisik <mlisik>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: high Docs Contact:
Priority: high    
Version: 8.0CC: cfeist, cluster-maint, idevat, mlisik, mmazoure, mpospisi, omular, tojeline
Target Milestone: rcKeywords: EasyFix, Regression, ZStream
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pcs-0.10.2-4.el8_1.1 Doc Type: Bug Fix
Doc Text:
Cause: Web ui backend internally uses syntax of a command `pcs constraint colocation add` that is not supported yet. Consequence: Adding a colocation constraint from the web ui always fails. Fix: Web ui backend has been fixed to use current syntax of command `pcs constraint colocation add`. Result: Adding a colocation constraint from the web ui succeeds.
Story Points: ---
Clone Of: 1832973 Environment:
Last Closed: 2020-06-23 13:06:18 UTC Type: ---
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: 1832973    
Bug Blocks:    
Attachments:
Description Flags
proposed fix none

Comment 3 Miroslav Lisik 2020-05-29 14:30:14 UTC
Created attachment 1693393 [details]
proposed fix

Comment 4 Miroslav Lisik 2020-05-29 14:32:12 UTC
Test:

[root@r81-01 ~]# rpm -q pcs
pcs-0.10.2-4.el8_1.1.x86_64

1. Create 2 Dummy resources in GUI (e.g. c1, c2)
2. Go to the resource details form and add a Colocation constraint
  * click on resource c2 => Resource Colocation Preferences =>
    fill 'Resource' (c1), => click 'Add' button
3. Result: Colocation constraint is created and 'Resource Colocation Preferences' updated

Comment 7 Michal Mazourek 2020-06-17 14:04:49 UTC
Automated web UI STS test 'pcsd_colocation' was run to verify this issue.


BEFORE:
=======

[root@host-025 ~]# rpm -q pcs
pcs-0.10.2-4.el8.x86_64

[root@host-025 ~]# $v -t pcsd_colocation
{...}
[pcsd_colocation] STEP 1 : login
[pcsd_colocation]   user :  " hacluster "
[pcsd_colocation]   password :  " password "
[pcsd_colocation]   OK: logged in as hacluster
[pcsd_colocation]   INFO: stopping JS updater
[pcsd_colocation] STEP 2 : add_cluster
[pcsd_colocation]   comment :  " Try adding the cluster into GUI, but don't fail if at already exists. "
[pcsd_colocation]   clustername :  " STSRHTS3337 "
[pcsd_colocation]   node :  " host-027 "
[pcsd_colocation]   user :  " hacluster "
[pcsd_colocation]   password :  " password "
[pcsd_colocation]   No auth needed
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   OK: cluster 'STSRHTS3337' added
[pcsd_colocation] STEP 3 : open_cluster
[pcsd_colocation]   clustername :  " STSRHTS3337 "
[pcsd_colocation]   OK: cluster STSRHTS3337 opened
[pcsd_colocation] STEP 4 : goto_resources
[pcsd_colocation] STEP 5 : add_resource
[pcsd_colocation]   resource-type :  " ocf:heartbeat:Dummy "
[pcsd_colocation]   resource-name :  " dummy2 "
[pcsd_colocation]   INFO: disabling tooltips (selenium bug)
[pcsd_colocation]   INFO: stopping JS updater
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   OK: resource 'dummy2' exists
[pcsd_colocation] STEP 6 : add_resource
[pcsd_colocation]   resource-type :  " ocf:heartbeat:Dummy "
[pcsd_colocation]   resource-name :  " dummy3 "
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   OK: resource 'dummy3' exists
[pcsd_colocation] STEP 7 : check_resource_running
[pcsd_colocation]   resource-name :  " dummy2 "
[pcsd_colocation]   OK: resource dummy2 is running
[pcsd_colocation] STEP 8 : check_resource_running
[pcsd_colocation]   resource-name :  " dummy3 "
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   OK: resource dummy3 is running
[pcsd_colocation] STEP 9 : add_location
[pcsd_colocation]   resource-name :  " dummy2 "
[pcsd_colocation]   node :  " host-027 "
[pcsd_colocation]   score :  " INFINITY "
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   OK: Location constraint exists: host-027 INFINITY
[pcsd_colocation] STEP 10 : add_colocation
[pcsd_colocation]   resource-name :  " dummy2 "
[pcsd_colocation]   relative :  " dummy3 "
[pcsd_colocation]   colocate :  " together "
[pcsd_colocation]   score :  " 500 "
[pcsd_colocation]   ALERT: Unable to add constraint (Bad Request)
[pcsd_colocation] 
[pcsd_colocation] 
[pcsd_colocation] ERROR: in add_colocation: Alert box saying "Unable to add constraint (Bad Request)
[pcsd_colocation] 
[pcsd_colocation] "
[pcsd_colocation] NOTE: Page source saved as /tmp/STANDALONE_RESULTS/sel_20200617_085632.html
[pcsd_colocation] NOTE: Screenshot saved as /tmp/STANDALONE_RESULTS/sel_20200617_085632.png
<fail name="pcsd_colocation" id="pcsd_colocation" pid="12179" time="Wed Jun 17 08:56:35 2020 -0500" type="cmd" duration="398" ec="1" />
PAN2: ALL STOP!!!
------------------- Summary ---------------------
Testcase                                 Result    
--------                                 ------    
generic_setup                            PASS      
setup-noclvmd-noalerts                   PASS      
pcsd_setup                               PASS      
pcsd_colocation                          FAIL      
=================================================
Total Tests Run: 4
Total PASS:      3
Total FAIL:      1
Total TIMEOUT:   0
Total KILLED:    0
Total STOPPED:   0


AFTER:
======

[root@host-025 rhel7]# rpm -q pcs
pcs-0.10.2-4.el8_1.1.x86_64

[root@host-025 rhel7]# $v -t pcsd_colocation
{...}
[pcsd_colocation] STEP 1 : login
[pcsd_colocation]   user :  " hacluster "
[pcsd_colocation]   password :  " password "
[pcsd_colocation]   OK: logged in as hacluster
[pcsd_colocation]   INFO: stopping JS updater
[pcsd_colocation] STEP 2 : add_cluster
[pcsd_colocation]   comment :  " Try adding the cluster into GUI, but don't fail if at already exists. "
[pcsd_colocation]   clustername :  " STSRHTS3337 "
[pcsd_colocation]   node :  " host-027 "
[pcsd_colocation]   user :  " hacluster "
[pcsd_colocation]   password :  " password "
[pcsd_colocation]   No auth needed
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   OK: cluster 'STSRHTS3337' added
[pcsd_colocation] STEP 3 : open_cluster
[pcsd_colocation]   clustername :  " STSRHTS3337 "
[pcsd_colocation]   OK: cluster STSRHTS3337 opened
[pcsd_colocation] STEP 4 : goto_resources
[pcsd_colocation] STEP 5 : add_resource
[pcsd_colocation]   resource-type :  " ocf:heartbeat:Dummy "
[pcsd_colocation]   resource-name :  " dummy2 "
[pcsd_colocation]   INFO: disabling tooltips (selenium bug)
[pcsd_colocation]   INFO: stopping JS updater
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   OK: resource 'dummy2' exists
[pcsd_colocation] STEP 6 : add_resource
[pcsd_colocation]   resource-type :  " ocf:heartbeat:Dummy "
[pcsd_colocation]   resource-name :  " dummy3 "
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   OK: resource 'dummy3' exists
[pcsd_colocation] STEP 7 : check_resource_running
[pcsd_colocation]   resource-name :  " dummy2 "
[pcsd_colocation]   OK: resource dummy2 is running
[pcsd_colocation] STEP 8 : check_resource_running
[pcsd_colocation]   resource-name :  " dummy3 "
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   OK: resource dummy3 is running
[pcsd_colocation] STEP 9 : add_location
[pcsd_colocation]   resource-name :  " dummy2 "
[pcsd_colocation]   node :  " host-027 "
[pcsd_colocation]   score :  " INFINITY "
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   OK: Location constraint exists: host-027 INFINITY
[pcsd_colocation] STEP 10 : add_colocation
[pcsd_colocation]   resource-name :  " dummy2 "
[pcsd_colocation]   relative :  " dummy3 "
[pcsd_colocation]   colocate :  " together "
[pcsd_colocation]   score :  " 500 "
[pcsd_colocation]   OK: Colocation constraint exists
[pcsd_colocation] STEP 11 : check_resource_loc
[pcsd_colocation]   resource-name :  " dummy3 "
[pcsd_colocation]   node :  " host-027 "
[pcsd_colocation]   INFO: waiting for ajax
[pcsd_colocation]   OK: resource dummy3 is running
[pcsd_colocation]   OK: resource dummy3 is running on: host-027
[pcsd_colocation] 0 warning(s) issued
[pcsd_colocation] All OK
<pass name="pcsd_colocation" id="pcsd_colocation" pid="19176" time="Wed Jun 17 04:49:18 2020 -0500" type="cmd" duration="443" />
------------------- Summary ---------------------
Testcase                                 Result    
--------                                 ------    
generic_setup                            PASS      
setup-noclvmd-noalerts                   PASS      
pcsd_setup                               PASS      
pcsd_colocation                          PASS      
=================================================
Total Tests Run: 4
Total PASS:      4
Total FAIL:      0
Total TIMEOUT:   0
Total KILLED:    0
Total STOPPED:   0
{...}

> OK, test passed

Marking as VERIFIED for pcs-0.10.2-4.el8_1.1

Comment 9 errata-xmlrpc 2020-06-23 13:06:18 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-2020:2670