Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / synnefo / neutron / models_factory.py @ d6e16760

History | View | Annotate | Download (1.2 kB)

1
import factory
2
import models
3
from synnefo.db.models_factory import VirtualMachineFactory
4

    
5

    
6
def prefix_seq(x):
7
    return lambda n: x + '-{0}'.format(n)
8

    
9

    
10
def user_seq():
11
    return lambda n: 'user-{0}.example.com'.format(n)
12

    
13

    
14
def round_seq(x):
15
    size = len(x)
16
    return lambda n: x[int(n) % size]
17

    
18

    
19
def round_seq_first(x):
20
    size = len(x)
21
    return lambda n: x[int(n) % size][0]
22

    
23

    
24
class NetworkFactory(factory.DjangoModelFactory):
25
    FACTORY_FOR = models.Network
26

    
27
    name = factory.Sequence(prefix_seq('network'))
28
    userid = factory.Sequence(user_seq())
29
    flavor = factory.Sequence(round_seq(models.Network.FLAVORS.keys()))
30
    mode = factory.LazyAttribute(lambda a:
31
                                 models.Network.FLAVORS[a.flavor]['mode'])
32
    link = factory.Sequence(prefix_seq('link'))
33
    mac_prefix = 'aa:00:0'
34
    tags = factory.LazyAttribute(lambda a:
35
                                 models.Network.FLAVORS[a.flavor]['tags'])
36
    public = False
37
    deleted = False
38
    state = factory.Sequence(round_seq_first(models.Network.OPER_STATES))
39

    
40

    
41
class NetworkInterfaceFactory(factory.DjangoModelFactory):
42
    FACTORY_FOR = models.NetworkInterface
43

    
44
    machine = factory.SubFactory(VirtualMachineFactory)
45
    network = factory.SubFactory(NetworkFactory)