def process_all_packages(pkgmgr, client_dir, remove=False): """Process a full upload of packages as a directory upload.""" dep_dir = os.path.join(client_dir, "deps") prof_dir = os.path.join(client_dir, "profilers") # Directory where all are kept temp_dir = tempfile.mkdtemp() try: base_packages.check_diskspace(temp_dir) except error.RepoDiskFullError, e: print ("Temp destination for packages is full %s, aborting upload: %s" % (temp_dir, e)) os.rmdir(temp_dir) sys.exit(1)
def process_all_packages(pkgmgr, client_dir, remove=False): """Process a full upload of packages as a directory upload.""" dep_dir = os.path.join(client_dir, "deps") prof_dir = os.path.join(client_dir, "profilers") # Directory where all are kept temp_dir = tempfile.mkdtemp() try: base_packages.check_diskspace(temp_dir) except error.RepoDiskFullError, e: print("Temp destination for packages is full %s, aborting upload: %s" % (temp_dir, e)) os.rmdir(temp_dir) sys.exit(1)
def process_all_packages(pkgmgr, client_dir, remove=False): """Process a full upload of packages as a directory upload.""" dep_dir = os.path.join(client_dir, "deps") prof_dir = os.path.join(client_dir, "profilers") # Directory where all are kept temp_dir = tempfile.mkdtemp() try: base_packages.check_diskspace(temp_dir) except error.RepoDiskFullError as e: print("Temp destination for packages is full %s, aborting upload: %s" % (temp_dir, e)) os.rmdir(temp_dir) sys.exit(1) # process tests tests_list = get_subdir_list('tests', client_dir) tests = ','.join(tests_list) # process site_tests site_tests_list = get_subdir_list('site_tests', client_dir) site_tests = ','.join(site_tests_list) # process deps deps_list = get_subdir_list('deps', client_dir) deps = ','.join(deps_list) # process profilers profilers_list = get_subdir_list('profilers', client_dir) profilers = ','.join(profilers_list) # Update md5sum if not remove: tar_packages(pkgmgr, 'profiler', profilers, prof_dir, temp_dir) tar_packages(pkgmgr, 'dep', deps, dep_dir, temp_dir) tar_packages(pkgmgr, 'test', site_tests, client_dir, temp_dir) tar_packages(pkgmgr, 'test', tests, client_dir, temp_dir) tar_packages(pkgmgr, 'client', 'autotest', client_dir, temp_dir) cwd = os.getcwd() os.chdir(temp_dir) client_utils.system('md5sum * > packages.checksum') os.chdir(cwd) pkgmgr.upload_pkg(temp_dir) client_utils.run('rm -rf ' + temp_dir) else: process_packages(pkgmgr, 'test', tests, client_dir, remove=remove) process_packages(pkgmgr, 'test', site_tests, client_dir, remove=remove) process_packages(pkgmgr, 'client', 'autotest', client_dir, remove=remove) process_packages(pkgmgr, 'dep', deps, dep_dir, remove=remove) process_packages(pkgmgr, 'profiler', profilers, prof_dir, remove=remove)
def process_packages(pkgmgr, pkg_type, pkg_names, src_dir, remove=False): include_string = " ." exclude_string = None names = [p.strip() for p in pkg_names.split(',')] for name in names: print("Processing %s ... " % name) if pkg_type == 'client': pkg_dir = src_dir exclude_string = get_exclude_string(pkg_dir) elif pkg_type == 'test': # if the package is a test then look whether it is in client/tests # or client/site_tests pkg_dir = os.path.join(get_test_dir(name, src_dir), name) else: # for the profilers and deps pkg_dir = os.path.join(src_dir, name) pkg_name = pkgmgr.get_tarball_name(name, pkg_type) if not remove: # Tar the source and upload temp_dir = tempfile.mkdtemp() try: try: base_packages.check_diskspace(temp_dir) except error.RepoDiskFullError as e: msg = ("Temporary directory for packages %s does not have " "enough space available: %s" % (temp_dir, e)) raise error.RepoDiskFullError(msg) tarball_path = pkgmgr.tar_package(pkg_name=pkg_name, src_dir=pkg_dir, dest_dir=temp_dir, include_string=include_string, exclude_string=exclude_string) pkgmgr.upload_pkg(tarball_path, update_checksum=True) finally: # remove the temporary directory shutil.rmtree(temp_dir) else: pkgmgr.remove_pkg(pkg_name, remove_checksum=True) print("Done.")
def process_packages(pkgmgr, pkg_type, pkg_names, src_dir, remove=False): include_string = " ." exclude_string = None names = [p.strip() for p in pkg_names.split(',')] for name in names: print "Processing %s ... " % name if pkg_type == 'client': pkg_dir = src_dir exclude_string = get_exclude_string(pkg_dir) elif pkg_type == 'test': # if the package is a test then look whether it is in client/tests # or client/site_tests pkg_dir = os.path.join(get_test_dir(name, src_dir), name) else: # for the profilers and deps pkg_dir = os.path.join(src_dir, name) pkg_name = pkgmgr.get_tarball_name(name, pkg_type) if not remove: # Tar the source and upload temp_dir = tempfile.mkdtemp() try: try: base_packages.check_diskspace(temp_dir) except error.RepoDiskFullError, e: msg = ("Temporary directory for packages %s does not have " "enough space available: %s" % (temp_dir, e)) raise error.RepoDiskFullError(msg) tarball_path = pkgmgr.tar_package(pkg_name=pkg_name, src_dir=pkg_dir, dest_dir=temp_dir, include_string=include_string, exclude_string=exclude_string) pkgmgr.upload_pkg(tarball_path, update_checksum=True) finally: