Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/storage.py
Show First 20 Lines • Show All 701 Lines • ▼ Show 20 Lines | def snapshot_add(self, snapshots: Iterable[Snapshot], db=None, cur=None) -> Dict: | ||||
} | } | ||||
for name, info in snapshot.branches.items() | for name, info in snapshot.branches.items() | ||||
), | ), | ||||
"tmp_snapshot_branch", | "tmp_snapshot_branch", | ||||
["name", "target", "target_type"], | ["name", "target", "target_type"], | ||||
cur, | cur, | ||||
) | ) | ||||
self.journal_writer.snapshot_add(snapshot) | self.journal_writer.snapshot_add([snapshot]) | ||||
db.snapshot_add(snapshot.id, cur) | db.snapshot_add(snapshot.id, cur) | ||||
count += 1 | count += 1 | ||||
return {"snapshot:add": count} | return {"snapshot:add": count} | ||||
@timed | @timed | ||||
@db_transaction_generator() | @db_transaction_generator() | ||||
▲ Show 20 Lines • Show All 147 Lines • ▼ Show 20 Lines | ) -> OriginVisit: | ||||
visit=visit_id, | visit=visit_id, | ||||
date=date, | date=date, | ||||
status=status, | status=status, | ||||
snapshot=None, | snapshot=None, | ||||
metadata=None, | metadata=None, | ||||
) | ) | ||||
self._origin_visit_status_add(visit_status, db=db, cur=cur) | self._origin_visit_status_add(visit_status, db=db, cur=cur) | ||||
self.journal_writer.origin_visit_add(visit) | self.journal_writer.origin_visit_add([visit]) | ||||
send_metric("origin_visit:add", count=1, method_name="origin_visit") | send_metric("origin_visit:add", count=1, method_name="origin_visit") | ||||
return visit | return visit | ||||
def _origin_visit_status_add( | def _origin_visit_status_add( | ||||
self, origin_visit_status: OriginVisitStatus, db, cur | self, origin_visit_status: OriginVisitStatus, db, cur | ||||
) -> None: | ) -> None: | ||||
"""Add an origin visit status""" | """Add an origin visit status""" | ||||
Show All 34 Lines | ): | ||||
if metadata and metadata != visit["metadata"]: | if metadata and metadata != visit["metadata"]: | ||||
updates["metadata"] = metadata | updates["metadata"] = metadata | ||||
if snapshot and snapshot != visit["snapshot"]: | if snapshot and snapshot != visit["snapshot"]: | ||||
updates["snapshot"] = snapshot | updates["snapshot"] = snapshot | ||||
if updates: | if updates: | ||||
with convert_validation_exceptions(): | with convert_validation_exceptions(): | ||||
updated_visit = OriginVisit.from_dict({**visit, **updates}) | updated_visit = OriginVisit.from_dict({**visit, **updates}) | ||||
self.journal_writer.origin_visit_update(updated_visit) | self.journal_writer.origin_visit_update([updated_visit]) | ||||
# Write updates to origin visit (backward compatibility) | # Write updates to origin visit (backward compatibility) | ||||
db.origin_visit_update(origin, visit_id, updates) | db.origin_visit_update(origin, visit_id, updates) | ||||
# Add new origin visit status | # Add new origin visit status | ||||
last_visit_status = self._origin_visit_get_updated( | last_visit_status = self._origin_visit_get_updated( | ||||
origin, visit_id, db=db, cur=cur | origin, visit_id, db=db, cur=cur | ||||
) | ) | ||||
▲ Show 20 Lines • Show All 263 Lines • ▼ Show 20 Lines | |||||
@timed | @timed | ||||
@db_transaction() | @db_transaction() | ||||
def origin_add_one(self, origin: Origin, db=None, cur=None) -> str: | def origin_add_one(self, origin: Origin, db=None, cur=None) -> str: | ||||
origin_row = list(db.origin_get_by_url([origin.url], cur))[0] | origin_row = list(db.origin_get_by_url([origin.url], cur))[0] | ||||
origin_url = dict(zip(db.origin_cols, origin_row))["url"] | origin_url = dict(zip(db.origin_cols, origin_row))["url"] | ||||
if origin_url: | if origin_url: | ||||
return origin_url | return origin_url | ||||
self.journal_writer.origin_add_one(origin) | self.journal_writer.origin_add([origin]) | ||||
url = db.origin_add(origin.url, cur) | url = db.origin_add(origin.url, cur) | ||||
send_metric("origin:add", count=1, method_name="origin_add_one") | send_metric("origin:add", count=1, method_name="origin_add_one") | ||||
return url | return url | ||||
@db_transaction(statement_timeout=500) | @db_transaction(statement_timeout=500) | ||||
def stat_counters(self, db=None, cur=None): | def stat_counters(self, db=None, cur=None): | ||||
return {k: v for (k, v) in db.stat_counters()} | return {k: v for (k, v) in db.stat_counters()} | ||||
▲ Show 20 Lines • Show All 112 Lines • Show Last 20 Lines |