@@ -105,6 +105,7 @@ fn parse_put_snapshot_load(body: &Body) -> Result<ParsedRequest, RequestError> {
105105 mem_backend,
106106 enable_diff_snapshots : snapshot_config. enable_diff_snapshots ,
107107 resume_vm : snapshot_config. resume_vm ,
108+ network_overrides : snapshot_config. network_overrides ,
108109 } ;
109110
110111 // Construct the `ParsedRequest` object.
@@ -120,7 +121,7 @@ fn parse_put_snapshot_load(body: &Body) -> Result<ParsedRequest, RequestError> {
120121
121122#[ cfg( test) ]
122123mod tests {
123- use vmm:: vmm_config:: snapshot:: { MemBackendConfig , MemBackendType } ;
124+ use vmm:: vmm_config:: snapshot:: { MemBackendConfig , MemBackendType , NetworkOverride } ;
124125
125126 use super :: * ;
126127 use crate :: api_server:: parsed_request:: tests:: { depr_action_from_req, vmm_action_from_request} ;
@@ -181,6 +182,7 @@ mod tests {
181182 } ,
182183 enable_diff_snapshots : false ,
183184 resume_vm : false ,
185+ network_overrides : vec ! [ ] ,
184186 } ;
185187 let mut parsed_request = parse_put_snapshot ( & Body :: new ( body) , Some ( "load" ) ) . unwrap ( ) ;
186188 assert ! (
@@ -210,6 +212,7 @@ mod tests {
210212 } ,
211213 enable_diff_snapshots : true ,
212214 resume_vm : false ,
215+ network_overrides : vec ! [ ] ,
213216 } ;
214217 let mut parsed_request = parse_put_snapshot ( & Body :: new ( body) , Some ( "load" ) ) . unwrap ( ) ;
215218 assert ! (
@@ -239,6 +242,46 @@ mod tests {
239242 } ,
240243 enable_diff_snapshots : false ,
241244 resume_vm : true ,
245+ network_overrides : vec ! [ ] ,
246+ } ;
247+ let mut parsed_request = parse_put_snapshot ( & Body :: new ( body) , Some ( "load" ) ) . unwrap ( ) ;
248+ assert ! (
249+ parsed_request
250+ . parsing_info( )
251+ . take_deprecation_message( )
252+ . is_none( )
253+ ) ;
254+ assert_eq ! (
255+ vmm_action_from_request( parsed_request) ,
256+ VmmAction :: LoadSnapshot ( expected_config)
257+ ) ;
258+
259+ let body = r#"{
260+ "snapshot_path": "foo",
261+ "mem_backend": {
262+ "backend_path": "bar",
263+ "backend_type": "Uffd"
264+ },
265+ "resume_vm": true,
266+ "network_overrides": [
267+ {
268+ "iface_id": "eth0",
269+ "host_dev_name": "vmtap2"
270+ }
271+ ]
272+ }"# ;
273+ let expected_config = LoadSnapshotParams {
274+ snapshot_path : PathBuf :: from ( "foo" ) ,
275+ mem_backend : MemBackendConfig {
276+ backend_path : PathBuf :: from ( "bar" ) ,
277+ backend_type : MemBackendType :: Uffd ,
278+ } ,
279+ enable_diff_snapshots : false ,
280+ resume_vm : true ,
281+ network_overrides : vec ! [ NetworkOverride {
282+ iface_id: String :: from( "eth0" ) ,
283+ host_dev_name: String :: from( "vmtap2" ) ,
284+ } ] ,
242285 } ;
243286 let mut parsed_request = parse_put_snapshot ( & Body :: new ( body) , Some ( "load" ) ) . unwrap ( ) ;
244287 assert ! (
@@ -265,6 +308,7 @@ mod tests {
265308 } ,
266309 enable_diff_snapshots : false ,
267310 resume_vm : true ,
311+ network_overrides : vec ! [ ] ,
268312 } ;
269313 let parsed_request = parse_put_snapshot ( & Body :: new ( body) , Some ( "load" ) ) . unwrap ( ) ;
270314 assert_eq ! (
0 commit comments