cc29708 | Antoine Lambert | 16 January 2020, 16:16:09 UTC | storage: Fix objects loading when using generator parameters Some objects (directories, origins, releases, revisions) will not be added into the storage if they are provided as generator parameters to the *_add methods instead of lists. So ensure to transform generators into lists before processing the objects. | 16 January 2020, 16:53:22 UTC |
8dcac2b | Antoine R. Dumont (@ardumont) | 14 January 2020, 12:40:56 UTC | retry: Implement content_add_metadata endpoint with retry policy | 14 January 2020, 12:45:11 UTC |
aa588c9 | Antoine R. Dumont (@ardumont) | 14 January 2020, 12:40:39 UTC | retry: Migrate to tenacity Which is a maintained fork of retry | 14 January 2020, 12:40:39 UTC |
4aa4d79 | Antoine R. Dumont (@ardumont) | 11 January 2020, 11:05:57 UTC | test_retry: Improve and align consistently assertion checks | 14 January 2020, 10:41:35 UTC |
2b7d770 | Antoine R. Dumont (@ardumont) | 11 January 2020, 10:56:04 UTC | storage.retry: Implement snapshot_add with retry policy | 14 January 2020, 10:41:35 UTC |
df3f33f | Antoine R. Dumont (@ardumont) | 11 January 2020, 10:47:57 UTC | storage.retry: Implement release_add with retry policy | 14 January 2020, 10:41:35 UTC |
54890f7 | Antoine R. Dumont (@ardumont) | 11 January 2020, 10:44:20 UTC | storage.retry: Implement revision_add with retry policy | 14 January 2020, 10:41:35 UTC |
a8efa95 | Antoine R. Dumont (@ardumont) | 11 January 2020, 10:38:48 UTC | storage.retry: Implement directory_add with retry policy | 14 January 2020, 10:41:34 UTC |
dddb6d9 | Antoine R. Dumont (@ardumont) | 11 January 2020, 10:37:41 UTC | in_memory: Make directory_get_random return None when storage empty | 14 January 2020, 10:41:34 UTC |
2dd578c | Antoine R. Dumont (@ardumont) | 11 January 2020, 10:25:31 UTC | storage.retry: Implement origin_visit_update with retry policy | 14 January 2020, 10:41:34 UTC |
32c460c | Antoine R. Dumont (@ardumont) | 11 January 2020, 10:05:13 UTC | storage.retry: Implement origin_metadata_add endpoint with retry policy | 14 January 2020, 10:41:34 UTC |
3cf7adb | Antoine R. Dumont (@ardumont) | 10 January 2020, 17:10:03 UTC | storage.retry: Implement metadata_provider_add endpoint with retry policy | 14 January 2020, 10:41:34 UTC |
08f2f38 | Antoine R. Dumont (@ardumont) | 10 January 2020, 15:48:11 UTC | storage.retry: Implement tool_add endpoint with retry policy | 14 January 2020, 10:41:34 UTC |
fe6440e | Antoine R. Dumont (@ardumont) | 10 January 2020, 15:37:24 UTC | storage.retry: Implement origin_visit_add endpoint with retry policy | 14 January 2020, 10:41:34 UTC |
351b977 | Antoine R. Dumont (@ardumont) | 10 January 2020, 14:59:52 UTC | storage.retry: Implement origin_add_one endpoint with retry policy | 14 January 2020, 10:41:34 UTC |
024eaea | Antoine R. Dumont (@ardumont) | 13 January 2020, 15:14:50 UTC | content_get_metadata: Change api to return Dict[bytes, List[Dict]] Clients will be able to introspect directly from the result whether a content is known or not. | 14 January 2020, 10:38:20 UTC |
07b6dc3 | Antoine R. Dumont (@ardumont) | 13 January 2020, 14:18:55 UTC | storage.content_get_metadata: Adapt to return nothing if inexistent id is passed as input | 13 January 2020, 14:18:55 UTC |
4837f46 | Antoine R. Dumont (@ardumont) | 09 January 2020, 16:17:30 UTC | storage: Add basic proxy storage with retry policy | 10 January 2020, 13:40:01 UTC |
fdf2a3c | Valentin Lorentz | 22 November 2019, 15:09:55 UTC | Add Storage.content_get_partition endpoint, to replace content_get_range. With no guarantees on the order or how partitioning is done, and with the new-style pagination. | 17 December 2019, 12:59:09 UTC |
0f94312 | Valentin Lorentz | 21 November 2019, 13:28:43 UTC | Add endpoint 'origin_list', that will replace 'origin_get_range'. And uses the new pagination scheme, instead of origin ids. | 16 December 2019, 14:17:21 UTC |
295144f | Valentin Lorentz | 13 December 2019, 13:06:12 UTC | Add {content,directory,revision,release,snapshot}_get_random. Will be used to pick random objects to use them in Icinga checks. | 16 December 2019, 12:38:13 UTC |
fe6ac8f | Valentin Lorentz | 12 December 2019, 18:09:01 UTC | Move origin_visit_get_random to the right place in the code and fix its docstring. | 16 December 2019, 12:37:10 UTC |
31b2fc5 | Valentin Lorentz | 12 December 2019, 18:01:38 UTC | Deduplicate server code and move metric handling to storage.py | 16 December 2019, 12:33:31 UTC |
869100b | Valentin Lorentz | 12 December 2019, 17:16:24 UTC | Deduplicate client code. | 12 December 2019, 17:26:14 UTC |
bd2a196 | Antoine R. Dumont (@ardumont) | 10 December 2019, 13:34:11 UTC | storage: Make origin_get_random simpler and faster | 10 December 2019, 13:34:11 UTC |
b440d3a | Antoine R. Dumont (@ardumont) | 09 December 2019, 12:43:53 UTC | storage: Prefer sample query on origin_visit The counter table is faster but may contain holes and be less up-to-date. | 09 December 2019, 12:51:08 UTC |
a2401b5 | Antoine R. Dumont (@ardumont) | 06 December 2019, 11:48:55 UTC | storage: Add endpoint to randomly pick an origin Related to T2120 | 09 December 2019, 12:46:13 UTC |
3855b6e | Antoine R. Dumont (@ardumont) | 09 December 2019, 12:40:57 UTC | tox.ini: Add a py3-dev environment | 09 December 2019, 12:46:13 UTC |
bee73be | Antoine R. Dumont (@ardumont) | 06 December 2019, 10:11:52 UTC | storage.buffer: Buffer release objects as well | 06 December 2019, 10:11:52 UTC |
382e500 | Antoine R. Dumont (@ardumont) | 06 December 2019, 10:11:25 UTC | storage.tests: Unify tests sample data | 06 December 2019, 10:11:25 UTC |
27281e8 | Antoine Lambert | 26 November 2019, 14:21:02 UTC | Makefile.local: Fix test target execution Explicitly pass tests folder as paramter when invoking pytest in order for the hypothesis profiles to be found. | 26 November 2019, 14:22:36 UTC |
2cac339 | Nicolas Dandrimont | 22 November 2019, 17:27:52 UTC | Implement origin lookup by sha1 Close T2045. | 25 November 2019, 14:18:44 UTC |
0fcb8bc | Valentin Lorentz | 22 November 2019, 15:08:37 UTC | Get rid of warnings about the 'args' argument to get_storage. | 22 November 2019, 15:08:37 UTC |
c294b73 | Valentin Lorentz | 22 November 2019, 12:23:54 UTC | Remove/fix wrong comments. | 22 November 2019, 12:23:54 UTC |
a3fd826 | Nicolas Dandrimont | 21 November 2019, 13:10:29 UTC | Migrate tox.ini to extras = xxx instead of deps = .[testing] | 21 November 2019, 13:10:29 UTC |
1594e25 | Nicolas Dandrimont | 21 November 2019, 13:07:08 UTC | Drop unused listener extra | 21 November 2019, 13:07:08 UTC |
df4df8b | Nicolas Dandrimont | 21 November 2019, 13:06:55 UTC | Merge tox test environment configurations | 21 November 2019, 13:06:55 UTC |
06bd050 | Valentin Lorentz | 21 November 2019, 12:38:03 UTC | Deduplicate code of test_origin_get_range. | 21 November 2019, 12:38:03 UTC |
29eb548 | David Douard | 20 November 2019, 10:18:57 UTC | Fix a few typos reported by codespell | 21 November 2019, 12:16:51 UTC |
bc0e81c | David Douard | 20 November 2019, 10:17:40 UTC | pre-commit: explicitely whitelist 'iff' when running codespell | 21 November 2019, 12:16:51 UTC |
1472c8e | David Douard | 20 November 2019, 10:00:57 UTC | fix trailing ws reported by pre-commit | 21 November 2019, 12:16:51 UTC |
264cd33 | David Douard | 20 November 2019, 09:27:42 UTC | Add a pre-commit-hooks.yaml config file | 21 November 2019, 12:16:51 UTC |
a97db93 | David Douard | 20 November 2019, 10:25:51 UTC | Fix swh-storage-add-dir to please mypy, at least. | 21 November 2019, 10:19:43 UTC |
c787808 | David Douard | 20 November 2019, 10:19:26 UTC | Remove utils/(dump|fix)_revisions scripts these are now deprecated. | 21 November 2019, 10:19:43 UTC |
b337b4a | Valentin Lorentz | 14 November 2019, 13:16:49 UTC | Add 'pipeline' storage "class" for more readable configurations. This would allow writing configurations like: ``` storage: cls: pipeline steps: - cls: filter - cls: buffer - cls: remote url: http://swh-storage:5002/ ``` or ``` storage: cls: filter storage: cls: buffer storage: cls: remote url: http://swh-storage:5002/ ``` instead of: ``` storage: cls: filter args: storage: cls: buffer args: storage: cls: remote args: url: http://swh-storage:5002/ ``` | 19 November 2019, 03:16:39 UTC |
ea9aa47 | David Douard | 18 November 2019, 10:16:18 UTC | and not only for an existing origin visit. This is needed in situations where the snapshot table is not in sync with the origin_visit one; typically occurs on mirrors. Also add tests for with_visit argument. | 18 November 2019, 12:28:45 UTC |
e296dfb | Antoine R. Dumont (@ardumont) | 14 November 2019, 09:26:41 UTC | swh.storage.schemata: Drop schemata from storage As this got migrated back to the swh.lister module | 14 November 2019, 09:26:41 UTC |
bb5d405 | Nicolas Dandrimont | 12 November 2019, 18:55:33 UTC | Add minimal test coverage for swh.storage.schemata | 13 November 2019, 12:08:27 UTC |
d788677 | Nicolas Dandrimont | 12 November 2019, 18:08:47 UTC | Fix bogus NotImplementedError on Area.index_uris This would raise when the iteration terminates even though the uris were generated. | 12 November 2019, 18:08:47 UTC |
d4540ed | Valentin Lorentz | 30 October 2019, 13:35:09 UTC | Make visit['origin'] a string everywhere (instead of a dict). | 30 October 2019, 14:08:29 UTC |
0606791 | Valentin Lorentz | 25 October 2019, 11:03:26 UTC | Stop supporting origin ids in API (except in origin_get_range). | 30 October 2019, 13:13:40 UTC |
4ff544a | David Douard | 18 October 2019, 13:40:01 UTC | tests: delete (now useless) storage_testing.py file | 30 October 2019, 09:25:17 UTC |
2a6bf45 | David Douard | 28 October 2019, 10:57:52 UTC | conftest: make it possible to configure SQL dump files used by SwhDatabaseJanitor so one can use the postgresql_fact fixture factory for other tests than Storage ones (eg. for swh-indexer storage tests). | 30 October 2019, 09:06:57 UTC |
e2402e0 | David Douard | 29 October 2019, 09:10:52 UTC | conftest: do not use hypothesis to generate origins and contents using gen_origins and gen_contents helper functions from swh.model for the Storage under test. This is required because 1/ it was a non-conventional use of hypothesis, and 2/ since hypotesis 4.42, tests using hypothesis-generated origins and contents are broken. Also increase default origins generated size to 100. | 30 October 2019, 08:58:10 UTC |
35bdea8 | David Douard | 29 October 2019, 15:14:57 UTC | make in_memory Storage compatible with frozen model entities since attr based model entities are now frozen in swh.model 0.0.50 | 29 October 2019, 15:17:12 UTC |
28818ab | Nicolas Dandrimont | 23 October 2019, 08:46:07 UTC | Remove origin['type'] This is now superseded by origin_visit['type'] | 23 October 2019, 11:08:48 UTC |
655d2ae | Nicolas Dandrimont | 23 October 2019, 08:44:42 UTC | Add missing files to MANIFEST.in | 23 October 2019, 11:08:48 UTC |
1ab9d64 | Nicolas Dandrimont | 23 October 2019, 08:44:11 UTC | Move hypothesis strategy definitions to swh/storage/tests/conftest.py | 23 October 2019, 11:08:48 UTC |
f68f4c3 | Nicolas Dandrimont | 17 October 2019, 12:42:35 UTC | Replace unwanted data.originX['type'] in tests | 23 October 2019, 11:08:48 UTC |
578d2c6 | Nicolas Dandrimont | 23 October 2019, 08:48:55 UTC | Use a wildcard to get the list of SQL files | 23 October 2019, 11:08:48 UTC |
484cebb | Antoine R. Dumont (@ardumont) | 14 October 2019, 12:56:20 UTC | schemata: Send only origin url for scheduling debian loader task Related D2135 | 17 October 2019, 15:53:53 UTC |
9984111 | Nicolas Dandrimont | 17 October 2019, 12:23:38 UTC | Remove origin_visit_add fallback for type=None This prepares the removal of the type column from the origin table | 17 October 2019, 13:45:10 UTC |
6d98503 | Nicolas Dandrimont | 17 October 2019, 12:21:20 UTC | Always use explicit visit type in origin_visit_add | 17 October 2019, 13:44:15 UTC |
6781be1 | Nicolas Dandrimont | 17 October 2019, 12:19:30 UTC | Remove useless origin visits from snapshot-only tests | 17 October 2019, 13:44:15 UTC |
d165c09 | Nicolas Dandrimont | 17 October 2019, 11:37:43 UTC | Remove now-useless triggers | 17 October 2019, 13:44:15 UTC |
74a6437 | Antoine R. Dumont (@ardumont) | 17 October 2019, 12:45:19 UTC | requirements-test: Set pytest-postgresql dependencies version | 17 October 2019, 13:25:27 UTC |
fbdad1c | Valentin Lorentz | 17 October 2019, 12:49:39 UTC | Remove fetch_history. It is not used anymore. | 17 October 2019, 12:59:45 UTC |
84bcfb3 | Antoine R. Dumont (@ardumont) | 17 October 2019, 11:38:35 UTC | tests: Move sample_data fixture to swh/storage/tests/conftest.py | 17 October 2019, 11:41:46 UTC |
3bb46f6 | David Douard | 08 October 2019, 13:39:11 UTC | test_storage: kill StorageTestDbFixture class it's not used any more. | 14 October 2019, 12:32:57 UTC |
dbea02c | David Douard | 10 October 2019, 15:30:36 UTC | test_api_client: refactor the code for new pytest based infra This uses the latest pytest fixtures added in swh.core to define a swh_storage fixture that setup a RPC client/server stack to execute tests defined in classes TestStorage and TestStorageGeneratedData (from swh.storage.tests.test_storage). | 14 October 2019, 12:32:57 UTC |
8003db6 | David Douard | 10 October 2019, 15:29:35 UTC | api: add (missing) refresh_stat_counters() endpoint so we do not need special cases in tests, at least. | 14 October 2019, 12:32:57 UTC |
8a9cfeb | David Douard | 14 October 2019, 08:50:46 UTC | tests/algos: rewrite test_snapshot with pytest | 14 October 2019, 12:32:57 UTC |
cadafef | David Douard | 08 October 2019, 14:10:18 UTC | in_memory: fix handling of 'hidden' content in InMemoryStorage and update tests This defines a local swh_storage fixture that uses an InMemoryStorage to execute tests defined in classes TestStorage and TestStorageGeneratedData (from swh.storage.tests.test_storage). Adapt tests for the InMemoryStorage to new storage test infra. | 14 October 2019, 12:32:14 UTC |
8529e7b | David Douard | 08 October 2019, 14:08:58 UTC | test_storage: rename TestStorageCommonProp as TestStorageGeneratedData somehow a bit clearer, maybe. Also adapt test_in_memory.py and test_api_client.py with this rename even if these tests are xfailed for now to prevent ImportError when running the whole test suite. | 14 October 2019, 12:14:08 UTC |
743f915 | David Douard | 08 October 2019, 14:06:58 UTC | test_storage: make test_origin_metadata_get more robust Nothing garantees us that Storage.origin_metadata_get_by() result is sorted, so don't expect it is. | 14 October 2019, 12:14:08 UTC |
204b9fa | David Douard | 08 October 2019, 13:40:03 UTC | test_storage: move db specific methods from main TestStorage to TestPgStorage which is actually TestAlteringSchema that have been renamed to be a bit more meaningful. | 14 October 2019, 12:14:08 UTC |
9f12202 | David Douard | 14 October 2019, 08:45:13 UTC | conftest: use an in memory obj storage | 14 October 2019, 12:14:08 UTC |
fb70f88 | David Douard | 30 September 2019, 10:14:47 UTC | tests: refactor main storage tests - use pytest instead of unittest.TestCase plumbing - extract data from the TestStorageData into a data `storage_data` module; this module also provide a simple helper `StorageData` class that mimics the original class (access by attributes), - implement a series of pytest fixtures for these storage specific tests, - get rid of most hypothesis-based tests, - replace usage of the use_url hypothesis boolean statetgy by pytest.mark.parametrize fixtures; this allows to prevent from the need of resetting the storage, since tests are truly executed twice (thus with a new swh_storage), - refactor test_db to use pytest-postgresql. Disable (xfail) tests from test_snapshot.py, test_api_client and test_in_memory for now. Fixes/refactorings come with following revisions. | 14 October 2019, 12:14:08 UTC |
62aff76 | Antoine R. Dumont (@ardumont) | 09 October 2019, 21:01:09 UTC | Remove indirection swh.storage.api.wsgi to start server | 09 October 2019, 21:01:09 UTC |
654a37e | Antoine R. Dumont (@ardumont) | 09 October 2019, 13:28:51 UTC | tox.ini: Fix py3 environment to use packaged tests Related D2082 | 09 October 2019, 13:28:51 UTC |
03d5a2c | Antoine R. Dumont (@ardumont) | 08 October 2019, 12:13:14 UTC | swh.storage.buffer: Add buffering proxy storage implementation Related T1389 | 08 October 2019, 14:40:51 UTC |
c83f1f9 | Antoine R. Dumont (@ardumont) | 08 October 2019, 12:09:23 UTC | swh.storage.filter: Add filtering storage implementation Also add a sample_data fixture to read default test data from. Related T1389 | 08 October 2019, 14:12:49 UTC |
02b25f0 | Antoine R. Dumont (@ardumont) | 08 October 2019, 12:07:54 UTC | swh.storage: Test get_storage implementation | 08 October 2019, 14:09:56 UTC |
3228b18 | Nicolas Dandrimont | 02 October 2019, 15:21:07 UTC | test_storage: Use the db_transaction context manager instead of raw connections This minimizes the risk of dangling db connections, which in turn reduces the chance of cascading test failures. | 02 October 2019, 15:21:07 UTC |
4c2c311 | Nicolas Dandrimont | 02 October 2019, 15:19:04 UTC | test_storage: introduce a db_transaction context manager This wraps the steps needed to get a (properly wrapped) db object and run a transaction on it so we avoid repeating ourselves | 02 October 2019, 15:20:54 UTC |
9bbd5e2 | Nicolas Dandrimont | 02 October 2019, 15:04:31 UTC | Postgres storage: introduce a db() context manager This helper avoids us repeating the get_db/put_db pattern all the time. | 02 October 2019, 15:13:41 UTC |
e8c01a2 | Nicolas Dandrimont | 02 October 2019, 11:51:05 UTC | Replace all 'inmemory' journal writers with 'memory' | 02 October 2019, 15:13:41 UTC |
24ea71f | Nicolas Dandrimont | 02 October 2019, 15:07:43 UTC | test_storage: Close all pool connections on teardown This avoids having a race condition between the tear down and the database removal, when using more than one connection in the pool. | 02 October 2019, 15:13:41 UTC |
c1ce3a1 | Nicolas Dandrimont | 12 April 2019, 14:15:31 UTC | Add test triggering the race condition in content_add This minimal example triggers T2019 | 01 October 2019, 15:59:05 UTC |
70b15c1 | Antoine Pietri | 01 October 2019, 07:41:04 UTC | api server: missing </body> | 01 October 2019, 07:42:00 UTC |
7c92c33 | Stefano Zacchiroli | 28 September 2019, 11:24:21 UTC | tox: anticipate mypy run to just after flake8 | 01 October 2019, 06:25:21 UTC |
4901259 | Stefano Zacchiroli | 28 September 2019, 11:19:53 UTC | mypy.ini: be less flaky w.r.t. the packages installed in tox in particular, ignore django.* (only indirectly shipped by hypothesis) and allow unused type: ignore (on swh.journal) | 01 October 2019, 06:25:21 UTC |
d8fa30b | Stefano Zacchiroli | 28 September 2019, 10:42:34 UTC | storage.py: ignore typing of optional get_journal_writer import the real type is Optional[Callable[..., Any]], but redefinitions of imported stuff in try..except is currently not supported by mypy, see https://github.com/python/mypy/issues/1153 | 01 October 2019, 06:25:21 UTC |
976aab3 | Stefano Zacchiroli | 27 September 2019, 12:08:48 UTC | mypy: ignore swh.journal to work-around dependency loop | 01 October 2019, 06:25:21 UTC |
ef7d2ef | Stefano Zacchiroli | 27 September 2019, 08:37:04 UTC | init.py: switch to documented way of extending path make mypy 0.730 pass cleanly again | 01 October 2019, 06:25:21 UTC |
395e85d | Stefano Zacchiroli | 21 September 2019, 19:15:02 UTC | typing: minimal changes to make a no-op mypy run pass | 01 October 2019, 06:25:21 UTC |
cbc47c4 | Valentin Lorentz | 24 September 2019, 13:13:04 UTC | Write objects to the journal only if they don't exist yet. * spares some bandwidth/processing time * aligns {content,directory,release,revision}_add on what {snapshot,origin}_add already does | 30 September 2019, 10:05:02 UTC |
e239324 | Valentin Lorentz | 30 September 2019, 09:14:23 UTC | Use origin URLs for skipped_content['origin'] instead of origin ids. This commit uses URLs *instead of* IDs, not in addition to. Supporting IDs should not be needed anymore. | 30 September 2019, 09:43:46 UTC |
0919bdf | Valentin Lorentz | 27 September 2019, 13:20:01 UTC | Properly mock get_journal_writer for the remote-pg-storage tests. | 27 September 2019, 13:28:53 UTC |
9aa6b9d | David Douard | 16 September 2019, 15:17:30 UTC | journal_writer: use journal writer from swh.journal | 25 September 2019, 15:00:12 UTC |