def _upgrade_data(self): version = self._get_version() cur_version = self._get_data_version() if cur_version and cur_version < self._get_version_int('0.10.5'): logger.info('Upgrading data to v0.10.5...') from server import Server for server in Server.iter_servers(): server._upgrade_0_10_5() from organization import Organization for org in Organization.iter_orgs(): org._upgrade_0_10_5() if cur_version and cur_version < self._get_version_int('0.10.6'): logger.info('Upgrading data to v0.10.6...') if self.password: from cache import persist_db logger.info('Upgrading config to v0.10.6...') salt = base64.b64encode( '2511cebca93d028393735637bbc8029207731fcf') password = base64.b64encode(self.password.decode('hex')) persist_db.dict_set('auth', 'password', '0$%s$%s' % (salt, password)) self.password = None self.commit() from server import Server for server in Server.iter_servers(): server._upgrade_0_10_6() if cur_version and cur_version < self._get_version_int('0.10.9'): logger.info('Upgrading data to v0.10.9...') from server import Server for server in Server.iter_servers(): server._upgrade_0_10_9() from organization import Organization for org in Organization.iter_orgs(): for user in org.iter_users(): user._upgrade_0_10_9() org.sort_users_cache() if cur_version != version: from pritunl import __version__ version_path = os.path.join(self.data_path, VERSION_NAME) with open(version_path, 'w') as version_file: version_file.write('%s\n' % __version__)
def _fill_cache(self): logger.info('Preloading cache...') from organization import Organization for org in Organization.iter_orgs(): org._cache_users() from server import Server for server in Server.iter_servers(): server.load()
def _run_wsgi(self): if self.ssl: self._setup_server_cert() from log_entry import LogEntry logger.info('Starting server...') if self.auto_start_servers: from pritunl.server import Server for server in Server.iter_servers(): if server.org_count: try: server.start() except: logger.exception('Failed to auto start server. %r' % { 'server_id': server.id, }) server = cherrypy.wsgiserver.CherryPyWSGIServer( (self.bind_addr, self.port), self.app, request_queue_size=SERVER_REQUEST_QUEUE_SIZE, server_name=cherrypy.wsgiserver.CherryPyWSGIServer.version) if self.ssl: server.ssl_adapter = \ cherrypy.wsgiserver.ssl_builtin.BuiltinSSLAdapter( self._server_cert_path, self._server_key_path) try: server.start() except (KeyboardInterrupt, SystemExit): pass except: logger.exception('Server error occurred') raise finally: signal.signal(signal.SIGINT, signal.SIG_IGN) logger.info('Stopping server...') LogEntry(message='Web server stopped.') self.interrupt = True server.stop()
def iter_servers(self): from server import Server for server in Server.iter_servers(): if self.id in server.organizations: yield server