Remove the Supervisor's internal ClusterEndpoint struct.

This eliminates one place in which we currently need to mirror changes to the
script-land Cluster::Node record. Instead of keeping an exact in-core equivalent, the
Supervisor now treats the data structure as opaque, and stores the whole cluster
table as a JSON string.

We may replace the script-layer Supervisor::ClusterEndpoint in the future, using
Cluster::Node directly. But that's a more invasive change that will affect how
people invoke Supervisor::create() and similars.

Relying on JSON for serialization has the side-effect of removing the
Supervisor's earlier quirk of using 0/tcp, not 0/unknown, to indicate unused
ports in the Supervisor::ClusterEndpoint record.
This commit is contained in:
Christian Kreibich 2024-06-24 22:19:29 -07:00
parent a98ec6b08b
commit 737b1a2013
7 changed files with 51 additions and 181 deletions

View file

@ -5,6 +5,7 @@
-./frameworks/cluster/nodes/proxy.zeek
-./frameworks/cluster/nodes/worker.zeek
-./frameworks/cluster/setup-connections.zeek
-./frameworks/cluster/supervisor.zeek
-./frameworks/intel/cluster.zeek
-./frameworks/netcontrol/cluster.zeek
-./frameworks/openflow/cluster.zeek