1
|
|
2
|
|
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
|
|
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
|
|
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
|
|
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'
|