mirror of
https://github.com/facebook/sapling.git
synced 2024-12-29 08:02:24 +03:00
fc61c74f23
Summary: When we change `CommitSyncConfig`, we want to not have to restart `scs` servers, and instead have them pick up the new config by using `LiveCommitSyncConfig`. This diff turned out larger than I expected, mainly due to the need to introduce various things around `TestLiveCommitSyncConfig`: - `TestLiveCommitSyncConfig`: the trait implementer to use in `mononoke_api::Repo` - `TestLiveCommitSyncConfigSource`: the helper struct to keep around for new values injection (very similar to how our `ConfigStore` has an inner `ConfigSource`, which can also be `TestSource`, but here injected values can be `CommitSyncConfig` instead of JSON). - all the places in integration tests, where `setup_configerator_configs` is now needed (I plan to start setting up configerator configs always in a separate diff, as it is cheap) Here are the explanations for a few things I think may be not immediately obvious: - I removed the `Clone` bound from `LiveCommitSyncConfig` trait, as `Clone` traits [cannot be made into trait objects](https://doc.rust-lang.org/book/ch17-02-trait-objects.html#object-safety-is-required-for-trait-objects) - `TestLiveCommitSyncConfigSource` vs `TestLiveCommitSyncConfigSourceInner` discrepancy is to ensure nobody should instantiate `TestLiveCommitSyncConfigSourceInner` outside of `live_commit_sync_config/src` - I am aware of the ugly discrepancy between the main `--mononoke-config-path`, which is used to load initial configuration and can be both a file-based and a configerator-based config; and `--local-configerator-path`, used to override config sources for `Tunables` and `LiveCommitSyncConfig`. Ideally these two should just be unified somehow, but that is a little out of scope of this diff (I've already added it to the dirt doc though). - in `mononoke_api::Repo` there are methods `new_test_xrepo` and `new_test_common`, which changed from maybe accepting just a `CommitSyncConfig` to now maybe accepting both `CommitSyncConfig` and `LiveCommitSyncConfig`. It can be made a bit cleaner: I can just query `CommitSyncConfig` from `LiveCommitSyncConfig` in `new_test_common` and avoid having two args. I was too lazy to do this, lmk if you feel strongly about it. Reviewed By: StanislavGlebik Differential Revision: D22443623 fbshipit-source-id: 0d6bbda2223e77b89cc59863b703db5081bcd601
17 lines
325 B
Perl
17 lines
325 B
Perl
#require mononoke
|
|
|
|
$ . "$TESTDIR/library.sh"
|
|
|
|
Start up EdenAPI server.
|
|
$ setup_mononoke_config
|
|
$ setup_configerator_configs
|
|
$ start_edenapi_server
|
|
|
|
Hit health check endpoint.
|
|
$ sslcurl -s "$EDENAPI_URI/health_check"
|
|
I_AM_ALIVE (no-eol)
|
|
|
|
List repos.
|
|
$ sslcurl -s "$EDENAPI_URI/repos"
|
|
{"repos":["repo"]} (no-eol)
|