def test_get_status(self): """Test that get_status does not raise any unhandled exceptions. This should work regardless of whether tor is installed, or /etc/tor/torrc exists. """ get_status()
def index(request): """Serve configuration page.""" if config_process: _collect_config_result(request) status = tor.get_status() form = None if request.method == 'POST': form = TorForm(request.POST, prefix='tor') # pylint: disable=E1101 if form.is_valid(): _apply_changes(request, status, form.cleaned_data) status = tor.get_status() form = TorForm(initial=status, prefix='tor') else: form = TorForm(initial=status, prefix='tor') return TemplateResponse(request, 'tor.html', {'title': _('Tor Control Panel'), 'status': status, 'config_running': bool(config_process), 'form': form})
def _collect_config_result(request): """Handle config process completion.""" global config_process if not config_process: return return_code = config_process.poll() # Config process is not complete yet if return_code == None: return status = tor.get_status() tor.socks_service.notify_enabled(None, status['enabled']) tor.bridge_service.notify_enabled(None, status['enabled']) # Update hidden service name registered with Name Services module. domain_removed.send_robust( sender='tor', domain_type='hiddenservice') if status['enabled'] and status['is_running'] and \ status['hs_enabled'] and status['hs_hostname']: hs_services = [] for service in SERVICES: if str(service[2]) in status['hs_ports']: hs_services.append(service[0]) domain_added.send_robust( sender='tor', domain_type='hiddenservice', name=status['hs_hostname'], description=_('Tor Hidden Service'), services=hs_services) if not return_code: messages.success(request, _('Configuration updated.')) else: messages.error(request, _('An error occurred during configuration.')) config_process = None
def _collect_config_result(request): """Handle config process completion.""" global config_process if not config_process: return return_code = config_process.poll() # Config process is not complete yet if return_code is None: return status = tor.get_status() tor.socks_service.notify_enabled(None, status['enabled']) tor.bridge_service.notify_enabled(None, status['enabled']) tor.update_hidden_service_domain(status) if not return_code: messages.success(request, _('Configuration updated.')) else: messages.error(request, _('An error occurred during configuration.')) config_process = None