|
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