mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00

This adds an optional set of cluster node names to narrow the querying to. It similarly expands the dispatch mechanism, since it likely most sense for any such request to apply only to a subset of nodes. Requests for invalid nodes trigger Response records in error state.
48 lines
2 KiB
Text
48 lines
2 KiB
Text
##! The Management event API of cluster nodes. The API consists of request/
|
|
##! response event pairs, like elsewhere in the Management, Supervisor, and
|
|
##! Control frameworks.
|
|
|
|
@load policy/frameworks/management/types
|
|
|
|
module Management::Node::API;
|
|
|
|
export {
|
|
## Management agents send this event to every Zeek cluster node to run a
|
|
## "dispatch" -- a particular, pre-implemented action. This is the agent-node
|
|
## complement to :zeek:see:`Management::Agent::API::node_dispatch_request`.
|
|
##
|
|
## reqid: a request identifier string, echoed in the response event.
|
|
##
|
|
## action: the requested dispatch command, with any arguments.
|
|
##
|
|
## nodes: the cluster node names this dispatch targets. An empty set,
|
|
## supplied by default, means it applies to all nodes. Since nodes
|
|
## receive all dispatch requests, they can use any node names provided
|
|
## here to filter themselves out of responding.
|
|
global node_dispatch_request: event(reqid: string, action: vector of string,
|
|
nodes: set[string] &default=set());
|
|
|
|
## Response to a node_dispatch_request event. The nodes send this back
|
|
## to the agent. This is the agent-node equivalent of
|
|
## :zeek:see:`Management::Agent::API::node_dispatch_response`.
|
|
##
|
|
## reqid: the request identifier used in the request event.
|
|
##
|
|
## result: a :zeek:see:`Management::Result` record covering one Zeek
|
|
## cluster node managed by the agent. Upon success, the data field
|
|
## contains a value appropriate for the requested dispatch.
|
|
global node_dispatch_response: event(reqid: string, result: Management::Result);
|
|
|
|
|
|
# Notification events, node -> agent
|
|
|
|
## The cluster nodes send this event upon peering as a "check-in" to
|
|
## the agent, to indicate the node is now available to communicate
|
|
## with. It is an agent-level equivalent of :zeek:see:`Broker::peer_added`,
|
|
## and similar to :zeek:see:`Management::Agent::API::notify_agent_hello`
|
|
## for agents.
|
|
##
|
|
## node: the name of the node, as given in :zeek:see:`Cluster::node`.
|
|
##
|
|
global notify_node_hello: event(node: string);
|
|
}
|