summaryrefslogtreecommitdiffstats
path: root/glustolibs-gluster/glustolibs/gluster/lib_utils.py
Commit message (Collapse)AuthorAgeFilesLines
* [Test+Lib] Add tests to check self healkshithijiyer2021-01-201-1/+25
| | | | | | | | | | | | | | | | Test scenarios added: 1. Test to check entry self heal. 2. Test to check meta data self heal. 3. Test self heal when files are removed and dirs created with the same name. Additional libraries added: 1. group_del(): Deletes groups created 2. enable_granular_heal(): Enables granular heal 3. disable_granular_heal(): Disables granular heal Change-Id: Iffa9a100fddaecae99c384afe3aaeaf13dd37e0d Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
* [LibFix] Add dirname support form_bricks_list()“Milind2021-01-041-5/+17
| | | | | | | Adding arg dirname as a gluster brick directory Change-Id: I1bb69b4d719bad4cbac3a0e6a497fdae386c6004 Signed-off-by: “Milind <“mwaykole@redhat.com”>
* [Lib] Add get_usable_size_per_disk() to librarykshithijiyer2020-10-291-0/+22
| | | | | | | | | | Changes done in this patch: 1. Adding get_usable_size_per_disk() to lib_utils.py. 2. Removing the redundant code from dht/test_rename_with_brick_min_free_limit_crossed.py. Change-Id: I80c1d6124b7f0ce562d8608565f7c46fd8612d0d Signed-off-by: kshithijiyer <kshithij.ki@gmail.com>
* [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>