17
17
kver = check_output(['uname', '-r']).strip()
18
18
return 'linux-headers-%s' % kver
20
QUANTUM_CONF_DIR = '/etc/quantum'
24
""" Retrieve the current major kernel version as a tuple e.g. (3, 13) """
25
kver = check_output(['uname', '-r']).strip()
26
kver = kver.split('.')
27
return (int(kver[0]), int(kver[1]))
30
def determine_dkms_package():
31
""" Determine which DKMS package should be used based on kernel version """
32
# NOTE: 3.13 kernels have support for GRE and VXLAN native
33
if kernel_version() >= (3, 13):
36
return ['openvswitch-datapath-dkms']
22
42
def quantum_plugins():
23
43
from charmhelpers.contrib.openstack import context
31
51
context.SharedDBContext(user=config('neutron-database-user'),
32
52
database=config('neutron-database'),
33
relation_prefix='neutron')],
53
relation_prefix='neutron',
54
ssl_dir=QUANTUM_CONF_DIR)],
34
55
'services': ['quantum-plugin-openvswitch-agent'],
35
'packages': [[headers_package(), 'openvswitch-datapath-dkms'],
56
'packages': [[headers_package()] + determine_dkms_package(),
36
57
['quantum-plugin-openvswitch-agent']],
58
'server_packages': ['quantum-server',
59
'quantum-plugin-openvswitch'],
60
'server_services': ['quantum-server']
39
63
'config': '/etc/quantum/plugins/nicira/nvp.ini',
40
64
'driver': 'quantum.plugins.nicira.nicira_nvp_plugin.'
41
65
'QuantumPlugin.NvpPluginV2',
67
context.SharedDBContext(user=config('neutron-database-user'),
68
database=config('neutron-database'),
69
relation_prefix='neutron',
70
ssl_dir=QUANTUM_CONF_DIR)],
73
'server_packages': ['quantum-server',
74
'quantum-plugin-nicira'],
75
'server_services': ['quantum-server']
79
NEUTRON_CONF_DIR = '/etc/neutron'
48
82
def neutron_plugins():
49
83
from charmhelpers.contrib.openstack import context
84
release = os_release('nova-common')
52
87
'config': '/etc/neutron/plugins/openvswitch/'
53
88
'ovs_neutron_plugin.ini',
57
92
context.SharedDBContext(user=config('neutron-database-user'),
58
93
database=config('neutron-database'),
59
relation_prefix='neutron')],
94
relation_prefix='neutron',
95
ssl_dir=NEUTRON_CONF_DIR)],
60
96
'services': ['neutron-plugin-openvswitch-agent'],
61
'packages': [[headers_package(), 'openvswitch-datapath-dkms'],
62
['quantum-plugin-openvswitch-agent']],
97
'packages': [[headers_package()] + determine_dkms_package(),
98
['neutron-plugin-openvswitch-agent']],
99
'server_packages': ['neutron-server',
100
'neutron-plugin-openvswitch'],
101
'server_services': ['neutron-server']
65
104
'config': '/etc/neutron/plugins/nicira/nvp.ini',
66
105
'driver': 'neutron.plugins.nicira.nicira_nvp_plugin.'
67
106
'NeutronPlugin.NvpPluginV2',
108
context.SharedDBContext(user=config('neutron-database-user'),
109
database=config('neutron-database'),
110
relation_prefix='neutron',
111
ssl_dir=NEUTRON_CONF_DIR)],
114
'server_packages': ['neutron-server',
115
'neutron-plugin-nicira'],
116
'server_services': ['neutron-server']
119
# NOTE: patch in ml2 plugin for icehouse onwards
120
if release >= 'icehouse':
121
plugins['ovs']['config'] = '/etc/neutron/plugins/ml2/ml2_conf.ini'
122
plugins['ovs']['driver'] = 'neutron.plugins.ml2.plugin.Ml2Plugin'
123
plugins['ovs']['server_packages'] = ['neutron-server',
124
'neutron-plugin-ml2']
74
128
def neutron_plugin_attribute(plugin, attr, net_manager=None):