|
50 | 50 | get_server_info/1, get_server_info/2,
|
51 | 51 | get/3, get/4, get/5,
|
52 | 52 | fetch/2, fetch/3, push/3,
|
| 53 | + peer_discovery/1, |
53 | 54 | put/2, put/3, put/4,
|
54 | 55 | delete/3, delete/4, delete/5,
|
55 | 56 | delete_vclock/4, delete_vclock/5, delete_vclock/6,
|
@@ -380,6 +381,12 @@ push(Pid, QueueName, BucketKeyClockList) ->
|
380 | 381 | Req = #rpbpushreq{queuename = QueueName, keys_value = KeysValue},
|
381 | 382 | call_infinity(Pid, {req, Req, default_timeout(get_timeout)}).
|
382 | 383 |
|
| 384 | + |
| 385 | +-spec peer_discovery(pid()) -> {error, term()}|{ok, iolist()}. |
| 386 | +peer_discovery(Pid) -> |
| 387 | + Req = #rpbmembershipreq{}, |
| 388 | + call_infinity(Pid, {req, Req, default_timeout(get_timeout)}). |
| 389 | + |
383 | 390 | make_keyvalue({{T, B}, K, C}) ->
|
384 | 391 | #rpbkeysvalue{type = T, bucket = B, key = K, value = C};
|
385 | 392 | make_keyvalue({B, K, C}) ->
|
@@ -2512,7 +2519,16 @@ process_response(#request{msg = #rpbpushreq{queuename = Q}},
|
2512 | 2519 | iolist_to_binary(io_lib:format("No queue ~s", [Q]))},
|
2513 | 2520 | State};
|
2514 | 2521 |
|
2515 |
| - |
| 2522 | +%% rpbmembershipreq |
| 2523 | +process_response(#request{msg = #rpbmembershipreq{}}, |
| 2524 | + #rpbmembershipresp{up_nodes = UpNodeList}, State) -> |
| 2525 | + ErlifiedInfo = |
| 2526 | + lists:map( |
| 2527 | + fun(ME) -> |
| 2528 | + {ME#rpbclustermemberentry.ip, ME#rpbclustermemberentry.port} |
| 2529 | + end, |
| 2530 | + UpNodeList), |
| 2531 | + {reply, {ok, ErlifiedInfo}, State}; |
2516 | 2532 |
|
2517 | 2533 | %% rpbputreq
|
2518 | 2534 | process_response(#request{msg = #rpbputreq{}},
|
|
0 commit comments