- print(msg.topic+" "+str(msg.payload))
- if msg.topic == client.id + '-request':
- print str(msg.payload)
- port = getAvailablePort(SSH_SERVER, PORT_RANGE)
- if exec_ssh(port) == 0:
- client.publish(client.id + '-response', port)
- else:
- raise Exception ('run ssh failed')
+ print('Receive topic:' + msg.topic + ' payload: ' +str(msg.payload))
+ payload = ast.literal_eval(str(msg.payload))
+ from_id = payload['from']
+ if payload['type'] == 'request':
+ if payload['command'] == 'ssh':
+ port = getAvailablePort(SSH_SERVER, PORT_RANGE)
+ if exec_ssh(port) == 0:
+ response = {'from': userdata['id'], 'type':'response', 'command':payload['command'], 'data':port}
+ client.publish(payload['from'], str(response))
+ else:
+ raise Exception ('run ssh failed')
+ if payload['command'] == 'list':
+ response = {'from': userdata['id'], 'type':'response', 'command':payload['command'], 'data':'OK'}
+ client.publish(payload['from'], str(response))
+