1 | # (c) Roland van Laar 2006
|
---|
2 |
|
---|
3 | from django.http import HttpResponse, HttpResponseRedirect
|
---|
4 | from django.template import loader, Context
|
---|
5 | from django.shortcuts import render_to_response
|
---|
6 | from django import forms
|
---|
7 | from datetime import datetime
|
---|
8 | from socket import gethostname
|
---|
9 |
|
---|
10 | from django_exodus.exodus_01.models import NIC, Node, Location, Link, LinkPool
|
---|
11 | from django_exodus.exodus_01.wllogic import freemasterip, newssidname
|
---|
12 |
|
---|
13 | def 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 |
|
---|
39 | def 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 |
|
---|
62 | def 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 |
|
---|
100 | def 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 |
|
---|
137 | def 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 |
|
---|
159 | def 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 |
|
---|
180 | def 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 |
|
---|
192 | def 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 |
|
---|
206 | def 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')
|
---|