Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2014)

Unified Diff: dashboard/dashboard/pinpoint/models/change/commit.py

Issue 3013683002: [pinpoint] Add a mapping from repository URLs to repository names. (Closed)
Patch Set: /api/gitiles Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: dashboard/dashboard/pinpoint/models/change/commit.py
diff --git a/dashboard/dashboard/pinpoint/models/change/commit.py b/dashboard/dashboard/pinpoint/models/change/commit.py
index f7357279de5c7bc9385e39d07640f0d188d42657..988974e3f33cd72dd9403e8a9fefac1224cd8e49 100644
--- a/dashboard/dashboard/pinpoint/models/change/commit.py
+++ b/dashboard/dashboard/pinpoint/models/change/commit.py
@@ -4,13 +4,10 @@
import collections
-from dashboard.common import namespaced_stored_object
+from dashboard.pinpoint.models.change import repository as repository_module
from dashboard.services import gitiles_service
-_REPOSITORIES_KEY = 'repositories'
-
-
class NonLinearError(Exception):
"""Raised when trying to find the midpoint of Changes that are not linear."""
@@ -30,8 +27,7 @@ class Commit(collections.namedtuple('Commit', ('repository', 'git_hash'))):
@property
def repository_url(self):
"""The HTTPS URL of the repository as passed to `git clone`."""
- repositories = namespaced_stored_object.Get(_REPOSITORIES_KEY)
- return repositories[self.repository]['repository_url']
+ return repository_module.RepositoryUrl(self.repository)
def Deps(self):
"""Return the DEPS of this Commit as a frozenset of Commits."""
@@ -56,10 +52,8 @@ class Commit(collections.namedtuple('Commit', ('repository', 'git_hash'))):
raise NotImplementedError('Unknown DEP format: ' + dep_string)
repository_url, git_hash = dep_string_parts
- try:
- repository = _Repository(repository_url)
- except KeyError:
- repository = _AddRepository(repository_url)
+ repository = repository_module.Repository(repository_url,
+ add_if_missing=True)
commits.append(Commit(repository, git_hash))
return frozenset(commits)
@@ -86,7 +80,7 @@ class Commit(collections.namedtuple('Commit', ('repository', 'git_hash'))):
# Translate repository if it's a URL.
if repository.startswith('https://'):
- repository = _Repository(repository)
+ repository = repository_module.Repository(repository)
commit = cls(repository, data['git_hash'])
@@ -135,32 +129,3 @@ class Commit(collections.namedtuple('Commit', ('repository', 'git_hash'))):
commits.pop(0) # Remove commit_b from the range.
return cls(commit_a.repository, commits[len(commits) / 2]['commit'])
-
-
-def _Repository(repository_url):
- if repository_url.endswith('.git'):
- repository_url = repository_url[:-4]
-
- repositories = namespaced_stored_object.Get(_REPOSITORIES_KEY)
- for repo_label, repo_info in repositories.iteritems():
- if repository_url == repo_info['repository_url']:
- return repo_label
-
- raise KeyError('Unknown repository URL: ' + repository_url)
-
-
-def _AddRepository(repository_url):
- if repository_url.endswith('.git'):
- repository_url = repository_url[:-4]
-
- repositories = namespaced_stored_object.Get(_REPOSITORIES_KEY)
- repository = repository_url.split('/')[-1]
-
- if repository in repositories:
- raise AssertionError("Attempted to add a repository that's already in the "
- 'Datastore: %s: %s' % (repository, repository_url))
-
- repositories[repository] = {'repository_url': repository_url}
- namespaced_stored_object.Set(_REPOSITORIES_KEY, repositories)
-
- return repository

Powered by Google App Engine
This is Rietveld 408576698