def process_packages(pkgmgr, pkg_type, pkg_names, src_dir, repo_url, remove=False): exclude_string = " ." 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: msg = "Temporary directory for packages does not have " "enough space available" raise error.RepoDiskFullError(msg) tarball_path = pkgmgr.tar_package(pkg_name, pkg_dir, temp_dir, exclude_string) pkgmgr.upload_pkg(tarball_path, repo_url, update_checksum=True) finally: # remove the temporary directory shutil.rmtree(temp_dir) else: pkgmgr.remove_pkg(pkg_name, repo_url, remove_checksum=True) print "Done."
def process_packages(pkgmgr, pkg_type, pkg_names, src_dir, remove=False): exclude_string = ' .' 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_dir, temp_dir, exclude_string) pkgmgr.upload_pkg(tarball_path, update_checksum=True) finally:
def process_all_packages(pkgmgr, client_dir, upload_paths, remove=False): """Process a full upload of packages as a directory upload.""" test_dir = os.path.join(client_dir, "tests") site_test_dir = os.path.join(client_dir, "site_tests") 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: print ("Temp destination for packages is full %s, aborting upload" % temp_dir) 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) for path in upload_paths: print "Uploading to: " + path pkgmgr.upload_pkg(temp_dir, path) client_utils.run("rm -rf " + temp_dir) else: for repo_url in upload_paths: process_packages(pkgmgr, "test", tests, client_dir, repo_url, remove=remove) process_packages(pkgmgr, "test", site_tests, client_dir, repo_url, remove=remove) process_packages(pkgmgr, "client", "autotest", client_dir, repo_url, remove=remove) process_packages(pkgmgr, "dep", deps, dep_dir, repo_url, remove=remove) process_packages(pkgmgr, "profiler", profilers, prof_dir, repo_url, remove=remove)
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_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: