X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fmonitor-api.inc;h=e4dc2c92ab5860f26e97c5ce772b836d23f06fac;hb=f3d1f19ae308cc0559728c0ccf6281cbce5ee37c;hp=e5fe5e53549f5a0e2c4ff4e6eb1889b8ee322685;hpb=e48b6fb595d90509d70f850244fc962f8440a14b;p=src%2Fapp-framework-binder.git diff --git a/src/monitor-api.inc b/src/monitor-api.inc index e5fe5e53..e4dc2c92 100644 --- a/src/monitor-api.inc +++ b/src/monitor-api.inc @@ -1,8 +1,9 @@ -static const char _afb_description_v2_monitor[] = - "{\"openapi\":\"3.0.0\",\"info\":{\"description\":\"\",\"title\":\"monito" - "r\",\"version\":\"1.0\",\"x-binding\":{\"version\":2,\"prefix\":\"f_\",\"" - "postfix\":\"\",\"start\":null,\"onevent\":null,\"init\":null,\"scope\":\"" +static const char _afb_description_monitor[] = + "{\"openapi\":\"3.0.0\",\"info\":{\"description\":\"monitoring of binding" + "s and internals\",\"title\":\"monitor\",\"version\":\"1.0\",\"x-binding-" + "c-generator\":{\"api\":\"monitor\",\"version\":2,\"prefix\":\"f_\",\"pos" + "tfix\":\"\",\"preinit\":null,\"init\":null,\"onevent\":null,\"scope\":\"" "static\",\"private\":true}},\"servers\":[{\"url\":\"ws://{host}:{port}/a" "pi/monitor\",\"description\":\"The API server.\",\"variables\":{\"host\"" ":{\"default\":\"localhost\"},\"port\":{\"default\":\"1234\"}},\"x-afb-ev" @@ -10,67 +11,175 @@ static const char _afb_description_v2_monitor[] = "{\"schemas\":{\"afb-reply\":{\"$ref\":\"#/components/schemas/afb-reply-v" "1\"},\"afb-event\":{\"$ref\":\"#/components/schemas/afb-event-v1\"},\"af" "b-reply-v1\":{\"title\":\"Generic response.\",\"type\":\"object\",\"requ" - "ired\":[\"jtype\",\"request\"],\"properties\":{\"jtype\":{\"const\":\"af" - "b-reply\"},\"request\":{\"type\":\"object\",\"required\":[\"status\"],\"" - "properties\":{\"status\":{\"type\":\"string\"},\"info\":{\"type\":\"stri" - "ng\"},\"token\":{\"type\":\"string\"},\"uuid\":{\"type\":\"string\"},\"r" - "eqid\":{\"type\":\"string\"}}},\"response\":{\"type\":\"object\"}}},\"af" - "b-event-v1\":{\"type\":\"object\",\"properties\":{\"jtype\":{\"type\":\"" - "string\"},\"event\":{\"type\":\"string\"},\"data\":{\"type\":\"object\"}" - "}}},\"x-permissions\":{\"set\":{\"permission\":\"urn:AGL:permission:moni" - "tor:public:set\"},\"get\":{\"permission\":\"urn:AGL:permission:monitor:p" - "ublic:get\"},\"get-or-set\":{\"anyOf\":[{\"$ref\":\"#/components/x-permi" - "ssions/get\"},{\"$ref\":\"#/components/x-permissions/set\"}]}}},\"paths\"" - ":{\"/get\":{\"description\":\"Get monitoring data.\",\"x-permissions\":{" - "\"$ref\":\"#/components/x-permissions/get-or-set\"},\"get\":{\"parameter" - "s\":[{\"in\":\"query\",\"name\":\"filter\",\"required\":false,\"schema\"" - ":{\"type\":\"object\",\"properties\":{\"event\":{\"type\":\"string\"}}}}" - "],\"responses\":{\"200\":{\"description\":\"A complex object array respo" - "nse\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/compon" - "ents/schemas/afb-reply\"}}}}}}},\"/set\":{\"description\":\"Set monitori" - "ng actions.\",\"x-permissions\":{\"$ref\":\"#/components/x-permissions/s" - "et\"},\"get\":{\"parameters\":[{\"in\":\"query\",\"name\":\"filter\",\"r" - "equired\":false,\"schema\":{\"type\":\"object\",\"properties\":{\"event\"" - ":{\"type\":\"string\"}}}}],\"responses\":{\"200\":{\"description\":\"A c" - "omplex object array response\",\"content\":{\"application/json\":{\"sche" - "ma\":{\"$ref\":\"#/components/schemas/afb-reply\"}}}}}}}}}" + "ired\":[\"jtype\",\"request\"],\"properties\":{\"jtype\":{\"type\":\"str" + "ing\",\"const\":\"afb-reply\"},\"request\":{\"type\":\"object\",\"requir" + "ed\":[\"status\"],\"properties\":{\"status\":{\"type\":\"string\"},\"inf" + "o\":{\"type\":\"string\"},\"token\":{\"type\":\"string\"},\"uuid\":{\"ty" + "pe\":\"string\"},\"reqid\":{\"type\":\"string\"}}},\"response\":{\"type\"" + ":\"object\"}}},\"afb-event-v1\":{\"type\":\"object\",\"required\":[\"jty" + "pe\",\"event\"],\"properties\":{\"jtype\":{\"type\":\"string\",\"const\"" + ":\"afb-event\"},\"event\":{\"type\":\"string\"},\"data\":{\"type\":\"obj" + "ect\"}}},\"set-verbosity\":{\"anyOf\":[{\"$ref\":\"#/components/schemas/" + "verbosity-map\"},{\"$ref\":\"#/components/schemas/verbosity-level\"}]},\"" + "get-request\":{\"type\":\"object\",\"properties\":{\"verbosity\":{\"$ref" + "\":\"#/components/schemas/get-verbosity\"},\"apis\":{\"$ref\":\"#/compon" + "ents/schemas/get-apis\"}}},\"get-response\":{\"type\":\"object\",\"prope" + "rties\":{\"verbosity\":{\"$ref\":\"#/components/schemas/verbosity-map\"}" + ",\"apis\":{\"type\":\"object\"}}},\"get-verbosity\":{\"anyOf\":[{\"type\"" + ":\"boolean\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}},{\"ty" + "pe\":\"object\"}]},\"get-apis\":{\"anyOf\":[{\"type\":\"boolean\"},{\"ty" + "pe\":\"array\",\"items\":{\"type\":\"string\"}},{\"type\":\"object\"}]}," + "\"verbosity-map\":{\"type\":\"object\",\"patternProperties\":{\"^.*$\":{" + "\"$ref\":\"#/components/schemas/verbosity-level\"}}},\"verbosity-level\"" + ":{\"enum\":[\"debug\",3,\"info\",2,\"notice\",\"warning\",1,\"error\",0]" + "},\"trace-add\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"$ref\":\"#/" + "components/schemas/trace-add-object\"}},{\"$ref\":\"#/components/schemas" + "/trace-add-any\"}]},\"trace-add-any\":{\"anyOf\":[{\"$ref\":\"#/componen" + "ts/schemas/trace-add-request\"},{\"$ref\":\"#/components/schemas/trace-a" + "dd-object\"}]},\"trace-add-object\":{\"type\":\"object\",\"properties\":" + "{\"name\":{\"type\":\"string\",\"description\":\"name of the generated e" + "vent\",\"default\":\"trace\"},\"tag\":{\"type\":\"string\",\"description" + "\":\"tag for grouping traces\",\"default\":\"trace\"},\"api\":{\"type\":" + "\"string\",\"description\":\"api for requests, daemons and services\"},\"" + "verb\":{\"type\":\"string\",\"description\":\"verb for requests\"},\"uui" + "d\":{\"type\":\"string\",\"description\":\"uuid of session for requests\"" + "},\"pattern\":{\"type\":\"string\",\"description\":\"pattern for events\"" + "},\"request\":{\"$ref\":\"#/components/schemas/trace-add-request\"},\"da" + "emon\":{\"$ref\":\"#/components/schemas/trace-add-daemon\"},\"service\":" + "{\"$ref\":\"#/components/schemas/trace-add-service\"},\"event\":{\"$ref\"" + ":\"#/components/schemas/trace-add-event\"},\"session\":{\"$ref\":\"#/com" + "ponents/schemas/trace-add-session\"},\"for\":{\"$ref\":\"#/components/sc" + "hemas/trace-add\"}},\"examples\":[{\"tag\":\"1\",\"for\":[\"common\",{\"" + "api\":\"xxx\",\"request\":\"*\",\"daemon\":\"*\",\"service\":\"*\"}]}]}," + "\"trace-add-request\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"$ref\"" + ":\"#/components/schemas/trace-request-names\"}},{\"$ref\":\"#/components" + "/schemas/trace-request-names\"}]},\"trace-request-names\":{\"title\":\"n" + "ame of traceable items of requests\",\"enum\":[\"*\",\"addref\",\"all\"," + "\"args\",\"begin\",\"common\",\"context\",\"context_get\",\"context_set\"" + ",\"end\",\"event\",\"extra\",\"fail\",\"get\",\"json\",\"life\",\"ref\"," + "\"result\",\"session\",\"session_close\",\"session_set_LOA\",\"simple\"," + "\"store\",\"stores\",\"subcall\",\"subcall_result\",\"subcalls\",\"subca" + "llsync\",\"subcallsync_result\",\"subscribe\",\"success\",\"unref\",\"un" + "store\",\"unsubscribe\",\"vverbose\"]},\"trace-add-daemon\":{\"anyOf\":[" + "{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/trace-dae" + "mon-names\"}},{\"$ref\":\"#/components/schemas/trace-daemon-names\"}]},\"" + "trace-daemon-names\":{\"title\":\"name of traceable items of daemons\",\"" + "enum\":[\"*\",\"all\",\"common\",\"event_broadcast_after\",\"event_broad" + "cast_before\",\"event_make\",\"extra\",\"get_event_loop\",\"get_system_b" + "us\",\"get_user_bus\",\"queue_job\",\"require_api\",\"require_api_result" + "\",\"rootdir_get_fd\",\"rootdir_open_locale\",\"unstore_req\",\"vverbose" + "\"]},\"trace-add-service\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"" + "$ref\":\"#/components/schemas/trace-service-names\"}},{\"$ref\":\"#/comp" + "onents/schemas/trace-service-names\"}]},\"trace-service-names\":{\"title" + "\":\"name of traceable items of services\",\"enum\":[\"*\",\"all\",\"cal" + "l\",\"call_result\",\"callsync\",\"callsync_result\",\"on_event_after\"," + "\"on_event_before\",\"start_after\",\"start_before\"]},\"trace-add-event" + "\":{\"anyOf\":[{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/sc" + "hemas/trace-event-names\"}},{\"$ref\":\"#/components/schemas/trace-event" + "-names\"}]},\"trace-event-names\":{\"title\":\"name of traceable items o" + "f events\",\"enum\":[\"*\",\"all\",\"broadcast_after\",\"broadcast_befor" + "e\",\"common\",\"create\",\"drop\",\"extra\",\"name\",\"push_after\",\"p" + "ush_before\"]},\"trace-add-session\":{\"anyOf\":[{\"type\":\"array\",\"i" + "tems\":{\"$ref\":\"#/components/schemas/trace-session-names\"}},{\"$ref\"" + ":\"#/components/schemas/trace-session-names\"}]},\"trace-session-names\"" + ":{\"title\":\"name of traceable items for sessions\",\"enum\":[\"*\",\"a" + "ddref\",\"all\",\"close\",\"common\",\"create\",\"destroy\",\"renew\",\"" + "unref\"]},\"trace-drop\":{\"anyOf\":[{\"type\":\"boolean\"},{\"type\":\"" + "object\",\"properties\":{\"event\":{\"anyOf\":[{\"type\":\"string\"},{\"" + "type\":\"array\",\"items\":\"string\"}]},\"tag\":{\"anyOf\":[{\"type\":\"" + "string\"},{\"type\":\"array\",\"items\":\"string\"}]},\"uuid\":{\"anyOf\"" + ":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":\"string\"}]}}}]}}" + "},\"paths\":{\"/get\":{\"description\":\"Get monitoring data.\",\"get\":" + "{\"x-permissions\":{\"session\":\"check\"},\"parameters\":[{\"in\":\"que" + "ry\",\"name\":\"verbosity\",\"required\":false,\"schema\":{\"$ref\":\"#/" + "components/schemas/get-verbosity\"}},{\"in\":\"query\",\"name\":\"apis\"" + ",\"required\":false,\"schema\":{\"$ref\":\"#/components/schemas/get-apis" + "\"}}],\"responses\":{\"200\":{\"description\":\"A complex object array r" + "esponse\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/co" + "mponents/schemas/afb-reply\"}}}}}}},\"/set\":{\"description\":\"Set moni" + "toring actions.\",\"get\":{\"x-permissions\":{\"session\":\"check\"},\"p" + "arameters\":[{\"in\":\"query\",\"name\":\"verbosity\",\"required\":false" + ",\"schema\":{\"$ref\":\"#/components/schemas/set-verbosity\"}}],\"respon" + "ses\":{\"200\":{\"description\":\"A complex object array response\",\"co" + "ntent\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schem" + "as/afb-reply\"}}}}}}},\"/trace\":{\"description\":\"Set monitoring actio" + "ns.\",\"get\":{\"x-permissions\":{\"session\":\"check\"},\"parameters\":" + "[{\"in\":\"query\",\"name\":\"add\",\"required\":false,\"schema\":{\"$re" + "f\":\"#/components/schemas/trace-add\"}},{\"in\":\"query\",\"name\":\"dr" + "op\",\"required\":false,\"schema\":{\"$ref\":\"#/components/schemas/trac" + "e-drop\"}}],\"responses\":{\"200\":{\"description\":\"A complex object a" + "rray response\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":" + "\"#/components/schemas/afb-reply\"}}}}}}},\"/session\":{\"description\":" + "\"describes the session.\",\"get\":{\"x-permissions\":{\"session\":\"che" + "ck\"},\"parameters\":[{\"in\":\"query\",\"name\":\"refresh-token\",\"req" + "uired\":false,\"schema\":{\"type\":\"boolean\"}}],\"responses\":{\"200\"" + ":{\"description\":\"A complex object array response\",\"content\":{\"app" + "lication/json\":{\"schema\":{\"$ref\":\"#/components/schemas/afb-reply\"" + "}}}}}}}}}" ; -static const struct afb_auth _afb_auths_v2_monitor[] = { - { .type = afb_auth_Permission, .text = "urn:AGL:permission:monitor:public:set" }, - { .type = afb_auth_Permission, .text = "urn:AGL:permission:monitor:public:get" }, - { .type = afb_auth_Or, .first = &_afb_auths_v2_monitor[1], .next = &_afb_auths_v2_monitor[0] } -}; - -static void f_get(struct afb_req req); -static void f_set(struct afb_req req); +static void f_get(afb_req_t req); +static void f_set(afb_req_t req); +static void f_trace(afb_req_t req); +static void f_session(afb_req_t req); -static const struct afb_verb_v2 _afb_verbs_v2_monitor[] = { +static const struct afb_verb_v3 _afb_verbs_monitor[] = { { .verb = "get", .callback = f_get, - .auth = &_afb_auths_v2_monitor[2], - .info = NULL, - .session = AFB_SESSION_NONE_V2 + .auth = NULL, + .info = "Get monitoring data.", + .session = AFB_SESSION_CHECK, + .vcbdata = NULL, + .glob = 0 }, { .verb = "set", .callback = f_set, - .auth = &_afb_auths_v2_monitor[0], - .info = NULL, - .session = AFB_SESSION_NONE_V2 + .auth = NULL, + .info = "Set monitoring actions.", + .session = AFB_SESSION_CHECK, + .vcbdata = NULL, + .glob = 0 + }, + { + .verb = "trace", + .callback = f_trace, + .auth = NULL, + .info = "Set monitoring actions.", + .session = AFB_SESSION_CHECK, + .vcbdata = NULL, + .glob = 0 + }, + { + .verb = "session", + .callback = f_session, + .auth = NULL, + .info = "describes the session.", + .session = AFB_SESSION_CHECK, + .vcbdata = NULL, + .glob = 0 }, - { .verb = NULL } + { + .verb = NULL, + .callback = NULL, + .auth = NULL, + .info = NULL, + .session = 0, + .vcbdata = NULL, + .glob = 0 + } }; -static const struct afb_binding_v2 _afb_binding_v2_monitor = { +static const struct afb_binding_v3 _afb_binding_monitor = { .api = "monitor", - .specification = _afb_description_v2_monitor, - .info = NULL, - .verbs = _afb_verbs_v2_monitor, + .specification = _afb_description_monitor, + .info = "monitoring of bindings and internals", + .verbs = _afb_verbs_monitor, .preinit = NULL, .init = NULL, .onevent = NULL, + .userdata = NULL, .noconcurrency = 0 };