Commit Graph

23 Commits

Author SHA1 Message Date
e31ab7176b wsproxy mode tested. 2024-09-08 11:16:49 +02:00
f3963288e3 using clientId in the public interface of admin instead of an internal
interface agentConnection.
2024-09-08 11:16:49 +02:00
95204a9f5b modification for testability caused a panic when client tries to connect
to unknown agent.
2024-09-08 11:16:49 +02:00
e334554d4a multiple clients and agents. 2024-09-08 11:16:49 +02:00
1ec7241c95 now asserting succesful client creation after calling connectClient()
THis way conenctClient(0 can be used also for cases where client
connection
is not successful.
2024-09-08 11:16:49 +02:00
9bff8db297 connectClient now returns an error when unsuccessful. 2024-09-08 11:16:49 +02:00
d21f9c847f connectClient() extracted to make it easy to connect a client. 2024-09-08 11:16:49 +02:00
2accbaf3fe changes for testing agent connect by returning a synchronizer() function
that must be called after connect to synchronize data.
2024-09-08 11:16:49 +02:00
e03e7d7b9a work in progress for testing the matchmaker. 2024-09-08 11:16:49 +02:00
ea0b4282ba test for ListenForAgentEvents implemented. 2024-09-08 11:16:49 +02:00
00dd0d17c6 hostkey is now sent from the server to the agent so that at a later
stage we can make the hostkey conrfigurable at the server level instead
of using a fixed hardcoded key.
2024-09-08 11:16:49 +02:00
3408e2893a moved all ui stuff to the ui package.
The structure of converge server is now much more clear in the package
// structure below pkg/server.
2024-09-08 11:16:49 +02:00
c66be7775f renamed templates package to ui 2024-09-08 11:16:49 +02:00
3574b64842 Server side sorting for the websessions page. No longer using LinkedMap as a result. 2024-09-08 11:16:49 +02:00
9f12b7bea4 Separated out the metadata about the agents and clients from the agentConnection and clientConnection objects. Now, the state does not need to be copied anymore when sending notifications.
The matchmaker uses copy on write every time a new agent or client connects or disconnects.
2024-09-08 11:16:49 +02:00
96c62ab925 concurrency for the expiry time 2024-09-08 11:16:49 +02:00
fc7977f7bb now using maps of Guid to Agent/Client in the state, working towards the definitive solution.
Using LinkedMap that preserves insertion order for the implementation and also added unit tests for that.
2024-09-08 11:16:49 +02:00
556315906d introdcution of typesafe ids. 2024-09-08 11:16:49 +02:00
2d426f8db3 using unbuffered channels everywhere now. Only change required was to initialize prometeus and the websessions before the matchmaker. This is because at startup the matchmaker wants to write a notification when it starts up but then prometheus and the websessions would not be there to read them.
Alternative solution would be to run all initialization code in go routines to make it independent of initialization order but having a defined initialization order is much cleaner.
2024-09-08 11:16:49 +02:00
f83d7b2c83 added a utility function for logging request data. 2024-09-08 11:16:49 +02:00
30a49217e4 Much imporoved websocket connection closure will now detect closing of
websockets immediately.
2024-09-08 11:16:49 +02:00
567d9a4031 now a single websocket is opened from the webui to converge.
The browser sends a hello message anytime the user switches to the
sessions page, upon which the server sends the current state back.
THis also improves the timeout handling of broken connecions.
2024-09-08 11:16:49 +02:00
a06d8b0ca6 renamed converge package to matchmaker. 2024-09-08 11:16:49 +02:00