Bug 1397738

Summary: [GDEPLOY+GANESHA] refresh config fails to modify the client permissions in export file
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: Manisha Saini <msaini>
Component: gdeployAssignee: Devyani Kota <dkota>
Status: CLOSED ERRATA QA Contact: Manisha Saini <msaini>
Severity: unspecified Docs Contact:
Priority: high    
Version: rhgs-3.2CC: amukherj, asrivast, musoni, rhinduja, rhs-bugs, smohan, storage-qa-internal, surs
Target Milestone: ---   
Target Release: RHGS 3.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: gdeploy-2.0.1-2 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-09-21 04:49:50 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: 1417147    

Description Manisha Saini 2016-11-23 09:49:22 UTC
Description of problem:
While modifying the already provided permission to client in export block ,refresh config fails with gdeploy

Version-Release number of selected component (if applicable):
gdeploy-2.0.1-5.el7rhgs.noarch
glusterfs-3.8.4-5.el7rhgs.x86_64

How reproducible:
Consistently

Steps to Reproduce:
1.Create 4 node ganesha setup using gdeploy
2.Create a volume with nfs enable on that client
3.Mount the volume to client
4.With gdeploy give permissions to that particular client (say for example provide RO permission to that client).Run refresh-config
5.Modify the RO permission to RW permission (for the same client) using gdeploy refresh config

Actual results:
Refresh Config fails as instead of modifying the same block in export file,it is appending the permission after the block

EXPORT{
      Export_Id= 5 ;
      Path = "/ganeshaval";
      FSAL {
           name = GLUSTER;
           hostname="localhost";
          volume="ganeshaval";
           }
      Access_type = RW;
      Disable_ACL = true;
      Squash="No_root_squash";
      Pseudo="/ganeshaval";
      Protocols = "3", "4" ;
      Transports = "UDP","TCP";
      SecType = "sys";
client {
clients = 10.70.46.30;
allow_root_access = true;
access_type = "RW";
Protocols = "3";
anonymous_uid = 1440;
anonymous_gid = 72;
}

access_type = "RO";
}

     }


Expected results:
Modifying the permission for that particular client should work with gdeploy.It should modify the same export block instead of appending other.

Additional info:

Comment 4 Devyani Kota 2017-02-20 15:06:39 UTC
Refresh-config was failing to modify the same block in the export file.
Added 'update_config_lines' option to refresh-config.
PR #314 [1] fixes the same and is up for review.

[1] https://github.com/gluster/gdeploy/pull/314

Comment 7 Manisha Saini 2017-05-08 09:03:26 UTC
Verified this bug on gdeploy-2.0.2-4.el7rhgs.noarch


[hosts]
dhcp42-125.lab.eng.blr.redhat.com
dhcp42-127.lab.eng.blr.redhat.com
dhcp42-129.lab.eng.blr.redhat.com
dhcp42-119.lab.eng.blr.redhat.com
dhcp42-117.lab.eng.blr.redhat.com
dhcp42-114.lab.eng.blr.redhat.com
dhcp42-107.lab.eng.blr.redhat.com
dhcp42-88.lab.eng.blr.redhat.com


[nfs-ganesha]
action=refresh-config
update_config_lines=access_type = "RO";
#update_config_lines=Protocols = "4";
#update_config_lines=clients = 10.70.37.142;
volname=ganesha2


Updating client permissions in export file works with gdeploy,hence moving this bug to verified state.

Comment 9 errata-xmlrpc 2017-09-21 04:49:50 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/RHBA-2017:2777