mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 22:58:20 +00:00

This changes the basic agent-management model to one in which the configurations received from the client define not just the data cluster, but also set the set of acceptable instances. Unless connectivity already exists, the controller will establish peerings with new agents that listen, or wait for ones that connect to the controller to check in. Once all required agents are available, the controller triggers the new notify_agents_ready event, an agent/controller-level "cluster-is-ready" event. The controller also uses this event to submit a pending config update to the now-ready instances.
20 lines
661 B
Text
20 lines
661 B
Text
@load ./types
|
|
|
|
module ClusterController::API;
|
|
|
|
export {
|
|
const version = 1;
|
|
|
|
# Triggered when the operational instances align with desired ones, as
|
|
# defined by the latest cluster config sent by the client.
|
|
global notify_agents_ready: event(instances: set[string]);
|
|
|
|
global get_instances_request: event(reqid: string);
|
|
global get_instances_response: event(reqid: string,
|
|
instances: vector of ClusterController::Types::Instance);
|
|
|
|
global set_configuration_request: event(reqid: string,
|
|
config: ClusterController::Types::Configuration);
|
|
global set_configuration_response: event(reqid: string,
|
|
result: ClusterController::Types::ResultVec);
|
|
}
|