anchor.diff:  %% @end
   %%--------------------------------------------------------------------
   -spec get_storage_user_ctx(Node :: node(), StorageType :: binary(),
  -    Params :: storage_params_map()) -> UserCtx :: any().
  +    Params :: storage_params_map()) -> {ok, UserCtx :: any()}.
   get_storage_user_ctx(Node, <<"ceph">>, Params) ->
       rpc:call(Node, helper, new_ceph_user_ctx, [
           <<_/binary>> = onepanel_utils:typed_get(username, Params, binary),
  
positive.code: %% @end
  %%--------------------------------------------------------------------
  -spec get_storage_helper(Node :: node(), StorageType :: binary(), UserCtx :: any(),
      Params :: storage_params_map()) -> Helper :: any().
  get_storage_helper(Node, <<"ceph">>, UserCtx, Params) ->
      rpc:call(Node, helper, new_ceph_helper, [
          onepanel_utils:typed_get(monitorHostname, Params, binary),
  
negative.code: %% op_worker service nodes.
  %% @end
  %%--------------------------------------------------------------------
  -spec maybe_verify_storage(Helper :: any(), Readonly :: boolean()) ->
      ok | no_return().
  maybe_verify_storage(_Helper, true) ->
      ok;
  maybe_verify_storage(Helper, _) ->
      ?info("Verifying write access to storage"),
      verify_storage(Helper).
  
  %%--------------------------------------------------------------------
  %% @private @doc Verifies that storage is accessible for all op_worker
  %% service nodes.
  %% @end
  %%--------------------------------------------------------------------
  -spec verify_storage(Helper :: any()) ->
      ok | no_return().
  verify_storage(Helper) ->
      [Node | _] = service_op_worker:get_nodes(),
      rpc:call(Node, storage_detector, verify_storage_on_all_nodes, [Helper]).
  
  
  %%--------------------------------------------------------------------
  