summaryrefslogtreecommitdiffstats
path: root/libs/utils/afrutils.py
diff options
context:
space:
mode:
Diffstat (limited to 'libs/utils/afrutils.py')
-rw-r--r--libs/utils/afrutils.py115
1 files changed, 115 insertions, 0 deletions
diff --git a/libs/utils/afrutils.py b/libs/utils/afrutils.py
new file mode 100644
index 0000000..26b8e92
--- /dev/null
+++ b/libs/utils/afrutils.py
@@ -0,0 +1,115 @@
+import time
+import atfutils
+import glusterutils
+
+def wait_till_selfheal_completes(timeout):
+ """
+ Wait for selfheal to Complete
+ """
+ time.sleep(timeout)
+ selfheal_completion_status = 0
+ return selfheal_completion_status
+
+def wait_till_brick_reboot(timeout):
+ """
+ Wait for brick to reboot
+ """
+ time.sleep(timeout)
+ reboot_completion_status = 0
+ return reboot_completion_status
+
+def set_read_subvolume(from_server, subvolumeid):
+ """
+ Parameters:
+ from_server: volume set read-subvolume will be executed on 'from_server'
+ subvolumeid (Ex: client-0)
+ """
+ output = atfutils.get_new_output_obj()
+ active_volume = atfutils.get_active_volume()
+ if active_volume is None:
+ output["exitstatus"] = 1
+ return output
+
+ volumename = active_volume.volumename
+ subvolume = "-".join([volumename, subvolumeid])
+ output = glusterutils.volume_set(from_server,
+ key="cluster.read-subvolume",
+ value=subvolume)
+ return output
+
+def disable_self_heal(from_server, *types):
+ """
+ Parameters:
+ from_server: volume self-heal off will be executed on 'from_server'
+ *type : type of self heal (it can be data, entry, metadata)
+ Usage:
+ disable_self_heal("server1", data)
+ disable_self_heal("server1", data, entry)
+ disable_self_heal("server1", data, metadata)
+ disable_self_heal("server1", entry, metadata)
+ disable_self_heal("server1", data, entry, metadata)
+ """
+ output = atfutils.get_new_output_obj()
+ selfheal = {
+ 'data' : 'cluster.data-self-heal',
+ 'entry' : 'cluster.entry-self-heal',
+ 'metadata' : 'cluster.metadata-self-heal'
+ }
+
+ for _type in types:
+ if selfheal.has_key(_type):
+ output = glusterutils.volume_set(from_server, key=selfheal[_type],
+ value="off")
+ assert_success_status = atfutils.assert_success(output["exitstatus"])
+ if assert_success_status is not 0:
+ return output
+
+ if output['exitstatus'] is None:
+ output['exitstatus'] = 1
+ output['stderrdata'] = "Unable to Disable self-heal %s" % str(types)
+ else:
+ output['exitstatus'] = 0
+ output['stdoutdata'] = "Successfully Disabled self-healed %s" % str(types)
+
+ return output
+
+def setup_testenv_gfid_heal():
+ """
+ """
+ output = glusterutils.glusterd_start_allservers(force=True)
+ assert_success_status = atfutils.assert_success(output["exitstatus"])
+ if assert_success_status is not 0:
+ return assert_success_status
+
+ output = glusterutils.create_brick_allservers()
+ assert_success_status = atfutils.assert_success(output["exitstatus"])
+ if assert_success_status is not 0:
+ return assert_success_status
+
+ return 0
+
+def create_volume_gfid_heal(from_server):
+ """
+ """
+ output = glusterutils.peer_probe(from_server)
+ assert_success_status = atfutils.assert_success(output["exitstatus"])
+ if assert_success_status is not 0:
+ return assert_success_status
+
+ output = glusterutils.volume_create(from_server)
+ assert_success_status = atfutils.assert_success(output["exitstatus"])
+ if assert_success_status is not 0:
+ return assert_success_status
+
+ output = glusterutils.volume_set(from_server, key="self-heal-daemon",
+ value="off")
+ assert_success_status = atfutils.assert_success(output["exitstatus"])
+ if assert_success_status is not 0:
+ return assert_success_status
+
+ glusterutils.volume_set(from_server, key="diagnostics.client-log-level",
+ value="DEBUG")
+
+ glusterutils.volume_set(from_server, key="diagnostics.brick-log-level",
+ value="DEBUG")
+ return 0