fix: multi client, master only need to build cluster once

This commit is contained in:
Ting-Jun Wang 2024-05-30 16:15:31 +08:00
parent e72b9021be
commit 755a929aeb
Signed by: snsd0805
GPG Key ID: 48D331A3D6160354

View File

@ -42,12 +42,15 @@ class ClusterCommunicationModule():
break break
elif data == '[CHECK]': # master side elif data == '[CHECK]': # master side
# build docker swarm # build docker swarm
self.node_manager.docker_client.swarm.init(advertise_addr=self.host, listen_addr=f"{self.host}:2377", force_new_cluster=True) if self.node_manager.docker_client.swarm.attrs == {}:
print("Build new docker swarm...")
self.node_manager.docker_client.swarm.init(advertise_addr=self.host, listen_addr=f"{self.host}:2377", force_new_cluster=True)
# send docker swarm token to the worker # send docker swarm token to the worker
token = self.node_manager.docker_client.swarm.attrs['JoinTokens']['Worker'] token = self.node_manager.docker_client.swarm.attrs['JoinTokens']['Worker']
conn.send(f'[DOCKER_TOKEN] {token}'.encode()) conn.send(f'[DOCKER_TOKEN] {token}'.encode())
print(f"Send token: {token} to the worker.") print(f"Send token: {token} to the worker.")
print("Please Enter to continue...")
self.worker_conns.append(conn) self.worker_conns.append(conn)
continue continue