def ninja(request): context = RequestContext(request) if request.method == 'POST': form = WlanForm(utils.get_fact('wlan', 'ninja', 'ssid'), request.POST) if form.is_valid(): password = form.cleaned_data['password2'] ssid = form.cleaned_data['ssid'] jobs.queue_job(wlanjobs.reconfigure_tor, (ssid, password)) context.push({'message': True, 'ninja_ssid':ssid}) else: logger.error("tor form validation failed for %s" % request.path) else: form = WlanForm(utils.get_fact('wlan','ninja','ssid')) model_info = ModelInfo() pi3 = model_info.runs_on_pi3() context.push({ 'form': form, 'messagestore': jobs.get_messages(), 'pi3': pi3}) return render_to_response("ninja.html", context)
def ninja(request): context = {} if request.method == 'POST': form = WlanForm(utils.get_fact('wlan', 'ninja', 'ssid'), request.POST) if form.is_valid(): password = form.cleaned_data['password2'] ssid = form.cleaned_data['ssid'] jobs.queue_job(wlanjobs.reconfigure_tor, (ssid, password)) context.update({'message': True, 'ninja_ssid': ssid}) else: logger.error("tor form validation failed for %s" % request.path) else: form = WlanForm(utils.get_fact('wlan', 'ninja', 'ssid')) model_info = ModelInfo() pi3 = model_info.runs_on_pi3() and not model_info.uses_external_wifi() context.update({ 'form': form, 'messagestore': jobs.get_messages(), 'pi3': pi3}) return render(request, "ninja.html", context)
def more_static(request, enable=None, dhcpd=None): context = {} net_info = utils.get_system_network_config() ip_form = StaticIPForm( net_info['ip'], net_info['netmask'], net_info['gateway'], net_info['dns_servers'][0], utils.get_fact('dhcpd', 'general', 'enabled'), ) if request.method == 'POST': ip_form = StaticIPForm(net_info['ip'], net_info['netmask'], net_info['gateway'], net_info['dns_servers'][0], utils.get_fact('dhcpd', 'general', 'enabled'), request.POST) if ip_form.is_valid(): ip = ip_form.cleaned_data['ip_address'] netmask = ip_form.cleaned_data['ip_netmask'] gateway = ip_form.cleaned_data['gateway'] dns = ip_form.cleaned_data['dns_server'] # dhcp = ip_form.cleaned_data['dhcp_server'] jobs.queue_job(sshjobs.reconfigure_network, (ip, netmask, gateway, dns, enable)) jobs.queue_job(sshjobs.toggle_dhcpd, ("yes" if dhcpd else "no", )) context.update({ 'message': True, "refresh_url": reverse('upri_config' ), # request.path, # reverse('upri_config_static'), 'messagestore': jobs.get_messages() }) context.update({ 'ip_form': ip_form, 'messagestore': jobs.get_messages(), 'href': request.path, "refresh_url": reverse('upri_config'), }) return render(request, "static.html", context)
def silent(request): context = {} if request.method == 'POST': form = WlanForm(utils.get_fact('wlan', 'upri', 'ssid'), request.POST) if form.is_valid(): password = form.cleaned_data['password2'] ssid = form.cleaned_data['ssid'] jobs.queue_job(wlanjobs.reconfigure_wlan, (ssid, password)) context.update({'message': True, 'upri_ssid': ssid}) else: logger.error("form validation failed for %s" % request.path) else: form = WlanForm(utils.get_fact('wlan', 'upri', 'ssid')) context.update({'form': form, 'messagestore': jobs.get_messages()}) return render(request, "silent.html", context)
def silent(request): context = RequestContext(request) if request.method == 'POST': form = WlanForm(utils.get_fact('wlan', 'upri', 'ssid'), request.POST) if form.is_valid(): password = form.cleaned_data['password2'] ssid = form.cleaned_data['ssid'] jobs.queue_job(wlanjobs.reconfigure_wlan, (ssid, password)) context.push({'message': True, 'upri_ssid': ssid}) else: logger.error("form validation failed for %s" % request.path) else: form = WlanForm(utils.get_fact('wlan', 'upri', 'ssid')) context.push({'form': form}) context.push({'messagestore': jobs.get_messages()}) return render_to_response("silent.html", context)
def _config_mac(group, mac, remove=False): if check_mac(mac): devices = get_fact('devices', group) or [] if not remove and mac.lower() not in devices: devices.append(mac.lower()) elif remove and mac.lower() in devices: devices.remove(mac.lower()) en = {group: devices} write_role('devices', en) else: return 30
def static_toggle(request): if request.method != 'POST': raise Http404() current = [ utils.get_fact('interfaces', 'static', 'ip', defaults=False), utils.get_fact('interfaces', 'static', 'netmask', defaults=False), utils.get_fact('interfaces', 'static', 'dns', defaults=False), utils.get_fact('interfaces', 'static', 'gateway', defaults=False), ] state = request.POST.get('enabled', None) if all(current) or state == 'no': # all requirements met or dhcp requested jobs.queue_job(sshjobs.toggle_static, (state, )) return render(request, "modal.html", { "message": True, "refresh_url": reverse('upri_config') }) else: # not all requirements met return HttpResponseForbidden(reverse('upri_config_static_enable'))
def __init__(self, *args, **kwargs): super(VpnProfileForm, self).__init__(*args, **kwargs) upri_dns_domain = None try: upri_dns_domain = get_fact('dns', 'dns', 'hostname') except: logger.error('Kein upri DNS fact gefunden.') if upri_dns_domain: self.fields['dyndomain'].widget = forms.HiddenInput() self.fields['dyndomain'].initial = upri_dns_domain self.fields['dyndomain'].label = ""
def __init__(self, *args, **kwargs): super(VpnProfileForm, self).__init__(*args, **kwargs) upri_dns_domain = None try: upri_dns_domain = get_fact("dns", "dns", "hostname") except: logger.error("Kein upri DNS fact gefunden.") if upri_dns_domain: self.fields["dyndomain"].widget = forms.HiddenInput() self.fields["dyndomain"].initial = upri_dns_domain self.fields["dyndomain"].label = ""
def reconfigure_network(ip, netmask, gateway, dns, enable=False): try: jobs.job_message( _("Die Netzwerkeinstellungen werden neu konfiguriert...")) try: if enable: logger.debug("Static IP activated") logger.debug(enable) jobs.job_message( _("Modus zur Vergabe statischer IP Adressen wird aktiviert..." )) utils.exec_upri_config('enable_static_ip', "yes") if ip: logger.debug("new IP: %s" % ip) jobs.job_message(_("IP Adresse wird geändert...")) utils.exec_upri_config('set_ip', ip) if netmask: logger.debug("new netmask: %s" % netmask) jobs.job_message(_("Subnetzmaske wird geändert...")) utils.exec_upri_config('set_netmask', netmask) if gateway: logger.debug("new gateway: %s" % gateway) jobs.job_message(_("Gateway wird geändert...")) utils.exec_upri_config('set_gateway', gateway) if dns: logger.debug("new dns server: %s" % dns) jobs.job_message(_("DNS Server wird geändert...")) utils.exec_upri_config('set_dns_server', dns) if ip or netmask or gateway or dns: if utils.get_fact('interfaces', 'general', 'mode') == "static": jobs.job_message(_("Netzwerk wird neu gestartet...")) logger.debug("restarting network") utils.exec_upri_config('restart_network') jobs.job_message( _("Konfiguration der Netzwerkeinstellungen erfolgreich.")) except utils.AnsibleError as e: logger.error("ansible failed with error %d: %s" % (e.rc, e.message)) # jobs.job_message(_("Es ist ein unbekannter Fehler aufgetreten. Fehlercode: %(errorcode)s" % {'errorcode': e.rc})) raise except Exception as e: logger.exception(e) # jobs.job_clear_messages() jobs.job_error( _("Konfiguration der Netzwerkeinstellungen fehlgeschlagen.")) raise jobs.JobFailedError()
def setup_failed(request): phase = "failed" context = {} if info.check_ipv6(): phase = "ipv6" _setup_redis(phase) if not info.check_ipv6(): if request.method == 'GET' and utils.get_fact('apate', 'general', 'enabled') == 'yes': jobs.queue_job(morejobs.toggle_apate, ("no", False), unique=True) # context.update({'message': True}) context.update({ 'phase': phase # init, failed, ipv6, success }) return render(request, "setup.html", context)
def setup_init(request): phase = "init" context = {} if not info.check_ipv6(): if info.check_connection(): if request.method == 'GET' and utils.get_fact( 'apate', 'general', 'enabled') == 'no': jobs.queue_job(morejobs.toggle_apate, ("yes", ), unique=True) # context.update({'message': True}) else: phase = "isolated" if info.check_ipv6(): return redirect('upri_setup_failed') else: context.update({ 'phase': phase, # init, failed, success 'refresh_url': reverse('upri_setup_eval'), 'error_url': reverse('upri_setup_error') }) return render(request, "setup.html", context)
}, 'loggers': { 'uprilogger': { 'handlers': ['console'], 'level': 'WARNING', 'propagate': True, }, "rq.worker": { "handlers": ['console', 'out'], "level": "INFO" }, }, } LOG_FILE = get_fact('log', 'django', 'error') LOG_PATH = get_fact('log', 'general', 'path') if LOG_FILE and LOG_PATH: LOGGING['handlers']['file'] = { 'level': 'ERROR', 'class': 'logging.handlers.WatchedFileHandler', 'filename': LOG_PATH + '/' + LOG_FILE, } LOGGING['loggers']['django'] = { 'handlers': ['file'], 'level': 'INFO', 'propagate': True, }
def more_config(request, save_form): context = {} form = AdminForm(request) net_info = utils.get_system_network_config() ip_form = StaticIPForm(net_info['ip'], net_info['netmask'], net_info['gateway'], net_info['dns_servers'][0], utils.get_fact('dhcpd', 'general', 'enabled')) if request.method == 'POST': if save_form == "user": form = AdminForm(request, request.POST) if form.is_valid(): new_password = form.cleaned_data['password2'] new_username = form.cleaned_data['username'] old_password = form.cleaned_data['oldpassword'] old_username = request.user.username logger.info("updating user %s..." % old_username) u = User.objects.get(username=old_username) # sanity check, this should never happen if not u: logger.error("unexpected error: user %s does not exist" % old_username) return HttpResponse(status=500) u.set_password(new_password) u.username = new_username u.save() logger.info( "user %s updated to %s (password changed: %s)" % (old_username, new_username, new_password != old_password)) context.update({'message': True}) else: logger.error("admin form validation failed") elif save_form == "static_ip": ip_form = StaticIPForm( net_info['ip'], net_info['netmask'], net_info['gateway'], net_info['dns_servers'][0], utils.get_fact('dhcpd', 'general', 'enabled'), request.POST) if ip_form.is_valid(): ip = ip_form.cleaned_data['ip_address'] netmask = ip_form.cleaned_data['ip_netmask'] gateway = ip_form.cleaned_data['gateway'] dns = ip_form.cleaned_data['dns_server'] dhcp = ip_form.cleaned_data['dhcp_server'] jobs.queue_job(sshjobs.reconfigure_network, (ip, netmask, gateway, dns, dhcp)) context.update({ 'message': True, "refresh_url": reverse('upri_more'), 'messagestore': jobs.get_messages() }) update_status = UpdateStatus() context.update({ 'form': form, 'ip_form': ip_form, 'messagestore': jobs.get_messages(), 'update_time': update_status.update_utc_time, 'version': update_status.get_version() }) return render(request, "more.html", context)
def get_fact(role, group, fact): return utils.get_fact(role, group, fact)