diff --git a/swh/deposit/client/__init__.py b/swh/deposit/client/__init__.py --- a/swh/deposit/client/__init__.py +++ b/swh/deposit/client/__init__.py @@ -168,7 +168,7 @@ raise ValueError(msg) def status_update(self, update_status_url, status, - revision_id=None, directory_id=None): + revision_id=None, directory_id=None, origin_url=None): """Update the deposit's status. Args: @@ -176,6 +176,7 @@ status (str): The status to update the deposit with revision_id (str/None): the revision's identifier to update to directory_id (str/None): the directory's identifier to update to + origin_url (str/None): deposit's associated origin url """ payload = {'status': status} @@ -183,6 +184,8 @@ payload['revision_id'] = revision_id if directory_id: payload['directory_id'] = directory_id + if origin_url: + payload['origin_url'] = origin_url self.do('put', update_status_url, json=payload) diff --git a/swh/deposit/loader/loader.py b/swh/deposit/loader/loader.py --- a/swh/deposit/loader/loader.py +++ b/swh/deposit/loader/loader.py @@ -116,16 +116,19 @@ rev = revisions[rev_id] if rev_id: rev_id = hashutil.hash_to_hex(rev_id) + dir_id = rev['directory'] if dir_id: dir_id = hashutil.hash_to_hex(dir_id) # update the deposit's status to success with its # revision-id and directory-id - self.client.status_update(self.deposit_update_url, - status='done', - revision_id=rev_id, - directory_id=dir_id) + self.client.status_update( + self.deposit_update_url, + status='done', + revision_id=rev_id, + directory_id=dir_id, + origin_url=self.origin['url']) except Exception: self.log.exception( 'Problem when trying to update the deposit\'s status') diff --git a/swh/deposit/tests/loader/common.py b/swh/deposit/tests/loader/common.py --- a/swh/deposit/tests/loader/common.py +++ b/swh/deposit/tests/loader/common.py @@ -36,12 +36,14 @@ return json.loads(r.content.decode('utf-8')) def status_update(self, update_status_url, status, - revision_id=None, directory_id=None): + revision_id=None, directory_id=None, origin_url=None): payload = {'status': status} if revision_id: payload['revision_id'] = revision_id if directory_id: payload['directory_id'] = directory_id + if origin_url: + payload['origin_url'] = origin_url self.client.put(update_status_url, content_type='application/json', data=json.dumps(payload))