JSON-RPC: getmanifest passes allow-deprecated-apis flag.

This allows plugins to choose how to present things in getmanifest.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Added: plugins: `getmanifest` may now include "allow-deprecated-apis" boolean flag.
Changelog-Deprecated: plugins: `getmanifest` without any parameters; plugins should accept any parameters for future use.
This commit is contained in:
Rusty Russell 2020-08-06 09:57:48 +09:30
parent 930e294801
commit 151bc47583
3 changed files with 8 additions and 4 deletions

View file

@ -8,7 +8,7 @@ import sys
import time
def json_getmanifest(request):
def json_getmanifest(request, **kwargs):
# Timeout is 60 seconds, so wait more
time.sleep(61)
return {

View file

@ -57,9 +57,10 @@ interface.
### The `getmanifest` method
The `getmanifest` method is required for all plugins and will be called on
startup without any params. It MUST return a JSON object similar to
this example:
The `getmanifest` method is required for all plugins and will be
called on startup with optionsl parameters (in particular, it may have
`allow-deprecated-apis: false`, but you should accept others). It
MUST return a JSON object similar to this example:
```json
{

View file

@ -1285,6 +1285,9 @@ const char *plugin_send_getmanifest(struct plugin *p)
p->stdin_conn = io_new_conn(p, stdin, plugin_stdin_conn_init, p);
req = jsonrpc_request_start(p, "getmanifest", p->log,
plugin_manifest_cb, p);
/* Adding allow-deprecated-apis is part of the deprecation cycle! */
if (!deprecated_apis)
json_add_bool(req->stream, "allow-deprecated-apis", deprecated_apis);
jsonrpc_request_end(req);
plugin_request_send(p, req);
p->plugin_state = AWAITING_GETMANIFEST_RESPONSE;