@@ -8,7 +8,7 @@ use std::time::Duration;
8
8
use utils:: tempfile:: TempFile ;
9
9
use vmm:: builder:: build_and_boot_microvm;
10
10
use vmm:: devices:: virtio:: block:: CacheType ;
11
- use vmm:: persist:: { self , snapshot_state_sanity_check, MicrovmState , MicrovmStateError , VmInfo } ;
11
+ use vmm:: persist:: { snapshot_state_sanity_check, MicrovmState , MicrovmStateError , VmInfo } ;
12
12
use vmm:: resources:: VmResources ;
13
13
use vmm:: rpc_interface:: {
14
14
LoadSnapshotError , PrebootApiController , RuntimeApiController , VmmAction , VmmActionError ,
@@ -23,7 +23,7 @@ use vmm::vmm_config::balloon::BalloonDeviceConfig;
23
23
use vmm:: vmm_config:: boot_source:: BootSourceConfig ;
24
24
use vmm:: vmm_config:: drive:: BlockDeviceConfig ;
25
25
use vmm:: vmm_config:: instance_info:: { InstanceInfo , VmState } ;
26
- use vmm:: vmm_config:: machine_config:: { MachineConfig , MachineConfigUpdate } ;
26
+ use vmm:: vmm_config:: machine_config:: { MachineConfig , MachineConfigUpdate , VmConfig } ;
27
27
use vmm:: vmm_config:: net:: NetworkInterfaceConfig ;
28
28
use vmm:: vmm_config:: snapshot:: {
29
29
CreateSnapshotParams , LoadSnapshotParams , MemBackendConfig , MemBackendType , SnapshotType ,
@@ -187,12 +187,22 @@ fn verify_create_snapshot(is_diff: bool) -> (TempFile, TempFile) {
187
187
let memory_file = TempFile :: new ( ) . unwrap ( ) ;
188
188
189
189
let ( vmm, _) = create_vmm ( Some ( NOISY_KERNEL_IMAGE ) , is_diff, true ) ;
190
+ let resources = VmResources {
191
+ vm_config : VmConfig {
192
+ mem_size_mib : 1 ,
193
+ track_dirty_pages : is_diff,
194
+ ..Default :: default ( )
195
+ } ,
196
+ ..Default :: default ( )
197
+ } ;
198
+ let vm_info = VmInfo :: from ( & resources) ;
199
+ let mut controller = RuntimeApiController :: new ( resources, vmm. clone ( ) ) ;
190
200
191
201
// Be sure that the microVM is running.
192
202
thread:: sleep ( Duration :: from_millis ( 200 ) ) ;
193
203
194
204
// Pause microVM.
195
- vmm . lock ( ) . unwrap ( ) . pause_vm ( ) . unwrap ( ) ;
205
+ controller . handle_request ( VmmAction :: Pause ) . unwrap ( ) ;
196
206
197
207
// Create snapshot.
198
208
let snapshot_type = match is_diff {
@@ -204,15 +214,10 @@ fn verify_create_snapshot(is_diff: bool) -> (TempFile, TempFile) {
204
214
snapshot_path : snapshot_file. as_path ( ) . to_path_buf ( ) ,
205
215
mem_file_path : memory_file. as_path ( ) . to_path_buf ( ) ,
206
216
} ;
207
- let vm_info = VmInfo {
208
- mem_size_mib : 1u64 ,
209
- ..Default :: default ( )
210
- } ;
211
217
212
- {
213
- let mut locked_vmm = vmm. lock ( ) . unwrap ( ) ;
214
- persist:: create_snapshot ( & mut locked_vmm, & vm_info, & snapshot_params) . unwrap ( ) ;
215
- }
218
+ controller
219
+ . handle_request ( VmmAction :: CreateSnapshot ( snapshot_params) )
220
+ . unwrap ( ) ;
216
221
217
222
vmm. lock ( ) . unwrap ( ) . stop ( FcExitCode :: Ok ) ;
218
223
0 commit comments