~ibm-charms/charms/trusty/nova-compute-power/trunk

« back to all changes in this revision

Viewing changes to hooks/charmhelpers/contrib/openstack/neutron.py

  • Committer: Edward Hope-Morley
  • Date: 2014-03-26 18:08:46 UTC
  • mfrom: (55.1.1 nova-compute.lp1273067)
  • Revision ID: edward.hope-morley@canonical.com-20140326180846-o2mo693uow2urlpj
[hopem] Added support for ceph-client logging to syslog

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
    return 'linux-headers-%s' % kver
19
19
 
20
20
 
 
21
def kernel_version():
 
22
    """ Retrieve the current major kernel version as a tuple e.g. (3, 13) """
 
23
    kver = check_output(['uname', '-r']).strip()
 
24
    kver = kver.split('.')
 
25
    return (int(kver[0]), int(kver[1]))
 
26
 
 
27
 
 
28
def determine_dkms_package():
 
29
    """ Determine which DKMS package should be used based on kernel version """
 
30
    # NOTE: 3.13 kernels have support for GRE and VXLAN native
 
31
    if kernel_version() >= (3, 13):
 
32
        return []
 
33
    else:
 
34
        return ['openvswitch-datapath-dkms']
 
35
 
 
36
 
21
37
# legacy
22
38
def quantum_plugins():
23
39
    from charmhelpers.contrib.openstack import context
32
48
                                        database=config('neutron-database'),
33
49
                                        relation_prefix='neutron')],
34
50
            'services': ['quantum-plugin-openvswitch-agent'],
35
 
            'packages': [[headers_package(), 'openvswitch-datapath-dkms'],
 
51
            'packages': [[headers_package()] + determine_dkms_package(),
36
52
                         ['quantum-plugin-openvswitch-agent']],
37
53
            'server_packages': ['quantum-server',
38
54
                                'quantum-plugin-openvswitch'],
57
73
 
58
74
def neutron_plugins():
59
75
    from charmhelpers.contrib.openstack import context
60
 
    return {
 
76
    release = os_release('nova-common')
 
77
    plugins = {
61
78
        'ovs': {
62
79
            'config': '/etc/neutron/plugins/openvswitch/'
63
80
                      'ovs_neutron_plugin.ini',
68
85
                                        database=config('neutron-database'),
69
86
                                        relation_prefix='neutron')],
70
87
            'services': ['neutron-plugin-openvswitch-agent'],
71
 
            'packages': [[headers_package(), 'openvswitch-datapath-dkms'],
72
 
                         ['quantum-plugin-openvswitch-agent']],
 
88
            'packages': [[headers_package()] + determine_dkms_package(),
 
89
                         ['neutron-plugin-openvswitch-agent']],
73
90
            'server_packages': ['neutron-server',
74
91
                                'neutron-plugin-openvswitch'],
75
92
            'server_services': ['neutron-server']
89
106
            'server_services': ['neutron-server']
90
107
        }
91
108
    }
 
109
    # NOTE: patch in ml2 plugin for icehouse onwards
 
110
    if release >= 'icehouse':
 
111
        plugins['ovs']['config'] = '/etc/neutron/plugins/ml2/ml2_conf.ini'
 
112
        plugins['ovs']['driver'] = 'neutron.plugins.ml2.plugin.Ml2Plugin'
 
113
        plugins['ovs']['server_packages'] = ['neutron-server',
 
114
                                             'neutron-plugin-ml2']
 
115
    return plugins
92
116
 
93
117
 
94
118
def neutron_plugin_attribute(plugin, attr, net_manager=None):