benchmarking/platforms/host/hdb.py (40 lines of code) (raw):

#!/usr/bin/env python ############################################################################## # Copyright 2017-present, Facebook, Inc. # All rights reserved. # # This source code is licensed under the license found in the # LICENSE file in the root directory of this source tree. ############################################################################## from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals import os import shutil from platforms.platform_util_base import PlatformUtilBase from utils.custom_logger import getLogger COPY_THRESHOLD = 6442450944 # 6 GB class HDB(PlatformUtilBase): def __init__(self, device=None, tempdir=None): super(HDB, self).__init__(device, tempdir) def push(self, src, tgt): getLogger().info("push {} to {}".format(src, tgt)) if src != tgt: if os.path.isdir(src): if os.path.exists(tgt): shutil.rmtree(tgt) shutil.copytree(src, tgt) else: if os.stat(src).st_size < COPY_THRESHOLD: shutil.copyfile(src, tgt) os.chmod(tgt, 0o777) else: if not os.path.isfile(tgt): getLogger().info( "Create symlink between {} and {}".format(src, tgt) ) os.symlink(src, tgt) def pull(self, src, tgt): getLogger().info("pull {} to {}".format(src, tgt)) if src != tgt: shutil.copyfile(src, tgt) os.chmod(tgt, 0o777) def deleteFile(self, file): getLogger().info("delete {}".format(file)) if os.path.isdir(file): shutil.rmtree(file) else: os.remove(file)