diff --git a/swh/storage/api/client.py b/swh/storage/api/client.py --- a/swh/storage/api/client.py +++ b/swh/storage/api/client.py @@ -98,10 +98,10 @@ def occurrence_add(self, occurrences): return self.post('occurrence/add', {'occurrences': occurrences}) - def snapshot_add(self, origin, visit, snapshot, back_compat=False): + def snapshot_add(self, origin, visit, snapshot): return self.post('snapshot/add', { 'origin': origin, 'visit': visit, 'snapshot': snapshot, - 'back_compat': back_compat}) + }) def snapshot_get(self, snapshot_id): return self.post('snapshot', {'snapshot_id': snapshot_id}) diff --git a/swh/storage/storage.py b/swh/storage/storage.py --- a/swh/storage/storage.py +++ b/swh/storage/storage.py @@ -714,7 +714,7 @@ ) @db_transaction() - def snapshot_add(self, origin, visit, snapshot, back_compat=False, + def snapshot_add(self, origin, visit, snapshot, db=None, cur=None): """Add a snapshot for the given origin/visit couple @@ -736,8 +736,6 @@ - **target** (:class:`bytes`): identifier of the target (currently a ``sha1_git`` for all object kinds, or the name of the target branch for aliases) - back_compat (bool): whether to add the occurrences for - backwards-compatibility """ if not db.snapshot_exists(snapshot['id'], cur): db.mktemp_snapshot_branch(cur) @@ -757,31 +755,6 @@ db.snapshot_add(origin, visit, snapshot['id'], cur) - if not back_compat: - return - - # TODO: drop this compat feature - occurrences = [] - for name, info in snapshot['branches'].items(): - if not info: - target = b'\x00' * 20 - target_type = 'revision' - elif info['target_type'] == 'alias': - continue - else: - target = info['target'] - target_type = info['target_type'] - - occurrences.append({ - 'origin': origin, - 'visit': visit, - 'branch': name, - 'target': target, - 'target_type': target_type, - }) - - self.occurrence_add(occurrences, db=db, cur=cur) - @db_transaction(statement_timeout=2000) def snapshot_get(self, snapshot_id, db=None, cur=None): """Get the snapshot with the given id @@ -971,7 +944,7 @@ data = dict(zip(db.origin_visit_get_cols, line)) yield data - @db_transaction(statement_timeout=2000) + @db_transaction(statement_timeout=500) def origin_visit_get_by(self, origin, visit, db=None, cur=None): """Retrieve origin visit's information. @@ -986,25 +959,7 @@ if not ori_visit: return None - ori_visit = dict(zip(db.origin_visit_get_cols, ori_visit)) - - if ori_visit['snapshot']: - ori_visit['occurrences'] = self.snapshot_get( - ori_visit['snapshot'], db=db, cur=cur)['branches'] - return ori_visit - - # TODO: remove Backwards compatibility after snapshot migration - occs = {} - for occ in db.occurrence_by_origin_visit(origin, visit): - _, branch_name, target, target_type = occ - occs[branch_name] = { - 'target': target, - 'target_type': target_type - } - - ori_visit['occurrences'] = occs - - return ori_visit + return dict(zip(db.origin_visit_get_cols, ori_visit)) @db_transaction_generator(statement_timeout=500) def revision_get_by(self, diff --git a/swh/storage/tests/test_storage.py b/swh/storage/tests/test_storage.py --- a/swh/storage/tests/test_storage.py +++ b/swh/storage/tests/test_storage.py @@ -1480,13 +1480,8 @@ origin_id, ts=self.date_visit2) - occurrence2 = self.occurrence2.copy() - occurrence2.update({ - 'origin': origin_id, - 'visit': origin_visit1['visit'], - }) - - self.storage.occurrence_add([occurrence2]) + self.storage.snapshot_add(origin_id, origin_visit1['visit'], + self.snapshot) # Add some other {origin, visit} entries self.storage.origin_visit_add(origin_id, ts=self.date_visit3) @@ -1509,13 +1504,7 @@ 'date': self.date_visit2, 'metadata': visit1_metadata, 'status': 'full', - 'occurrences': { - occurrence2['branch']: { - 'target': occurrence2['target'], - 'target_type': occurrence2['target_type'], - } - }, - 'snapshot': None, + 'snapshot': self.snapshot['id'], }) # when @@ -1668,11 +1657,9 @@ by_ov = self.storage.snapshot_get_by_origin_visit(origin_id, visit_id) self.assertEqual(by_ov, self.snapshot) - # retrocompat test origin_visit_info = self.storage.origin_visit_get_by(origin_id, visit_id) - self.assertEqual(origin_visit_info['occurrences'], - self.snapshot['branches']) + self.assertEqual(origin_visit_info['snapshot'], self.snapshot['id']) @istest def snapshot_add_twice(self): @@ -1710,70 +1697,6 @@ self.assertIsNone(by_ov) @istest - def snapshot_get_retrocompat(self): - empty_retro_snapshot = { - 'id': None, - 'branches': {}, - } - origin_id = self.storage.origin_add_one(self.origin) - origin_visit1 = self.storage.origin_visit_add(origin_id, - self.date_visit1) - visit_id = origin_visit1['visit'] - - by_ov = self.storage.snapshot_get_by_origin_visit(origin_id, visit_id) - - self.assertEqual(by_ov, empty_retro_snapshot) - - self.storage.revision_add([self.revision]) - self.storage.occurrence_add([{ - 'origin': origin_id, - 'visit': visit_id, - 'branch': self.occurrence['branch'], - 'target': self.occurrence['target'], - 'target_type': self.occurrence['target_type'], - }]) - - one_branch_retro_snapshot = { - 'id': None, - 'branches': { - self.occurrence['branch']: { - 'target': self.occurrence['target'], - 'target_type': self.occurrence['target_type'], - }, - }, - } - - by_ov = self.storage.snapshot_get_by_origin_visit(origin_id, visit_id) - self.assertEqual(by_ov, one_branch_retro_snapshot) - - @istest - def snapshot_add_back_compat(self): - origin_id = self.storage.origin_add_one(self.origin) - origin_visit1 = self.storage.origin_visit_add(origin_id, - self.date_visit1) - visit_id = origin_visit1['visit'] - self.storage.snapshot_add(origin_id, visit_id, self.complete_snapshot, - back_compat=True) - - ov = self.storage.origin_visit_get_by(origin_id, visit_id) - self.assertEquals(ov['occurrences'], - self.complete_snapshot['branches']) - self.assertEquals(ov['snapshot'], - self.complete_snapshot['id']) - - origin_visit2 = self.storage.origin_visit_add(origin_id, - self.date_visit2) - visit_id = origin_visit2['visit'] - self.storage.snapshot_add(origin_id, visit_id, self.complete_snapshot, - back_compat=False) - - ov = self.storage.origin_visit_get_by(origin_id, visit_id) - self.assertEquals(ov['occurrences'], - self.complete_snapshot['branches']) - self.assertEquals(ov['snapshot'], - self.complete_snapshot['id']) - - @istest def snapshot_get_latest(self): origin_id = self.storage.origin_add_one(self.origin) origin_visit1 = self.storage.origin_visit_add(origin_id,