mirror of
https://github.com/facebook/sapling.git
synced 2024-10-05 14:28:17 +03:00
Move DerivedDataServiceRepo facet into repo_attributes
Summary: That facet was created prior any of repo_attributes, since now it's a default location for the facets, lets move it there Reviewed By: yancouto Differential Revision: D40382977 fbshipit-source-id: 856195c25472ca1d2080a605e091ecf754768b6c
This commit is contained in:
parent
70cab0f2fa
commit
cfc6c36998
@ -366,6 +366,7 @@ members = [
|
|||||||
"repo_attributes/repo_bookmark_attrs",
|
"repo_attributes/repo_bookmark_attrs",
|
||||||
"repo_attributes/repo_cross_repo",
|
"repo_attributes/repo_cross_repo",
|
||||||
"repo_attributes/repo_derived_data",
|
"repo_attributes/repo_derived_data",
|
||||||
|
"repo_attributes/repo_derived_data_service",
|
||||||
"repo_attributes/repo_identity",
|
"repo_attributes/repo_identity",
|
||||||
"repo_attributes/repo_lock/repo_lock",
|
"repo_attributes/repo_lock/repo_lock",
|
||||||
"repo_attributes/repo_permission_checker",
|
"repo_attributes/repo_permission_checker",
|
||||||
|
@ -26,7 +26,6 @@ derived_data_constants = { version = "0.1.0", path = "../constants" }
|
|||||||
derived_data_remote = { version = "0.1.0", path = "../remote" }
|
derived_data_remote = { version = "0.1.0", path = "../remote" }
|
||||||
derived_data_service_if = { version = "0.1.0", path = "../remote/if" }
|
derived_data_service_if = { version = "0.1.0", path = "../remote/if" }
|
||||||
ephemeral_blobstore = { version = "0.1.0", path = "../../blobstore/ephemeral_blobstore" }
|
ephemeral_blobstore = { version = "0.1.0", path = "../../blobstore/ephemeral_blobstore" }
|
||||||
facet = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "main" }
|
|
||||||
filenodes = { version = "0.1.0", path = "../../filenodes" }
|
filenodes = { version = "0.1.0", path = "../../filenodes" }
|
||||||
futures = { version = "0.3.22", features = ["async-await", "compat"] }
|
futures = { version = "0.3.22", features = ["async-await", "compat"] }
|
||||||
futures_stats = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "main" }
|
futures_stats = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "main" }
|
||||||
|
@ -18,7 +18,4 @@ pub use self::lease::DerivedDataLease;
|
|||||||
pub use self::manager::derive::BatchDeriveOptions;
|
pub use self::manager::derive::BatchDeriveOptions;
|
||||||
pub use self::manager::derive::BatchDeriveStats;
|
pub use self::manager::derive::BatchDeriveStats;
|
||||||
pub use self::manager::derive::Rederivation;
|
pub use self::manager::derive::Rederivation;
|
||||||
pub use self::manager::util::derived_data_service::ArcDerivedDataManagerSet;
|
|
||||||
pub use self::manager::util::derived_data_service::DerivedDataManagerSet;
|
|
||||||
pub use self::manager::util::derived_data_service::DerivedDataServiceRepo;
|
|
||||||
pub use self::manager::DerivedDataManager;
|
pub use self::manager::DerivedDataManager;
|
||||||
|
@ -89,87 +89,3 @@ impl DerivedDataManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub mod derived_data_service {
|
|
||||||
use std::collections::HashMap;
|
|
||||||
use std::sync::Arc;
|
|
||||||
|
|
||||||
use anyhow::Result;
|
|
||||||
use bonsai_hg_mapping::BonsaiHgMapping;
|
|
||||||
use cacheblob::LeaseOps;
|
|
||||||
use changesets::Changesets;
|
|
||||||
use derived_data_remote::DerivationClient;
|
|
||||||
use filenodes::Filenodes;
|
|
||||||
use metaconfig_types::DerivedDataConfig;
|
|
||||||
use metaconfig_types::DerivedDataTypesConfig;
|
|
||||||
use mononoke_types::RepositoryId;
|
|
||||||
use repo_blobstore::RepoBlobstore;
|
|
||||||
use scuba_ext::MononokeScubaSampleBuilder;
|
|
||||||
use slog::Logger;
|
|
||||||
|
|
||||||
use super::DerivedDataManager;
|
|
||||||
|
|
||||||
#[facet::facet]
|
|
||||||
pub struct DerivedDataManagerSet {
|
|
||||||
logger: Logger,
|
|
||||||
configs: HashMap<String, DerivedDataManager>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl DerivedDataManagerSet {
|
|
||||||
pub fn get_mananger(&self, config_name: impl Into<String>) -> Option<&DerivedDataManager> {
|
|
||||||
self.configs.get(&config_name.into())
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn logger(&self) -> &Logger {
|
|
||||||
&self.logger
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[facet::container]
|
|
||||||
pub struct DerivedDataServiceRepo {
|
|
||||||
#[facet]
|
|
||||||
pub manager_set: DerivedDataManagerSet,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl DerivedDataManagerSet {
|
|
||||||
pub fn new(
|
|
||||||
repo_id: RepositoryId,
|
|
||||||
repo_name: String,
|
|
||||||
changesets: Arc<dyn Changesets>,
|
|
||||||
bonsai_hg_mapping: Arc<dyn BonsaiHgMapping>,
|
|
||||||
filenodes: Arc<dyn Filenodes>,
|
|
||||||
repo_blobstore: RepoBlobstore,
|
|
||||||
lease: Arc<dyn LeaseOps>,
|
|
||||||
logger: Logger,
|
|
||||||
derived_data_scuba: MononokeScubaSampleBuilder,
|
|
||||||
config: DerivedDataConfig,
|
|
||||||
derivation_service_client: Option<Arc<dyn DerivationClient>>,
|
|
||||||
) -> Result<Self> {
|
|
||||||
let manager = DerivedDataManager::new(
|
|
||||||
repo_id,
|
|
||||||
repo_name,
|
|
||||||
changesets,
|
|
||||||
bonsai_hg_mapping,
|
|
||||||
filenodes,
|
|
||||||
repo_blobstore,
|
|
||||||
lease,
|
|
||||||
derived_data_scuba,
|
|
||||||
String::default(),
|
|
||||||
DerivedDataTypesConfig::default(),
|
|
||||||
derivation_service_client,
|
|
||||||
);
|
|
||||||
let configs = config
|
|
||||||
.available_configs
|
|
||||||
.into_iter()
|
|
||||||
.map(|(config_name, config)| {
|
|
||||||
(
|
|
||||||
config_name.clone(),
|
|
||||||
manager.with_replaced_config(config_name, config),
|
|
||||||
)
|
|
||||||
})
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
Ok(Self { logger, configs })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
# @generated by autocargo
|
||||||
|
|
||||||
|
[package]
|
||||||
|
name = "repo_derived_data_service"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Facebook"]
|
||||||
|
edition = "2021"
|
||||||
|
license = "GPLv2+"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
anyhow = "1.0.65"
|
||||||
|
bonsai_hg_mapping = { version = "0.1.0", path = "../../bonsai_hg_mapping" }
|
||||||
|
cacheblob = { version = "0.1.0", path = "../../blobstore/cacheblob" }
|
||||||
|
changesets = { version = "0.1.0", path = "../../changesets" }
|
||||||
|
derived_data_manager = { version = "0.1.0", path = "../../derived_data/manager" }
|
||||||
|
derived_data_remote = { version = "0.1.0", path = "../../derived_data/remote" }
|
||||||
|
facet = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "main" }
|
||||||
|
filenodes = { version = "0.1.0", path = "../../filenodes" }
|
||||||
|
metaconfig_types = { version = "0.1.0", path = "../../metaconfig/types" }
|
||||||
|
mononoke_types = { version = "0.1.0", path = "../../mononoke_types" }
|
||||||
|
repo_blobstore = { version = "0.1.0", path = "../../blobrepo/repo_blobstore" }
|
||||||
|
scuba_ext = { version = "0.1.0", path = "../../common/scuba_ext" }
|
||||||
|
slog = { version = "2.7", features = ["max_level_trace", "nested-values"] }
|
@ -0,0 +1,87 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||||
|
*
|
||||||
|
* This software may be used and distributed according to the terms of the
|
||||||
|
* GNU General Public License version 2.
|
||||||
|
*/
|
||||||
|
|
||||||
|
use std::collections::HashMap;
|
||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
use anyhow::Result;
|
||||||
|
use bonsai_hg_mapping::BonsaiHgMapping;
|
||||||
|
use cacheblob::LeaseOps;
|
||||||
|
use changesets::Changesets;
|
||||||
|
use derived_data_manager::DerivedDataManager;
|
||||||
|
use derived_data_remote::DerivationClient;
|
||||||
|
use filenodes::Filenodes;
|
||||||
|
use metaconfig_types::DerivedDataConfig;
|
||||||
|
use metaconfig_types::DerivedDataTypesConfig;
|
||||||
|
use mononoke_types::RepositoryId;
|
||||||
|
use repo_blobstore::RepoBlobstore;
|
||||||
|
use scuba_ext::MononokeScubaSampleBuilder;
|
||||||
|
use slog::Logger;
|
||||||
|
|
||||||
|
#[facet::facet]
|
||||||
|
pub struct DerivedDataManagerSet {
|
||||||
|
logger: Logger,
|
||||||
|
configs: HashMap<String, DerivedDataManager>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl DerivedDataManagerSet {
|
||||||
|
pub fn get_mananger(&self, config_name: impl Into<String>) -> Option<&DerivedDataManager> {
|
||||||
|
self.configs.get(&config_name.into())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn logger(&self) -> &Logger {
|
||||||
|
&self.logger
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[facet::container]
|
||||||
|
pub struct DerivedDataServiceRepo {
|
||||||
|
#[facet]
|
||||||
|
pub manager_set: DerivedDataManagerSet,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl DerivedDataManagerSet {
|
||||||
|
pub fn new(
|
||||||
|
repo_id: RepositoryId,
|
||||||
|
repo_name: String,
|
||||||
|
changesets: Arc<dyn Changesets>,
|
||||||
|
bonsai_hg_mapping: Arc<dyn BonsaiHgMapping>,
|
||||||
|
filenodes: Arc<dyn Filenodes>,
|
||||||
|
repo_blobstore: RepoBlobstore,
|
||||||
|
lease: Arc<dyn LeaseOps>,
|
||||||
|
logger: Logger,
|
||||||
|
derived_data_scuba: MononokeScubaSampleBuilder,
|
||||||
|
config: DerivedDataConfig,
|
||||||
|
derivation_service_client: Option<Arc<dyn DerivationClient>>,
|
||||||
|
) -> Result<Self> {
|
||||||
|
let manager = DerivedDataManager::new(
|
||||||
|
repo_id,
|
||||||
|
repo_name,
|
||||||
|
changesets,
|
||||||
|
bonsai_hg_mapping,
|
||||||
|
filenodes,
|
||||||
|
repo_blobstore,
|
||||||
|
lease,
|
||||||
|
derived_data_scuba,
|
||||||
|
String::default(),
|
||||||
|
DerivedDataTypesConfig::default(),
|
||||||
|
derivation_service_client,
|
||||||
|
);
|
||||||
|
let configs = config
|
||||||
|
.available_configs
|
||||||
|
.into_iter()
|
||||||
|
.map(|(config_name, config)| {
|
||||||
|
(
|
||||||
|
config_name.clone(),
|
||||||
|
manager.with_replaced_config(config_name, config),
|
||||||
|
)
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
Ok(Self { logger, configs })
|
||||||
|
}
|
||||||
|
}
|
@ -27,7 +27,6 @@ cloned = { version = "0.1.0", git = "https://github.com/facebookexperimental/rus
|
|||||||
context = { version = "0.1.0", path = "../server/context" }
|
context = { version = "0.1.0", path = "../server/context" }
|
||||||
cross_repo_sync = { version = "0.1.0", path = "../commit_rewriting/cross_repo_sync" }
|
cross_repo_sync = { version = "0.1.0", path = "../commit_rewriting/cross_repo_sync" }
|
||||||
dbbookmarks = { version = "0.1.0", path = "../bookmarks/dbbookmarks" }
|
dbbookmarks = { version = "0.1.0", path = "../bookmarks/dbbookmarks" }
|
||||||
derived_data_manager = { version = "0.1.0", path = "../derived_data/manager" }
|
|
||||||
derived_data_remote = { version = "0.1.0", path = "../derived_data/remote" }
|
derived_data_remote = { version = "0.1.0", path = "../derived_data/remote" }
|
||||||
environment = { version = "0.1.0", path = "../cmdlib/environment" }
|
environment = { version = "0.1.0", path = "../cmdlib/environment" }
|
||||||
ephemeral_blobstore = { version = "0.1.0", path = "../blobstore/ephemeral_blobstore" }
|
ephemeral_blobstore = { version = "0.1.0", path = "../blobstore/ephemeral_blobstore" }
|
||||||
@ -54,6 +53,7 @@ repo_blobstore = { version = "0.1.0", path = "../blobrepo/repo_blobstore" }
|
|||||||
repo_bookmark_attrs = { version = "0.1.0", path = "../repo_attributes/repo_bookmark_attrs" }
|
repo_bookmark_attrs = { version = "0.1.0", path = "../repo_attributes/repo_bookmark_attrs" }
|
||||||
repo_cross_repo = { version = "0.1.0", path = "../repo_attributes/repo_cross_repo" }
|
repo_cross_repo = { version = "0.1.0", path = "../repo_attributes/repo_cross_repo" }
|
||||||
repo_derived_data = { version = "0.1.0", path = "../repo_attributes/repo_derived_data" }
|
repo_derived_data = { version = "0.1.0", path = "../repo_attributes/repo_derived_data" }
|
||||||
|
repo_derived_data_service = { version = "0.1.0", path = "../repo_attributes/repo_derived_data_service" }
|
||||||
repo_identity = { version = "0.1.0", path = "../repo_attributes/repo_identity" }
|
repo_identity = { version = "0.1.0", path = "../repo_attributes/repo_identity" }
|
||||||
repo_lock = { version = "0.1.0", path = "../repo_attributes/repo_lock/repo_lock" }
|
repo_lock = { version = "0.1.0", path = "../repo_attributes/repo_lock/repo_lock" }
|
||||||
repo_permission_checker = { version = "0.1.0", path = "../repo_attributes/repo_permission_checker" }
|
repo_permission_checker = { version = "0.1.0", path = "../repo_attributes/repo_permission_checker" }
|
||||||
|
@ -64,8 +64,6 @@ use dbbookmarks::ArcSqlBookmarks;
|
|||||||
use dbbookmarks::SqlBookmarksBuilder;
|
use dbbookmarks::SqlBookmarksBuilder;
|
||||||
#[cfg(fbcode_build)]
|
#[cfg(fbcode_build)]
|
||||||
use derived_data_client_library::Client as DerivationServiceClient;
|
use derived_data_client_library::Client as DerivationServiceClient;
|
||||||
use derived_data_manager::ArcDerivedDataManagerSet;
|
|
||||||
use derived_data_manager::DerivedDataManagerSet;
|
|
||||||
use derived_data_remote::DerivationClient;
|
use derived_data_remote::DerivationClient;
|
||||||
use derived_data_remote::RemoteDerivationOptions;
|
use derived_data_remote::RemoteDerivationOptions;
|
||||||
use environment::Caching;
|
use environment::Caching;
|
||||||
@ -120,6 +118,8 @@ use repo_cross_repo::ArcRepoCrossRepo;
|
|||||||
use repo_cross_repo::RepoCrossRepo;
|
use repo_cross_repo::RepoCrossRepo;
|
||||||
use repo_derived_data::ArcRepoDerivedData;
|
use repo_derived_data::ArcRepoDerivedData;
|
||||||
use repo_derived_data::RepoDerivedData;
|
use repo_derived_data::RepoDerivedData;
|
||||||
|
use repo_derived_data_service::ArcDerivedDataManagerSet;
|
||||||
|
use repo_derived_data_service::DerivedDataManagerSet;
|
||||||
use repo_identity::ArcRepoIdentity;
|
use repo_identity::ArcRepoIdentity;
|
||||||
use repo_identity::RepoIdentity;
|
use repo_identity::RepoIdentity;
|
||||||
use repo_lock::AlwaysLockedRepoLock;
|
use repo_lock::AlwaysLockedRepoLock;
|
||||||
|
Loading…
Reference in New Issue
Block a user