git.delta.rocks / jrsonnet / refs/commits / e85b4da8a439

difftreelog

feat add-shared --readd

Yaroslav Bolyukin2023-11-26parent: #97d9be6.patch.diff
in: trunk

1 file changed

modifiedcmds/fleet/src/cmds/secrets/mod.rsdiffbeforeafterboth
34 #[clap(long)]34 #[clap(long)]
35 public_file: Option<PathBuf>,35 public_file: Option<PathBuf>,
36
37 /// Secret with this name already exists, override its value while keeping the same owners.
38 #[clap(long)]
39 readd: bool,
36 },40 },
37 /// Add secret, data should be provided in stdin41 /// Add secret, data should be provided in stdin
38 Add {42 Add {
91 }95 }
92 }96 }
93 Secrets::AddShared {97 Secrets::AddShared {
94 machines,98 mut machines,
95 name,99 name,
96 force,100 force,
97 public,101 public,
98 public_file,102 public_file,
103 readd,
99 } => {104 } => {
105 let exists = config.has_shared(&name);
106 if exists && !force && !readd {
107 bail!("secret already defined");
108 }
109 if readd {
110 // Fixme: use clap to limit this usage
111 ensure!(!force, "--force and --readd are not compatible");
112 ensure!(exists, "secret doesn't exists");
113 ensure!(
114 machines.is_empty(),
115 "you can't use machines argument for --readd"
116 );
117 let shared = config.shared_secret(&name)?;
118 machines = shared.owners;
119 }
120
100 let recipients = futures::stream::iter(machines.iter())121 let recipients = futures::stream::iter(machines.iter())
101 .then(|m| config.recipient(m))122 .then(|m| config.recipient(m))
124 }145 }
125 };146 };
126
127 if config.has_shared(&name) && !force {
128 bail!("secret already defined");
129 }
130 config.replace_shared(147 config.replace_shared(
131 name,148 name,
132 FleetSharedSecret {149 FleetSharedSecret {