Esempio n. 1
0
def delete_gateway(request, gw_id, post_delete_redirect='/dhcpHost/gateways/'):
    try:
        gateway = DhcpGateway.objects.get(owner=request.user.id, ip_address=gw_id)
        clients = DhcpHost.objects.filter(gateway__ip_address=gw_id)
        try:
            if len(clients) > 0:
                omapi = NacOmapi.get_instance()
                for client in clients:
                    if client.state == DhcpHost.VALIDATED:
                        omapi.del_host(client.mac_address)
                    client.state = DhcpHost.UNLINKED
                    client.save()
                omapi.close()
            try:
                omapi = NacOmapi.get_instance()
                omapi.del_group(gateway.name)
                omapi.close()
                gateway.delete()
            except Exception as err:
                print err
                error = "Connexion au serveur DHCP impossible."
                return TemplateResponse(request, 'dhcpHost/error.html', {'error': error})
            return HttpResponseRedirect(post_delete_redirect)
        except Exception as e:
            # TODO log !
            print e
            error = "Connexion au serveur DHCP impossible."
            return TemplateResponse(request, 'dhcpHost/error.html', {'error': error})
    except Exception as e:
        print e
        return HttpResponseRedirect(post_delete_redirect)
Esempio n. 2
0
def add_host(request, template_name='dhcpHost/add_host.html', post_change_redirect='/dhcpHost/hosts/', add_host_form=AddHostForm):
    form = add_host_form
    if request.method == "POST":
        form = add_host_form(user=request.user, data=request.POST)
        if form.is_valid():
            """
            ip = get_ip()
            if not ip:
                error = "Il n'y a plus d'adresses IP fixe disponible."
                return TemplateResponse(request, 'dhcpHost/error.html', {'error': error})
            """
            host = form.get_dhcp_host()
            try:
                omapi = NacOmapi.get_instance()
                omapi.add_host_with_group(host.mac_address, host.gateway.name)
                omapi.close()
                host.save()
            except Exception as err:
                print err
                error = "Connexion au serveur DHCP impossible."
                return TemplateResponse(request, 'dhcpHost/error.html', {'error': error})
            return HttpResponseRedirect(post_change_redirect)
        else:
            form = add_host_form(user=request.user, initial={'mac_address': get_mac(request.META['REMOTE_ADDR'])})
    return TemplateResponse(request, template_name, {'form': form,})
Esempio n. 3
0
def delete_host(request, dhcpHost_id, post_delete_redirect='/dhcpHost/hosts/'):
    try:
        host = DhcpHost.objects.get(owner=request.user.id, id=dhcpHost_id)
        if host.state == DhcpHost.VALIDATED:
            try:
                omapi = NacOmapi.get_instance()
                omapi.del_host(host.mac_address)
                omapi.close()
                host.delete()
            except:
                error = "Connexion au serveur DHCP impossible."
                return TemplateResponse(request, 'dhcpHost/error.html', {'error': error})
        return HttpResponseRedirect(post_delete_redirect)
    except:
        return HttpResponseRedirect(post_delete_redirect)
Esempio n. 4
0
def accept_client(request, dhcpHost_id, post_accept_redirect='/dhcpHost/gateways/'):
    try:
        client = DhcpHost.objects.get(id=dhcpHost_id, state=DhcpHost.WAITING_VALIDATION)
        my_gateways = DhcpGateway.objects.filter(owner_id=request.user.id).values_list('ip_address', flat=True)
        if client.gateway in my_gateways:
            try:
                omapi = NacOmapi.get_instance()
                omapi.add_host_with_gateway(client.mac_address, client.gateway.ip_address)
                omapi.close()
            except:
                error = "Connexion au serveur DHCP impossible."
                return TemplateResponse(request, 'dhcpHost/error.html', {'error': error})
            client.state = DhcpHost.VALIDATED
            client.save()
        return HttpResponseRedirect(post_accept_redirect)
    except:
        return HttpResponseRedirect(post_accept_redirect)
Esempio n. 5
0
def add_gateway(request, template_name='dhcpHost/add_gateway.html', post_change_redirect='/dhcpHost/gateways/', add_gateway_form=AddGatewayForm):
    form = add_gateway_form(user=request.user)
    if request.method == "POST":
        form = add_gateway_form(user=request.user, data=request.POST)
        if form.is_valid():
            gw = form.get_dhcp_gateway()
            if not gw.ip_address:
                error = "Il n'y a plus d'adresses IP fixes disponibles pour créer une nouvelle passerelle."
                return TemplateResponse(request, 'dhcpHost/error.html', {'error': error})
            try:
                omapi = NacOmapi.get_instance()
                omapi.add_group(gw.name, gw.ip_address)
                omapi.close()
                gw.save()
            except Exception as err:
                print err
                error = "Connexion au serveur DHCP impossible."
                return TemplateResponse(request, 'dhcpHost/error.html', {'error': error})
            return HttpResponseRedirect(post_change_redirect)
        else:
            form = add_gateway_form(user=request.user)
    return TemplateResponse(request, template_name, {'form': form,})