@@ -898,6 +898,7 @@ module QueryImpl (M : META) = struct
898898 ; (" Volume.clone" , " VDI_CLONE" )
899899 ; (" Volume.snapshot" , " VDI_SNAPSHOT" )
900900 ; (" Volume.resize" , " VDI_RESIZE" )
901+ ; (" Volume.resize_online" , " VDI_RESIZE_ONLINE" )
901902 ; (" Volume.destroy" , " VDI_DELETE" )
902903 ; (" Volume.stat" , " VDI_UPDATE" )
903904 ]
@@ -1504,6 +1505,19 @@ module VDIImpl (M : META) = struct
15041505 )
15051506 |> wrap
15061507
1508+ let vdi_resize_online_impl dbg sr vdi' new_size =
1509+ (let vdi = Storage_interface.Vdi. string_of vdi' in
1510+ Attached_SRs. find sr >>> = fun sr ->
1511+ return_volume_rpc (fun () ->
1512+ Volume_client. resize_online (volume_rpc ~dbg ) dbg sr vdi new_size
1513+ )
1514+ >>> = fun () ->
1515+ (* Now call Volume.stat to discover the size *)
1516+ stat ~dbg ~sr ~vdi >>> = fun response ->
1517+ return response.Xapi_storage.Control. virtual_size
1518+ )
1519+ |> wrap
1520+
15071521 let vdi_stat_impl dbg sr vdi' =
15081522 (let vdi = Storage_interface.Vdi. string_of vdi' in
15091523 Attached_SRs. find sr >>> = fun sr ->
@@ -1934,6 +1948,7 @@ let bind ~volume_script_dir =
19341948 S.VDI. set_name_label VDI. vdi_set_name_label_impl ;
19351949 S.VDI. set_name_description VDI. vdi_set_name_description_impl ;
19361950 S.VDI. resize VDI. vdi_resize_impl ;
1951+ S.VDI. resize_online VDI. vdi_resize_online_impl ;
19371952 S.VDI. stat VDI. vdi_stat_impl ;
19381953 S.VDI. introduce VDI. vdi_introduce_impl ;
19391954 S.VDI. attach3 VDI. vdi_attach3_impl ;
0 commit comments