diff --git a/swh/storage/fixer.py b/swh/storage/fixer.py --- a/swh/storage/fixer.py +++ b/swh/storage/fixer.py @@ -217,10 +217,7 @@ ... 'snapshot': None, ... })) {'date': datetime.datetime(2020, 2, 27, 14, 39, 19, tzinfo=datetime.timezone.utc), - 'metadata': None, 'origin': 'http://foo', - 'snapshot': None, - 'status': 'ongoing', 'type': 'git'} `visit['type']` is missing , but `origin['visit']['type']` exists: @@ -232,10 +229,7 @@ ... 'snapshot': None, ... })) {'date': datetime.datetime(2020, 2, 27, 14, 39, 19, tzinfo=datetime.timezone.utc), - 'metadata': None, 'origin': 'http://foo', - 'snapshot': None, - 'status': 'ongoing', 'type': 'hg'} >>> pprint(_fix_origin_visit( @@ -245,10 +239,7 @@ ... 'snapshot': None, ... })) {'date': datetime.datetime(2020, 2, 27, 14, 39, 19, tzinfo=datetime.timezone.utc), - 'metadata': None, 'origin': 'http://foo', - 'snapshot': None, - 'status': 'ongoing', 'type': 'hg'} Old visit format (origin_visit with no type) raises: @@ -290,11 +281,12 @@ if isinstance(visit["origin"], dict): # Old version of the schema: visit['origin'] was a dict. visit["origin"] = visit["origin"]["url"] - if "metadata" not in visit: - visit["metadata"] = None date = visit["date"] if isinstance(date, str): visit["date"] = datetime.datetime.fromisoformat(date) + # Those are no longer part of the model + for key in ["status", "snapshot", "metadata"]: + visit.pop(key, None) return visit