Skip to content

Commit

Permalink
Merge pull request #5807 from edwintorok/private/edvint/listen_p
Browse files Browse the repository at this point in the history
CA-395512: process SMAPIv3 API calls concurrently
  • Loading branch information
edwintorok authored Jul 22, 2024
2 parents 0a92794 + f4e944f commit e60aeb5
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion ocaml/xapi-storage-script/main.ml
Original file line number Diff line number Diff line change
Expand Up @@ -1693,14 +1693,20 @@ let rec diff a b =
| a :: aa ->
if List.mem b a ~equal:String.( = ) then diff aa b else a :: diff aa b

(* default false due to bugs in SMAPIv3 plugins,
once they are fixed this should be set to true *)
let concurrent = ref false

let watch_volume_plugins ~volume_root ~switch_path ~pipe =
let create volume_plugin_name =
if Hashtbl.mem servers volume_plugin_name then
return ()
else (
info "Adding %s" volume_plugin_name ;
let volume_script_dir = Filename.concat volume_root volume_plugin_name in
Message_switch_async.Protocol_async.Server.listen
Message_switch_async.Protocol_async.Server.(
if !concurrent then listen_p else listen
)
~process:(process_smapiv2_requests (bind ~volume_script_dir))
~switch:switch_path
~queue:(Filename.basename volume_plugin_name)
Expand Down Expand Up @@ -1957,6 +1963,11 @@ let _ =
, (fun () -> string_of_bool !self_test_only)
, "Do only a self-test and exit"
)
; ( "concurrent"
, Arg.Set concurrent
, (fun () -> string_of_bool !concurrent)
, "Issue SMAPIv3 calls concurrently"
)
]
in
configure2 ~name:"xapi-script-storage" ~version:Xapi_version.version
Expand Down

0 comments on commit e60aeb5

Please sign in to comment.