finish up removing daemon queue, migrate shutdown to event system
This commit is contained in:
		
							parent
							
								
									a801960179
								
							
						
					
					
						commit
						88fe605762
					
				
					 7 changed files with 21 additions and 40 deletions
				
			
		|  | @ -21,7 +21,6 @@ from communicatorutils import lookupblocks | |||
| from communicatorutils import lookupadders | ||||
| from communicatorutils import connectnewpeers | ||||
| from communicatorutils import uploadblocks | ||||
| from communicatorutils import daemonqueuehandler | ||||
| from communicatorutils import announcenode, deniableinserts | ||||
| from communicatorutils import cooldownpeer | ||||
| from communicatorutils import housekeeping | ||||
|  | @ -32,7 +31,6 @@ from etc import humanreadabletime | |||
| import onionrservices | ||||
| import filepaths | ||||
| from onionrblocks import storagecounter | ||||
| from coredb import daemonqueue | ||||
| from coredb import dbfiles | ||||
| from netcontroller import NetController | ||||
| from . import bootstrappeers | ||||
|  | @ -120,10 +118,6 @@ class OnionrCommunicatorDaemon: | |||
|         # to avoid downloading full lists all the time | ||||
|         self.dbTimestamps = {} | ||||
| 
 | ||||
|         # Clear the daemon queue for any dead messages | ||||
|         if os.path.exists(dbfiles.daemon_queue_db): | ||||
|             daemonqueue.clear_daemon_queue() | ||||
| 
 | ||||
|         # Loads in and starts the enabled plugins | ||||
|         plugins.reload() | ||||
| 
 | ||||
|  | @ -183,11 +177,6 @@ class OnionrCommunicatorDaemon: | |||
|             self, uploadblocks.upload_blocks_from_communicator, | ||||
|             5, my_args=[self], requires_peer=True, max_threads=1) | ||||
| 
 | ||||
|         # Timer to process the daemon command queue | ||||
|         OnionrCommunicatorTimers( | ||||
|             self, daemonqueuehandler.handle_daemon_commands, | ||||
|             6, my_args=[self], max_threads=3) | ||||
| 
 | ||||
|         # Setup direct connections | ||||
|         if config.get('general.socket_servers', False): | ||||
|             self.services = onionrservices.OnionrServices() | ||||
|  |  | |||
|  | @ -18,7 +18,6 @@ from communicator import onlinepeers | |||
| from onionrutils import blockmetadata | ||||
| from onionrutils import validatemetadata | ||||
| from coredb import blockmetadb | ||||
| from coredb import daemonqueue | ||||
| from onionrutils.localcommand import local_command | ||||
| import onionrcrypto | ||||
| import onionrstorage | ||||
|  |  | |||
|  | @ -1 +1 @@ | |||
| from . import keydb, blockmetadb, daemonqueue | ||||
| from . import keydb, blockmetadb | ||||
|  | @ -1,9 +1,14 @@ | |||
| ''' | ||||
| """ | ||||
|     Onionr - Private P2P Communication | ||||
| 
 | ||||
|     Shutdown the node either hard or cleanly | ||||
| ''' | ||||
| ''' | ||||
| """ | ||||
| from flask import Blueprint, Response | ||||
| from flask import g | ||||
| from onionrblocks import onionrblockapi | ||||
| import onionrexceptions | ||||
| from onionrutils import stringvalidators | ||||
| """ | ||||
|     This program is free software: you can redistribute it and/or modify | ||||
|     it under the terms of the GNU General Public License as published by | ||||
|     the Free Software Foundation, either version 3 of the License, or | ||||
|  | @ -16,12 +21,8 @@ | |||
| 
 | ||||
|     You should have received a copy of the GNU General Public License | ||||
|     along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
| ''' | ||||
| from flask import Blueprint, Response | ||||
| from onionrblocks import onionrblockapi | ||||
| import onionrexceptions | ||||
| from onionrutils import stringvalidators | ||||
| from coredb import daemonqueue | ||||
| """ | ||||
| 
 | ||||
| shutdown_bp = Blueprint('shutdown', __name__) | ||||
| 
 | ||||
| def shutdown(client_api_inst): | ||||
|  | @ -35,5 +36,5 @@ def shutdown(client_api_inst): | |||
| @shutdown_bp.route('/shutdownclean') | ||||
| def shutdown_clean(): | ||||
|     # good for calling from other clients | ||||
|     daemonqueue.daemon_queue_add('shutdown') | ||||
|     return Response("bye") | ||||
|     g.too_many.get_by_string("OnionrCommunicatorDaemon").shutdown = True | ||||
|     return Response("bye") | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ import platform | |||
| import sqlite3 | ||||
| from threading import Thread | ||||
| from gevent import time | ||||
| from gevent import spawn | ||||
| 
 | ||||
| import toomanyobjs | ||||
| 
 | ||||
|  | @ -19,7 +20,6 @@ from onionrplugins import onionrevents as events | |||
| from netcontroller import NetController | ||||
| from onionrutils import localcommand | ||||
| import filepaths | ||||
| from coredb import daemonqueue | ||||
| from etc import onionrvalues, cleanup | ||||
| from onionrcrypto import getourkeypair | ||||
| from utils import hastor, logoheader | ||||
|  | @ -166,7 +166,10 @@ def kill_daemon(): | |||
|     events.event('daemon_stop') | ||||
|     net = NetController(config.get('client.port', 59496)) | ||||
|     try: | ||||
|         daemonqueue.daemon_queue_add('shutdown') | ||||
|         spawn( | ||||
|             localcommand.local_command, | ||||
|             '/shutdownclean' | ||||
|             ).get(timeout=5) | ||||
|     except sqlite3.OperationalError: | ||||
|         pass | ||||
| 
 | ||||
|  |  | |||
|  | @ -20,7 +20,6 @@ | |||
| 
 | ||||
| import onionrplugins, logger | ||||
| from onionrutils import localcommand | ||||
| from coredb import daemonqueue | ||||
| 
 | ||||
| class PluginAPI: | ||||
|     def __init__(self, pluginapi): | ||||
|  |  | |||
|  | @ -150,18 +150,6 @@ def createForwardKeyDB(): | |||
|     conn.close() | ||||
|     return | ||||
| 
 | ||||
| def createDaemonDB(): | ||||
|     ''' | ||||
|         Create the daemon queue database | ||||
|     ''' | ||||
|     if os.path.exists(dbfiles.daemon_queue_db): | ||||
|         raise FileExistsError("Daemon queue db already exists") | ||||
|     conn = sqlite3.connect(dbfiles.daemon_queue_db, timeout=10) | ||||
|     c = conn.cursor() | ||||
|     # Create table | ||||
|     c.execute('''CREATE TABLE commands (id integer primary key autoincrement, command text, data text, date text, responseID text)''') | ||||
|     conn.commit() | ||||
|     conn.close() | ||||
| 
 | ||||
| def create_blacklist_db(): | ||||
|     if os.path.exists(dbfiles.blacklist_db): | ||||
|  | @ -180,4 +168,6 @@ def create_blacklist_db(): | |||
|     conn.close() | ||||
| 
 | ||||
| 
 | ||||
| create_funcs = [createAddressDB, createPeerDB, createBlockDB, createBlockDataDB, createForwardKeyDB, createDaemonDB, create_blacklist_db] | ||||
| create_funcs = [createAddressDB, createPeerDB, | ||||
|                 createBlockDB, createBlockDataDB, | ||||
|                 createForwardKeyDB, create_blacklist_db] | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue