Changeset 6206
- Timestamp:
- Aug 16, 2008, 12:06:41 AM (17 years ago)
- Location:
- exodus
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
exodus/models.py
r6204 r6206 40 40 return self.type 41 41 42 class LinkType(models.Model):43 type = models.CharField(max_length=10)44 45 def __str__(self):46 return self.type47 48 42 class Location(models.Model): 49 43 description = models.CharField(max_length=200) … … 78 72 79 73 class 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") 84 78 ssid = models.CharField(max_length=30, blank=True, null=True) 85 79 mode = models.ForeignKey(Mode, blank=True, null=True) 86 status = models.ForeignKey(Status )80 status = models.ForeignKey(Status, default=1) 87 81 channel = models.IntegerField(blank=True, null=True) 88 82 antenna = models.ForeignKey(Antenna, blank=True, null=True) 89 node = models.ForeignKey(Node)90 83 type = models.ForeignKey(NICType) 91 84 … … 93 86 return "%s, %s" % (self.node.name, self.iface) 94 87 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() 88 class 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) 101 99 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): 100 class 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() 110 107 shortdesc = models.CharField(max_length=10) 111 108 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 116 110 117 111 def __str__(self): … … 122 116 macaddress = models.CharField(max_length=17) 123 117 address = models.IPAddressField() 124 link = models.ForeignKey(LinkPool)118 omni = models.ForeignKey(Omni) 125 119 126 120 def __str__(self): … … 129 123 # define all the admin tables 130 124 125 admin.site.register(Antenna) 126 admin.site.register(DhcpStatic) 127 admin.site.register(Interlink) 128 admin.site.register(Mode) 129 admin.site.register(NIC) 131 130 admin.site.register(NICType) 131 admin.site.register(Network) 132 admin.site.register(Node) 133 admin.site.register(Omni) 132 134 admin.site.register(Polar) 133 135 admin.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 6 6 7 7 <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> 18 9 <input type="submit" value="submit"> 19 10 </form> -
exodus/templates/addnic.html
r6183 r6206 5 5 6 6 <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> 31 8 <input type="submit" value="submit"> 32 9 </form> -
exodus/templates/addomni.html
r6183 r6206 4 4 <h1>Add an Omni</h1> 5 5 6 <strong> Under construction </strong> 6 <form method="post" action="."> 7 <table>{{ form.as_table }}</table> 8 <input type="submit" value="submit"> 9 </form> 7 10 8 11 {% endblock %} -
exodus/templates/exodus-template.html
r6181 r6206 20 20 <A class="menu" href="/exodus/addinterlink">Add Interlink</a><br> 21 21 <A class="menu" href="/exodus/addomni">Add Omni</a><br> 22 <p> 22 23 </td> 23 24 <td valign="top" class="right"> -
exodus/views.py
r6205 r6206 8 8 from socket import gethostname 9 9 10 from exodus.models import Network, NIC, Node, Location, Link, LinkPool,Status10 from exodus.models import * 11 11 from exodus.wllogic import freemasterip, newssidname 12 12 … … 43 43 return render_to_response('addnode.html', {'form': form }) 44 44 45 class addNicForm(forms.ModelForm): 46 class Meta: 47 model = NIC 48 exclude = ( 'ssid', 'mode', 'channel' ) 49 45 50 def 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() 81 65 return render_to_response('addnic.html', {'form': form }) 82 66 67 class addInterlinkForm(forms.ModelForm): 68 class Meta: 69 model = Interlink 70 exclude = ( 'shortdesc1', 'shortdesc2', 'desc1', 'desc2' ) 71 83 72 def 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 90 class addOmniForm(forms.ModelForm): 91 class Meta: 92 model = Omni 93 exclude = ('shortdesc', 'desc') 123 94 124 95 def 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 }) 143 105 144 106 def nodename_to_id(node):
Note:
See TracChangeset
for help on using the changeset viewer.