orbit-server / orbit.server.mesh / ClusterManager

ClusterManager

class ClusterManager

Constructors

<init>

ClusterManager(config: OrbitServerConfig, nodeDirectory: NodeDirectory)

Functions

findRoute

fun findRoute(sourceNode: NodeId, targetNode: NodeId): List<NodeId>

getAllNodes

fun getAllNodes(): Collection<NodeInfo>

getNode

suspend fun getNode(nodeId: NodeId, forceRefresh: Boolean = false): NodeInfo?

joinCluster

suspend fun joinCluster(namespace: String, capabilities: NodeCapabilities, url: String? = null, nodeStatus: NodeStatus): NodeInfo

renewLease

suspend fun renewLease(nodeId: NodeId, challengeToken: ChallengeToken, capabilities: NodeCapabilities): NodeInfo

tick

suspend fun tick(): Unit

updateNode

suspend fun updateNode(nodeId: NodeId, body: (NodeInfo?) -> NodeInfo?): NodeInfo?