mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-30 04:34:27 +00:00
agent: Fix unit test issue cuased by protobuf upgrade
Fixes: #6646 Signed-off-by: Tim Zhang <tim@hyper.sh>
This commit is contained in:
parent
0a582f7815
commit
4849c56faa
@ -558,35 +558,30 @@ mod tests {
|
|||||||
// All fields specified
|
// All fields specified
|
||||||
grpcproc: grpc::Process {
|
grpcproc: grpc::Process {
|
||||||
Terminal: true,
|
Terminal: true,
|
||||||
ConsoleSize: protobuf::SingularPtrField::<grpc::Box>::some(grpc::Box {
|
ConsoleSize: protobuf::MessageField::<grpc::Box>::some(grpc::Box {
|
||||||
Height: 123,
|
Height: 123,
|
||||||
Width: 456,
|
Width: 456,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}),
|
}),
|
||||||
User: protobuf::SingularPtrField::<grpc::User>::some(grpc::User {
|
User: protobuf::MessageField::<grpc::User>::some(grpc::User {
|
||||||
UID: 1234,
|
UID: 1234,
|
||||||
GID: 5678,
|
GID: 5678,
|
||||||
AdditionalGids: Vec::from([910, 1112]),
|
AdditionalGids: Vec::from([910, 1112]),
|
||||||
Username: String::from("username"),
|
Username: String::from("username"),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}),
|
}),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([String::from("env")])),
|
|
||||||
Cwd: String::from("cwd"),
|
Cwd: String::from("cwd"),
|
||||||
Capabilities: protobuf::SingularPtrField::some(grpc::LinuxCapabilities {
|
Capabilities: protobuf::MessageField::some(grpc::LinuxCapabilities {
|
||||||
Bounding: protobuf::RepeatedField::from(Vec::from([String::from("bnd")])),
|
Bounding: Vec::from([String::from("bnd")]),
|
||||||
Effective: protobuf::RepeatedField::from(Vec::from([String::from("eff")])),
|
Effective: Vec::from([String::from("eff")]),
|
||||||
Inheritable: protobuf::RepeatedField::from(Vec::from([String::from(
|
Inheritable: Vec::from([String::from("inher")]),
|
||||||
"inher",
|
Permitted: Vec::from([String::from("perm")]),
|
||||||
)])),
|
Ambient: Vec::from([String::from("amb")]),
|
||||||
Permitted: protobuf::RepeatedField::from(Vec::from([String::from("perm")])),
|
|
||||||
Ambient: protobuf::RepeatedField::from(Vec::from([String::from("amb")])),
|
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}),
|
}),
|
||||||
Rlimits: protobuf::RepeatedField::from(Vec::from([
|
Rlimits: Vec::from([
|
||||||
grpc::POSIXRlimit {
|
grpc::POSIXRlimit {
|
||||||
Type: String::from("r#type"),
|
Type: String::from("r#type"),
|
||||||
Hard: 123,
|
Hard: 123,
|
||||||
@ -599,7 +594,7 @@ mod tests {
|
|||||||
Soft: 1011,
|
Soft: 1011,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
])),
|
]),
|
||||||
NoNewPrivileges: true,
|
NoNewPrivileges: true,
|
||||||
ApparmorProfile: String::from("apparmor profile"),
|
ApparmorProfile: String::from("apparmor profile"),
|
||||||
OOMScoreAdj: 123456,
|
OOMScoreAdj: 123456,
|
||||||
@ -649,7 +644,7 @@ mod tests {
|
|||||||
TestData {
|
TestData {
|
||||||
// None ConsoleSize
|
// None ConsoleSize
|
||||||
grpcproc: grpc::Process {
|
grpcproc: grpc::Process {
|
||||||
ConsoleSize: protobuf::SingularPtrField::<grpc::Box>::none(),
|
ConsoleSize: protobuf::MessageField::<grpc::Box>::none(),
|
||||||
OOMScoreAdj: 0,
|
OOMScoreAdj: 0,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
@ -662,7 +657,7 @@ mod tests {
|
|||||||
TestData {
|
TestData {
|
||||||
// None User
|
// None User
|
||||||
grpcproc: grpc::Process {
|
grpcproc: grpc::Process {
|
||||||
User: protobuf::SingularPtrField::<grpc::User>::none(),
|
User: protobuf::MessageField::<grpc::User>::none(),
|
||||||
OOMScoreAdj: 0,
|
OOMScoreAdj: 0,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
@ -680,7 +675,7 @@ mod tests {
|
|||||||
TestData {
|
TestData {
|
||||||
// None Capabilities
|
// None Capabilities
|
||||||
grpcproc: grpc::Process {
|
grpcproc: grpc::Process {
|
||||||
Capabilities: protobuf::SingularPtrField::none(),
|
Capabilities: protobuf::MessageField::none(),
|
||||||
OOMScoreAdj: 0,
|
OOMScoreAdj: 0,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
@ -781,99 +776,57 @@ mod tests {
|
|||||||
TestData {
|
TestData {
|
||||||
// All specified
|
// All specified
|
||||||
grpchooks: grpc::Hooks {
|
grpchooks: grpc::Hooks {
|
||||||
Prestart: protobuf::RepeatedField::from(Vec::from([
|
Prestart: Vec::from([
|
||||||
grpc::Hook {
|
grpc::Hook {
|
||||||
Path: String::from("prestartpath"),
|
Path: String::from("prestartpath"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
grpc::Hook {
|
grpc::Hook {
|
||||||
Path: String::from("prestartpath2"),
|
Path: String::from("prestartpath2"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg3"), String::from("arg4")]),
|
||||||
String::from("arg3"),
|
Env: Vec::from([String::from("env3"), String::from("env4")]),
|
||||||
String::from("arg4"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env3"),
|
|
||||||
String::from("env4"),
|
|
||||||
])),
|
|
||||||
Timeout: 25,
|
Timeout: 25,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
])),
|
]),
|
||||||
Poststart: protobuf::RepeatedField::from(Vec::from([grpc::Hook {
|
Poststart: Vec::from([grpc::Hook {
|
||||||
Path: String::from("poststartpath"),
|
Path: String::from("poststartpath"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}])),
|
}]),
|
||||||
Poststop: protobuf::RepeatedField::from(Vec::from([grpc::Hook {
|
Poststop: Vec::from([grpc::Hook {
|
||||||
Path: String::from("poststoppath"),
|
Path: String::from("poststoppath"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}])),
|
}]),
|
||||||
CreateRuntime: protobuf::RepeatedField::from(Vec::from([grpc::Hook {
|
CreateRuntime: Vec::from([grpc::Hook {
|
||||||
Path: String::from("createruntimepath"),
|
Path: String::from("createruntimepath"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}])),
|
}]),
|
||||||
CreateContainer: protobuf::RepeatedField::from(Vec::from([grpc::Hook {
|
CreateContainer: Vec::from([grpc::Hook {
|
||||||
Path: String::from("createcontainerpath"),
|
Path: String::from("createcontainerpath"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}])),
|
}]),
|
||||||
StartContainer: protobuf::RepeatedField::from(Vec::from([grpc::Hook {
|
StartContainer: Vec::from([grpc::Hook {
|
||||||
Path: String::from("startcontainerpath"),
|
Path: String::from("startcontainerpath"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}])),
|
}]),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
result: oci::Hooks {
|
result: oci::Hooks {
|
||||||
@ -926,72 +879,42 @@ mod tests {
|
|||||||
TestData {
|
TestData {
|
||||||
// Prestart empty
|
// Prestart empty
|
||||||
grpchooks: grpc::Hooks {
|
grpchooks: grpc::Hooks {
|
||||||
Prestart: protobuf::RepeatedField::from(Vec::from([])),
|
Prestart: Vec::from([]),
|
||||||
Poststart: protobuf::RepeatedField::from(Vec::from([grpc::Hook {
|
Poststart: Vec::from([grpc::Hook {
|
||||||
Path: String::from("poststartpath"),
|
Path: String::from("poststartpath"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}])),
|
}]),
|
||||||
Poststop: protobuf::RepeatedField::from(Vec::from([grpc::Hook {
|
Poststop: Vec::from([grpc::Hook {
|
||||||
Path: String::from("poststoppath"),
|
Path: String::from("poststoppath"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}])),
|
}]),
|
||||||
CreateRuntime: protobuf::RepeatedField::from(Vec::from([grpc::Hook {
|
CreateRuntime: Vec::from([grpc::Hook {
|
||||||
Path: String::from("createruntimepath"),
|
Path: String::from("createruntimepath"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}])),
|
}]),
|
||||||
CreateContainer: protobuf::RepeatedField::from(Vec::from([grpc::Hook {
|
CreateContainer: Vec::from([grpc::Hook {
|
||||||
Path: String::from("createcontainerpath"),
|
Path: String::from("createcontainerpath"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}])),
|
}]),
|
||||||
StartContainer: protobuf::RepeatedField::from(Vec::from([grpc::Hook {
|
StartContainer: Vec::from([grpc::Hook {
|
||||||
Path: String::from("startcontainerpath"),
|
Path: String::from("startcontainerpath"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}])),
|
}]),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
result: oci::Hooks {
|
result: oci::Hooks {
|
||||||
@ -1063,11 +986,8 @@ mod tests {
|
|||||||
grpcmount: grpc::Mount {
|
grpcmount: grpc::Mount {
|
||||||
destination: String::from("destination"),
|
destination: String::from("destination"),
|
||||||
source: String::from("source"),
|
source: String::from("source"),
|
||||||
field_type: String::from("fieldtype"),
|
type_: String::from("fieldtype"),
|
||||||
options: protobuf::RepeatedField::from(Vec::from([
|
options: Vec::from([String::from("option1"), String::from("option2")]),
|
||||||
String::from("option1"),
|
|
||||||
String::from("option2"),
|
|
||||||
])),
|
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
result: oci::Mount {
|
result: oci::Mount {
|
||||||
@ -1081,8 +1001,8 @@ mod tests {
|
|||||||
grpcmount: grpc::Mount {
|
grpcmount: grpc::Mount {
|
||||||
destination: String::from("destination"),
|
destination: String::from("destination"),
|
||||||
source: String::from("source"),
|
source: String::from("source"),
|
||||||
field_type: String::from("fieldtype"),
|
type_: String::from("fieldtype"),
|
||||||
options: protobuf::RepeatedField::from(Vec::new()),
|
options: Vec::new(),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
result: oci::Mount {
|
result: oci::Mount {
|
||||||
@ -1096,8 +1016,8 @@ mod tests {
|
|||||||
grpcmount: grpc::Mount {
|
grpcmount: grpc::Mount {
|
||||||
destination: String::new(),
|
destination: String::new(),
|
||||||
source: String::from("source"),
|
source: String::from("source"),
|
||||||
field_type: String::from("fieldtype"),
|
type_: String::from("fieldtype"),
|
||||||
options: protobuf::RepeatedField::from(Vec::from([String::from("option1")])),
|
options: Vec::from([String::from("option1")]),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
result: oci::Mount {
|
result: oci::Mount {
|
||||||
@ -1111,8 +1031,8 @@ mod tests {
|
|||||||
grpcmount: grpc::Mount {
|
grpcmount: grpc::Mount {
|
||||||
destination: String::from("destination"),
|
destination: String::from("destination"),
|
||||||
source: String::from("source"),
|
source: String::from("source"),
|
||||||
field_type: String::new(),
|
type_: String::new(),
|
||||||
options: protobuf::RepeatedField::from(Vec::from([String::from("option1")])),
|
options: Vec::from([String::from("option1")]),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
result: oci::Mount {
|
result: oci::Mount {
|
||||||
@ -1172,27 +1092,15 @@ mod tests {
|
|||||||
grpchook: &[
|
grpchook: &[
|
||||||
grpc::Hook {
|
grpc::Hook {
|
||||||
Path: String::from("path"),
|
Path: String::from("path"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg1"), String::from("arg2")]),
|
||||||
String::from("arg1"),
|
Env: Vec::from([String::from("env1"), String::from("env2")]),
|
||||||
String::from("arg2"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env1"),
|
|
||||||
String::from("env2"),
|
|
||||||
])),
|
|
||||||
Timeout: 10,
|
Timeout: 10,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
grpc::Hook {
|
grpc::Hook {
|
||||||
Path: String::from("path2"),
|
Path: String::from("path2"),
|
||||||
Args: protobuf::RepeatedField::from(Vec::from([
|
Args: Vec::from([String::from("arg3"), String::from("arg4")]),
|
||||||
String::from("arg3"),
|
Env: Vec::from([String::from("env3"), String::from("env4")]),
|
||||||
String::from("arg4"),
|
|
||||||
])),
|
|
||||||
Env: protobuf::RepeatedField::from(Vec::from([
|
|
||||||
String::from("env3"),
|
|
||||||
String::from("env4"),
|
|
||||||
])),
|
|
||||||
Timeout: 20,
|
Timeout: 20,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
|
@ -1094,7 +1094,6 @@ fn parse_options(option_list: Vec<String>) -> HashMap<String, String> {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use protobuf::RepeatedField;
|
|
||||||
use protocols::agent::FSGroup;
|
use protocols::agent::FSGroup;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::fs::OpenOptions;
|
use std::fs::OpenOptions;
|
||||||
@ -2015,9 +2014,8 @@ mod tests {
|
|||||||
mount_path: "rw_mount",
|
mount_path: "rw_mount",
|
||||||
fs_group: Some(FSGroup {
|
fs_group: Some(FSGroup {
|
||||||
group_id: 3000,
|
group_id: 3000,
|
||||||
group_change_policy: FSGroupChangePolicy::Always,
|
group_change_policy: FSGroupChangePolicy::Always.into(),
|
||||||
unknown_fields: Default::default(),
|
..Default::default()
|
||||||
cached_size: Default::default(),
|
|
||||||
}),
|
}),
|
||||||
read_only: false,
|
read_only: false,
|
||||||
expected_group_id: 3000,
|
expected_group_id: 3000,
|
||||||
@ -2027,9 +2025,8 @@ mod tests {
|
|||||||
mount_path: "ro_mount",
|
mount_path: "ro_mount",
|
||||||
fs_group: Some(FSGroup {
|
fs_group: Some(FSGroup {
|
||||||
group_id: 3000,
|
group_id: 3000,
|
||||||
group_change_policy: FSGroupChangePolicy::OnRootMismatch,
|
group_change_policy: FSGroupChangePolicy::OnRootMismatch.into(),
|
||||||
unknown_fields: Default::default(),
|
..Default::default()
|
||||||
cached_size: Default::default(),
|
|
||||||
}),
|
}),
|
||||||
read_only: true,
|
read_only: true,
|
||||||
expected_group_id: 3000,
|
expected_group_id: 3000,
|
||||||
@ -2049,10 +2046,7 @@ mod tests {
|
|||||||
let directory_mode = mount_dir.as_path().metadata().unwrap().permissions().mode();
|
let directory_mode = mount_dir.as_path().metadata().unwrap().permissions().mode();
|
||||||
let mut storage_data = Storage::new();
|
let mut storage_data = Storage::new();
|
||||||
if d.read_only {
|
if d.read_only {
|
||||||
storage_data.set_options(RepeatedField::from_slice(&[
|
storage_data.set_options(vec!["foo".to_string(), "ro".to_string()]);
|
||||||
"foo".to_string(),
|
|
||||||
"ro".to_string(),
|
|
||||||
]));
|
|
||||||
}
|
}
|
||||||
if let Some(fs_group) = d.fs_group.clone() {
|
if let Some(fs_group) = d.fs_group.clone() {
|
||||||
storage_data.set_fs_group(fs_group);
|
storage_data.set_fs_group(fs_group);
|
||||||
|
Loading…
Reference in New Issue
Block a user