mononoke/blobimport: make it OSS buildable

Reviewed By: krallin

Differential Revision: D22455491

fbshipit-source-id: 919ba0e4fc759ef25546eacf30200ff19cd89466
This commit is contained in:
Lukas Piatkowski 2020-07-13 02:58:20 -07:00 committed by Facebook GitHub Bot
parent 8daaacbd77
commit 6b9637bbac
2 changed files with 33 additions and 22 deletions

View File

@ -4,7 +4,7 @@ edition = "2018"
version = "0.1.0"
authors = ['Facebook']
license = "GPLv2+"
include = ["cmds/admin/**/*.rs", "cmds/aliasverify.rs", "cmds/backfill_derived_data/**/*.rs", "cmds/backfill_git_mapping.rs", "cmds/benchmark_filestore.rs", "cmds/benchmark_storage_config/**/*.rs", "cmds/bonsai_verify/**/*.rs", "cmds/configlint.rs", "cmds/dumprev.rs", "cmds/idxdump.rs", "cmds/lfs_import.rs", "cmds/manual_scrub/**/*.rs", "cmds/rechunker.rs", "cmds/revlogrepo.rs", "cmds/statistics_collector.rs", "cmds/upload_globalrevs.rs"]
include = ["cmds/admin/**/*.rs", "cmds/aliasverify.rs", "cmds/backfill_derived_data/**/*.rs", "cmds/backfill_git_mapping.rs", "cmds/benchmark_filestore.rs", "cmds/benchmark_storage_config/**/*.rs", "cmds/blobimport.rs", "cmds/bonsai_verify/**/*.rs", "cmds/configlint.rs", "cmds/dumprev.rs", "cmds/idxdump.rs", "cmds/lfs_import.rs", "cmds/manual_scrub/**/*.rs", "cmds/rechunker.rs", "cmds/revlogrepo.rs", "cmds/statistics_collector.rs", "cmds/upload_globalrevs.rs"]
[[bin]]
name = "admin"
@ -30,6 +30,10 @@ path = "cmds/benchmark_filestore.rs"
name = "benchmark_storage_config"
path = "cmds/benchmark_storage_config/main.rs"
[[bin]]
name = "blobimport"
path = "cmds/blobimport.rs"
[[bin]]
name = "bonsai_verify"
path = "cmds/bonsai_verify/main.rs"
@ -72,6 +76,7 @@ path = "cmds/upload_globalrevs.rs"
[dependencies]
blame = { path = "derived_data/blame" }
blobimport_lib = { path = "blobimport_lib" }
blobrepo = { path = "blobrepo" }
blobrepo_factory = { path = "blobrepo/factory" }
blobrepo_hg = { path = "blobrepo/blobrepo_hg" }
@ -92,6 +97,7 @@ cross_repo_sync = { path = "commit_rewriting/cross_repo_sync" }
dbbookmarks = { path = "bookmarks/dbbookmarks" }
deleted_files_manifest = { path = "derived_data/deleted_files_manifest" }
derived_data = { path = "derived_data" }
derived_data_filenodes = { path = "derived_data/filenodes" }
derived_data_utils = { path = "derived_data/utils" }
fastlog = { path = "derived_data/fastlog" }
filenodes = { path = "filenodes" }

View File

@ -11,7 +11,6 @@ use anyhow::{bail, format_err, Context, Error, Result};
use ascii::AsciiString;
use blobimport_lib;
use bonsai_globalrev_mapping::SqlBonsaiGlobalrevMapping;
use bytes::Bytes;
use clap::{App, Arg, ArgMatches};
use cmdlib::{
args,
@ -27,8 +26,7 @@ use futures::{
compat::Future01CompatExt,
future::{try_join3, FutureExt, TryFutureExt},
};
use manifold::{ObjectMeta, PayloadDesc, StoredObject};
use manifold_thrift::thrift::{self, manifold_thrift_new, RequestContext};
#[cfg(fbcode_build)]
use mercurial_revlog::revlog::RevIdx;
use mercurial_types::{HgChangesetId, HgNodeHash};
use slog::{error, info, warn, Logger};
@ -148,12 +146,17 @@ fn parse_fixed_parent_order<P: AsRef<Path>>(
Ok(res)
}
#[cfg(fbcode_build)]
async fn update_manifold_key(
fb: FacebookInit,
latest_imported_rev: RevIdx,
manifold_key: String,
manifold_bucket: String,
) -> Result<(), Error> {
) -> Result<()> {
use bytes::Bytes;
use manifold::{ObjectMeta, PayloadDesc, StoredObject};
use manifold_thrift::thrift::{self, manifold_thrift_new, RequestContext};
let next_revision_to_import = latest_imported_rev.as_u32() + 1;
let context = RequestContext {
bucketName: manifold_bucket,
@ -179,7 +182,7 @@ async fn run_blobimport<'a>(
ctx: &CoreContext,
logger: &Logger,
matches: &'a ArgMatches<'a>,
) -> Result<(), Error> {
) -> Result<()> {
let revlogrepo_path = matches
.value_of("INPUT")
.expect("input is not specified")
@ -310,27 +313,29 @@ async fn run_blobimport<'a>(
.import()
.await?;
async move {
match maybe_latest_imported_rev {
Some(latest_imported_rev) => {
info!(
ctx.logger(),
"latest imported revision {}",
latest_imported_rev.as_u32()
);
match maybe_latest_imported_rev {
Some(latest_imported_rev) => {
info!(
ctx.logger(),
"latest imported revision {}",
latest_imported_rev.as_u32()
);
#[cfg(fbcode_build)]
{
if let Some((manifold_key, bucket)) = manifold_key_bucket {
update_manifold_key(fb, latest_imported_rev, manifold_key, bucket).await
} else {
Ok(())
update_manifold_key(fb, latest_imported_rev, manifold_key, bucket).await?
}
}
None => {
info!(ctx.logger(), "didn't import any commits");
Ok(())
#[cfg(not(fbcode_build))]
{
assert!(
manifold_key_bucket.is_none(),
"Using Manifold is not supported in non fbcode builds"
);
}
}
}
.await?;
None => info!(ctx.logger(), "didn't import any commits"),
};
upload_and_show_trace(ctx.clone())
.compat()
.map(|_| ())