qemu_command_builder/
iscsi.rs1use bon::Builder;
2
3use crate::to_command::ToCommand;
4
5#[derive(Default, Builder)]
7pub struct Iscsi {
8 user: Option<String>,
9 password: Option<String>,
10 password_secret: Option<String>,
11 header_digest: Option<String>,
12 initiator_name: Option<String>,
13 id: Option<String>,
14 timeout: Option<usize>,
15}
16
17impl ToCommand for Iscsi {
18 fn to_command(&self) -> Vec<String> {
19 let mut cmd = vec![];
20
21 cmd.push("-iscsi".to_string());
22
23 let mut arg = vec![];
24
25 if let Some(user) = &self.user {
26 arg.push(format!("user={}", user));
27 }
28 if let Some(password) = &self.password {
29 arg.push(format!("password={}", password));
30 }
31 if let Some(password_secret) = &self.password_secret {
32 arg.push(format!("password-secret={}", password_secret));
33 }
34 if let Some(header_digest) = &self.header_digest {
35 arg.push(format!("header-digest={}", header_digest));
36 }
37 if let Some(initiator_name) = &self.initiator_name {
38 arg.push(format!("initiator-name={}", initiator_name));
39 }
40 if let Some(id) = &self.id {
41 arg.push(format!("id={}", id));
42 }
43 if let Some(timeout) = self.timeout {
44 arg.push(format!("timeout={}", timeout));
45 }
46
47 cmd.push(arg.join(","));
48
49 cmd
50 }
51}