is_lagging indicator and internet connection check
-adds is_lagging indicator as a key from daemon_status, which is set to True during a phase of the startup sequence, presently only during loading_wallet if catching up with the blockchain takes longer than a minute. -checks if connected to internet before trying to start
This commit is contained in:
parent
6b9f1d519e
commit
47d897b48d
3 changed files with 42 additions and 21 deletions
|
@ -70,6 +70,8 @@ class LBRYWallet(object):
|
|||
self.max_expected_payment_time = datetime.timedelta(minutes=3)
|
||||
self.stopped = True
|
||||
|
||||
self.is_lagging = None
|
||||
|
||||
self.manage_running = False
|
||||
self._manage_count = 0
|
||||
self._balance_refresh_time = 3
|
||||
|
@ -996,15 +998,17 @@ class LBRYumWallet(LBRYWallet):
|
|||
self._catch_up_check = None
|
||||
blockchain_caught_d.callback(True)
|
||||
elif remote_height != 0:
|
||||
self.blocks_behind_alert = remote_height - local_height
|
||||
if self.blocks_behind_alert > self.max_behind:
|
||||
self.max_behind = self.blocks_behind_alert
|
||||
self.catchup_progress = int(100 * (self.blocks_behind_alert / (5 + self.max_behind)))
|
||||
if self._caught_up_counter == 0:
|
||||
alert.info('Catching up to the blockchain...showing blocks left...')
|
||||
if self._caught_up_counter % 30 == 0:
|
||||
self.blocks_behind_alert = remote_height - local_height
|
||||
if self.blocks_behind_alert > self.max_behind:
|
||||
self.max_behind = self.blocks_behind_alert
|
||||
self.catchup_progress = int(100 * (self.blocks_behind_alert / (5 + self.max_behind)))
|
||||
alert.info('%d...', (remote_height - local_height))
|
||||
alert.info("Catching up: " + str(int(100 * (self.blocks_behind_alert / (5 + self.max_behind)))) + "%")
|
||||
alert.info("Catching up: " + str(self.catchup_progress) + "%")
|
||||
if self._caught_up_counter >= 600:
|
||||
self.is_lagging = True
|
||||
|
||||
self._caught_up_counter += 1
|
||||
|
||||
|
|
|
@ -928,10 +928,12 @@ class LBRYDaemon(jsonrpc.JSONRPC):
|
|||
if status_code is 'loading_wallet', also contains key 'progress': blockchain catchup progress
|
||||
"""
|
||||
|
||||
r = {'code': self.startup_status[0], 'message': self.startup_status[1], 'progress': None}
|
||||
r = {'code': self.startup_status[0], 'message': self.startup_status[1], 'progress': None, 'is_lagging': None}
|
||||
if self.startup_status[0] == 'loading_wallet':
|
||||
r['message'] = r['message'] % (str(self.session.wallet.blocks_behind_alert) + " blocks behind")
|
||||
r['progress'] = self.session.wallet.catchup_progress
|
||||
r['is_lagging'] = self.session.wallet.is_lagging
|
||||
|
||||
log.info("[" + str(datetime.now()) + "] daemon status: " + str(r))
|
||||
return self._render_response(r, OK_CODE)
|
||||
|
||||
|
|
|
@ -6,6 +6,8 @@ import os
|
|||
import shutil
|
||||
import webbrowser
|
||||
import sys
|
||||
import socket
|
||||
|
||||
|
||||
from StringIO import StringIO
|
||||
from zipfile import ZipFile
|
||||
|
@ -34,6 +36,16 @@ handler = logging.handlers.RotatingFileHandler(LOG_FILENAME, maxBytes=262144, ba
|
|||
log.addHandler(handler)
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
||||
REMOTE_SERVER = "www.google.com"
|
||||
|
||||
def test_internet_connection():
|
||||
try:
|
||||
host = socket.gethostbyname(REMOTE_SERVER)
|
||||
s = socket.create_connection((host, 80), 2)
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
|
||||
|
||||
def stop():
|
||||
def _disp_shutdown():
|
||||
|
@ -104,6 +116,10 @@ def start():
|
|||
version_dir = os.path.join(data_dir, "ui_version_history")
|
||||
|
||||
git_version = subprocess.check_output(GIT_CMD_STRING, shell=True)
|
||||
if not git_version:
|
||||
log.info("You should have been notified to install xcode command line tools, once it's installed you can start LBRY")
|
||||
sys.exit(0)
|
||||
|
||||
ui_version_info = git_version
|
||||
|
||||
if not os.path.isdir(data_dir):
|
||||
|
@ -113,15 +129,11 @@ def start():
|
|||
os.mkdir(version_dir)
|
||||
|
||||
if not os.path.isfile(os.path.join(version_dir, git_version)):
|
||||
try:
|
||||
f = open(os.path.join(version_dir, git_version), "w")
|
||||
version_message = "[" + str(datetime.now()) + "] Updating UI --> " + git_version
|
||||
f.write(version_message)
|
||||
f.close()
|
||||
log.info(version_message)
|
||||
except:
|
||||
log.info("You should have been notified to install xcode command line tools, once it's installed you can start LBRY")
|
||||
sys.exit(0)
|
||||
f = open(os.path.join(version_dir, git_version), "w")
|
||||
version_message = "[" + str(datetime.now()) + "] Updating UI --> " + git_version
|
||||
f.write(version_message)
|
||||
f.close()
|
||||
log.info(version_message)
|
||||
|
||||
if os.path.isdir(os.path.join(data_dir, "lbry-web-ui")):
|
||||
shutil.rmtree(os.path.join(data_dir, "lbry-web-ui"))
|
||||
|
@ -149,9 +161,12 @@ def start():
|
|||
reactor.listenTCP(API_PORT, server.Site(root), interface=API_INTERFACE)
|
||||
return daemon.setup()
|
||||
|
||||
d = getui(args.ui)
|
||||
d.addCallback(lambda r: setupserver(r[0], r[1]))
|
||||
d.addCallback(lambda r: setupapi(r[0], args.wallet, r[1]))
|
||||
d.addCallback(lambda _: webbrowser.open(UI_ADDRESS))
|
||||
|
||||
reactor.run()
|
||||
if test_internet_connection():
|
||||
d = getui(args.ui)
|
||||
d.addCallback(lambda r: setupserver(r[0], r[1]))
|
||||
d.addCallback(lambda r: setupapi(r[0], args.wallet, r[1]))
|
||||
d.addCallback(lambda _: webbrowser.open(UI_ADDRESS))
|
||||
reactor.run()
|
||||
else:
|
||||
log.info("Not connected to internet, unable to start")
|
||||
return
|
||||
|
|
Loading…
Reference in a new issue