anchor.diff:  %% This function is called by onepanel, BEFORE adding new storage.
   %% @end
   %%-------------------------------------------------------------------
  --spec verify_storage_on_all_nodes(helpers:helper()) -> ok | {error, term()}.
  +-spec verify_storage_on_all_nodes(helpers:helper()) ->
  +    ok | {error, term()} | {error, term(), Stacktrace :: list()}.
   verify_storage_on_all_nodes(Helper) ->
       {ok, AdminCtx} = luma:get_admin_ctx(?ROOT_USER_ID, Helper),
       {ok, AdminCtx2} = luma:add_helper_specific_fields(?ROOT_USER_ID,
           ?ROOT_SESS_ID, AdminCtx, Helper),
       {ok, [Node | Nodes]} = node_manager:get_cluster_nodes(),
       FileId = generate_file_id(),
  -    FileContent = create_test_file(Node, Helper, AdminCtx2, FileId),
  -    case verify_storage_internal(Helper, AdminCtx2, Nodes, FileId, FileContent) of
  -        {ok, {FileId, FileContent}} ->
  -            verify_test_file(Node, Helper, AdminCtx2, FileId, FileContent);
  +    case create_test_file(Node, Helper, AdminCtx2, FileId) of
  +        {ok, FileContent} ->
  +            case verify_storage_internal(Helper, AdminCtx2, Nodes, FileId, FileContent) of
  +                {ok, {FileId, FileContent}} ->
  +                    verify_test_file(Node, Helper, AdminCtx2, FileId, FileContent);
  +                Error ->
  +                    Error
  +            end;
           Error ->
               Error
       end.
  
positive.code: %%-------------------------------------------------------------------
  -spec verify_storage_internal(helpers:helper(), helpers:user_ctx(), [node()],
      helpers:file_id(), Content :: binary()) ->
      {ok, {helpers:file_id(), binary()}} | {error, term()}.
  verify_storage_internal(_Helper, _AdminCtx, [], FileId, FileContent) ->
      {ok, {FileId, FileContent}};
  verify_storage_internal(Helper, AdminCtx, [Node | Nodes], FileId, ExpectedFileContent) ->
      case verify_test_file(Node, Helper, AdminCtx, FileId, ExpectedFileContent) of
          ok ->
              FileId2 = generate_file_id(),
              FileContent = create_test_file(Node, Helper, AdminCtx, FileId),
              verify_storage_internal(Helper, AdminCtx, Nodes, FileId2, FileContent);
          Error ->
              Error
      end.
  
  -spec create_test_file(node(), helpers:helper(), helpers:user_ctx(), helpers:file_id()) ->
      Content :: binary().
  create_test_file(Node, Helper, UserCtx, FileId) ->
      rpc:call(Node, ?MODULE, create_test_file, [Helper, UserCtx, FileId]).
  
  -spec verify_test_file(node(), helpers:helper(), helpers:user_ctx(),
      helpers:file_id(), Content :: binary()) -> ok | {error, term()}.
  verify_test_file(Node, Helper, UserCtx, FileId, ExpectedFileContent) ->
      rpc:call(Node, ?MODULE, verify_test_file, [Helper, UserCtx, FileId, ExpectedFileContent]).
negative.code: -spec verify_test_file(helpers:helper(), helpers:user_ctx(), helpers:file_id(),
      Content :: binary()) -> ok | {error, term()}.
  verify_test_file(Helper, UserCtx, FileId, ExpectedFileContent) ->
      try
          case read_test_file(Helper, UserCtx, FileId) of
              ExpectedFileContent ->
                  ok;
              UnexpectedFileContent ->
                  ?error("Unexpected test file content in ~tp", [FileId]),
                  ?ERR_STORAGE_TEST_FILE_READ(node(),
                      {invalid_content, ExpectedFileContent, UnexpectedFileContent})
          end
      after
          remove_test_file(Helper, UserCtx, FileId, byte_size(ExpectedFileContent))
      end.
  
  %%%===================================================================
  