Changeset 6257


Ignore:
Timestamp:
Sep 11, 2008, 10:00:16 PM (17 years ago)
Author:
RIck van der Zwet
Message:

Got basic interface version working and seems to work well on all locations, editing however is still a big issue and makes it hard to actually debug fast using a webbrowser. Also missing logic needs to be tough of pretty soon. Conclusion backend seems to be running, frontend needs working on

Location:
exodus
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified exodus/models.py

    r6256 r6257  
    4646
    4747
     48#XXX: Name Domain perhaps?
    4849class DnsServer(models.Model):
    4950        ipaddress = models.IPAddressField( unique=True)
     
    7980        iface = models.CharField(max_length=10, verbose_name="interface")
    8081        ip = models.IPAddressField()
    81         polar = models.CharField(max_length=10, choices=POLAR_CHOICES)
     82        netmask = models.IntegerField(default=30)
     83        polar = models.CharField(blank=True, max_length=10, choices=POLAR_CHOICES)
    8284        ssid = models.CharField(max_length=30, blank=True, null=True)
    8385        mode = models.CharField(max_length=10, choices=WIFI_MODE_CHOICES)
     
    8587        antenna = models.ForeignKey(Antenna, blank=True, null=True)
    8688        type = models.CharField(max_length=10, choices=INTERFACE_TYPE_CHOICES)
    87         shortdesc = models.CharField(max_length=10)
    88         desc = models.CharField(max_length=100)
    89         link = models.ForeignKey('self')
     89        shortdesc = models.CharField(blank=True, max_length=10)
     90        desc = models.CharField(blank=True, max_length=100)
     91        link = models.ForeignKey('self', blank=True, null=True)
    9092       
    9193        def __str__(self):
  • TabularUnified exodus/templates/dhcpd.conf

    r6246 r6257  
    1717option domain-name-servers {{ object.masterip }};
    1818
    19 {% for nic in object.nic.all %}
     19{{object.interface.all}}
     20
     21{% for nic in object.interface_set.all %}
    2022        {% for omni in nic.omni.all %}
    2123# {{ omni.desc }}
     
    2628        option subnet-mask {{ omni.netmask|subnet }};
    2729} {% endfor %}
    28         {% for link in nic.link1.all %}
    29 # {{ link.desc }}
    30 subnet {% network link.ip1 link.netmask %} netmask {{ link.netmask|subnet }} { not authoritative; }
    31         {% endfor %}
     30# {{ nic.desc }}
     31subnet {% network nic.ip nic.netmask %} netmask {{ nic.netmask|subnet }} { not authoritative; }
    3232{% endfor %}
  • TabularUnified exodus/templates/node-detail.html

    r6254 r6257  
    1111
    1212Master ip: {{ object.masterip }} <br>
    13 <a href="{% url exodus.views.addnode %}">EDIT</a>
     13<a href="{% url exodus.views.addNode %}">EDIT</a>
    1414</div>
    1515
    1616<h2>Interfaces</h2>
    1717
    18 {% for nic in object.nic_set.all %}
     18{% for nic in object.interface_set.all %}
    1919        <p>
    2020        <h3>iface: {{ nic.iface }} </h3>
     
    2222        type: {{ nic.type }} <br>
    2323        description: {{ nic.shortdesc }} <br>
    24         ID: {{ nic.id }} <br>
    2524       
    26         {% if nic.ssid %}
     25        {% ifnotequal nic.type "eth" %}
    2726                SSID: {{ nic.ssid }} <br>
    2827                Channel: {{ nic.channel }} <br>
     
    3029                Polar: {{ nic.polar }} <br>     
    3130                Mode: {{ nic.mode }} <br>
    32         {% endif %}
     31        {% endifnotequal %}
    3332
    34         {% for interlink in nic.link1.all %}
     33        {% for interlink in nic.link.interface_set.all %}
     34                {% ifnotequal interlink nic %}
    3535                <ul>
    36                 <li>Interlink 1 FOR DEBUG PURPOSES</li>
     36                <li>Interlink FOR DEBUG PURPOSES</li>
    3737                <li>Link Name: {{ interlink }}</li>
    38                 <li>Short description: {{ interlink.shortdesc1 }} </li>
    39                 <li>Long description: {{ interlink.desc1 }} </li>
    40                 <li>IP: {{ interlink.ip1 }}/{{ interlink.netmask }} </li>
    41                 <li>Link to Node: <a href=../../{{ interlink.iface2.node }}/node/>
    42                         {{ interlink.iface2.node }}</a> </li>
     38                <li>Short description: {{ interlink.shortdesc }} </li>
     39                <li>Long description: {{ interlink.desc }} </li>
     40                <li>IP: {{ interlink.ip }}/{{ interlink.netmask }} </li>
     41                <li> Link to Node: <a href=../../{{ interlink.node }}/node/>
     42                        {{ interlink.node }}</a> </li>
    4343                </ul>
    44         {% endfor %}
    45         {% for interlink in nic.link2.all %}
    46                 <ul>
    47                 <li>Interlink 2 FOR DEBUG PURPOSES</li>
    48                 <li>Link Name: {{ interlink }}</li>
    49                 <li>Short description: {{ interlink.shortdesc2 }} </li>
    50                 <li>Long description: {{ interlink.desc2 }} </li>
    51                 <li>IP: {{ interlink.ip2 }}/{{ interlink.netmask }} </li>
    52                 <li> Link to Node: <a href=../../{{ interlink.iface1.node }}/node/>
    53                         {{ interlink.iface1.node }}</a> </li>
    54                 </ul>
     44                {% endifnotequal %}
    5545        {% endfor %}
    5646       
  • TabularUnified exodus/templates/rc-node-local.txt

    r6242 r6257  
    1818/usr/sbin/wicontrol -i {{ nic.iface }} -f {{ nic.channel }} # Channel
    1919{% endif %}
     20
     21ifconfig {{nic.iface}} {{nic.ip}}/{{nic.netmask}}
    2022{% endfor %}
     23
  • TabularUnified exodus/templates/resolv.conf

    r6242 r6257  
    1010nameserver 127.0.0.1 #localhost
    1111{% spaceless %}
    12 {% for nic in object.nic_set.all %}
    13         {% for interlink in nic.link1.all %}
    14 nameserver {{ interlink.ip2 }} # {{ interlink.iface2.node }} {% endfor %}
    15         {% for interlink in nic.link2.all %}
    16 nameserver {{ interlink.ip1 }} # {{ interlink.iface1.node }} {% endfor %}
     12{% for interface in object.interface_set.all %}
     13        {% for interlink in interface.interface_set.all %}
     14                {% ifnotequal interlink interface %}
     15nameserver {{ interlink.ip }} # {{ interlink.node }}
     16                {% endifnotequal %}
     17        {% endfor %}
    1718{% endfor %}
    1819{% endspaceless %}
  • TabularUnified exodus/templatetags/network.py

    r6254 r6257  
    3737    return BroadcastNode(address, subnet)
    3838
    39 @register.filte
    40 
     39@register.filter
    4140def subnet(value):
    4241        return wllogic.getSubnet(value)
  • TabularUnified exodus/views.py

    r6256 r6257  
    11# (c) Roland van Laar 2006
    22
     3from django.db import models
    34from django.http import HttpResponse, HttpResponseRedirect
    45from django.template import loader, Context
    56from django.shortcuts import render_to_response
     7from django.core.urlresolvers import reverse
     8from django.forms.formsets import formset_factory
    69from django import forms
    710from socket import gethostname
     
    1922                if form.is_valid():
    2023                        form.save()
    21                         return HttpResponseRedirect("/addnode/")
     24                        return HttpResponseRedirect(reverse('exodus.views.addNode'))
    2225        else:
    2326                form = AddLocationForm()
     
    4548                        form = AddNodeForm(instance=node)
    4649                except Node.DoesNotExist:
     50#                       newForm = Node(location=Location(pk=1))
     51#                       form = AddNodeForm(instance = newForm)
     52#                       Also possible
     53#                       AddNodeFormSet = formset_factory(AddNodeForm,extra=0)
     54#                       formset = AddNodeFormSet(initial=[{'location' : '1'}])
    4755                        form = AddNodeForm()
    4856        return render_to_response('addnode.html', {'form': form })
     
    7482                                instance.ssid = newSSIDName(instance.node, instance.iface, 'unused')
    7583                                instance.channel = '1'
    76                                 instance.mode = Mode(pk=1) # set to master
    77                         instance.save()
    78                         return HttpResponseRedirect("/exodus/")
    79         else:
    80                 form = addInterfaceForm()
     84                                instance.mode = 1 # set to master
     85                        instance.save()
     86                        if instance.link == None:
     87                                instance.link = instance
     88                                instance.save()
     89                        return HttpResponseRedirect("/exodus/")
     90        else:
     91                #XXX: Link, master interfaces only
     92                newForm = Interface(shortdesc='boe')
     93                form = addInterfaceForm(instance = newForm)
    8194        return render_to_response('addnic.html', {'form': form })
    8295
     
    166179        object.name = Node.objects.get(pk=object_id).name
    167180        object.host = gethostname()
    168         object.nic = object.nic_set.all()
     181#       object.nic = object.nic_set.all()
    169182       
    170183        #Used for named.conf
     
    223236        object_id = nodename_to_id(object_id)
    224237       
    225         object = Node.objects.get(pk=object_id).nic_set.all()
     238        object = Node.objects.get(pk=object_id).interface_set.all()
    226239        object.name = Node.objects.get(pk=object_id).name
    227240        object.host = gethostname()
     
    233246        return HttpResponse(t.render(c), mimetype='text/plain')
    234247
    235 def conf_rc_node_localorig(request, object_id):
    236         """rc.node.local conf generator"""
    237                
    238         object_id = nodename_to_id(object_id)
    239        
    240         object = Node.objects.get(pk=object_id).nic_set.all()
    241         object.name = Node.objects.get(pk=object_id).name
    242         object.host = gethostname()
    243 
    244         # check if it is a wireless nic, and add wifimode for wicontrol 
    245         for nic in object:
    246                 if nic.ssid:
    247                         if nic.mode.mode == 'master':
    248                                 nic.wifimode = 6
    249                                 nic.wifidesc = 'master mode'
    250                         else:
    251                                 nic.wifimode = 1
    252                                 nic.wifidesc = 'managed mode'
    253 
    254         print "boek"
    255         t = loader.get_template('rc-node-local.txt')
    256         c = Context({'object': object,
    257                 })
    258         return HttpResponse(t.render(c), mimetype='text/plain')
    259248
    260249def conf_resolv_conf(request, object_id):
  • TabularUnified exodus/wllogic.py

    r6256 r6257  
    99        # instead of object nic.
    1010
    11         return "%s-%s.%s.%s" % (desc, nic, node.name, node.network.domainname)
     11        return "%s-%s.%s.%s" % (desc, nic, node.name, node.network.name)
    1212
    1313#
Note: See TracChangeset for help on using the changeset viewer.