Beispiel #1
0
 def handle_job_metrics(self, line, job):
     job_metrics = summarize_job_metrics(self.trans, job)
     metrics_by_plugin = {}
     for job_metric in job_metrics:
         plugin = job_metric["plugin"]
         if plugin not in metrics_by_plugin:
             metrics_by_plugin[plugin] = {}
         metrics_by_plugin[plugin][job_metric["title"]] = job_metric["value"]
     markdown = ""
     for metric_plugin, metrics_for_plugin in metrics_by_plugin.items():
         markdown += f"**{metric_plugin}**\n\n"
         markdown += "|   |   |\n|---|--|\n"
         for title, value in metrics_for_plugin.items():
             markdown += f"| {title} | {value} |\n"
     return (markdown, True)
Beispiel #2
0
 def handle_job_metrics(self, line, job):
     job_metrics = summarize_job_metrics(self.trans, job)
     metrics_by_plugin = OrderedDict()
     for job_metric in job_metrics:
         plugin = job_metric["plugin"]
         if plugin not in metrics_by_plugin:
             metrics_by_plugin[plugin] = OrderedDict()
         metrics_by_plugin[plugin][job_metric["title"]] = job_metric["value"]
     markdown = ""
     for metric_plugin, metrics_for_plugin in metrics_by_plugin.items():
         markdown += "**%s**\n\n" % metric_plugin
         markdown += "|   |   |\n|---|--|\n"
         for title, value in metrics_for_plugin.items():
             markdown += "| %s | %s |\n" % (title, value)
     return (markdown, True)
Beispiel #3
0
    def metrics(self, trans, **kwd):
        """
        * GET /api/jobs/{job_id}/metrics
        * GET /api/datasets/{dataset_id}/metrics
            Return job metrics for specified job. Job accessibility checks are slightly
            different than dataset checks, so both methods are available.

        :type   job_id: string
        :param  job_id: Encoded job id

        :type   dataset_id: string
        :param  dataset_id: Encoded HDA or LDDA id

        :type   hda_ldda: string
        :param  hda_ldda: hda if dataset_id is an HDA id (default), ldda if
                          it is an ldda id.

        :rtype:     list
        :returns:   list containing job metrics
        """
        job = self.__get_job(trans, **kwd)
        return summarize_job_metrics(trans, job)
Beispiel #4
0
    def show(self, trans, id, **kwd):
        """
        show( trans, id )
        * GET /api/jobs/{id}:
            return jobs for current user

        :type   id: string
        :param  id: Specific job id

        :type   full: boolean
        :param  full: whether to return extra information

        :rtype:     dictionary
        :returns:   dictionary containing full description of job data
        """
        job = self.__get_job(trans, id)
        is_admin = trans.user_is_admin
        job_dict = self.encode_all_ids(
            trans, job.to_dict('element', system_details=is_admin), True)
        full_output = util.asbool(kwd.get('full', 'false'))
        if full_output:

            job_dict.update(
                dict(tool_stdout=job.tool_stdout,
                     tool_stderr=job.tool_stderr,
                     job_stdout=job.job_stdout,
                     job_stderr=job.job_stderr,
                     stderr=job.stderr,
                     stdout=job.stdout,
                     job_messages=job.job_messages))

            if is_admin:
                if job.user:
                    job_dict['user_email'] = job.user.email
                else:
                    job_dict['user_email'] = None

                job_dict['job_metrics'] = summarize_job_metrics(trans, job)
        return job_dict