@@ -1027,8 +1027,43 @@ module StorageAPI (R : RPC) = struct
10271027 )
10281028
10291029 module MIRROR = struct
1030+ let mirror_vm_p = Param. mk ~name: " mirror_vm" Vm. t
1031+
1032+ let copy_vm_p = Param. mk ~name: " copy_vm" Vm. t
1033+
1034+ let live_vm_p = Param. mk ~name: " live_vm" Vm. t
1035+
10301036 let id_p = Param. mk ~name: " id" Mirror. id
10311037
1038+ (* * [send_start dbg dp task src_sr vdi mirror_vm mirror_id local_vdi copy_vm
1039+ live_vm url remote_mirror dest_sr verify_dest]
1040+ takes the remote mirror [remote_mirror] prepared by the destination host
1041+ and initiates the mirroring of [vdi] from the source *)
1042+ let send_start =
1043+ let recv_result_p =
1044+ Param. mk ~name: " recv_result" Mirror. mirror_receive_result
1045+ in
1046+ let local_vdi_p = Param. mk ~name: " local_vdi" vdi_info in
1047+ let src_sr_p = Param. mk ~name: " src_sr" Sr. t in
1048+ let dest_sr_p = Param. mk ~name: " dest_sr" Sr. t in
1049+ declare " DATA.MIRROR.send_start" []
1050+ (dbg_p
1051+ @-> dp_p
1052+ @-> task_id_p
1053+ @-> src_sr_p
1054+ @-> vdi_p
1055+ @-> mirror_vm_p
1056+ @-> id_p
1057+ @-> local_vdi_p
1058+ @-> copy_vm_p
1059+ @-> live_vm_p
1060+ @-> url_p
1061+ @-> recv_result_p
1062+ @-> dest_sr_p
1063+ @-> verify_dest_p
1064+ @-> returning unit_p err
1065+ )
1066+
10321067 (* * Called on the receiving end
10331068 @deprecated This function is deprecated, and is only here to keep backward
10341069 compatibility with old xapis that call Remote.DATA.MIRROR.receive_start during SXM.
@@ -1130,6 +1165,24 @@ end
11301165module type MIRROR = sig
11311166 type context = unit
11321167
1168+ val send_start :
1169+ context
1170+ -> dbg :debug_info
1171+ -> task_id :Task .id
1172+ -> dp :dp
1173+ -> sr :sr
1174+ -> vdi :vdi
1175+ -> mirror_vm :vm
1176+ -> mirror_id :Mirror .id
1177+ -> local_vdi :vdi_info
1178+ -> copy_vm :vm
1179+ -> live_vm :vm
1180+ -> url :string
1181+ -> remote_mirror :Mirror .mirror_receive_result
1182+ -> dest_sr :sr
1183+ -> verify_dest :bool
1184+ -> unit
1185+
11331186 val receive_start :
11341187 context
11351188 -> dbg :debug_info
@@ -1586,6 +1639,27 @@ module Server (Impl : Server_impl) () = struct
15861639 S.DATA. copy (fun dbg sr vdi vm url dest verify_dest ->
15871640 Impl.DATA. copy () ~dbg ~sr ~vdi ~vm ~url ~dest ~verify_dest
15881641 ) ;
1642+ S.DATA.MIRROR. send_start
1643+ (fun
1644+ dbg
1645+ task_id
1646+ dp
1647+ sr
1648+ vdi
1649+ mirror_vm
1650+ mirror_id
1651+ local_vdi
1652+ copy_vm
1653+ live_vm
1654+ url
1655+ remote_mirror
1656+ dest_sr
1657+ verify_dest
1658+ ->
1659+ Impl.DATA.MIRROR. send_start () ~dbg ~task_id ~dp ~sr ~vdi ~mirror_vm
1660+ ~mirror_id ~local_vdi ~copy_vm ~live_vm ~url ~remote_mirror ~dest_sr
1661+ ~verify_dest
1662+ ) ;
15891663 S.DATA.MIRROR. receive_start (fun dbg sr vdi_info id similar ->
15901664 Impl.DATA.MIRROR. receive_start () ~dbg ~sr ~vdi_info ~id ~similar
15911665 ) ;
0 commit comments