diff options
Diffstat (limited to 'tests/utils')
-rwxr-xr-x | tests/utils/create-files.py | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/tests/utils/create-files.py b/tests/utils/create-files.py deleted file mode 100755 index 0d937eff978..00000000000 --- a/tests/utils/create-files.py +++ /dev/null @@ -1,207 +0,0 @@ -#!/usr/bin/python - -# This script was developed by Vijaykumar Koppad (vkoppad@redhat.com) -# The latest version of this script can found at -# http://github.com/vijaykumar-koppad/crefi - -from __future__ import with_statement -import sys -import os -import re -import random -from optparse import OptionParser -import time -import string -import errno - -def os_rd(src, size): - fd = os.open(src,os.O_RDONLY) - data = os.read(fd, size) - os.close(fd) - return data - -def os_wr(dest, data): - fd = os.open(dest,os.O_WRONLY|os.O_CREAT|os.O_EXCL, 0644) - os.write(fd, data) - os.close(fd) - return - -def create_sparse_file(fil): - if option.size: - option.random = False - size = option.size - else: - size = random.randint(option.min, option.max) - data = os_rd("/dev/zero", size) - os_wr(fil, data) - return - -def create_binary_file(fil): - if option.size: - option.random = False - size = option.size - else: - size = random.randint(option.min, option.max) - data = os_rd("/dev/urandom", size) - os_wr(fil, data) - return - -def create_txt_file(fil): - if option.size: - option.random = False - size = option.size - else: - size = random.randint(option.min, option.max) - if size < 500*1024: - data = os_rd("/etc/services", size) - os_wr(fil, data) - else: - data = os_rd("/etc/services", 500*1024) - file_size = 0 - fd = os.open(fil,os.O_WRONLY|os.O_CREAT|os.O_EXCL, 0644) - while file_size < size: - os.write(fd, data) - file_size += 500*1024 - os.close(fd) - return - -def get_filename(): - size = option.flen - char = string.uppercase+string.digits - st = ''.join(random.choice(char) for i in range(size)) - ti = str((hex(int(str(time.time()).split('.')[0])))[2:]) - return ti+"~~"+st - -def text_files(files, file_count): - for k in range(files): - if not file_count%option.inter: - print file_count - fil = get_filename() - create_txt_file(fil) - file_count += 1 - return file_count - -def sparse_files(files, file_count): - for k in range(files): - if not file_count%option.inter: - print file_count - fil = get_filename() - create_sparse_file(fil) - file_count += 1 - return file_count - -def binary_files(files, file_count): - for k in range(files): - if not file_count%option.inter: - print file_count - fil = get_filename() - create_binary_file(fil) - file_count += 1 - return file_count - -def human2bytes(size): - size_short = { - 1024 : ['K','KB','KiB','k','kB','kiB'], - 1024*1024 : ['M','MB','MiB'], - 1024*1024*1024 : ['G','GB','GiB'] -} - num = re.search('(\d+)',size).group() - ext = size[len(num):] - num = int(num) - if ext == '': - return num - for value, keys in size_short.items(): - if ext in keys: - size = num*value - return size - -def multipledir(mnt_pnt,brdth,depth,files): - files_count = 1 - for i in range(brdth): - breadth = mnt_pnt+"/"+str(i) - try: - os.makedirs(breadth) - except OSError as ex: - if not ex.errno is errno.EEXIST: - raise - os.chdir(breadth) - dir_depth = breadth - print breadth - for j in range(depth): - dir_depth = dir_depth+"/"+str(j) - try: - os.makedirs(dir_depth) - except OSError as ex: - if not ex.errno is errno.EEXIST: - raise - os.chdir(dir_depth) - if option.file_type == "text": - files_count = text_files(files, files_count) - elif option.file_type == "sparse": - files_count = sparse_files(files, files_count) - elif option.file_type == "binary": - files_count = binary_files(files, files_count) - else: - print "Not a valid file type" - sys.exit(1) - -def singledir(mnt_pnt, files): - files_count = 1 - os.chdir(mnt_pnt) - if option.file_type == "text": - files_count = text_files(files, files_count) - elif option.file_type == "sparse": - files_count = sparse_files(files, files_count) - elif option.file_type == "binary": - files_count = binary_files(files, files_count) - else: - print "Not a valid file type" - sys.exit(1) - -if __name__ == '__main__': - usage = "usage: %prog [option] <MNT_PT>" - parser = OptionParser(usage=usage) - parser.add_option("-n", dest="files",type="int" ,default=100, - help="number of files in each level [default: %default]") - parser.add_option("--size", action = "store",type="string", - help="size of the files to be used") - parser.add_option("--random", action="store_true", default=True, - help="random size of the file between --min and --max " - "[default: %default]") - parser.add_option("--max", action = "store",type="string", default="500K", - help="maximum size of the files, if random is True " - "[default: %default]") - parser.add_option("--min", action = "store",type="string", default="10K", - help="minimum size of the files, if random is True " - "[default: %default]" ) - parser.add_option("--single", action="store_true", dest="dir",default=True, - help="create files in single directory [default: %default]" ) - parser.add_option("--multi", action="store_false", dest="dir", - help="create files in multiple directories") - parser.add_option("-b", dest="brdth",type="int",default=5, - help="number of directories in one level(works with --multi)[default: %default]") - parser.add_option("-d", dest="depth",type="int",default=5, - help="number of levels of directories(works with --multi)[default: %default]") - parser.add_option("-l", dest="flen",type="int" ,default=10, - help="number of bytes for filename " - "[default: %default]") - parser.add_option("-t","--type", action="store", type="string" , dest="file_type",default="text", - help="type of the file to be created (text, sparse, binary) [default: %default]" ) - parser.add_option("-I", dest="inter", type="int", default=100, - help="print number files created of interval [defailt: %dafault]") - (option,args) = parser.parse_args() - if not args: - print "usage: <script> [option] <MNT_PT>" - print "" - sys.exit(1) - args[0] = os.path.abspath(args[0]) - if option.size: - option.size = human2bytes(option.size) - else: - option.max = human2bytes(option.max) - option.min = human2bytes(option.min) - if option.dir: - singledir(args[0], option.files) - else: - multipledir(args[0], option.brdth, option.depth, option.files) - print "creation of files completed.\n" |