Exemple #1
0
def job_spider(cluster, jobs: list = None):
    jobs = na_lazy(jobs, cluster.rest_api_job_list)
    to_screen("{} jobs to be captured in the cluster {}".format(
        len(jobs), cluster.alias))
    job_statuses = concurrent_map(
        lambda j: cluster.rest_api_job_info(
            j['name'], info=None, user=j['username']), jobs)
    job_configs = concurrent_map(
        lambda j: cluster.rest_api_job_info(
            j['name'], info='config', user=j['username']), jobs)
    job_logs = concurrent_map(JobStatusParser.all_tasks_logs, job_statuses)
    for job, sta, cfg, logs in zip(jobs, job_statuses, job_configs, job_logs):
        job['status'] = sta
        job['config'] = cfg
        job['logs'] = logs
    return jobs
Exemple #2
0
 def available_resources(self):
     """concurrent version to get available resources"""
     aliases = self.aliases
     ret = concurrent_map(Cluster.available_resources,
                          (self.get_client(a) for a in aliases))
     return {a: r for a, r in zip(aliases, ret) if r is not None}