Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/storage.py
Show First 20 Lines • Show All 697 Lines • ▼ Show 20 Lines | def directory_add(self, directories, db=None, cur=None): | ||||
- perms (int): entry permissions | - perms (int): entry permissions | ||||
Returns: | Returns: | ||||
Summary dict of keys with associated count as values: | Summary dict of keys with associated count as values: | ||||
directory:add: Number of directories actually added | directory:add: Number of directories actually added | ||||
""" | """ | ||||
directories = list(directories) | |||||
summary = {'directory:add': 0} | summary = {'directory:add': 0} | ||||
dirs = set() | dirs = set() | ||||
dir_entries = { | dir_entries = { | ||||
'file': defaultdict(list), | 'file': defaultdict(list), | ||||
'dir': defaultdict(list), | 'dir': defaultdict(list), | ||||
'rev': defaultdict(list), | 'rev': defaultdict(list), | ||||
} | } | ||||
▲ Show 20 Lines • Show All 155 Lines • ▼ Show 20 Lines | def revision_add(self, revisions, db=None, cur=None): | ||||
date dictionaries have the form defined in :mod:`swh.model`. | date dictionaries have the form defined in :mod:`swh.model`. | ||||
Returns: | Returns: | ||||
Summary dict of keys with associated count as values | Summary dict of keys with associated count as values | ||||
revision:add: New objects actually stored in db | revision:add: New objects actually stored in db | ||||
""" | """ | ||||
revisions = list(revisions) | |||||
summary = {'revision:add': 0} | summary = {'revision:add': 0} | ||||
revisions_missing = set(self.revision_missing( | revisions_missing = set(self.revision_missing( | ||||
set(revision['id'] for revision in revisions), | set(revision['id'] for revision in revisions), | ||||
db=db, cur=cur)) | db=db, cur=cur)) | ||||
if not revisions_missing: | if not revisions_missing: | ||||
return summary | return summary | ||||
▲ Show 20 Lines • Show All 141 Lines • ▼ Show 20 Lines | def release_add(self, releases, db=None, cur=None): | ||||
the date dictionary has the form defined in :mod:`swh.model`. | the date dictionary has the form defined in :mod:`swh.model`. | ||||
Returns: | Returns: | ||||
Summary dict of keys with associated count as values | Summary dict of keys with associated count as values | ||||
release:add: New objects contents actually stored in db | release:add: New objects contents actually stored in db | ||||
""" | """ | ||||
releases = list(releases) | |||||
summary = {'release:add': 0} | summary = {'release:add': 0} | ||||
release_ids = set(release['id'] for release in releases) | release_ids = set(release['id'] for release in releases) | ||||
releases_missing = set(self.release_missing(release_ids, | releases_missing = set(self.release_missing(release_ids, | ||||
db=db, cur=cur)) | db=db, cur=cur)) | ||||
if not releases_missing: | if not releases_missing: | ||||
return summary | return summary | ||||
▲ Show 20 Lines • Show All 798 Lines • ▼ Show 20 Lines | def origin_add(self, origins, db=None, cur=None): | ||||
- type: the origin type ('git', 'svn', 'deb', ...) | - type: the origin type ('git', 'svn', 'deb', ...) | ||||
- url (bytes): the url the origin points to | - url (bytes): the url the origin points to | ||||
Returns: | Returns: | ||||
list: given origins as dict updated with their id | list: given origins as dict updated with their id | ||||
""" | """ | ||||
origins = copy.deepcopy(origins) | origins = copy.deepcopy(list(origins)) | ||||
for origin in origins: | for origin in origins: | ||||
self.origin_add_one(origin, db=db, cur=cur) | self.origin_add_one(origin, db=db, cur=cur) | ||||
send_metric('origin:add', count=len(origins), method_name='origin_add') | send_metric('origin:add', count=len(origins), method_name='origin_add') | ||||
return origins | return origins | ||||
@remote_api_endpoint('origin/add') | @remote_api_endpoint('origin/add') | ||||
@timed | @timed | ||||
▲ Show 20 Lines • Show All 282 Lines • Show Last 20 Lines |