summaryrefslogtreecommitdiffstats
path: root/glustolibs-gluster/glustolibs/gluster/lib_utils.py
Commit message (Collapse)AuthorAgeFilesLines
* [Libfix] Remove rpyc_get_connection() dependency from codekshithijiyer2020-04-011-57/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: `g.rpyc_get_connection()` has a limitaion where it can't convert python2 calls to python3 calls. Due to this a large number of testcases fail when executed from a python2 machine on a python3 only setup or visa versa with the below stack trace: ``` E ========= Remote Traceback (1) ========= E Traceback (most recent call last): E File "/root/tmp.tL8Eqx7d8l/rpyc/core/protocol.py", line 323, in _dispatch_request E res = self._HANDLERS[handler](self, *args) E File "/root/tmp.tL8Eqx7d8l/rpyc/core/protocol.py", line 591, in _handle_inspect E if hasattr(self._local_objects[id_pack], '____conn__'): E File "/root/tmp.tL8Eqx7d8l/rpyc/lib/colls.py", line 110, in __getitem__ E return self._dict[key][0] E KeyError: (b'rpyc.core.service.SlaveService', 94282642994712, 140067150858560) ``` Solution: The solution here is to modify the code to not use `g.rpyc_get_connection()`. The following changes are done to accomplish it: 1)Remove code which uses g.rpyc_get_connection() and use generic logic in functions: a. do_bricks_exist_in_shd_volfile() b. get_disk_usage() c. mount_volume() d. list_files() f. append_string_to_file() 2)Create files which can be uploaded and executed on clients/servers to avoid rpc calls in functions: a. calculate_hash() b. validate_files_in_dir() 3)Modify setup.py to push the below files to `/usr/share/glustolibs/scripts/`: a.compute_hash.py b.walk_dir.py Change-Id: I00a81a88382bf3f8b366753eebdb2999260788ca Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
* [lib] Adding collect_bricks_arequal() to lib_utils.pykshithijiyer2020-02-041-1/+47
| | | | | | | | | | | | | | | | | | | | Adding function collect_bricks_arequal() to lib_utils.py to collect arequal-checksum on all the bricks of all the nodes used to create a volume using the below command: ``` arequal-checksum -p <BrickPath> -i .glusterfs -i .landfill -i .trashcan ``` Usage: ``` >>> all_bricks = get_all_bricks(self.mnode, self.volname) >>> ret, arequal = collect_bricks_arequal(all_bricks) >>> ret True ``` Change-Id: Id42615469be18d84e5691c982369634c436ed0cf Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
* [py2to3] Change str to list in isinstance()kshithijiyer2020-01-091-12/+12
| | | | | | | | | | | | Use 'list' object type in comparisons instead of 'str' Because it is differently treated in py2 and py3. Example: In py2 isinstance(u'foo', str) is False In py3 isinstance(u'foo', str) is True Change-Id: I7663d42494bf59d74550ff4897379d35cc357db4 Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
* [lib] Adding more check functions and tarssh supportkshithijiyer2020-01-031-0/+78
| | | | | | | | | | | | | | | | | | | | | | - Adding the following check functions: 1. is_passwordless_ssh_configured() - To check if passwordless ssh is configured or not between given nodes with a given user. 2. is_group_exists() - To check if group is present on servers or not. 3. is_user_exists() - To check if a given user is present on servers or not. - Adding functionality to support both sync methods. - Adding nonrootpass parameter to georep_prerequisites() as in the previous logic the password for the non-root and the root user were the same which might not always be the case. - Fixing georep_config_get() and georep_config_set() to take non-root user as well. Change-Id: I8a42d48d56690040dd7f78d1fb919029c0d6e61d Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
* [Fix] Fix for variable type check in lib_utils.pykshithijiyer2019-12-311-3/+3
| | | | | | | | | | | | isinstance() was missing at some places due to which variable type check for string was failing in the following functions: 1.set_passwd() 2.group_add() 3.add_user() Change-Id: Iafe47967f8d6df686c9ecdd6d87dac3c81bdb5db Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
* [lib] Adding group_add,ssh_keygen,ssh_copy_id, set_passwd to lib_utils.kshithijiyer2019-09-171-12/+130
| | | | | | | | | | | | | | | | Adding the following functions tot lib_utils.py: 1.ssh_keygen(): Creates a pair of ssh private and public key if not present. 2.set_passwd(): Sets password for a given username. 3.ssh_copy_id(): Copies the default ssh public key. 4.group_add(): Creates a group in all the servers. Modifying add_user() to create and add user to a specific group. Also modifying the code in add_user() to take list of servers. Change-Id: I58cdef967293204073aa912fa98adb9606f6885d Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
* Added more checking mechanism for crashesnchilaka2019-07-171-6/+16
| | | | | | | | | Added more checking mechanism for crashes, as sometimes coredumps may not get collected by systems due to settings and hence can miss out on any crashes hit Change-Id: Id45a844bd0d7877d335c06287d4db873776e89db Signed-off-by: nchilaka <nchilaka@redhat.com>
* Fixed: servers with no bricks are not icluded in servers_unused_bricks_dictVitalii Koriakov2018-12-191-1/+2
| | | | | Change-Id: I953975d66c333c141b03b4eaa7118a93859be878 Signed-off-by: Vitalii Koriakov <vkoriako@redhat.com>
* Convert auth_ops.py and lib_utils.py to python3Vitalii Koriakov2018-11-081-11/+12
| | | | | Change-Id: I8baf97066c5ae47e2a298581eeb74374fc09a21e Signed-off-by: Vitalii Koriakov <vkoriako@redhat.com>
* Using a raw strings for fixing flake warningsVitalii Koriakov2018-10-291-2/+2
| | | | | Change-Id: Ie134790ea05919a4b396657c11cbc3fc7a7fc529 Signed-off-by: Vitalii Koriakov <vkoriako@redhat.com>
* Fix spelling mistake across the codebaseNigel Babu2018-08-071-4/+4
| | | | Change-Id: I46fc2feffe6443af6913785d67bf310838532421
* Adding test case for change owner, group, permission for directoryMohit Agrawal2018-06-291-0/+35
| | | | | | | | | | | | | | | | | 1) Create Dir with some file inside dir 2) Verify dir exists on all bricks as well as mount point 3) Compare dir stat with mount-point and brick location path 4) Change the ownership of directory 5) Compare dir stats with mount-point and brick path 6) Try to change pemission with different user for directory 7) Compare dir stat with mount-point and brick path 8) Try to change permission with different user for directory 9) change permission of directory 10) Compare dir stat with mount-point and brick path 11) Try to change permission with different user for same directory Change-Id: I284842be8c7562d4618d4e69e202c4d80945f1c5 Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
* tests: Test case to verify brick consumable sizeSunil Kumar Acharya2018-06-141-0/+19
| | | | | | | | | | When bricks of various sizes are used to create a disperse volume, volume size should be of the size (number of data bricks * least of brick size) RHG3-11124 Change-Id: Ic791212bf028328996b896ae4896cf860c153264 Signed-off-by: Sunil Kumar Acharya <sheggodu@redhat.com>
* Add services to firewall and remove services from firewallRajesh Madaka2018-06-081-2/+46
| | | | | Change-Id: Ie81b6ecb7e7af0524a42b37f0256a2cfff5d7736 Signed-off-by: Rajesh Madaka <rmadaka@redhat.com>
* Opening firewall ports for rhel7Rajesh Madaka2018-04-251-0/+45
| | | | | Change-Id: I06194cd8968e0beb1dbd0815deaa999fc409272c Signed-off-by: Rajesh Madaka <rmadaka@redhat.com>
* Test case for Validate Peer probe with invalid ip and non existingRajesh Madaka2018-02-021-0/+58
| | | | | | | | | | | | | | | | | | | | | host, non existing ip Library for Core file Create or Not, Added is_core_file_created() function to lib_utils.py Test Desc: Test script to verify peer probe non existing host and invalid-ip, peer probe has to be fail for non existing host, Glusterd services up and running after invalid peer probe, and core file should not get created under "/", /tmp, /var/log/core directory Adding glusterd peer probe test cases with modifications according to comments adding lib for core file verification Change-Id: I0ebd6ee2b340d1f1b01878cb0faf69f41fec2e10 Signed-off-by: Rajesh Madaka <rmadaka@redhat.com>
* Check if servers/nodes which is expected to be passed as listShwethaHP2018-01-161-13/+21
| | | | | | | | is str. i.e passing a single node to the function. If it is str, then convert it to list Change-Id: I1abacf62fdbe1ec56fe85c86d8e2a323a2c3971b Signed-off-by: ShwethaHP <spandura@redhat.com>
* Fixing the glusto-tests Build Failures:ShwethaHP2017-11-231-12/+11
| | | | | | | | | | 21:00:43 ./glustolibs-gluster/glustolibs/gluster/lib_utils.py:67:5: E722 do not use bare except' 21:00:43 ./glustolibs-gluster/glustolibs/gluster/lib_utils.py:290:5: E722 do not use bare except' 21:00:43 ./glustolibs-io/shared_files/scripts/file_dir_ops.py:308:13: E722 do not use bare except' 21:00:43 ./glustolibs-io/shared_files/scripts/file_dir_ops.py:316:13: E722 do not use bare except' Change-Id: Ia0babf3d5a10b19c48425e4fcbcb8e79eea5e391 Signed-off-by: ShwethaHP <spandura@redhat.com>
* Inject gluster,samba,nfs logs with messageShwethaHP2017-07-261-0/+56
| | | | | Change-Id: If16daf6a0633c4ea30f7fb91b919d2ec42d0ff62 Signed-off-by: ShwethaHP <spandura@redhat.com>
* Added nfs ganesha tests to run IO test suites from multiple clients and ↵Arthy Loganathan2017-06-201-0/+52
| | | | | | | checks nfs ganesha behaviour Change-Id: I2dc7f0fb016982b7b7fa4a87c0310e4c96376f94 Signed-off-by: Arthy Loganathan <aloganat@redhat.com>
* Clean up pyflakes and pep8 errorsNigel Babu2016-12-121-31/+30
| | | | | Change-Id: Ibdd092118d3bb912716c46fd278ef3c680a6e742 Signed-off-by: Nigel Babu <nigelb@redhat.com>
* Added lib_utils.pyArthy Loganathan2016-10-251-0/+662
Change-Id: I4cd5061d9df470aed1a620eb3f67cab236645215 Signed-off-by: Arthy Loganathan <aloganat@redhat.com>