anchor.diff:              rest_test_utils:request(WorkerP1, <<"metadata/json/space2">>, get,
                   ?USER_1_AUTH_HEADERS(Config, [{?HDR_ACCEPT, <<"application/json">>}]), []))
       end, Primitives).
  -
  -empty_metadata_invalid_json_test(Config) ->
  -    [_WorkerP2, WorkerP1] = ?config(op_worker_nodes, Config),
  -
  -    InvalidJsons = [<<"aaa">>, <<"{">>, <<"{\"aaa\": aaa}">>],
  -
  -    lists:foreach(fun(InvalidJson) ->
  -        ?assertMatch({ok, 400, _, _},
  -            rest_test_utils:request(WorkerP1, <<"metadata/json/space2">>, put,
  -                ?USER_1_AUTH_HEADERS(Config, [{?HDR_CONTENT_TYPE, <<"application/json">>}]), InvalidJson))
  -    end, InvalidJsons).
   
   list_transfers(Config) ->
       ct:timetrap({hours, 1}),
  
positive.code:         DecodedBody
      ).
  
  xattr_get(Config) ->
      [_WorkerP2, WorkerP1] = ?config(op_worker_nodes, Config),
      SessionId = ?config({session_id, {<<"user1">>, ?GET_DOMAIN(WorkerP1)}}, Config),
      [{_SpaceId, SpaceName} | _] = ?config({spaces, <<"user1">>}, Config),
      File = filename:join(["/", SpaceName, "file1_xg"]),
      {ok, FileGuid} = lfm_proxy:create(WorkerP1, SessionId, File, 8#700),
      ok = lfm_proxy:set_xattr(WorkerP1, SessionId, {guid, FileGuid}, #xattr{name = <<"k1">>, value = <<"v1">>}),
  
      % when
      {ok, 200, _, Body} = rest_test_utils:request(WorkerP1, <<"metadata/xattrs", File/binary, "?attribute=k1">>, get, ?USER_1_AUTH_HEADERS(Config), []),
  
      % then
      DecodedBody = json_utils:decode(Body),
      ?assertEqual(
          #{
              <<"k1">> => <<"v1">>
          },
          DecodedBody
      ).
  
  xattr_put(Config) ->
      [_WorkerP2, WorkerP1] = ?config(op_worker_nodes, Config),
      SessionId = ?config({session_id, {<<"user1">>, ?GET_DOMAIN(WorkerP1)}}, Config),
  
negative.code:         posix_mode_get,
          posix_mode_put,
          attributes_list,
          metric_get,
          list_spaces,
          get_space,
          create_share,
  