Exemple #1
0
    def get_job_artifact_list(self, offset, limit, conditions=None):
        """
        Retrieve a list of job artifacts. The conditions parameter is a
        dict containing a set of conditions for each key. e.g.:
        {
            'job_id': set([('IN', (1, 2))])
        }
        """

        replace_str, placeholders = self._process_conditions(
            conditions, self.INDEXED_COLUMNS['job_artifact']
        )

        repl = [replace_str]

        proc = "jobs.selects.get_job_artifact"

        data = self.execute(
            proc=proc,
            replace=repl,
            placeholders=placeholders,
            limit=limit,
            offset=offset,
            debug_show=self.DEBUG,
        )
        for artifact in data:
            artifact["blob"] = utils.decompress_if_needed(artifact["blob"])

            if artifact["type"] == "json":
                artifact["blob"] = json.loads(artifact["blob"])

        return data
Exemple #2
0
    def get_job_artifact_list(self, offset, limit, conditions=None):
        """
        Retrieve a list of job artifacts. The conditions parameter is a
        dict containing a set of conditions for each key. e.g.:
        {
            'job_id': set([('IN', (1, 2))])
        }
        """

        replace_str, placeholders = self._process_conditions(
            conditions, self.INDEXED_COLUMNS['job_artifact'])

        repl = [replace_str]

        proc = "jobs.selects.get_job_artifact"

        data = self.execute(
            proc=proc,
            replace=repl,
            placeholders=placeholders,
            limit=limit,
            offset=offset,
            debug_show=self.DEBUG,
        )
        for artifact in data:
            artifact["blob"] = utils.decompress_if_needed(artifact["blob"])

            if artifact["type"] == "json":
                artifact["blob"] = json.loads(artifact["blob"])

        return data
    def _rewrite_series(self, jm, signature_hash, signature_properties,
                        subtest_signature_mapping, extra_subtest_signatures):
        new_props = TalosDataAdapter._transform_signature_properties(
            signature_properties,
            significant_keys=Command.SIGNIFICANT_KEYS)
        if 'subtest_signatures' in new_props:
            suitekey = self._get_suitekey(new_props)

            # rewrite a new set of subtest signatures
            old_subtest_signatures = new_props['subtest_signatures']
            new_subtest_signatures = set()
            for old_signature in old_subtest_signatures:
                try:
                    new_subtest_signatures.add(
                        subtest_signature_mapping[old_signature])
                except:
                    # key may not exist if script interrupted, get
                    # suite signatures via extra_subtest_signatures
                    for sig in extra_subtest_signatures.get(suitekey, []):
                        new_subtest_signatures.add(sig)
            new_props['subtest_signatures'] = sorted(new_subtest_signatures)
        new_hash = TalosDataAdapter.get_series_signature(new_props)
        print "%s -> %s" % (signature_hash, new_hash)
        jm.set_series_signature(new_hash, new_props)
        for time_interval in PerformanceTimeInterval.all_valid_time_intervals():
            series_list = jm.get_performance_series_from_signatures(
                [signature_hash], time_interval)

            series = utils.decompress_if_needed(series_list[0]['blob'])
            jm.store_performance_series(time_interval, 'talos_data',
                                        str(new_hash), series)

        jm.execute(proc='jobs.deletes.delete_performance_series',
                        placeholders=[signature_hash])
        jm.execute(proc='jobs.deletes.delete_series_signature',
                        placeholders=[signature_hash])

        return new_hash