diff options
Diffstat (limited to 'tests/functional/afr/test_multiple_clients_dd_on_same_file_default.py')
-rw-r--r-- | tests/functional/afr/test_multiple_clients_dd_on_same_file_default.py | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/tests/functional/afr/test_multiple_clients_dd_on_same_file_default.py b/tests/functional/afr/test_multiple_clients_dd_on_same_file_default.py index 0d7d82d18..a3a6cb183 100644 --- a/tests/functional/afr/test_multiple_clients_dd_on_same_file_default.py +++ b/tests/functional/afr/test_multiple_clients_dd_on_same_file_default.py @@ -1,4 +1,4 @@ -# Copyright (C) 2015-2018 Red Hat, Inc. <http://www.redhat.com> +# Copyright (C) 2015-2020 Red Hat, Inc. <http://www.redhat.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -15,6 +15,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. from glusto.core import Glusto as g + from glustolibs.gluster.gluster_base_class import (GlusterBaseClass, runs_on) from glustolibs.gluster.exceptions import ExecutionError from glustolibs.gluster.brick_libs import (bring_bricks_offline, @@ -28,9 +29,10 @@ from glustolibs.gluster.heal_ops import trigger_heal from glustolibs.misc.misc_libs import upload_scripts from glustolibs.io.utils import (collect_mounts_arequal, validate_io_procs, wait_for_io_to_complete) +from glustolibs.gluster.volume_ops import (get_volume_info) -@runs_on([['replicated'], +@runs_on([['replicated', 'arbiter'], ['glusterfs', 'cifs', 'nfs']]) class VerifySelfHealTriggersHealCommand(GlusterBaseClass): """ @@ -40,33 +42,23 @@ class VerifySelfHealTriggersHealCommand(GlusterBaseClass): @classmethod def setUpClass(cls): # Calling GlusterBaseClass setUpClass - GlusterBaseClass.setUpClass.im_func(cls) + cls.get_super_method(cls, 'setUpClass')() # Upload io scripts for running IO on mounts g.log.info("Upload io scripts to clients %s for running IO on mounts", cls.clients) - script_local_path = ("/usr/share/glustolibs/io/scripts/" - "file_dir_ops.py") cls.script_upload_path = ("/usr/share/glustolibs/io/scripts/" "file_dir_ops.py") - ret = upload_scripts(cls.clients, [script_local_path]) + ret = upload_scripts(cls.clients, cls.script_upload_path) if not ret: raise ExecutionError("Failed to upload IO scripts to clients %s" % cls.clients) g.log.info("Successfully uploaded IO scripts to clients %s", cls.clients) - # Override Volumes - if cls.volume_type == "replicated": - # Define x2 replicated volume - cls.volume['voltype'] = { - 'type': 'replicated', - 'replica_count': 2, - 'transport': 'tcp'} - def setUp(self): # Calling GlusterBaseClass setUp - GlusterBaseClass.setUp.im_func(self) + self.get_super_method(self, 'setUp')() self.all_mounts_procs = [] self.io_validation_complete = False @@ -101,7 +93,7 @@ class VerifySelfHealTriggersHealCommand(GlusterBaseClass): g.log.info("Successful in umounting the volume and Cleanup") # Calling GlusterBaseClass teardown - GlusterBaseClass.tearDown.im_func(self) + self.get_super_method(self, 'tearDown')() def test_multiple_clients_dd_on_same_file_default(self): """ @@ -145,8 +137,9 @@ class VerifySelfHealTriggersHealCommand(GlusterBaseClass): mount_obj.client_system, mount_obj.mountpoint) # Create files g.log.info('Reading files...') - command = ("python %s read %s" - % (self.script_upload_path, mount_obj.mountpoint)) + command = "/usr/bin/env python %s read %s" % ( + self.script_upload_path, + mount_obj.mountpoint) proc = g.run_async(mount_obj.client_system, command, user=mount_obj.user) @@ -244,6 +237,18 @@ class VerifySelfHealTriggersHealCommand(GlusterBaseClass): # It should be the same g.log.info('Getting arequal on bricks...') arequals_after_heal = {} + + if self.volume_type == "arbiter": + vol_info = get_volume_info(self.mnode, self.volname) + self.assertIsNotNone(vol_info, 'Unable to get volume info') + data_brick_list = [] + for brick in bricks_list: + for brick_info in vol_info[self.volname]["bricks"]["brick"]: + if brick_info["name"] == brick: + if brick_info["isArbiter"] == "0": + data_brick_list.append(brick) + bricks_list = data_brick_list + for brick in bricks_list: g.log.info('Getting arequal on bricks %s...', brick) node, brick_path = brick.split(':') |