diff options
Diffstat (limited to 'libs/utils/afrutils.py')
-rw-r--r-- | libs/utils/afrutils.py | 115 |
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 |