def _send_tarball(self, pkg_name, remote_dest): name, pkg_type = self.job.pkgmgr.parse_tarball_name(pkg_name) src_dirs = [] if pkg_type == 'test': for test_dir in ['site_tests', 'tests']: src_dir = os.path.join(self.job.clientdir, test_dir, name) if os.path.exists(src_dir): src_dirs += [src_dir] if autoserv_prebuild: prebuild.setup(self.job.clientdir, src_dir) break elif pkg_type == 'profiler': src_dirs += [os.path.join(self.job.clientdir, 'profilers', name)] if autoserv_prebuild: prebuild.setup(self.job.clientdir, src_dir) elif pkg_type == 'dep': src_dirs += [os.path.join(self.job.clientdir, 'deps', name)] elif pkg_type == 'client': return # you must already have a client to hit this anyway else: return # no other types are supported # iterate over src_dirs until we find one that exists, then tar it for src_dir in src_dirs: if os.path.exists(src_dir): try: logging.info('Bundling %s into %s', src_dir, pkg_name) temp_dir = autotemp.tempdir(unique_id='autoserv-packager', dir=self.job.tmpdir) tarball_path = self.job.pkgmgr.tar_package( pkg_name, src_dir, temp_dir.name, " .", None) self.host.send_file(tarball_path, remote_dest) finally: temp_dir.clean() return