diff --git a/swh/loader/git/base.py b/swh/loader/git/base.py --- a/swh/loader/git/base.py +++ b/swh/loader/git/base.py @@ -3,6 +3,7 @@ # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information +import datetime import logging import traceback import uuid @@ -363,6 +364,12 @@ self.origin_id = self.send_origin(origin) fetch_history_id = self.open_fetch_history() + date_visit = datetime.datetime.now(tz=datetime.timezone.utc) + origin_visit = self.storage.origin_visit_add( + self.origin_id, + date_visit) + self.visit = origin_visit['visit'] + try: self.fetch_data() @@ -383,8 +390,13 @@ self.close_fetch_history_success(fetch_history_id, self.get_fetch_history_result()) + self.storage.origin_visit_update( + self.origin_id, self.visit, status='full') + except: self.close_fetch_history_failure(fetch_history_id) + self.storage.origin_visit_update( + self.origin_id, self.visit, status='partial') raise return self.eventful() diff --git a/swh/loader/git/loader.py b/swh/loader/git/loader.py --- a/swh/loader/git/loader.py +++ b/swh/loader/git/loader.py @@ -101,7 +101,7 @@ """Get the occurrences that need to be loaded""" repo = self.repo origin_id = self.origin_id - fetch_date = self.fetch_date + visit = self.visit for ref, target in repo.refs.as_dict().items(): target_type_name = repo[target].type_name @@ -111,7 +111,7 @@ 'origin': origin_id, 'target': hashutil.bytehex_to_hash(target), 'target_type': target_type, - 'date': fetch_date, + 'visit': visit, } def get_fetch_history_result(self): diff --git a/swh/loader/git/updater.py b/swh/loader/git/updater.py --- a/swh/loader/git/updater.py +++ b/swh/loader/git/updater.py @@ -366,13 +366,16 @@ return bool(self.remote_refs) def get_occurrences(self): + origin_id = self.origin_id + visit = self.visit + ret = [] for ref in self.remote_refs: ret_ref = self.local_refs[ref].copy() ret_ref.update({ 'branch': ref, - 'origin': self.origin_id, - 'date': self.fetch_date, + 'origin': origin_id, + 'visit': visit, }) if not ret_ref['target_type']: target_type = self.id_to_type[ret_ref['target']]