close Warning: Can't use blame annotator:
No changeset 5306 in the repository

source: django_exodus/exodus_01/views.py@ 6175

Last change on this file since 6175 was 6175, checked in by roland, 17 years ago

added readme information for django

File size: 6.1 KB
RevLine 
1# (c) Roland van Laar 2006
2
3from django.http import HttpResponse, HttpResponseRedirect
4from django.template import loader, Context
5from django.shortcuts import render_to_response
6from django import forms
7from datetime import datetime
8from socket import gethostname
9
10from django_exodus.exodus_01.models import NIC, Node, Location, Link, LinkPool
11from django_exodus.exodus_01.wllogic import freemasterip, newssidname
12
13def addlocation(request):
14 manipulator = Location.AddManipulator()
15
16
17 if request.POST:
18 new_data = request.POST.copy()
19
20 for data in new_data:
21 print "%s" % len(new_data)
22
23 print "%s" % new_data['description']
24
25 errors = manipulator.get_validation_errors(new_data)
26
27 if not errors:
28 manipulator.do_html2python(new_data)
29 new_place = manipulator.save(new_data)
30
31 return HttpResponseRedirect("/exodus_01/")
32
33 else:
34 errors = new_data = {}
35
36 form = forms.FormWrapper(manipulator, new_data, errors)
37 return render_to_response('exodus_01/addlocation.html', {'form': form, 'new_data': new_data})
38
39def addnode(request):
40 manipulator = Node.AddManipulator()
41
42 if request.POST:
43 new_data = request.POST.copy()
44
45 # input a valid master ip into new_data
46 new_data['masterip'] = freemasterip()
47
48 errors = manipulator.get_validation_errors(new_data)
49
50 if not errors:
51 manipulator.do_html2python(new_data)
52 new_place = manipulator.save(new_data)
53
54 return HttpResponseRedirect("/exodus_01/")
55
56 else:
57 errors = new_data = {}
58
59 form = forms.FormWrapper(manipulator, new_data, errors)
60 return render_to_response('exodus_01/addnode.html', {'form': form })
61
62def addnic(request):
63 manipulator = NIC.AddManipulator()
64
65 if request.POST:
66 new_data = request.POST.copy()
67
68 print new_data
69
70 # generated data for the NIC
71
72 new_data['shortdesc'] = "bogus"
73 new_data['desc'] = "bogus"
74
75 print new_data
76 print new_data['node']
77
78 if str(new_data['type']) != "eth":
79 new_data['ssid'] = newssidname(new_data['node'],new_data['iface'])
80 new_data['channel'] = '1'
81 new_data['mode'] = '1' # set to master
82
83 print new_data
84
85 errors = manipulator.get_validation_errors(new_data)
86
87
88 if not errors:
89 manipulator.do_html2python(new_data)
90 new_place = manipulator.save(new_data)
91
92 return HttpResponseRedirect("/exodus_01/")
93
94 else:
95 errors = new_data = {}
96
97 form = forms.FormWrapper(manipulator, new_data, errors)
98 return render_to_response('exodus_01/addnic.html', {'form': form })
99
100def addinterlink(request):
101 link1_manipulator = Link.AddManipulator()
102 link2_manipulator = Link.AddManipulator()
103 linkpool_manipulator = LinkPool.AddManipulator()
104
105
106 if request.POST:
107 new_data = request.POST.copy()
108
109 print new_data
110 alliface = new_data.getlist("iface")
111
112 iface1 = NIC.objects.get(id=alliface[0])
113 iface2 = NIC.objects.get(id=alliface[1])
114
115 print iface1
116 print iface2
117
118 if iface1.type != iface2.type:
119 print "not compatible"
120 linkerror["compat"] = "choose twomcompatible"
121
122
123 errors = link1_manipulator.get_validation_errors(new_data)
124
125 if not errors:
126 link1_manipulator.do_html2python(new_data)
127
128 return HttpResponseRedirect("/exodus_01/")
129
130 else:
131 errors = new_data = {}
132
133 form1 = forms.FormWrapper(link1_manipulator, new_data, errors)
134 form2 = forms.FormWrapper(link2_manipulator, new_data, errors)
135 return render_to_response('exodus_01/addinterlink.html',{'form1':form1, 'form2':form2})
136
137def addomni(request):
138 link_manipulator = Link.AddManipulator()
139 linkpool_manipulator = LinkPool.AddManipulator()
140
141 if request.POST:
142 new_data = request.POST.copy()
143
144 # pull data and
145 #
146
147 link_errors = link_manipulator.get_validation_errors(new_data)
148 linkpool_errors = linkpool_manipulator.get_validation_errors(new_data)
149
150 else:
151 errors = new_data = {}
152
153 form1 = forms.FormWrapper(link_manipulator, new_data, errors)
154 form2 = forms.FormWrapper(linkpool_manipulator, new_data, errors)
155 return render_to_response('exodus_01/addomni.html',{'form1':form1, 'form2':form2})
156
157
158
159def conf_rc_local(request, object_id):
160 """5.X legacy rc.local conf generator"""
161 object = Node.objects.get(pk=object_id).nic_set.all()
162 object.date = datetime.now()
163 object.name = Node.objects.get(pk=object_id).name
164 object.host = gethostname()
165
166 # check if it is a wireless nic, and add wifimode for wicontrol
167 for nic in object:
168 if nic.ssid:
169 if nic.mode.mode == 'master':
170 nic.wifimode = 6
171 nic.wifidesc = 'master mode'
172 else:
173 nic.wifimode = 1
174 nic.wifidesc = 'managed mode'
175 t = loader.get_template('exodus_01/rc_local.txt')
176 c = Context({'object': object,
177 })
178 return HttpResponse(t.render(c), mimetype='text/plain')
179
180def conf_rc_node_local5X(request, object_id):
181 """5.X Legacy rc.node.local conf generator"""
182
183 object.date = datetime.now()
184 object.name = Node.objects.get(pk=object_id).name
185 object.host = gethostname()
186
187 t = loader.get_template('exodus_01/rc_node_local.txt')
188 c = Context({'object': object,
189 })
190 return HttpResponse(t.render(c), mimetype='text/plain')
191
192def conf_rc_node_local(request, object_id):
193 """rc.node.local conf generator"""
194
195 object = Node.objects.get(pk=object_id).nic_set.all()
196 object.date = datetime.now()
197 object.name = Node.objects.get(pk=object_id).name
198 object.host = gethostname()
199
200 t = loader.get_template('exodus_01/rc_node_local.txt')
201 c = Context({'object': object, })
202
203 print c
204 return HttpResponse(t.render(c), mimetype='text.plain')
205
206def conf_rc_node_localorig(request, object_id):
207 """rc.node.local conf generator"""
208
209 object = Node.objects.get(pk=object_id).nic_set.all()
210 object.date = datetime.now()
211 object.name = Node.objects.get(pk=object_id).name
212 object.host = gethostname()
213
214 # check if it is a wireless nic, and add wifimode for wicontrol
215 for nic in object:
216 if nic.ssid:
217 if nic.mode.mode == 'master':
218 nic.wifimode = 6
219 nic.wifidesc = 'master mode'
220 else:
221 nic.wifimode = 1
222 nic.wifidesc = 'managed mode'
223
224 print "boek"
225 t = loader.get_template('exodus_01/rc_node_local.txt')
226 c = Context({'object': object,
227 })
228 return HttpResponse(t.render(c), mimetype='text/plain')
Note: See TracBrowser for help on using the repository browser.