Changeset 6206


Ignore:
Timestamp:
Aug 16, 2008, 12:06:41 AM (17 years ago)
Author:
RIck van der Zwet
Message:

Made all add working

Location:
exodus
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • exodus/models.py

    r6204 r6206  
    4040        return self.type
    4141
    42 class LinkType(models.Model):
    43     type = models.CharField(max_length=10)
    44 
    45     def __str__(self):
    46         return self.type
    47 
    4842class Location(models.Model):
    4943    description = models.CharField(max_length=200)
     
    7872
    7973class NIC(models.Model):
    80     iface = models.CharField(max_length=10)
    81     polar = models.ForeignKey(Polar, blank=True, null=True)
    82     shortdesc = models.CharField(max_length=10)
    83     desc = models.CharField(max_length=200)
     74    node = models.ForeignKey(Node)
     75    iface = models.CharField(max_length=10,verbose_name="interface")
     76    polar = models.ForeignKey(Polar, blank=True, null=True,
     77              verbose_name="polarisation")
    8478    ssid = models.CharField(max_length=30, blank=True, null=True)
    8579    mode = models.ForeignKey(Mode, blank=True, null=True)
    86     status = models.ForeignKey(Status)
     80    status = models.ForeignKey(Status, default=1)
    8781    channel = models.IntegerField(blank=True, null=True)
    8882    antenna = models.ForeignKey(Antenna, blank=True, null=True)
    89     node = models.ForeignKey(Node)
    9083    type = models.ForeignKey(NICType)
    9184
     
    9386        return "%s, %s" % (self.node.name, self.iface)
    9487
    95 class LinkPool(models.Model):
    96     status = models.ForeignKey(Status)
    97     type = models.ForeignKey(LinkType)
    98     netmask = models.IntegerField()
    99     dhcpstart = models.IntegerField()
    100     dhcpstop = models.IntegerField()
     88class Interlink(models.Model):
     89    status = models.ForeignKey(Status,default=1)
     90    netmask = models.IntegerField(default=30)
     91    iface1 = models.ForeignKey(NIC,related_name='link1')
     92    ip1 = models.IPAddressField()
     93    iface2 = models.ForeignKey(NIC,related_name='link2')
     94    ip2 = models.IPAddressField()
     95    shortdesc1 = models.CharField(max_length=10)
     96    shortdesc2 = models.CharField(max_length=10)
     97    desc1 = models.CharField(max_length=100)
     98    desc2 = models.CharField(max_length=100)
    10199
    102     def smap(self,entry):
    103         s = entry.iface
    104         return str(s)
    105 
    106     def __str__(self):
    107         return "id: %s links: %s" % (self.id, " ".join(map(self.smap,self.link_set.all())))
    108 
    109 class Link(models.Model):
     100class Omni(models.Model):
     101    iface = models.ForeignKey(NIC)
     102    status = models.ForeignKey(Status,default=1)
     103    ip = models.IPAddressField()
     104    netmask = models.IntegerField(default=30)
     105    dhcpstart = models.IPAddressField()
     106    dhcpstop = models.IPAddressField()
    110107    shortdesc = models.CharField(max_length=10)
    111108    desc = models.CharField(max_length=100)
    112     ip = models.IPAddressField()
    113     status = models.ForeignKey(Status)
    114     iface = models.ForeignKey(NIC)
    115     linkpool = models.ForeignKey(LinkPool)
     109
    116110
    117111    def __str__(self):
     
    122116    macaddress = models.CharField(max_length=17)
    123117    address = models.IPAddressField()
    124     link = models.ForeignKey(LinkPool)
     118    omni = models.ForeignKey(Omni)
    125119
    126120    def __str__(self):
     
    129123# define all the admin tables
    130124
     125admin.site.register(Antenna)
     126admin.site.register(DhcpStatic)
     127admin.site.register(Interlink)
     128admin.site.register(Mode)
     129admin.site.register(NIC)
    131130admin.site.register(NICType)
     131admin.site.register(Network)
     132admin.site.register(Node)
     133admin.site.register(Omni)
    132134admin.site.register(Polar)
    133135admin.site.register(Status)
    134 admin.site.register(Mode)
    135 admin.site.register(Antenna)
    136 admin.site.register(LinkType)
    137 admin.site.register(Network)
    138 admin.site.register(Node)
    139 admin.site.register(NIC)
    140 admin.site.register(LinkPool)
    141 admin.site.register(Link)
    142 admin.site.register(DhcpStatic)
  • exodus/templates/addinterlink.html

    r6183 r6206  
    66
    77<form method="post" action=".">
    8 <div>
    9         <label for="id_status">Status:</label> {{ form1.status }}
    10         {% if form1.status.errors %} *** {{ form1.status.errors|join:", " }}{% endif %}
    11 </div>
    12 <div>
    13         <label for="id_iface1">Iface 1:</label> {{ form1.iface }}
    14 </div>
    15 <div>
    16         <label for="id_iface2">Iface 2:</label> {{ form2.iface }}
    17 </div>
     8<table>{{ form.as_table }}</table>
    189<input type="submit" value="submit">
    1910</form>
  • exodus/templates/addnic.html

    r6183 r6206  
    55
    66<form method="post" action=".">
    7 <div>
    8     <label for="id_node">Node Name:</label> {{ form.node }}
    9         {% if form.node.errors %} *** {{ form.node.errors|join:", " }}{% endif %}
    10 </div>
    11 <div>
    12     <label for="id_iface">Iface name:</label> {{ form.iface}}
    13         {% if form.iface.errors %} *** {{ form.iface.errors|join:", " }}{% endif %}
    14 </div>
    15 <div>
    16     <label for="id_type">Type:</label> {{ form.type}}
    17         {% if form.type.errors %} *** {{ form.type.errors|join:", " }}{% endif %}
    18 </div>
    19 <div>
    20     <label for="id_antenna">Antenna:</label> {{ form.antenna }}
    21         {% if form.iface.errors %} *** {{ form.iface.errors|join:", " }}{% endif %}
    22 </div>
    23 <div>
    24     <label for="id_polar">Polarisation:</label> {{ form.polar }}
    25         {% if form.polar.errors %} *** {{ form.polar.errors|join:", " }}{% endif %}
    26 </div>
    27 <div>
    28     <label for="id_status">Status:</label> {{ form.status }}
    29         {% if form.status.errors %} *** {{ form.status.errors|join:", " }}{% endif %}
    30 </div>
     7<table>{{ form.as_table }}</table>
    318<input type="submit" value="submit">
    329</form>
  • exodus/templates/addomni.html

    r6183 r6206  
    44<h1>Add an Omni</h1>
    55
    6 <strong> Under construction </strong>
     6<form method="post" action=".">
     7<table>{{ form.as_table }}</table>
     8<input type="submit" value="submit">
     9</form>
    710
    811{% endblock %}
  • exodus/templates/exodus-template.html

    r6181 r6206  
    2020          &nbsp;&nbsp;<A class="menu" href="/exodus/addinterlink">Add Interlink</a><br>
    2121          &nbsp;&nbsp;<A class="menu" href="/exodus/addomni">Add Omni</a><br>
     22          &nbsp;<p>
    2223        </td>
    2324        <td valign="top" class="right">
  • exodus/views.py

    r6205 r6206  
    88from socket import gethostname
    99
    10 from exodus.models import Network, NIC, Node, Location, Link, LinkPool,Status
     10from exodus.models import *
    1111from exodus.wllogic import freemasterip, newssidname
    1212
     
    4343        return render_to_response('addnode.html', {'form': form })
    4444
     45class addNicForm(forms.ModelForm):
     46        class Meta:
     47                model = NIC
     48                exclude = ( 'ssid', 'mode', 'channel' )
     49
    4550def addnic(request):
    46         manipulator = NIC.AddManipulator()
    47 
    48         if request.POST:
    49                 new_data = request.POST.copy()
    50 
    51                 print new_data
    52                
    53                 # generated data for the NIC
    54 
    55                 new_data['shortdesc'] = "bogus"
    56                 new_data['desc'] = "bogus"
    57 
    58                 print new_data
    59                 print new_data['node']
    60 
    61                 if str(new_data['type']) != "eth":
    62                         new_data['ssid'] = newssidname(new_data['node'],new_data['iface'])
    63                         new_data['channel'] = '1'
    64                         new_data['mode'] = '1' # set to master
    65 
    66                 print new_data
    67                        
    68                 errors = manipulator.get_validation_errors(new_data)
    69 
    70                
    71                 if not errors:
    72                         manipulator.do_html2python(new_data)
    73                         new_place = manipulator.save(new_data)
    74 
    75                         return HttpResponseRedirect("/exodus/")
    76 
    77         else:
    78                 errors = new_data = {}
    79 
    80         form = forms.FormWrapper(manipulator, new_data, errors)
     51        if request.POST:
     52                form = addNicForm(request.POST)
     53                if form.is_valid():
     54                        instance  = form.save(commit=False)
     55                        if str(instance.type) != "eth":
     56                                print instance.iface
     57#                               instance.ssid = newssidname(instance.node.name,
     58#                                       instance.iface)
     59                                instance.channel = '1'
     60                                instance.mode = Mode(pk=1) # set to master
     61                        instance.save()
     62                        return HttpResponseRedirect("/exodus/")
     63        else:
     64                form = addNicForm()
    8165        return render_to_response('addnic.html', {'form': form })
    8266
     67class addInterlinkForm(forms.ModelForm):
     68        class Meta:
     69                model = Interlink
     70                exclude = ( 'shortdesc1', 'shortdesc2', 'desc1', 'desc2' )
     71
    8372def addinterlink(request):
    84         link1_manipulator = Link.AddManipulator()
    85         link2_manipulator = Link.AddManipulator()
    86         linkpool_manipulator = LinkPool.AddManipulator()
    87 
    88 
    89         if request.POST:
    90                 new_data = request.POST.copy()
    91        
    92                 print new_data
    93                 alliface = new_data.getlist("iface")
    94 
    95                 iface1 = NIC.objects.get(id=alliface[0])
    96                 iface2 = NIC.objects.get(id=alliface[1])
    97 
    98                 print iface1
    99                 print iface2
    100 
    101                 if iface1.type != iface2.type:
    102                         print "not compatible"
    103                         linkerror["compat"] = "choose twomcompatible"   
    104 
    105                 print new_data
    106                 errors1 = link1_manipulator.get_validation_errors(new_data)
    107                 errors2 = link2_manipulator.get_validation_errors(new_data)
    108 
    109                 print errors1
    110                 print errors2
    111 
    112                 if not errors1 and not errors2:
    113                         link1_manipulator.do_html2python(new_data)
    114 
    115                         return HttpResponseRedirect("/exodus/")
    116                
    117         else:
    118                 errors1 = new_data = {}
    119 
    120         form1 = forms.FormWrapper(link1_manipulator, new_data, errors1)
    121         form2 = forms.FormWrapper(link2_manipulator, new_data, errors2)
    122         return render_to_response('addinterlink.html',{'form1':form1, 'form2':form2})
     73        if request.POST:
     74                form = addInterlinkForm(request.POST)
     75                if form.is_valid():
     76                        instance  = form.save(commit=False)
     77                        if str(instance.iface1.type) != "eth":
     78                                print instance.iface
     79                                instance.ssid = newssidname(instance.node.name,
     80                                        instance.iface)
     81                                instance.channel = '1'
     82                                instance.mode = Mode(pk=1) # set to master
     83                        instance.save()
     84                        return HttpResponseRedirect("/exodus/")
     85        else:
     86                newForm = Interlink(ip1='172.16.0.0',ip2='172.16.0.0')
     87                form = addInterlinkForm(instance=newForm)
     88        return render_to_response('addinterlink.html', {'form': form })
     89
     90class addOmniForm(forms.ModelForm):
     91        class Meta:
     92                model = Omni
     93                exclude = ('shortdesc', 'desc')
    12394
    12495def addomni(request):
    125         link_manipulator = Link.AddManipulator()
    126         linkpool_manipulator = LinkPool.AddManipulator()
    127 
    128         if request.POST:
    129                 new_data = request.POST.copy()
    130 
    131                 # pull data and
    132                 #
    133 
    134                 link_errors = link_manipulator.get_validation_errors(new_data)
    135                 linkpool_errors = linkpool_manipulator.get_validation_errors(new_data)
    136 
    137         else:
    138                 errors = new_data = {}
    139        
    140         form1 = forms.FormWrapper(link_manipulator, new_data, errors)
    141         form2 = forms.FormWrapper(linkpool_manipulator, new_data, errors)
    142         return render_to_response('addomni.html',{'form1':form1, 'form2':form2})
     96        if request.POST:
     97                form = addOmniForm(request.POST)
     98                if form.is_valid():
     99                        instance  = form.save(commit=False)
     100                        instance.save()
     101                        return HttpResponseRedirect("/exodus/")
     102        else:
     103                form = addOmniForm()
     104        return render_to_response('addomni.html', {'form': form })
    143105
    144106def nodename_to_id(node):
Note: See TracChangeset for help on using the changeset viewer.