Skip to content

Commit 009b9ac

Browse files
committed
Only install pre-reqs to a server once
1 parent 703b848 commit 009b9ac

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

deploy/src/bin/thing-flinger.rs

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ impl Config {
5858
}
5959
}
6060

61-
fn deployment_servers<'a>(&'a self) -> impl Iterator<Item = &'a Server> {
61+
fn deployment_servers(&self) -> impl Iterator<Item = &Server> {
6262
self.servers.iter().filter_map(|(name, s)| {
6363
if self.deployment.servers.contains(name) {
6464
Some(s)
@@ -331,12 +331,25 @@ fn do_install_prereqs(config: &Config) -> Result<()> {
331331
let builder = &config.servers[&config.builder.server];
332332
let build_server = (builder, &config.builder.omicron_path);
333333
let all_servers = std::iter::once(build_server).chain(
334-
config
335-
.deployment_servers()
336-
.map(|server| (server, &config.deployment.staging_dir)),
334+
config.deployment_servers().filter_map(|server| {
335+
// Don't duplicate the builder
336+
if server.addr != builder.addr {
337+
Some((server, &config.deployment.staging_dir))
338+
} else {
339+
None
340+
}
341+
}),
342+
);
343+
344+
let server_names = std::iter::once(&config.builder.server).chain(
345+
config.deployment.servers.iter().filter_map(|s| {
346+
if *s != config.builder.server {
347+
Some(s)
348+
} else {
349+
None
350+
}
351+
}),
337352
);
338-
let server_names = std::iter::once(&config.builder.server)
339-
.chain(config.deployment.servers.iter());
340353

341354
// run install_prereqs on each server
342355
let fns = all_servers.map(|(server, root_path)| {

0 commit comments

Comments
 (0)