summaryrefslogtreecommitdiffstats
path: root/glusterfs.spec.in
Commit message (Collapse)AuthorAgeFilesLines
* build : fixing dependency issue for glusterfs-ganesha in epel6Jiffin Tony Thottan2016-03-301-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | glusterfs-ganesha requires "dbus-send" binary, but location of this binary is different in epel6 and epel7. For epel6 it is /bin/ and epel7 it is /usr/bin/. So the patch will add dependency based on package dbus not on the binary dbus-send Upstream reference >Change-Id: I266af7b983791be648749f01a04b38479d6f7c03 >BUG: 1321872 >Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com> >Reviewed-on: http://review.gluster.org/13842 >Smoke: Gluster Build System <jenkins@build.gluster.com> >CentOS-regression: Gluster Build System <jenkins@build.gluster.com> >NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> >Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> >Tested-by: Kaleb KEITHLEY <kkeithle@redhat.com> >Reviewed-by: Niels de Vos <ndevos@redhat.com> >(cherry picked from commit a28484443f27332c1a87e00e474ca56427a83669) Change-Id: I266af7b983791be648749f01a04b38479d6f7c03 BUG: 1322242 Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com> Reviewed-on: http://review.gluster.org/13848 Smoke: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Niels de Vos <ndevos@redhat.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
* packaging: rpm scriptlet cleanup, handle -p /sbin/ldconfigKaleb S KEITHLEY2016-03-091-23/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The RPM documention indicates that during an rpm install or erase, the script(lets): %post, %preun, and %postun (and %pre, %build, %install, etc.) are copied to a temp file, and then the temp file is run as a (/bin/sh or bash) script. Unfortunately the documentation is not clear about how rpmbuild and/or rpm determine where the end of any scriptlet is when it is copied to the file. Most things in the glusterfs.spec work correctly as is. These are the %preun, %post, and %postun scriptlets that are "closed" by a following %preun, %post, and %postun, or poetentially another scriptlet, e.g. %file. The ones that don't work correctly (only one actually) are those where there is a comment in the spec file before it is closed by another scriptlet. Further complicating things is that the type of scriptlet affects what rpm does and what `rpm -qp --scripts ...` shows. The specific one that didn't work was the "%postun libs" scriptlet. It is followed by a comment before being "closed" by the %files section (or scriptlet). It can be written two ways: "%postun libs\n/sbin/ldconfig" or "%postun libs -p /sbin/ldconfig" Either way it's written, `rpm -qp --scripts glusterfs-libs...` will include the comment lines between the %postun libs line and the following %files line. But the way rpm executes these depends on how they're written. If written as "%postun libs\n/sbin/ldconfig" rpm will simply run /sbin/ldconfig with no command line options, i.e. execve ("/sbin/ldconfig", [ "/sbin/ldconfig" ], [ ]); But when written as "%postun libs -p /sbin/ldconfig", it will copy the comment lines to a temp file, and pass the temp file name and "1" as (command line) parameters, i.e. execve ("/sbin/ldconfig", [ "/sbin/ldconfig", "/tmp/tmpXXXXXX", "1" ], [ ]); Which results in ldconfig exiting with an error. (Remember, both ways show the comment in `rpm -qp --scripts ...`) (Note though, that the similar "%postun api -p /sbin/ldconfig" is run correctly, because it is "closed" by the following "%postun server" scriptlet.) Finally, through trial and error, it appears that rpm can be tricked with a hack, and "closure" of the scriptlet forcedlike this: %postun libs -p /sbin/ldconfig %if ( 0%{?_undocumented_hack_closes_scriptlets} ) %postun %endif in which case ldconfig appears to run correctly. Note also that here too the comment will be included in the output of `rpm -qp --scripts ...` But that's very ugly hack. backport of: >Change-Id: I587a490ddcdf47d01605479bc8ef8b0e439108fb >BUG: 1315024 >Reviewed-on http://review.gluster.org/#/c/13613/ Change-Id: Ia45162ba0282db00026b3da5396811fdef5e6515 BUG: 1315935 Signed-off-by: Kaleb S KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/13650 Smoke: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Niels de Vos <ndevos@redhat.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
* geo-rep: Script to Schedule Geo-replicationAravinda VK2016-03-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This script can be used to run Geo-replication when required. can be scheduled using cron job to run Geo-replication. This script does the following, 1. Stop Geo-replication if Started 2. Start Geo-replication 3. Set Checkpoint 4. Check the Status and see Checkpoint is Complete.(LOOP) 5. If checkpoint complete, Stop Geo-replication Usage: python /usr/share/glusterfs/scripts/schedule_georep.py <MASTERVOL> \ <SLAVEHOST> <SLAVEVOL> For example, python /usr/share/glusterfs/scripts/schedule_georep.py gv1 fvm1 gv2 To schedule the Geo-replication to run once in a day using cron, # Run daily at 08:30pm 30 20 * * * root python /usr/share/glusterfs/scripts/schedule_georep.py \ --no-color gv1 fvm1 gv2 >> /var/log/glusterfs/schedule_georep.log 2>&1 BUG: 1309191 Signed-off-by: Aravinda VK <avishwan@redhat.com> Reviewed-on: http://review.gluster.org/13279 Change-Id: Ie1507be00afd9ff189bb1664b156328dced4076a Reviewed-on: http://review.gluster.org/13510 Smoke: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Kotresh HR <khiremat@redhat.com>
* packaging: %post server isn't quietKaleb S KEITHLEY2016-03-061-1/+1
| | | | | | | | | | | | | | | | | | firewall-cmd prints out "success" during install backport from master branch: >Change-Id: I9b0d3d38170d2fc41fefd6ef555a958c5eeb39aa >BUG: 1312897 >Reviewed-on: http://review.gluster.org/13596 Change-Id: Ied33e5f581e8943e7b10fca999cec473b7352fa8 BUG: 1315008 Signed-off-by: Kaleb S KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/13610 Smoke: Gluster Build System <jenkins@build.gluster.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Raghavendra Talur <rtalur@redhat.com>
* build: make /var/run/gluster available everywhereMilind Changire2016-03-051-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | /var/run/gluster was only avialable with glusterfs-server package. Move it to primary glusterfs package so that client installations as well as server installations can generate state-dump in that directory. Cherry picked from commit 759b63536c676f4b4fa135ea62d74dff021778e4: > Change-Id: I1cdd2c5118ac657b2dab4f9669c6657484b8c600 > BUG: 1302200 > Signed-off-by: Milind Changire <mchangir@redhat.com> > Reviewed-on: http://review.gluster.org/13296 > Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> > Tested-by: Kaleb KEITHLEY <kkeithle@redhat.com> > CentOS-regression: Gluster Build System <jenkins@build.gluster.com> > Reviewed-by: Niels de Vos <ndevos@redhat.com> > NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> > Smoke: Gluster Build System <jenkins@build.gluster.com> Change-Id: I1cdd2c5118ac657b2dab4f9669c6657484b8c600 BUG: 1302202 Signed-off-by: Milind Changire <mchangir@redhat.com> Reviewed-on: http://review.gluster.org/13541 Reviewed-by: Niels de Vos <ndevos@redhat.com> Smoke: Gluster Build System <jenkins@build.gluster.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* packaging: gratuitous dependencies on rsyslog-mm{count,jsonparse}Kaleb S KEITHLEY2016-03-041-30/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | remove unnecessary dependencies. GlusterFS only ships example config files, and the system may not actually be using rsyslog at all. (It may only be RHEL5 that uses rsyslog "out of the box.") Also, several example config files (including gluster-rsyslog-7.2.conf, gluster-rsyslog-5.8.conf, logger.conf.example) are already installed in /etc/glusterfs/ by `make install` in the extras directory and are included in the -server RPM. Installing them (anywhere) in the spec file is redundant. Furthermore, a query in the fedora-devel mailing list about the preferred location for these files went unanswered. Backport of >Change-Id: I07bd6a8714a05e8b91adc03f101032c1593da360 >BUG: 1310437 >Reviewed-on: http://review.gluster.org/13485 Change-Id: Ib1cc3cd5ab21f7f94631338aa77c3c1aea60b42a BUG: 1314571 Signed-off-by: Kaleb S KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/13600 Smoke: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
* build: use 'make install' to install the hook scriptsvmallika2016-02-031-41/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a backport of http://review.gluster.org/#/c/13072 The installation should be the same on all distributions, and doing manual installation of files in the .spec is very ugly. This change adds the rules so that 'make install' places the hook scripts in the right location. Also, the hook script(s) for NFS-Ganesha should be part of the glusterfs-ganesha sub-package and got moved there. > BUG: 1174765 > Change-Id: Iba25a7a5112c7d40db4c10ff4a5ac7a5fb4f7c4e > Signed-off-by: Niels de Vos <ndevos@redhat.com> > Reviewed-on: http://review.gluster.org/13072 > Tested-by: Gluster Build System <jenkins@build.gluster.com> > Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Change-Id: I8fade7e9e540eedc1e619f116d356a2b26f599a9 BUG: 1302955 Signed-off-by: vmallika <vmallika@redhat.com> Reviewed-on: http://review.gluster.org/13313 Smoke: Gluster Build System <jenkins@build.gluster.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
* rpm: glusterfs-server requires -apiNiels de Vos2016-01-241-26/+34
| | | | | | | | | | | | | | | | | | | | | | | | The glusterfs-server package requires libgfapi.so for the glfs-heal binary and possibly other parts. Also adding %{?_isa} to requirements as described in the Fedora Packaging Guidelines for Explicit Requires at https://fedoraproject.org/wiki/Packaging:Guidelines#Explicit_Requires This is a backport of: > BUG: 1296992 > Change-Id: I96c62876b776d04a7f5d1b1dc34c02302b6ffbe6 > Reviewed-on: http://review.gluster.org/13200 > Signed-off-by: Niels de Vos <ndevos@redhat.com> BUG: 1296996 Change-Id: I96c62876b776d04a7f5d1b1dc34c02302b6ffbe6 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/13202 Smoke: Gluster Build System <jenkins@build.gluster.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
* scripts: prevent running 'showmount' from the start/post hook scriptNiels de Vos2016-01-141-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The 31ganesha-start.sh hook script tries to run 'showmount' to see if the volume that is getting started should get exported by NFS-Ganesha. It was reported that this caused the 'gluster volume start ...' command to hang in case rpcbind is not running. Instead of running 'showmount', we can use DBus to contact NFS-Ganesha directly, and request the available exports. This will immediately fail in case NFS-Ganesha is not running. Cherry picked from commit 2b2294d2a4ef221fccb6eb9f74e9b7dc233b9f1d: > BUG: 1294446 > Change-Id: I3aba1f86fead67116ca5adb1864a8be626c334fa > Reported-by: Jeff Darcy <jdarcy@redhat.com> > Signed-off-by: Niels de Vos <ndevos@redhat.com> > Reviewed-on: http://review.gluster.org/13098 > Tested-by: Raghavendra Talur <rtalur@redhat.com> > Reviewed-by: jiffin tony Thottan <jthottan@redhat.com> > Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> BUG: 1297862 Change-Id: I3aba1f86fead67116ca5adb1864a8be626c334fa Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/13230 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
* build: fix ecdh.h and dh.h depsMilind Changire2015-11-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | openssl/ecdh.h and openssl/dh.h are not available on all platforms, especially rhel-5. This patch adds check to autoconf and updates relevant source files. Added conditional to test for SSL_OP_NO_TICKET and SSL_OP_NO_COMPRESSION presence before setting the SSL context options. Macros UTIME_OMIT and UTIME_NOW picked up from Fedora 22 /usr/include/bits/stat.h to help rhel-5 build. Change-Id: I2bdee4fe643f9c1f5fe77cf89bd30946cd6b591a Reviewed-on: http://review.gluster.org/#/c/12517/ BUG: 1258594 Signed-off-by: Milind Changire <mchangir@redhat.com> Reviewed-on: http://review.gluster.org/12518 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Reviewed-by: Niels de Vos <ndevos@redhat.com>
* packaging: gfind_missing_files not in geo-rep %if ... %endif conditionalKaleb S KEITHLEY2015-11-161-1/+1
| | | | | | | | | | | | | if geo-rep is disabled in the build then the gfind_missing_files are erroneously included in the ganesha sub-package Change-Id: I41204c83e99dbb7424f10e29403d58b8e46b6526 BUG: 1281893 Signed-off-by: Kaleb S KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/12578 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Milind Changire <mchangir@redhat.com> Reviewed-by: Niels de Vos <ndevos@redhat.com>
* firewall/spec: Create glusterfs firewall service if firewalld installed.anand2015-10-151-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It creates glusterfs firewall service during installation. glusterfs service : It contains all default ports which needs to be opened. During installation glusterfs.xml is copied into firewall service directory(/usr/lib/firewalld/services/). Note: 1.For bricks: It opens the 512 ports, if brick is running out side this range(>49664) then admin need to open the port for that brick. 2.By default this service is not enabled in any of zone. To enable this service(glusterfs) in firewall: 1. Get active zone(s) in node firewall-cmd --get-active-zones 2. Attached this service(glusterfs) to zone(s) firewall-cmd --zone=<zone_name> --add-service=glusterfs --To apply runtime firewall-cmd --permanent --zone=<zone_name> --add-service=glusterfs --To apply permanent Note: we can also use firewall-config which gives GUI to configure firewall. Backport of: >Change-Id: Id97fe620c560fd10599511d751aed11a99ba4da5 >BUG: 1253967 >Signed-off-by: anand <anekkunt@redhat.com> >Reviewed-on: http://review.gluster.org/11989 >Reviewed-by: Niels de Vos <ndevos@redhat.com> >Tested-by: NetBSD Build System <jenkins@build.gluster.org> >Tested-by: Gluster Build System <jenkins@build.gluster.com> >(cherry picked from commit 7f327d3b4f9222995d2ee78862e48ca44c28411c) Change-Id: Iacf44b15ffb176c965c7f3b074065a54cf785dc7 BUG: 1057295 Signed-off-by: anand <anekkunt@redhat.com>; Reviewed-on: http://review.gluster.org/12357 Reviewed-by: Niels de Vos <ndevos@redhat.com> Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* packaging: incorrect %ghost of .../hooks/1/delete causes install failureKaleb S. KEITHLEY2015-09-011-2/+5
| | | | | | | | | | | | | | | | | | .../hooks/1/delete is not a %ghost by virtue of having actual files namely .../post/S57glusterfind-delete-post.py backport of Change-Id: I544bcfbc898007c79be11e911e6d66e242018740 http://review.gluster.org/#/c/12080/ BZ: 1258975 Change-Id: Ic4c94f3d1a495a769ab84f1239580beee2c379bc BUG: 1258976 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/12081 Reviewed-by: Jeff Darcy <jdarcy@redhat.com> Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Niels de Vos <ndevos@redhat.com>
* rpm: include required directory for glusterfindNiels de Vos2015-08-251-3/+4
| | | | | | | | | | | | | | | | | | | | The directory was marked as %ghost, which causes the following installation failure: Error unpacking rpm package glusterfs-server-3.8dev-0.446.git45e13fe.el7.centos.x86_64 error: unpacking of archive failed on file /var/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post.py;5581f20e: cpio: open Also, *all* Python files should be part of the RPM package. This includes generated .pyc and .pyo files. BUG: 1256307 Change-Id: Iee74905b101912c4a845257742c470c3fe42ce2a Signed-off-by: Niels de Vos <ndevos@redhat.com> Signed-off-by: Aravinda VK <avishwan@redhat.com> Reviewed-on: http://review.gluster.org/11298 Reviewed-on: http://review.gluster.org/12000 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* NFS-Ganesha: Automatically export vol that was exported before vol restartMeghana M2015-06-181-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | Consider a volume that is exported via NFS-Ganesha. Stopping this volume will automatically unexport the volume. Starting this volume should automatically export it. Although the logic was already there, there was a bug in it. Fixing the same by introducing a hook script. Also with the new CLI options, the hook script S31ganesha-set.sh is no longer required. Hence, removing the same. Adding a comment to tell the user that one of the CLI commands will take a few minutes to complete. This is a backport of the patch merged on master, http://review.gluster.org/#/c/11247/ Change-Id: I1c16a978b9e2093a4298ea3024d031fd1a5bb577 BUG: 1232335 Signed-off-by: Meghana Madhusudhan <mmadhusu@redhat.com> Reviewed-on: http://review.gluster.org/11259 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Reviewed-by: soumya k <skoduri@redhat.com> Reviewed-by: Niels de Vos <ndevos@redhat.com>
* spec/geo-rep: Add rsync as dependency for georeplication rpmAravinda VK2015-06-121-0/+4
| | | | | | | | | | | | | If rsync is not installed, Geo-rep will go faulty on started. Added rsync as dependency for georep rpm Change-Id: I49614957ccde47645185a65191d6d7baf1cc826c Signed-off-by: Aravinda VK <avishwan@redhat.com> BUG: 1231213 Reviewed-on: http://review.gluster.org/11201 Reviewed-on: http://review.gluster.org/11203 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* tools/glusterfind: Cleanup glusterfind dir after a volume deleteAravinda VK2015-06-121-0/+6
| | | | | | | | | | | | | | | | | | | | If `glusterfind delete` command was not run before volume delete, stale session directories exists in /var/lib/glusterd/glusterfind directories. Also shows these sessions in `glusterfind list` When Volume is deleted, Post hook will be run which cleans up the stale session directories BUG: 1225551 Change-Id: I54c46c30313e92c1bb4cb07918ed2029b375462c Signed-off-by: Aravinda VK <avishwan@redhat.com> Reviewed-on: http://review.gluster.org/#/c/10944 Reviewed-on: http://review.gluster.org/11186 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Kotresh HR <khiremat@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* spec: correct the vendor string in spec fileHumble Devassy Chirammal2015-06-121-1/+1
| | | | | | | | | | | | | Change-Id: Id19c973092af506582741887d12fe00c85022f15 BUG: 1225842 Signed-off-by: Humble Devassy Chirammal <hchiramm@redhat.com> Reviewed-on: http://review.gluster.org/10885 Tested-by: NetBSD Build System Reviewed-by: Niels de Vos <ndevos@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> (cherry picked from commit bc33fe3c1621612788cf2f7928178f314a5f25f1) Reviewed-on: http://review.gluster.org/10964 Tested-by: NetBSD Build System <jenkins@build.gluster.org>
* build: fix compiling on older distributionsNiels de Vos2015-06-111-7/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | data-tiering is disabled on RHEL-5 because it depends on a too new SQLite version. This change also prevents installing some of files that are used by geo-replication, which is also not available on RHEL-5. geo-replication depends on a too recent version of Python. Due to an older version of OpenSSL, some of the newer functions can not be used. A fallback to previous functions is done. Unfortunately RHEL-5 does not seem to have TLSv1.2 support, so only older versions can be used. Cherry picked from commit 0209b18fd65f9df5ebd0a8764ebf864d0d392998: > Change-Id: I672264a673f5432358d2e83b17e2a34efd9fd913 > BUG: 1222317 > Signed-off-by: Niels de Vos <ndevos@redhat.com> > Reviewed-on: http://review.gluster.org/10803 > Tested-by: NetBSD Build System <jenkins@build.gluster.org> > Tested-by: Gluster Build System <jenkins@build.gluster.com> > Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> > Reviewed-by: Vijay Bellur <vbellur@redhat.com> Also including the changes from http://review.gluster.org/11140: > build: improve detection of new OpenSSL features > > Building on Mac OS X revealed that the current check for > CRYPTO_THREADID_set_callback() availability in OpenSSL is not correct. > > There also does not seem to be a guarantee that TLSv1_2_method() is > available when TLS1_2_VERSION is #define'd. > > Change-Id: I21508065fc181a1c74bee4fd6d23bb5bdf7cea7a > BUG: 1222317 > Reviewed-on: http://review.gluster.org/11140 > Original-author: Kaleb KEITHLEY <kkeithle@redhat.com> > Signed-off-by: Niels de Vos <ndevos@redhat.com> Change-Id: I672264a673f5432358d2e83b17e2a34efd9fd913 BUG: 1228510 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/11096 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Atin Mukherjee <amukherj@redhat.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
* rpm: correct date and order of entries in the %changelogNiels de Vos2015-06-091-4/+4
| | | | | | | | | | | | | When modern versions of "rpmbuild" are used to produse src.rpms, an error will be reported when the %changelog has incorrect days/dates and entries are not sorted correctly. BUG: 1228510 Change-Id: I3156787d051d7878323c1847b95da196646787b6 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/11142 Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Tested-by: NetBSD Build System <jenkins@build.gluster.org>
* glusterd/shared_storage: Provide a volume set option to create and mount the ↵Avra Sengupta2015-06-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | shared storage Backport of http://review.gluster.org/#/c/10793/ Introducing a global volume set option(cluster.enable-shared-storage) which helps create and set-up the shared storage meta volume. gluster volume set all cluster.enable-shared-storage enable On enabling this option, the system analyzes the number of peers in the cluster, which are currently connected, and chooses three such peers(including the node the command is issued from). From these peers a volume(gluster_shared_storage) is created. Depending on the number of peers available the volume is either a replica 3 volume(if there are 3 connected peers), or a replica 2 volume(if there are 2 connected peers). "/var/run/gluster/ss_brick" serves as the brick path on each node for the shared storage volume. We also mount the shared storage at "/var/run/gluster/shared_storage" on all the nodes in the cluster as part of enabling this option. If there is only one node in the cluster, or only one node is up then the command will fail Once the volume is created, and mounted the maintainance of the volume like adding-bricks, removing bricks etc., is expected to be the onus of the user. On disabling the option, we provide the user a warning, and on affirmation from the user we stop the shared storage volume, and unmount it from all the nodes in the cluster. gluster volume set all cluster.enable-shared-storage disable Change-Id: Idd92d67b93f444244f99ede9f634ef18d2945dbc BUG: 1228181 Signed-off-by: Avra Sengupta <asengupt@redhat.com> Reviewed-on: http://review.gluster.org/11086 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Rajesh Joseph <rjoseph@redhat.com> Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
* glusterfs.spec.in: move libgf{db,changelog}.pc from -api-devel to -develKaleb S. KEITHLEY2015-06-041-2/+5
| | | | | | | | | | | | | | | pkgconfig files in the wrong package results in unexpected package dependencies Backport of http://review.gluster.org/10843 Change-Id: I0551114d09bcc3a7a73e152275175ba6c1bc0da3 BUG: 1223390 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/10844 Tested-by: Gluster Build System <jenkins@build.gluster.com> Tested-by: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Niels de Vos <ndevos@redhat.com>
* glusterfs.spec.in: python-gluster should be 'noarch'Kaleb S. KEITHLEY2015-06-021-0/+7
| | | | | | | | | | | Backport of http://review.gluster.org/10846 Change-Id: I70fa643939a1b2a4a1e93a867cd700e3b0cd99ed BUG: 1219953 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/10848 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Niels de Vos <ndevos@redhat.com>
* spec: move file peer_add_secret_pub to server RPMAravinda VK2015-06-011-1/+4
| | | | | | | | | | | | | | | | | | | | peer_add_secret_pub was developed as part of geo-replication feature. glusterfind has a dependency on the peer_add_secret_pub for distributing SSH secrets. The dependency was manifest while QA testing glusterfind. peer_add_secret_pub is now moved to the server RPM to support glusterfind without creating a dependency on the geo-replication RPM Change-Id: I1345e13fd6d218eb722cd72ca1b9dd04adf4d316 BUG: 1225552 Signed-off-by: Milind Changire <mchangir@redhat.com> Signed-off-by: Aravinda VK <avishwan@redhat.com> Reviewed-On: http://review.gluster.org/10807 Reviewed-on: http://review.gluster.org/11016 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Kotresh HR <khiremat@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Venky Shankar <vshankar@redhat.com>
* Build: glusterd socket file cleanup to set SElinux context properly.anand2015-06-011-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | Issue : glusterd runs as rpm_script_t when it's executed from the rpm scriptlet, socket file created in this context is set as rpm_script_t type, glusterd unable to access socket file when it runs in glusterd_t context (glusted not cleaning socket file while stoping due to some cleanup issues, so cleanup required in rpm install). Fix: In rpm post upgrade,remove the glusterd.socket file which is created by glusterd in rpm context. so that glusterd recreates socket file when it runs in glusterd_t context. Backport of: >Change-Id: I57041e2e0f9d3e74e12198507a9bd47d09f4a132 >BUG: 1223185 >Signed-off-by: anand <anekkunt@redhat.com> >Reviewed-on: http://review.gluster.org/10815 >Reviewed-by: Niels de Vos <ndevos@redhat.com> >Tested-by: NetBSD Build System >Tested-by: Gluster Build System <jenkins@build.gluster.com> Change-Id: Ic97458f41e1184054cbedbeb547118b217768bbd BUG: 1222869 Signed-off-by: anand <anekkunt@redhat.com> Reviewed-on: http://review.gluster.org/10996 Reviewed-by: Niels de Vos <ndevos@redhat.com> Tested-by: Niels de Vos <ndevos@redhat.com>
* scripts: Added script stop-all-gluster-processes.sh in rpmAravinda VK2015-05-311-0/+6
| | | | | | | | | | | | | | | This script was not included as part of rpm. Fixed now BUG: 1225331 Change-Id: I5e559b187253cc2f4f8ea7cf8ec56a32802e5ab2 Signed-off-by: Aravinda VK <avishwan@redhat.com> Reviewed-on: http://review.gluster.org/10931 Reviewed-by: Kotresh HR <khiremat@redhat.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/11015 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Venky Shankar <vshankar@redhat.com> Tested-by: NetBSD Build System <jenkins@build.gluster.org>
* rpm: fix dependency on python-glusterNiels de Vos2015-05-121-2/+3
| | | | | | | | | | | | | | | | | | | | | | | The glusterfs-extra-xlators tries to install python-glusterfs. This is incorrect, the package is called python-gluster. Cherry picked from commit 5388706e8431114418c0335f24532bf9f8df7588: > BUG: 1211848 > Change-Id: Id48a63ebe893c2bab90fab37ea3e32e601fae0fa > Reported-by: Meni Yakove <myakove@redhat.com> > Signed-off-by: Niels de Vos <ndevos@redhat.com> > Reviewed-on: http://review.gluster.org/10508 > Reviewed-by: Humble Devassy Chirammal <humble.devassy@gmail.com> > Tested-by: NetBSD Build System > Tested-by: Gluster Build System <jenkins@build.gluster.com> Change-Id: Id48a63ebe893c2bab90fab37ea3e32e601fae0fa BUG: 1219787 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/10754 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Reviewed-by: Gaurav Kumar Garg <ggarg@redhat.com>
* rpm: marker xlator should part of the server sub-packageGaurav Kumar Garg2015-05-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently marker translator is part of extra-xlator package. Installing only the glusterfs-server package and required dependencies does not make it possible to create a volume and starte it. Starting the volume will fail. The brick logs compain that type feature/marker is not valid: W [xlator.c:192:xlator_dynload] 0-xlator: /usr/lib64/glusterfs/3.7.0beta1/xlator/features/marker.so: cannot open shared object file: No such file or directory E [graph.y:212:volume_type] 0-parser: Volume 'rvstore-marker', line 78: type 'features/marker' is not valid or not found on this machine Fix is to include the marker translator in the server package. It should not be part of extra-xlator package. Backport of: > Change-Id: I77fe8a0bcf7d6f1dbff62d663e840e9e45805614 > BUG: 1220381 > Reviewed-on: http://review.gluster.org/10752 > Signed-off-by: Gaurav Kumar Garg <ggarg@redhat.com> Change-Id: I77fe8a0bcf7d6f1dbff62d663e840e9e45805614 BUG: 1220338 Signed-off-by: Gaurav Kumar Garg <ggarg@redhat.com> Reviewed-on: http://review.gluster.org/10753 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Niels de Vos <ndevos@redhat.com>
* rpm: reduce package dependencies and add -client-xlatorsNiels de Vos2015-05-081-48/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Restructuring the RPM packages in order to reduce the dependencies that get installed for glusterfs-api (mainly on request for Qemu hosts). The dependencies of these packages look roughly like this: .------------------. | glusterfs-server | '-------+----------' |\ | \ | '---------------+--------------------. | | | | v v | .----------------. .---------------. | | glusterfs-fuse | | glusterfs-api | | '--------+-------' '------+--------' | /| /| | / | / | | / | / | | / | / | | .-----------+----=---------------' | |/ | | v v v .-----------. .--------------------------. | glusterfs | | glusterfs-client-xlators | '-----------' '--------------------------' With this structure, users can install glusterfs-server, glusterfs-fuse or glusterfs-api (libgfapi) without getting any unneeded xlators or other scripts/binaries. The "glusterfs" and "glusterfsd" binary (symlinked) is now part of the glusterfs-fuse package (moved from glusterfs). This does not make a difference for glusterfs-server installations, because a server installation always needs the glusterfs-fuse package for doing internal mounts. The advantage is that glusterfs-api does not pull in any executables that get into the $PATH. This has caused confusion before when people tried to remove the (wrongly assumed) server-only "glusterfsd" binaries. Cherry picked from commit fd8b8a81c243776b20e6d48993524ee3f1351ca6: > URL: http://thread.gmane.org/gmane.comp.file-systems.gluster.devel/10643 > Change-Id: Id03f1a634ea3c62ab7008345be92e01ccf43b1a6 > BUG: 1195947 > Signed-off-by: Niels de Vos <ndevos@redhat.com> > Reviewed-on: http://review.gluster.org/10554 > Tested-by: Gluster Build System <jenkins@build.gluster.com> > Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> > Tested-by: NetBSD Build System > Reviewed-by: Humble Devassy Chirammal <humble.devassy@gmail.com> Change-Id: Id03f1a634ea3c62ab7008345be92e01ccf43b1a6 BUG: 1219089 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/10697 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* build: Introducing python-gluster packageHumble Devassy Chirammal2015-05-081-5/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently the gluster namespace/module is owned by glusterfs-api rpm. Because of this, other packages (extra-xlators or libgfapi-python) have to depend on glusterfs-api to get the gluster namespace. The gluster namespace should be owned by a core package.This patch introduce new package called python-gluster and moves the ownership of gluster module to python-gluster. Cherry picked from commit cf1c53343d4b6fe834833b76c50c61fd8a312de0: > Change-Id: Ib75ab922736f3bea6355da4d8dbec3a08b2844d5 > BUG: 1211848 > Signed-off-by: Humble Devassy Chirammal <hchiramm@redhat.com> > Reviewed-on: http://review.gluster.org/10244 > Tested-by: Gluster Build System <jenkins@build.gluster.com> > Reviewed-by: Niels de Vos <ndevos@redhat.com> > Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Change-Id: Ib75ab922736f3bea6355da4d8dbec3a08b2844d5 BUG: 1219787 Signed-off-by: Humble Devassy Chirammal <hchiramm@redhat.com> Reviewed-on: http://review.gluster.org/10672 Reviewed-by: Niels de Vos <ndevos@redhat.com> Tested-by: Niels de Vos <ndevos@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* build: RPM build fails (make -C extras/LinuxRPM glusterrpms)Kaleb S. KEITHLEY2015-05-081-2/+2
| | | | | | | | | | | minor typo in glusterfs.spec.in prevents building RPMS Change-Id: I876943e256d393921009d75cab84944f420632ba BUG: 1219787 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/10689 Reviewed-by: Niels de Vos <ndevos@redhat.com> Tested-by: Niels de Vos <ndevos@redhat.com>
* tools/glusterfind: Rpm install dependencies addedAravinda VK2015-05-081-0/+4
| | | | | | | | | | | | | | | | Argparse Python library is available as standard library in Python 2.7 In rhel, we need to install python-argparse. Also added pyxattr dependency to the spec file. BUG: 1219457 Change-Id: I2949d43b68731498130dbd27bf03c87f101141f0 Reviewed-on: http://review.gluster.org/10321 Signed-off-by: Kotresh HR <khiremat@redhat.com> Reviewed-on: http://review.gluster.org/10637 Reviewed-by: Saravanakumar Arumugam <sarumuga@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* build: glusterfs-api-devel requires libacl-develKaleb S. KEITHLEY2015-05-051-0/+1
| | | | | | | | | | | libvirt build fails Change-Id: Ib3aa77fb3c090950757bd47b026858c8e1fa55e6 BUG: 1218400 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/10583 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Niels de Vos <ndevos@redhat.com>
* common-ha: ganesha-ha.sh delete-node implementationKaleb S. KEITHLEY2015-05-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | omnibus patch consisting of: + completed implemenation of delete-node (BZ 1213934 (master 1213933)) + teardown leaves /var/lib/nfs symlink (BZ 1213927 (master 1210712)) + setup copy config, teardown clean /etc/cluster (BZ 1214888 (master 1212823)) setup for copy config, teardown clean /etc/cluster: 1. on one (primary) node in the cluster, run: `ssh-keygen -f /var/lib/glusterd/nfs/secret.pem` Press Enter twice to avoid passphrase. 2. deploy the pubkey ~root/.ssh/authorized keys on _all_ nodes, run: `ssh-copy-id -i /var/lib/glusterd/nfs/secret.pem.pub root@$node` 3. copy the keys to _all_ nodes in the cluster, run: `scp /var/lib/glusterd/nfs/secret.* $node:/var/lib/glusterd/nfs/` N.B. this allows setup, teardown, etc., to be run on any node Change-Id: I66e947538769c3c531cfdb89854997130ca5c05b BUG: 1213934 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/10318 Tested-by: NetBSD Build System Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Niels de Vos <ndevos@redhat.com>
* build: make contrib/uuid dependency optionalNiels de Vos2015-04-101-0/+1
| | | | | | | | | | | | | | | | | | | On Linux systems we should use the libuuid from the distribution and not bundle and statically link the contrib/uuid/ bits. libglusterfs/src/compat-uuid.h has been introduced and should become an abstraction layer for different UUID APIs. Non-Linux operating systems should implement their compatibility layer there. Once all operating systems have an implementation in compat-uuid.h, we can remove contrib/uuid/ from the repository completely. Change-Id: I345e5357644be2521685e00358bb8c83c4ea0577 BUG: 1206587 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/10129 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* geo-rep: Copy geo-rep hook-script during source installKotresh HR2015-04-021-4/+0
| | | | | | | | | | | | | | | | | The hook-script S56glusterd-geo-rep-create-post.sh was not copying to glusterd working directory when geo-rep is installed through source. Hence the geo-rep create fails unless the script is manually copied. This patch addresses the issue by copying the hook-script during make install. Change-Id: I185a877ed720e8300f0e888ab481d0c8c23bf815 BUG: 1207201 Signed-off-by: Kotresh HR <khiremat@redhat.com> Reviewed-on: http://review.gluster.org/10051 Reviewed-by: Aravinda VK <avishwan@redhat.com> Reviewed-by: Niels de Vos <ndevos@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Vijay Bellur <vbellur@redhat.com>
* build: require cmocka >= 1.0.1Niels de Vos2015-03-311-2/+2
| | | | | | | | | | | | | | | | | Our mem-pool unit test does a funky realloc(ptr, 0) as an alternative to free(ptr). cmocka 1.0.0 has a bug where this is not handled correctly and thinks to detect a memory leak. The next cmocka release will have this bug fixed, making our unit tests require cmocka >= 1.0.1. URL: https://cmocka.org/archive/cmocka/2015-02/0000059.html Change-Id: I3d7f9b4cf7ace3f958158425ecbcc8f176579122 BUG: 1067059 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/9801 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Andreas Schneider <asn@fedoraproject.org> Tested-by: Andreas Schneider <asn@fedoraproject.org> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
* build:change dependency for librdmacm to version >= 1.0.15Mohammed Rafi KC2015-03-301-1/+4
| | | | | | | | | | | | | Thanks to Niels for the fix Change-Id: I0954b6f498461dde2b986da9e0e45775175249c9 BUG: 1206744 Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com> Reviewed-on: http://review.gluster.org/10028 Reviewed-by: Niels de Vos <ndevos@redhat.com> Reviewed-by: Humble Devassy Chirammal <humble.devassy@gmail.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* build: attr package dependencyKaleb S. KEITHLEY2015-03-271-0/+4
| | | | | | | | | | | | Already fixed in the Fedora dist-git glusterfs.spec Change-Id: Icad7c4527d4b83417cbb81957e7b5da8b4d36368 BUG: 1184627 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/10016 Reviewed-by: Lalatendu Mohanty <lmohanty@redhat.com> Reviewed-by: Niels de Vos <ndevos@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
* rpm: move libgfdb to the glusterfs-server packageNiels de Vos2015-03-241-0/+6
| | | | | | | | | | | | | | | libgfdb is only used by processes that run on Gluster servers. There is no need to have this library (and its sqlite dependency) on any system that installs a glusterfs package. BUG: 1194753 Change-Id: I6b7fdc70210ef2a847efd596a0c995f0a4cf5d9b Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/9983 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Humble Devassy Chirammal <humble.devassy@gmail.com> Reviewed-by: Lalatendu Mohanty <lmohanty@redhat.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
* build: correctly install the snap_scheduler toolsNiels de Vos2015-03-191-3/+5
| | | | | | | | | | | | | The current way of installing the snap-scheduler tools breaks the building of RPMs. The tools should be installed in /usr/sbin and there is no need to change the attributes/permissions after the installation. Change-Id: I1b8e206748617fb000d956b1b5da52d126971c29 BUG: 1203557 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/9939 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* snapshot/scheduling: A cron based scheduler for snapshot schedulingAvra Sengupta2015-03-181-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | GlusterFS volume snapshot provides point-in-time copy of a GlusterFS volume. Currently, GlusterFS volume snapshots can be easily scheduled by setting up cron jobs on one of the nodes in the GlusterFS trusted storage pool. This has a single point failure (SPOF), as scheduled jobs can be missed if the node running the cron jobs dies. The solution to the above problems is addressed in this patch. The snap_scheduler.py helper script expects the user to install the argparse python module before using it. Further details for the same are available at: http://www.gluster.org/community/documentation/index.php/Features/Scheduling_of_Snapshot Change-Id: I2c357af5b7d3e66f270d20eef50cdeecdcbe15c7 BUG: 1198027 Signed-off-by: Avra Sengupta <asengupt@redhat.com> Signed-off-by: Aravinda VK <avishwan@redhat.com> Reviewed-on: http://review.gluster.org/9788 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* Adding Libgfdb to GlusterFSJoseph Fernandes2015-03-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ************************************************************************* Libgfdb | ************************************************************************* Libgfdb provides abstract mechanism to record extra/rich metadata required for data maintenance, such as data tiering/classification. It provides consumer with API for recording and querying, keeping the consumer abstracted from the data store used beneath for storing data. It works in a plug-and-play model, where data stores can be plugged-in. Presently we have plugin for Sqlite3. In the future will provide recording and querying performance optimizer. In the current implementation the schema of metadata is fixed. Schema: ~~~~~~ GF_FILE_TB Table: ~~~~~~~~~~~~~~~~~ This table has one entry per file inode. It holds the metadata required to make decisions in data maintenance. GF_ID (Primary key) : File GFID (Universal Unique IDentifier in the namespace) W_SEC, W_MSEC : Write wind time in sec & micro-sec UW_SEC, UW_MSEC : Write un-wind time in sec & micro-sec W_READ_SEC, W_READ_MSEC : Read wind time in sec & micro-sec UW_READ_SEC, UW_READ_MSEC : Read un-wind time in sec & micro-sec WRITE_FREQ_CNTR INTEGER : Write Frequency Counter READ_FREQ_CNTR INTEGER : Read Frequency Counter GF_FLINK_TABLE: ~~~~~~~~~~~~~~ This table has all the hardlinks to a file inode. GF_ID : File GFID (Composite Primary Key)``| GF_PID : Parent Directory GFID (Composite Primary Key) |-> Primary Key FNAME : File Base Name (Composite Primary Key)__| FPATH : File Full Path (Its redundant for now, this will go) W_DEL_FLAG : This Flag is used for crash consistancy, when a link is unlinked. i.e Set to 1 during unlink wind and during unwind this record is deleted LINK_UPDATE : This Flag is used when a link is changed i.e rename. Set to 1 when rename wind and set to 0 in rename unwind Libgfdb API: ~~~~~~~~~~~ Refer libglusterfs/src/gfdb/gfdb_data_store.h Change-Id: I2e9fbab3878ce630a7f41221ef61017dc43db11f BUG: 1194753 Signed-off-by: Joseph Fernandes <josferna@redhat.com> Signed-off-by: Dan Lambright <dlambrig@redhat.com> Signed-off-by: Joseph Fernandes <josferna@redhat.com> Reviewed-on: http://review.gluster.org/9683 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* feature/glusterfind: A tool to find incremental changesAravinda VK2015-03-181-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Documentation is available in patch: http://review.gluster.org/#/c/9800/ A tool which helps to get list of modified files or list of all files in GlusterFS Volume using Changelog or find command. Usage ===== glusterfind --help Create: ------- glusterfind create --help The tool creates status file $GLUSTERD_WORKDIR/SESSION/VOLUME/status and records current timestamp to initiate the session. This timestamp will be used as start time for next runs. As part of create also generates ssh key and distributes to all peers. and enables build.pgfid and changelog using volume set command. Pre: ---- glusterfind pre --help This command is used to generate the list of files modified after session creation time or after last run. To get list of all files/dirs in Volume, run pre command with `--full` argument. The tool gets all nodes details using gluster volume info and runs node agent for each brick in respective nodes via ssh command. Once these node agents generate the output file, tool copies to local using scp. Merges all the output files to generate the final output file. Post: ----- glusterfind post --help After consuming the list, this sub command is called to update the session time based on pre command status file. List: ----- glusterfind list --help To view all the sessions Delete: ------- glusterfind delete --help Delete session. Known Issues ------------ 1. Deleted files will not get listed, since we can't convert GFID to Path if file/dir is deleted. 2. Only new name will get listed if Renamed. 3. All hardlinks will get listed. Change-Id: I82991feb0aea85cb6ec035fddbf80a2b276e86b0 BUG: 1193893 Signed-off-by: Aravinda VK <avishwan@redhat.com> Reviewed-on: http://review.gluster.org/9682 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Venky Shankar <vshankar@redhat.com> Reviewed-by: Prashanth Pai <ppai@redhat.com> Reviewed-by: Kotresh HR <khiremat@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* NFS-Ganesha: Install scripts, config files, and resource agent scriptsKaleb S. KEITHLEY2015-03-171-1/+29
| | | | | | | | | | | | | | | | | Resubmitting after a gerrit bug bungled the merge of http://review.gluster.org/9621 (was it really a gerrit bug?) Scripts related to NFS-Ganesha are in extras/ganesha/scripts. Config files are in extras/ganesha/config. Resource Agent files are in extras/ganesha/ocf Files are copied to appropriate locations. Change-Id: I137169f4d653ee2b7d6df14d41e2babd0ae8d10c BUG: 1188184 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/9912 Tested-by: Gluster Build System <jenkins@build.gluster.com>
* geo-rep: mountbroker user managementAravinda VK2015-03-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Non root geo-replication setup is now simplified. This patch provides cli for mountbroker user and options management To set Options, gluster system:: execute mountbroker opt <KEY> <VALUE> # for example, gluster system:: execute mountbroker opt mountbroker-root /var/mountbroker-root gluster system:: execute mountbroker opt geo-replication-log-group geogroup gluster system:: execute mountbroker opt rpc-auth-allow-insecure on To remove option, gluster system:: execute mountbroker optdel <KEY> # for example, gluster system:: execute mountbroker optdel geo-replication-log-group To add/edit user, gluster system:: execute mountbroker user <USERNAME> <VOLUMES> # for example gluster system:: execute mountbroker user geoaccount slavevol1,slavevol2 To remove user, gluster system:: execute mountbroker userdel <USERNAME> # for example gluster system:: execute mountbroker userdel geoaccount For info, gluster system:: execute mountbroker info gluster system:: execute mountbroker -j info For JSON output add -j after mountbroker, for example, gluster system:: execute mountbroker -j user geoaccount slavevol1,slavevol2 PS: Each peer prints its own JSON output, aggregator required from consumer side BUG: 1136312 Change-Id: Ie52210c0bcc91ac2ffd3ba58988222ffca62b47f Signed-off-by: Aravinda VK <avishwan@redhat.com> Reviewed-on: http://review.gluster.org/9398 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: darshan n <dnarayan@redhat.com> Reviewed-by: Kotresh HR <khiremat@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* tools: Finds missing files in gluster volume given backend brickpathKotresh HR2015-03-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | The tool finds the missing files in a geo-replication slave volume. The tool crawls backend .glusterfs of the brickpath, which is passed as a parameter and stats each entry on slave volume mount to check the presence of file. The mount used is aux-gfid-mount, hence no path conversion is required and is fast. The tool needs to be run on every node in cluster for each brickpath of geo-rep master volume to find missing files on slave volume. The tool is generic enough and can be used in non geo-replication context as well. Most of the crawler code is leverged from Avati's xfind and is modified to crawl only .glusterfs (https://github.com/avati/xsync) Thanks Aravinda for scripts to convert gfid to path. Change-Id: I84deaaaf638f7c571ff1319b67a3440fe27da810 BUG: 1187140 Signed-off-by: Aravinda VK <avishwan@redhat.com> Signed-off-by: Kotresh HR <khiremat@redhat.com> Reviewed-on: http://review.gluster.org/9503 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
* glusterfs.spec.in: minor/nit changes to sync with Fedora specKaleb S. KEITHLEY2015-03-101-1/+4
| | | | | | | | | sync with fedora spec Change-Id: Iddc55fbf82e5c4690669aa5836dc109b3d3fe19a BUG: 1091408 Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Reviewed-on: http://review.gluster.org/7632
* posix: add ACL translation for the GF_POSIX_ACL_*_KEY xattrNiels de Vos2015-03-091-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding support for two virtual extended attributes that are used for converting a binary POSIX ACL to a POSIX.1e long ACL text format. This makes it possible to transfer the ACL over the network to a different OS which can convert the POSIX.1e text format to its native structures. The following xattrs are sent over RPC in SETXATTR/GETXATTR procedures, and contain the POSIX.1e long ACL text format: - glusterfs.posix.acl: maps to ACL_TYPE_ACCESS - glusterfs.posix.default_acl: maps to ACL_TYPE_DEFAULT acl_from_text() (from libacl) converts the text format into an acl_t structure. This structure is then used by acl_set_file() to set the ACL in the filesystem. libacl-devel is needed for linking against libacl, so it has been added to the BuildRequires in the .spec. NetBSD does not support POSIX ACLs. Trying to get/set POSIX ACLs on a storage server running NetBSD, an error will be returned with errno set to ENOTSUP. Faking support, but not enforcing ACLs seems wrong to me. URL: http://www.gluster.org/community/documentation/index.php/Features/Improved_POSIX_ACLs BUG: 1185654 Change-Id: Ic5eb73d69190d3492df2f711d0436775eeea7de3 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/9627 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: soumya k <skoduri@redhat.com> Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com>
* testing: Switch to cmocka the successor of cmockery2Niels de Vos2015-03-051-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | This uses https://cmocka.org/ as the unit testing framework. With this change, unit testing is made optional as well. We assume there is no cmocka available while building. cmocka will be enabled by default later on. For now, to build with cmocka run: $ ./configure --enable-cmocka This change is based on the work of Andreas (replacing cmockery2 with cmocka) and Kaleb (make cmockery2 an optional build dependency). The only modifications I made, are additional #defines in unittest.h for making sure the unit tests function as expected. Change-Id: Iea4cbcdaf09996b49ffcf3680c76731459cb197e BUG: 1067059 Merged-change: http://review.gluster.org/9762/ Signed-off-by: Andreas Schneider <asn@samba.org> Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com> Signed-off-by: Niels de Vos <ndevos@redhat.com> Change-Id: Ia2e955481c102d5dce17695a9205395a6030e985 Reviewed-on: http://review.gluster.org/9738 Tested-by: Gluster Build System <jenkins@build.gluster.com>