Bug 1298163

Summary: Cluster Properties page in web UI needs an overhaul
Product: Red Hat Enterprise Linux 6 Reporter: Tomas Jelinek <tojeline>
Component: pcsAssignee: Ondrej Mular <omular>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: unspecified Docs Contact:
Priority: high    
Version: 6.7CC: cfeist, cluster-maint, cluster-qe, idevat, omular, rsteiger, tojeline
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pcs-0.9.148-3.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1281371 Environment:
Last Closed: 2016-05-10 19:27:18 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:

Description Tomas Jelinek 2016-01-13 11:53:04 UTC
+++ This bug was initially created as a clone of Bug #1281371 +++

1. Definition of the Properties are hard-coded in web UI. It should be read from pacemaker instead as different versions of pacemaker can have different sets of properties.
2. Default values of the properties are read from UI local node instead of a cluster node.
3. The page should be rendered in JS (at the same level as the rest of the UI) instead of sending a complete HTML page from the server.
4. Consider AJAX loading and saving of the properties.

Note:
There is a lot of cluster properties so we can utilize a tabbed layout. We may also want to place default resource options and operations to a tab on this page.

Comment 1 Tomas Jelinek 2016-01-13 11:54:05 UTC
Cloning for 6.8 so we can get backend part into it and then use it from 7.3 pcs

Comment 2 Ondrej Mular 2016-01-13 13:22:10 UTC
proposed fix:
https://github.com/feist/pcs/commit/750a095fa919951432c5202caa0b0f09bfdc23a0

Test:

Pcs verifies type of property value:
[root@rhel6-node1 ~]# pcs property set enable-acl=invalid_value
Error: invalid value of property: 'enable-acl=invalid_value', (use --force to override)
[root@rhel6-node1 ~]# pcs property set enable-acl=invalid_value --force
[root@rhel6-node1 ~]# pcs property | grep enable-acl
 enable-acl: invalid_value
[root@rhel6-node1 ~]# pcs property set enable-acl=true --force
[root@rhel6-node1 ~]# pcs property | grep enable-acl
 enable-acl: true


There is new pcsd request which returns definition of cluster properties:
1. create auth token for local pcsd
[root@rhel6-node1 ~]# pcs cluster auth localhost
Username: hacluster
Password: 
localhost: Authorized

2. get token for localhost from /var/lib/pcsd/tokens
3.
[root@rhel6-node1 ~]# curl -sk -b 'token=<token_from_step_#2>' https://localhost:2224/remote/get_cluster_properties_definition
{
...
"enable-acl": {"name": "enable-acl", "default": "false", "readable_name": "Enable ACLs", "source": "cib", "shortdesc": "Enable CIB ACL", "type": "boolean", "longdesc": "", "advanced": false},
...
}

Comment 3 Ivan Devat 2016-01-19 14:11:47 UTC
Before Fix:

[vm-rhel67-1 ~] $ rpm -q pcs
pcs-0.9.148-1.el6.x86_64

1) pcs part
[vm-rhel67-1 ~] $ pcs property set enable-acl=invalid_value
[vm-rhel67-1 ~] $ pcs property | grep enable-acl
 enable-acl: invalid_value
[vm-rhel67-1 ~] $ pcs property set enable-acl=true
[vm-rhel67-1 ~] $ pcs property | grep enable-acl
 enable-acl: true

2) pcsd part
1. create auth token for local pcsd
[vm-rhel67-1 ~] $ pcs cluster auth localhost
Username: hacluster
Password:
localhost: Authorized
2. get token for localhost from /var/lib/pcsd/tokens
3. get url
[vm-rhel67-1 ~] $ curl -sk -b 'token=<token_from_step_#2>' https://localhost:2224/remote/get_cluster_properties_definition
Unknown Request


After Fix:
[vm-rhel67-1 ~] $ rpm -q pcs
pcs-0.9.148-2.el6.x86_64

1) pcs part
[vm-rhel67-1 ~] $ pcs property set enable-acl=invalid_value
Error: invalid value of property: 'enable-acl=invalid_value', (use --force to override)
[vm-rhel67-1 ~] $ pcs property set enable-acl=invalid_value --force
[vm-rhel67-1 ~] $ pcs property | grep enable-acl
 enable-acl: invalid_value
[vm-rhel67-1 ~] $ pcs property set enable-acl=true
[vm-rhel67-1 ~] $ pcs property | grep enable-acl
 enable-acl: true

2) pcsd part
1. create auth token for local pcsd
[vm-rhel67-1 ~] $ pcs cluster auth localhost
Username: hacluster
Password:
localhost: Authorized
2. get token for localhost from /var/lib/pcsd/tokens
3. get url
[vm-rhel67-1 ~] $ curl -sk -b 'token=<token_from_step_#2>' https://localhost:2224/remote/get_cluster_properties_definition

{
...
"enable-acl": {"name": "enable-acl", "default": "false", "readable_name": "Enable ACLs", "source": "cib", "shortdesc": "Enable CIB ACL", "type": "boolean", "longdesc": "", "advanced": false},
...
}

Comment 6 Ondrej Mular 2016-01-28 13:47:35 UTC
additional patch:
https://github.com/feist/pcs/commit/9539a8de52a8b071c2fccdba5a377617ed175fb1

Test:
1. Manage RHEL 6 cluster in RHEL 7.2 GUI.
2. Open CLUSTER PROPERTIES tab.
3. Uncheck one of checkboxes and then click on button "Apply Changes".
4. After page reload Unchecked checkbox should stay unchecked.

Comment 7 Ivan Devat 2016-02-02 14:24:43 UTC
Before Fix:
[vm-rhel67-1 ~] $ rpm -q pcs
pcs-0.9.148-2.el6.x86_64

1. Manage RHEL 6 cluster in RHEL 7.2 GUI.
2. Open CLUSTER PROPERTIES tab.
3. Uncheck one of checkboxes and then click on button "Apply Changes".
4. After page reload unchecked checkbox is checked again.

After Fix:
[vm-rhel67-1 ~] $ rpm -q pcs
pcs-0.9.148-3.el6.x86_64

1. Manage RHEL 6 cluster in RHEL 7.2 GUI.
2. Open CLUSTER PROPERTIES tab.
3. Uncheck one of checkboxes and then click on button "Apply Changes".
4. After page reload unchecked checkbox stay unchecked.

Comment 13 errata-xmlrpc 2016-05-10 19:27: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://rhn.redhat.com/errata/RHBA-2016-0739.html