Revision 0247388f
b/snf-cyclades-app/synnefo/db/models_factory.py | ||
---|---|---|
33 | 33 |
|
34 | 34 |
import factory |
35 | 35 |
from synnefo.db import models |
36 |
from random import choice |
|
37 |
from string import letters, digits |
|
36 | 38 |
|
37 | 39 |
|
38 | 40 |
def prefix_seq(x): |
... | ... | |
53 | 55 |
return lambda n: x[int(n) % size][0] |
54 | 56 |
|
55 | 57 |
|
58 |
def random_string(x): |
|
59 |
"""Returns a random string of length x""" |
|
60 |
return ''.join([choice(digits + letters) for i in range(x)]) |
|
61 |
|
|
62 |
|
|
56 | 63 |
class FlavorFactory(factory.DjangoModelFactory): |
57 | 64 |
FACTORY_FOR = models.Flavor |
58 | 65 |
|
... | ... | |
141 | 148 |
|
142 | 149 |
name = factory.Sequence(prefix_seq('network')) |
143 | 150 |
userid = factory.Sequence(user_seq()) |
144 |
subnet = factory.Sequence(lambda n: '192.168.{0}.0/24'.format(n)) |
|
145 |
gateway = factory.LazyAttribute(lambda a: a.subnet[:-4] + '1') |
|
146 |
subnet6 = "2001:648:2ffc:1112::/64" |
|
147 |
dhcp = False |
|
148 | 151 |
flavor = factory.Sequence(round_seq(models.Network.FLAVORS.keys())) |
149 | 152 |
mode = factory.LazyAttribute(lambda a: |
150 | 153 |
models.Network.FLAVORS[a.flavor]['mode']) |
... | ... | |
157 | 160 |
state = factory.Sequence(round_seq_first(models.Network.OPER_STATES)) |
158 | 161 |
|
159 | 162 |
|
160 |
class IPv6NetworkFactory(NetworkFactory): |
|
161 |
subnet = None |
|
162 |
gateway = None |
|
163 |
|
|
164 |
|
|
165 | 163 |
class DeletedNetwork(NetworkFactory): |
166 | 164 |
deleted = True |
167 | 165 |
|
... | ... | |
177 | 175 |
class NetworkInterfaceFactory(factory.DjangoModelFactory): |
178 | 176 |
FACTORY_FOR = models.NetworkInterface |
179 | 177 |
|
178 |
name = factory.LazyAttribute(lambda self: random_string(30)) |
|
180 | 179 |
machine = factory.SubFactory(VirtualMachineFactory) |
181 | 180 |
network = factory.SubFactory(NetworkFactory) |
182 | 181 |
index = factory.Sequence(lambda x: x, type=int) |
183 | 182 |
mac = factory.Sequence(lambda n: 'aa:{0}{0}:{0}{0}:aa:{0}{0}:{0}{0}' |
184 | 183 |
.format(hex(int(n) % 15)[2:3])) |
185 |
ipv4 = factory.LazyAttributeSequence(lambda a, n: a.network.subnet[:-4] + |
|
186 |
'{0}'.format(int(n) + 2)) |
|
187 | 184 |
state = "ACTIVE" |
188 | 185 |
firewall_profile =\ |
189 | 186 |
factory.Sequence(round_seq_first(FACTORY_FOR.FIREWALL_PROFILES)) |
190 | 187 |
|
191 | 188 |
|
192 |
class FloatingIPFactory(factory.DjangoModelFactory):
|
|
193 |
FACTORY_FOR = models.FloatingIP
|
|
189 |
class IPv4SubnetFactory(factory.DjangoModelFactory):
|
|
190 |
FACTORY_FOR = models.Subnet
|
|
194 | 191 |
|
195 |
machine = factory.SubFactory(VirtualMachineFactory) |
|
196 |
network = factory.SubFactory(NetworkFactory, public=False, deleted=False, |
|
192 |
network = factory.SubFactory(NetworkFactory) |
|
193 |
name = factory.LazyAttribute(lambda self: random_string(30)) |
|
194 |
ipversion = 4 |
|
195 |
cidr = factory.Sequence(lambda n: '192.168.{0}.0/24'.format(n)) |
|
196 |
dhcp = True |
|
197 |
gateway = factory.Sequence(lambda n: '192.168.{0}.1'.format(n)) |
|
198 |
dns_nameservers = [] |
|
199 |
host_routes = [] |
|
200 |
|
|
201 |
|
|
202 |
class IPv6SubnetFactory(IPv4SubnetFactory): |
|
203 |
ipversion = 6 |
|
204 |
cidr = "2001:648:2ffc:1112::/64" |
|
205 |
gateway = None |
|
206 |
|
|
207 |
|
|
208 |
class IPv4AddressFactory(factory.DjangoModelFactory): |
|
209 |
FACTORY_FOR = models.IPAddress |
|
210 |
|
|
211 |
subnet = factory.SubFactory(IPv4SubnetFactory) |
|
212 |
network = factory.SubFactory(NetworkFactory) |
|
213 |
address =\ |
|
214 |
factory.LazyAttributeSequence(lambda self, n: self.subnet.cidr[:-4] + |
|
215 |
'{0}'.format(int(n) + 2)) |
|
216 |
|
|
217 |
|
|
218 |
class FloatingIPFactory(IPv4AddressFactory): |
|
219 |
network = factory.SubFactory(NetworkFactory, public=False, |
|
197 | 220 |
floating_ip_pool=True) |
198 |
ipv4 = factory.LazyAttributeSequence(lambda a, n: a.network.subnet[:-4] + |
|
199 |
'{0}'.format(int(n) + 2)) |
|
221 |
floating_ip = True |
|
200 | 222 |
|
201 | 223 |
|
202 | 224 |
class BridgePoolTableFactory(factory.DjangoModelFactory): |
Also available in: Unified diff