Projet

Général

Profil

test.py

Emmanuel GARETTE, 03/10/2016 15:45

Télécharger (3,01 ko)

 
1
# -*- coding: utf-8 -*-
2
#!/usr/bin/env python
3
from creole.loader import creole_loader, config_save_values
4
from pyeole.process import system_out
5
from py.test import raises
6

    
7
config = creole_loader(rw=True)
8
default_port = u'eole'
9
option_type = {'tag': unicode}
10

    
11

    
12
def get_option(option, port=default_port):
13
    cmd = ['ovs-vsctl', 'list', 'port', port]
14
    ret, out, err = system_out(cmd)
15
    if ret != 0:
16
        raise Exception('erreur a la commande {} : {} - {}'.format(' '.join(cmd), out, err))
17
    for line in out.split('\n'):
18
        sline = line.split(':')
19
        if sline[0].strip() == option:
20
            value = sline[1].strip()
21
            if option in option_type:
22
                value = option_type[option](value)
23
            return value
24

    
25
def reconfigure(config):
26
    config_save_values(config, 'creole')
27
    cmd = ['/usr/share/eole/postservice/29-ovs-mng', 'reconfigure']
28
    ret, out, err = system_out(cmd)
29
    if ret != 0:
30
        raise Exception('erreur a la commande {} : {} - {}'.format(' '.join(cmd), out, err))
31

    
32

    
33
def test_change_tag():
34
    assert config.creole.commutateur_virtuel.ovs_sw_zones.ovs_sw_vlan_tag == [u'10']
35
    assert get_option('tag') == u'10'
36
    config.creole.commutateur_virtuel.ovs_sw_zones.ovs_sw_vlan_tag[0] = u'11'
37
    reconfigure(config)
38
    assert get_option('tag') == u'11'
39

    
40
    #remet la valeur par defaut
41
    config.creole.commutateur_virtuel.ovs_sw_zones.ovs_sw_vlan_tag[0] = u'10'
42
    reconfigure(config)
43

    
44

    
45
def test_change_name():
46
    assert config.creole.commutateur_virtuel.ovs_sw_zones.ovs_sw_zones == [default_port]
47
    assert get_option('name') == default_port
48
    raises(Exception, "get_option('name', u'eth1')")
49
    config.creole.commutateur_virtuel.ovs_sw_zones.ovs_sw_zones = [u'eth1']
50
    reconfigure(config)
51
    raises(Exception, "get_option('name', '{}')".format(default_port))
52
    assert get_option('name', u'eth1') == u'eth1'
53

    
54
    #remet la valeur par defaut
55
    config.creole.commutateur_virtuel.ovs_sw_zones.ovs_sw_zones = [default_port]
56
    reconfigure(config)
57

    
58

    
59
def test_change_mode():
60
    assert config.creole.commutateur_virtuel.ovs_sw_zones.ovs_sw_tag_mode == ['native-tagged']
61
    assert get_option('tag') == u'10'
62
    assert get_option('trunks') == '[]'
63
    assert get_option('vlan_mode') == 'native-tagged'
64
    config.creole.commutateur_virtuel.ovs_sw_zones.ovs_sw_tag_mode[0] = 'trunk'
65
    reconfigure(config)
66
    assert get_option('tag') == '[]'
67
    assert get_option('trunks') == '[10]'
68
    assert get_option('vlan_mode') == 'trunk'
69
    config.creole.commutateur_virtuel.ovs_sw_zones.ovs_sw_tag_mode[0] = None
70
    reconfigure(config)
71
    assert get_option('tag') == u'10'
72
    assert get_option('trunks') == '[]'
73
    assert get_option('vlan_mode') == '[]'
74

    
75
    #remet la valeur par defaut
76
    config.creole.commutateur_virtuel.ovs_sw_zones.ovs_sw_tag_mode[0] = 'native-tagged'
77
    assert config.creole.commutateur_virtuel.ovs_sw_zones.ovs_sw_tag_mode == ['native-tagged']
78
    assert get_option('tag') == u'10'
79
    assert get_option('trunks') == '[]'
80
    assert get_option('vlan_mode') == 'native-tagged'