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)
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)