fix: use 2 spaces as split token

This commit is contained in:
Ting-Jun Wang 2024-05-30 17:15:18 +08:00
parent 5b8b3e7c39
commit 0cae46b25b
Signed by: snsd0805
GPG Key ID: 48D331A3D6160354

View File

@ -48,7 +48,7 @@ class ClusterCommunicationModule():
# 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...") print("Please Enter to continue...")
@ -65,7 +65,7 @@ class ClusterCommunicationModule():
self.client_sock.send('[CHECK]'.encode()) self.client_sock.send('[CHECK]'.encode())
# join docker swarm cluster # join docker swarm cluster
token = self.client_sock.recv(1024).decode().split()[-1] token = self.client_sock.recv(1024).decode().split(' ')[-1]
print("Receive Docker Swarm Join_Token=", token) print("Receive Docker Swarm Join_Token=", token)
status = self.node_manager.docker_client.swarm.join(remote_addrs=[f'{addr[0]}:2377'], join_token=token) status = self.node_manager.docker_client.swarm.join(remote_addrs=[f'{addr[0]}:2377'], join_token=token)
@ -84,14 +84,14 @@ class ClusterCommunicationModule():
return False return False
def handle_command(self, data): def handle_command(self, data):
command, args = data.split() command, args = data.split(' ')
if command == '[INFO]': if command == '[INFO]':
data = {'host': self.host, 'GPU': self.node_manager.GPU, 'GPU_num': self.node_manager.GPU_num} data = {'host': self.host, 'GPU': self.node_manager.GPU, 'GPU_num': self.node_manager.GPU_num}
self.client_sock.send(json.dumps(data).encode()) self.client_sock.send(json.dumps(data).encode())
elif command == '[STOP]': elif command == '[STOP]':
self.node_manager.docker_client.swarm.leave() self.node_manager.docker_client.swarm.leave()
data = {'host': self.host} data = {'host': self.host}
self.client_sock.send(f'[STOP_CHECK] {json.dumps(data)}'.encode()) self.client_sock.send(f'[STOP_CHECK] {json.dumps(data)}'.encode())
return True return True
@ -119,7 +119,7 @@ class ClusterCommunicationModule():
ans = [] ans = []
for conn in self.worker_conns: for conn in self.worker_conns:
try: try:
conn.send('[INFO] {}'.encode()) conn.send('[INFO] {}'.encode())
data = conn.recv(1024) data = conn.recv(1024)
data = json.loads(data.decode()) data = json.loads(data.decode())
ans.append(data) ans.append(data)
@ -131,8 +131,8 @@ class ClusterCommunicationModule():
def exit(self): def exit(self):
if self.node_manager.status == 'master': if self.node_manager.status == 'master':
for conn in self.worker_conns: for conn in self.worker_conns:
conn.send('[STOP] {}'.encode()) conn.send('[STOP] {}'.encode())
check, args = conn.recv(1024).decode().split() check, args = conn.recv(1024).decode().split(' ')
print(f'{args} has stopped.') print(f'{args} has stopped.')
self.node_manager.docker_client.swarm.leave(force=True) self.node_manager.docker_client.swarm.leave(force=True)