Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/storage.py
Show First 20 Lines • Show All 605 Lines • ▼ Show 20 Lines | def content_find(self, content, db=None, cur=None): | ||||
contents = db.content_find(sha1=content.get('sha1'), | contents = db.content_find(sha1=content.get('sha1'), | ||||
sha1_git=content.get('sha1_git'), | sha1_git=content.get('sha1_git'), | ||||
sha256=content.get('sha256'), | sha256=content.get('sha256'), | ||||
blake2s256=content.get('blake2s256'), | blake2s256=content.get('blake2s256'), | ||||
cur=cur) | cur=cur) | ||||
return [dict(zip(db.content_find_cols, content)) | return [dict(zip(db.content_find_cols, content)) | ||||
for content in contents] | for content in contents] | ||||
@remote_api_endpoint('content/get_random') | |||||
@timed | |||||
@db_transaction() | |||||
def content_get_random(self, db=None, cur=None): | |||||
"""Finds a random content id. | |||||
Returns: | |||||
a sha1_git | |||||
""" | |||||
return db.content_get_random(cur) | |||||
@remote_api_endpoint('directory/add') | @remote_api_endpoint('directory/add') | ||||
@timed | @timed | ||||
@process_metrics | @process_metrics | ||||
@db_transaction() | @db_transaction() | ||||
def directory_add(self, directories, db=None, cur=None): | def directory_add(self, directories, db=None, cur=None): | ||||
"""Add directories to the storage | """Add directories to the storage | ||||
Args: | Args: | ||||
▲ Show 20 Lines • Show All 132 Lines • ▼ Show 20 Lines | def directory_entry_get_by_path(self, directory, paths, db=None, cur=None): | ||||
Returns: | Returns: | ||||
The corresponding directory entry if found, None otherwise. | The corresponding directory entry if found, None otherwise. | ||||
""" | """ | ||||
res = db.directory_entry_get_by_path(directory, paths, cur) | res = db.directory_entry_get_by_path(directory, paths, cur) | ||||
if res: | if res: | ||||
return dict(zip(db.directory_ls_cols, res)) | return dict(zip(db.directory_ls_cols, res)) | ||||
@remote_api_endpoint('directory/get_random') | |||||
@timed | |||||
@db_transaction() | |||||
def directory_get_random(self, db=None, cur=None): | |||||
"""Finds a random directory id. | |||||
Returns: | |||||
a sha1_git | |||||
""" | |||||
return db.directory_get_random(cur) | |||||
@remote_api_endpoint('revision/add') | @remote_api_endpoint('revision/add') | ||||
@timed | @timed | ||||
@process_metrics | @process_metrics | ||||
@db_transaction() | @db_transaction() | ||||
def revision_add(self, revisions, db=None, cur=None): | def revision_add(self, revisions, db=None, cur=None): | ||||
"""Add revisions to the storage | """Add revisions to the storage | ||||
Args: | Args: | ||||
▲ Show 20 Lines • Show All 141 Lines • ▼ Show 20 Lines | def revision_shortlog(self, revisions, limit=None, db=None, cur=None): | ||||
Yields: | Yields: | ||||
a list of (id, parents) tuples. | a list of (id, parents) tuples. | ||||
""" | """ | ||||
yield from db.revision_shortlog(revisions, limit, cur) | yield from db.revision_shortlog(revisions, limit, cur) | ||||
@remote_api_endpoint('revision/get_random') | |||||
@timed | |||||
@db_transaction() | |||||
def revision_get_random(self, db=None, cur=None): | |||||
"""Finds a random revision id. | |||||
Returns: | |||||
a sha1_git | |||||
""" | |||||
return db.revision_get_random(cur) | |||||
@remote_api_endpoint('release/add') | @remote_api_endpoint('release/add') | ||||
@timed | @timed | ||||
@process_metrics | @process_metrics | ||||
@db_transaction() | @db_transaction() | ||||
def release_add(self, releases, db=None, cur=None): | def release_add(self, releases, db=None, cur=None): | ||||
"""Add releases to the storage | """Add releases to the storage | ||||
Args: | Args: | ||||
▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | def release_get(self, releases, db=None, cur=None): | ||||
""" | """ | ||||
for release in db.release_get_from_list(releases, cur): | for release in db.release_get_from_list(releases, cur): | ||||
data = converters.db_to_release( | data = converters.db_to_release( | ||||
dict(zip(db.release_get_cols, release)) | dict(zip(db.release_get_cols, release)) | ||||
) | ) | ||||
yield data if data['target_type'] else None | yield data if data['target_type'] else None | ||||
@remote_api_endpoint('release/get_random') | |||||
@timed | |||||
@db_transaction() | |||||
def release_get_random(self, db=None, cur=None): | |||||
"""Finds a random release id. | |||||
Returns: | |||||
a sha1_git | |||||
""" | |||||
return db.release_get_random(cur) | |||||
@remote_api_endpoint('snapshot/add') | @remote_api_endpoint('snapshot/add') | ||||
@timed | @timed | ||||
@process_metrics | @process_metrics | ||||
@db_transaction() | @db_transaction() | ||||
def snapshot_add(self, snapshots, db=None, cur=None): | def snapshot_add(self, snapshots, db=None, cur=None): | ||||
"""Add snapshots to the storage. | """Add snapshots to the storage. | ||||
Args: | Args: | ||||
▲ Show 20 Lines • Show All 245 Lines • ▼ Show 20 Lines | def snapshot_get_branches(self, snapshot_id, branches_from=b'', | ||||
return { | return { | ||||
'id': snapshot_id, | 'id': snapshot_id, | ||||
'branches': branches, | 'branches': branches, | ||||
'next_branch': next_branch, | 'next_branch': next_branch, | ||||
} | } | ||||
return None | return None | ||||
@remote_api_endpoint('snapshot/get_random') | |||||
@timed | |||||
@db_transaction() | |||||
def snapshot_get_random(self, db=None, cur=None): | |||||
"""Finds a random snapshot id. | |||||
Returns: | |||||
a sha1_git | |||||
""" | |||||
return db.snapshot_get_random(cur) | |||||
@remote_api_endpoint('origin/visit/add') | @remote_api_endpoint('origin/visit/add') | ||||
@timed | @timed | ||||
@db_transaction() | @db_transaction() | ||||
def origin_visit_add(self, origin, date, type, | def origin_visit_add(self, origin, date, type, | ||||
db=None, cur=None): | db=None, cur=None): | ||||
"""Add an origin_visit for the origin at ts with status 'ongoing'. | """Add an origin_visit for the origin at ts with status 'ongoing'. | ||||
Args: | Args: | ||||
▲ Show 20 Lines • Show All 707 Lines • Show Last 20 Lines |