command line: wait until daemon is connected

This commit is contained in:
ThomasV 2014-07-25 13:30:27 +02:00
parent 3e6f903da3
commit 2120b1a573
4 changed files with 12 additions and 3 deletions

View File

@ -113,6 +113,11 @@ def run_command(cmd, password=None, args=None):
s = daemon_socket()
network = NetworkProxy(s, config)
network.start()
while network.is_connecting():
time.sleep(0.1)
if not network.is_connected():
print_msg("daemon is not connected")
sys.exit(1)
if wallet:
wallet.start_threads(network)
wallet.update()

View File

@ -125,7 +125,8 @@ class ClientThread(threading.Thread):
try:
new_id = self.network.interface.send([(method, params)], cb) [0]
except Exception as e:
self.queue.put(out = {'id':_id, 'error':str(e)})
self.queue.put({'id':_id, 'error':str(e)})
print_error("network interface error", str(e))
return
self.unanswered_requests[new_id] = _id

View File

@ -117,7 +117,7 @@ class Network(threading.Thread):
self.subscriptions[self.on_peers] = [('server.peers.subscribe',[])]
self.pending_transactions_for_notifications = []
self.connection_status = 'disconnected'
self.connection_status = 'connecting'
def set_status(self, status):
self.connection_status = status

View File

@ -54,7 +54,7 @@ class NetworkProxy(threading.Thread):
self.daemon = True
# status variables
self.status = 'disconnected'
self.status = 'connecting'
self.servers = {}
self.banner = ''
self.height = 0
@ -181,6 +181,9 @@ class NetworkProxy(threading.Thread):
def is_connected(self):
return self.status == 'connected'
def is_connecting(self):
return self.status == 'connecting'
def is_up_to_date(self):
return self.synchronous_get([('network.is_up_to_date',[])])[0]