From 94c5dc0804e6b0fa0f981802c4cea85f3ce44538 Mon Sep 17 00:00:00 2001 From: ahmedbodi Date: Wed, 25 Dec 2013 22:27:44 +0100 Subject: [PATCH] Refresh Config Script --- mining/service.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/mining/service.py b/mining/service.py index 4dbc9bd..76f70c3 100644 --- a/mining/service.py +++ b/mining/service.py @@ -7,6 +7,7 @@ from stratum.pubsub import Pubsub from interfaces import Interfaces from subscription import MiningSubscription from lib.exceptions import SubmitException +import json import lib.logger log = lib.logger.get_logger('mining') @@ -21,6 +22,29 @@ class MiningService(GenericService): service_type = 'mining' service_vendor = 'stratum' is_default = True + event = 'mining.notify' + + @admin + def get_server_stats(self): + serialized = '' + for subscription in Pubsub.iterate_subscribers(self.event): + try: + if subscription != None: + session = subscription.connection_ref().get_session() + session.setdefault('authorized', {}) + if session['authorized'].keys(): + worker_name = session['authorized'].keys()[0] + difficulty = session['difficulty'] + ip = subscription.connection_ref()._get_ip() + serialized += json.dumps({'worker_name': worker_name, 'ip': ip, 'difficulty': difficulty}) + else: + pass + except Exception as e: + log.exception("Error getting subscriptions %s" % str(e)) + pass + + log.debug("Server stats request: %s" % serialized) + return '%s' % serialized @admin def update_block(self): @@ -43,6 +67,12 @@ class MiningService(GenericService): log.info("New litecoind connection added %s:%s" % (args[0], args[1])) return True + @admin + def refresh_config(self): + settings.setup() + log.info("Updated Config") + return True + def authorize(self, worker_name, worker_password): '''Let authorize worker on this connection.'''