blob: d45f4e5ec9938bfacee61e149a6b3be6cdaf465c [file] [log] [blame]
Matteo Scandoloc41467a2016-05-02 18:15:57 -07001import dredd_hooks as hooks
2import sys
3
4# HELPERS
5# NOTE move in separated module
6import os
7import sys
8sys.path.append("/opt/xos")
9os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xos.settings")
10import django
11from core.models import *
12from services.cord.models import *
13from services.vtr.models import *
14import urllib2
15import json
Matteo Scandolod9f92a72016-05-05 15:44:13 -070016from django.utils import timezone
Matteo Scandoloc41467a2016-05-02 18:15:57 -070017django.setup()
18
19
20def doLogin(username, password):
21 url = "http://127.0.0.1:8000/xoslib/login?username=%s&password=%s" % (username, password)
22 res = urllib2.urlopen(url).read()
23 parsed = json.loads(res)
24 return {'token': parsed['xoscsrftoken'], 'sessionid': parsed['xossessionid']}
25
26
27def cleanDB():
28 # deleting all subscribers
29 for s in CordSubscriberRoot.objects.all():
30 s.delete(purge=True)
31
32 # deleting all slices
33 for s in Slice.objects.all():
34 s.delete(purge=True)
35
36 # deleting all Services
37 for s in Service.objects.all():
38 s.delete(purge=True)
39
40 # deleting all Tenants
41 for s in Tenant.objects.all():
42 s.delete(purge=True)
43
44 # deleting all Networks
45 for s in Network.objects.all():
46 s.delete(purge=True)
47
48 # deleting all NetworkTemplates
49 for s in NetworkTemplate.objects.all():
50 s.delete(purge=True)
51
52 for s in NetworkSlice.objects.all():
53 s.delete(purge=True)
54
55 for s in AddressPool.objects.all():
56 s.delete(purge=True)
57
58 for s in Flavor.objects.all():
59 s.delete(purge=True)
60
61 for s in Image.objects.all():
62 s.delete(purge=True)
63
64 # print 'DB Cleaned'
65
66
67def createTestSubscriber():
68
69 cleanDB()
70 createFlavors()
71
72 # load user
73 user = User.objects.get(email="padmin@vicci.org")
74
75 # network template
76 private_template = NetworkTemplate()
77 private_template.name = 'Private Network'
78 private_template.save()
79
80 # creating the test subscriber
81 subscriber = CordSubscriberRoot(name='Test Subscriber 1', id=1)
Matteo Scandolod9f92a72016-05-05 15:44:13 -070082 subscriber.created = timezone.now()
Matteo Scandoloc41467a2016-05-02 18:15:57 -070083 subscriber.save()
84
85 # vRouter service
86 vrouter_service = VRouterService()
87 vrouter_service.name = 'service_vrouter'
88 vrouter_service.save()
89
90 # address pools
91 ap_vsg = AddressPool()
92 ap_vsg.service = vrouter_service
93 ap_vsg.name = 'addresses_vsg'
94 ap_vsg.addresses = '10.168.0.0'
95 ap_vsg.gateway_ip = '10.168.0.1'
96 ap_vsg.gateway_mac = '02:42:0a:a8:00:01'
97 ap_vsg.save()
98
99 # print 'vRouter created'
100
101 # Site
102 site = Site.objects.get(name='MySite')
103
104 # vSG service
105 vsg_service = VSGService()
106 vsg_service.name = 'service_vsg'
107
108 # vSG slice
109 vsg_slice = Slice(id=2)
110 vsg_slice.name = site.login_base + "_testVsg"
111 vsg_slice.service = vsg_service.id
112 vsg_slice.site = site
113 vsg_slice.caller = user
114
115 vsg_slice.save()
116
117 vsg_service.save()
118
119 # volt service
120 volt_service = VOLTService()
121 volt_service.name = 'service_volt'
122 volt_service.save()
123
124 # cvpe image
125 createImage('ubuntu-vcpe4')
126
127 # vcpe slice
128 vcpe_slice = Slice(id=3)
129 vcpe_slice.name = site.login_base + "_testVcpe"
130 vcpe_slice.service = Service.objects.get(kind='vCPE')
131 vcpe_slice.site = site
132 vcpe_slice.caller = user
133 vcpe_slice.save()
134
135 # print 'vcpe_slice created'
136
137 # create a lan network
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700138 lan_net = Network(id=1)
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700139 lan_net.name = 'lan_network'
140 lan_net.owner = vcpe_slice
141 lan_net.template = private_template
142 lan_net.save()
143
144 # print 'lan_network created'
145
146 # add relation between vcpe slice and lan network
147 vcpe_network = NetworkSlice()
148 vcpe_network.network = lan_net
149 vcpe_network.slice = vcpe_slice
150 vcpe_network.save()
151
152 # print 'vcpe network relation added'
153
154 # vbng service
155 vbng_service = VBNGService()
156 vbng_service.name = 'service_vbng'
157 vbng_service.save()
158
159 # print 'vbng_service creater'
160
161 # volt tenant
162 vt = VOLTTenant(subscriber=subscriber.id, id=1)
163 vt.s_tag = "222"
164 vt.c_tag = "432"
165 vt.provider_service_id = volt_service.id
166 vt.caller = user
167 vt.save()
168
169 # print "Subscriber Created"
170
171
172def deleteTruckrolls():
173 for s in VTRTenant.objects.all():
174 s.delete(purge=True)
175
176
177def setUpTruckroll():
178 service_vtr = VTRService()
179 service_vtr.name = 'service_vtr'
180 service_vtr.save()
181
182
183def createTruckroll():
184 setUpTruckroll()
185 tn = VTRTenant(id=1)
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700186 tn.created = timezone.now()
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700187 tn.save()
188
189
190def createFlavors():
191 small = Flavor(id=1)
192 small.name = "m1.small"
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700193 small.created = timezone.now()
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700194 small.save()
195
196 medium = Flavor(id=2)
197 medium.name = "m1.medium"
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700198 medium.created = timezone.now()
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700199 medium.save()
200
201 large = Flavor(id=3)
202 large.name = "m1.large"
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700203 large.created = timezone.now()
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700204 large.save()
205
206
207def createSlice():
208 site = Site.objects.get(name='MySite')
209 user = User.objects.get(email="padmin@vicci.org")
210
211 sl = Slice(id=1)
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700212 sl.created = timezone.now()
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700213 sl.name = site.login_base + "_testSlice"
214 sl.site = site
215 sl.caller = user
216 sl.save()
217 return sl
218
219
220def createDeployment():
221 deployment = Deployment(id=1)
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700222 deployment.created = timezone.now()
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700223 deployment.name = 'MyTestDeployment'
224 deployment.save()
225 return deployment
226
227
228def createImage(name):
229 img = Image(id=1)
230 img.name = name
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700231 img.created = timezone.now()
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700232 img.disk_format = 'QCOW2'
233 img.kind = 'vm'
234 img.save()
235 return img
236
237
238def createNode(deployment):
239 site = Site.objects.get(name='MySite')
240
241 site_deployment = SiteDeployment(id=1)
242 site_deployment.site = site
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700243 site_deployment.created = timezone.now()
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700244 site_deployment.deployment = deployment
245 site_deployment.save()
246
247 node = Node(id=1)
248 node.name = 'test-node'
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700249 node.created = timezone.now()
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700250 node.site = site
251 node.site_deployment = site_deployment
252 node.save()
253 return node
254
255
256def setupInstance():
257 deployment = createDeployment()
258 sl = createSlice()
259 node = createNode(deployment)
260 img = createImage('test-image')
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700261 # print {'image': img.id, 'deployment': deployment.id, 'slice': sl.id}
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700262 return {'image': img, 'deployment': deployment, 'slice': sl}
263
264
265def createInstance():
266 requirements = setupInstance()
267 user = User.objects.get(email="padmin@vicci.org")
268
269 instance = Instance(id=1)
270 instance.name = 'test-instance'
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700271 instance.created = timezone.now()
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700272 instance.node = Node.objects.all()[0]
273 instance.image = requirements['image']
274 instance.slice = requirements['slice']
275 instance.deployment = requirements['deployment']
276 instance.caller = user
277 instance.save()
278
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700279
Matteo Scandolof2ec12b2016-05-16 10:31:32 -0700280def createService():
281 service = Service(id=1)
282 service.name = 'test-service'
283 service.save()
284
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700285# setupInstance()
286# depl = createDeployment()
Matteo Scandolof2ec12b2016-05-16 10:31:32 -0700287# createTestSubscriber()
Matteo Scandoloc41467a2016-05-02 18:15:57 -0700288# createInstance()
Matteo Scandolod9f92a72016-05-05 15:44:13 -0700289# createSlice()
290# createNode(depl)
291# createImage('test-image')
292# createFlavors()
293# createTruckroll()
Matteo Scandolof2ec12b2016-05-16 10:31:32 -0700294# setUpTruckroll()
295createService()