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 @@ -17,6 +17,9 @@ def check_config(self, *, check_write): return self.post('check_config', {'check_write': check_write}) + def reset(self): + return self.post('reset', {}) + def content_add(self, content): return self.post('content/add', {'content': content}) diff --git a/swh/storage/api/server.py b/swh/storage/api/server.py --- a/swh/storage/api/server.py +++ b/swh/storage/api/server.py @@ -135,6 +135,12 @@ return encode_data(get_storage().check_config(**decode_request(request))) +@app.route('/reset', methods=['POST']) +@timed +def reset(): + return encode_data(get_storage().reset(**decode_request(request))) + + @app.route('/content/missing', methods=['POST']) @timed def content_missing(): diff --git a/swh/storage/in_memory.py b/swh/storage/in_memory.py --- a/swh/storage/in_memory.py +++ b/swh/storage/in_memory.py @@ -34,6 +34,14 @@ self._contents = {} self._content_indexes = defaultdict(lambda: defaultdict(set)) + self.reset() + + if journal_writer: + self.journal_writer = get_journal_writer(**journal_writer) + else: + self.journal_writer = None + + def reset(self): self._directories = {} self._revisions = {} self._releases = {} @@ -50,10 +58,6 @@ self._sorted_sha1s = [] self.objstorage = get_objstorage('memory', {}) - if journal_writer: - self.journal_writer = get_journal_writer(**journal_writer) - else: - self.journal_writer = None def check_config(self, *, check_write): """Check that the storage is configured and ready to go."""