Example #1
0
            build_content = {'load_error': e}

        _build['_oid'] = _oid
        _build['job_name'] = job_name
        _build['job_uri'] = job_uri
        _build['number'] = build_number
        _build.update(build_content)

        report_uri = '%s:%s%s/testReport/%s?%s' % (uri, self.port,
                                                   _job_path, self.api_path,
                                                   _args)
        self.logger.debug('Loading (%s)' % report_uri)
        try:
            _page = rget(report_uri).content
            report_content = json.loads(_page,
                                        strict=False,
                                        object_hook=obj_hook)
        except Exception as e:
            self.logger.error('OOPS! (%s) %s' % (report_uri, e))
            report_content = {'load_error': e}

        _build['report_uri'] = report_uri
        _build['report'] = report_content

        return _build


if __name__ == '__main__':
    from metrique.argparsers import cube_cli
    cube_cli(Build)
Example #2
0
        self.logger.debug("Extracting GIT repo: %s" % uri)
        self.repo = self.get_repo(uri, fetch)
        known_shas = set()
        if not (force or delta_shas):
            known_shas = self.find('repo_uri == "%s"' % uri,
                                   fields='sha', raw=True)
            known_shas = set([e['sha'] for e in known_shas])
            self.logger.debug("Known Commits: %s" % len(known_shas))
        #repo_shas = set(self.repo.commits())
        cmd = 'git rev-list --all'
        p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
        p = p.communicate()[0]
        repo_shas = set(x for x in p.split('\n') if x)
        self.logger.debug("Total Commits: %s" % len(repo_shas))
        delta_shas = repo_shas - known_shas
        commits = self._build_commits(delta_shas, uri)
        return self.cube_save(commits)

    def extract(self, uri, fetch=True, shas=None, force=False, **kwargs):
        if not isinstance(uri, (list, tuple)):
            uri = [uri]
        commits = dict([(_uri,
                         self._extract(_uri, fetch,
                                       shas, force)) for _uri in uri])
        return commits


if __name__ == '__main__':
    from metrique.argparsers import cube_cli
    cube_cli(Commit)