"""testcases for cli/volume/top """ import sys import time import glusterutils import clientutils import clitestsutils import hostutils import atfutils volume_top_usage = "Usage: volume top {[open|read|write|opendir|readdir] |[read-perf|write-perf bs count ]} [brick ] [list-cnt ]" def reset_testenv(): return_status = 1 if clientutils.umountall(): return return_status glusterutils.volume_stop("server1", force=True) glusterutils.volume_delete("server1") glusterutils.glusterd_stop_allservers() glusterutils.glusterd_remove_dir_allservers() glusterutils.glusterd_remove_logs_allservers() return 0 def setup_testenv(): """ """ return_status = 1 if glusterutils.glusterd_start_allservers(force=True): return return_status if glusterutils.peer_probe("server1"): return return_status if glusterutils.create_brick_allservers(): return return_status if glusterutils.volume_create("server1"): return return_status if glusterutils.volume_start("server1"): return return_status if clientutils.mount("mount1"): return return_status return 0 def validate_output(output, expected_exit_status, expected_output): """ """ if expected_exit_status is 1: exit_status = atfutils.assert_failure(**output) else: exit_status = atfutils.assert_success(**output) output_status = atfutils.expect(str(output['stdoutdata']), expected_output) if output_status is True and (not exit_status): return 0 else: return 1 def bug2645a(): """ """ command = "gluster volume top write-perf bs 0 count 100" expected_output = "block size should be an integer greater than zero" expected_exit_status = 1 output = hostutils.execute_command("server1", command) return validate_output(output, expected_exit_status, expected_output) def bug2645b(): """ """ command = "gluster volume top write-perf bs 1024 count 0" expected_output = "count should be an integer greater than zero" expected_exit_status = 1 output = hostutils.execute_command("server1", command) return validate_output(output, expected_exit_status, expected_output) def bug2645c(): """ """ command = "gluster volume top write-perf bs 1024 count 100" expected_output = "" expected_exit_status = 0 output = hostutils.execute_command("server1", command) return validate_output(output, expected_exit_status, expected_output) def bug2771a(): """ """ command = "gluster volume top write-perf list-cnt 10 brick : bs 2048" expected_output = volume_top_usage expected_exit_status = 1 output = hostutils.execute_command("server1", command) return validate_output(output, expected_exit_status, expected_output) def bug2771b(): """ """ command = "gluster volume top read-perf list-cnt 99 bs 37 brick :" expected_output = volume_top_usage expected_exit_status = 1 output = hostutils.execute_command("server1", command) return validate_output(output, expected_exit_status, expected_output) def bug2771c(): """ """ command = "gluster volume top read-perf list-cnt 99 bs 37 brick : bs 1024" expected_output = volume_top_usage expected_exit_status = 1 output = hostutils.execute_command("server1", command) return validate_output(output, expected_exit_status, expected_output) def bug2771d(): """ """ command = "gluster volume top read-perf list-cnt 99 count 37 brick : count 10" expected_output = volume_top_usage expected_exit_status = 1 output = hostutils.execute_command("server1", command) return validate_output(output, expected_exit_status, expected_output) def bug2771e(): command = "gluster volume top read-perf bs 1024 count 37 brick : list-cnt 10" expected_output = "" expected_exit_status = 0 output = hostutils.execute_command("server1", command) return validate_output(output, expected_exit_status, expected_output) def bug2771f(): """ """ command = "gluster volume top read-perf list-cnt 10 count 37 brick : bs 1024" expected_output = "" expected_exit_status = 0 output = hostutils.execute_command("server1", command) return validate_output(output, expected_exit_status, expected_output) def bug2725a(): """ """ dir_name = 'a' for i in range(1, 255): dir_name += 'a' pass commands = [] commands.append("echo 'Hello World' > " + dir_name) commands.append("find . | xargs touch") for command in commands: return_status = clientutils.execute_on_mount("mount1", command) if return_status: return return_status command = "gluster volume top open" expected_output = "" expected_exit_status = 0 output = hostutils.execute_command("server1", command) return validate_output(output, expected_exit_status, expected_output) def bug2725b(): """ """ testcase_failed = False dir_name = 'a' for i in range(1, 255): dir_name += 'a' pass commands = [] commands.append("echo 'Hello World' > " + dir_name) commands.append("find . | xargs touch") for command in commands: return_status = clientutils.execute_on_mount("mount1", command) if return_status: return return_status commands = [] commands.append("gluster volume top open") commands.append("gluster volume top read") commands.append("gluster volume top write-perf bs 2048 count 1000 list-cnt 100") expected_output = "Unable to decode response" expected_exit_status = 1 for command in commands: output = hostutils.execute_command("server1", command) return_status = validate_output(output, expected_exit_status, expected_output) if return_status: testcase_failed = True if testcase_failed: return 1 else: return 0