import json import os from libs.misc import system, mkdirs, write_error_to_file,\ get_all_file, filter_files from iexceptions import ExecuteException from settings import CORRUPT_FILES class Agent(object): def __init__(self): self._prefix = "/host" def set_full(self, dirname): cmd = "dd if=/dev/zero of={dirname}/tst.img bs=4M count=27K".format( dirname=self._prefix + dirname) rc, so, se = system(cmd) if rc: raise ExecuteException(rc=rc) return True def set_empty(self, dirname): if not os.path.exists(self._prefix + dirname): return True cmd = "rm -f {dirname}/tst.img".format(dirname=self._prefix + dirname) rc, so, se = system(cmd) if rc: raise ExecuteException(msg=so) return True def write_error(self, dirname, corrupt_files): """ TODO: add a recent branch to write error to recent files """ if corrupt_files == "all": filenames = get_all_file(self._prefix + dirname) destfiles = filter_files(filenames, CORRUPT_FILES) else: files = corrupt_files.split(",") filenames = [] for file in files: if file.endswith("*"): n = get_all_file(self._prefix + "/tikv/" + file) filenames.extend(n) else: filenames.append(self._prefix + "/tikv/" + file) destfiles = list(set(filenames)) for file in destfiles: write_error_to_file(file) agent = Agent()