mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-15 17:32:56 +00:00
Refector construction of basebackup command
This commit is contained in:
@@ -897,31 +897,28 @@ impl ComputeNode {
|
||||
let mut client = config.connect(NoTls)?;
|
||||
let pageserver_connect_micros = start_time.elapsed().as_micros() as u64;
|
||||
|
||||
let replica = if spec.spec.mode != ComputeMode::Primary {
|
||||
" --replica"
|
||||
} else {
|
||||
""
|
||||
};
|
||||
let lazy_slru_download = if spec
|
||||
let tenant_id = spec.tenant_id.to_string();
|
||||
let timeline_id = spec.timeline_id.to_string();
|
||||
let lsn_str = lsn.to_string();
|
||||
let mut cmd = Vec::new();
|
||||
cmd.push("basebackup");
|
||||
cmd.push(&tenant_id);
|
||||
cmd.push(&timeline_id);
|
||||
if lsn != Lsn::INVALID {
|
||||
cmd.push(&lsn_str);
|
||||
}
|
||||
cmd.push("--zip");
|
||||
if spec.spec.mode != ComputeMode::Primary {
|
||||
cmd.push("--replica");
|
||||
}
|
||||
if spec
|
||||
.spec
|
||||
.features
|
||||
.contains(&ComputeFeature::LazySlruDownload)
|
||||
{
|
||||
" --lazy-slru-download"
|
||||
} else {
|
||||
""
|
||||
};
|
||||
let basebackup_cmd = match lsn {
|
||||
Lsn(0) => format!(
|
||||
"basebackup {} {} --gzip{}{}",
|
||||
spec.tenant_id, spec.timeline_id, replica, lazy_slru_download
|
||||
),
|
||||
_ => format!(
|
||||
"basebackup {} {} {} --gzip{}{}",
|
||||
spec.tenant_id, spec.timeline_id, lsn, replica, lazy_slru_download
|
||||
),
|
||||
};
|
||||
|
||||
cmd.push("--lazy-slru-download")
|
||||
}
|
||||
let basebackup_cmd = cmd.join(" ");
|
||||
let copyreader = client.copy_out(basebackup_cmd.as_str())?;
|
||||
let mut measured_reader = MeasuredReader::new(copyreader);
|
||||
let mut bufreader = std::io::BufReader::new(&mut measured_reader);
|
||||
|
||||
Reference in New Issue
Block a user