Merge lp:~hopem/charms/trusty/neutron-api/pki-token-support into lp:~openstack-charmers-archive/charms/trusty/neutron-api/next

Proposed by Edward Hope-Morley
Status: Merged
Merged at revision: 84
Proposed branch: lp:~hopem/charms/trusty/neutron-api/pki-token-support
Merge into: lp:~openstack-charmers-archive/charms/trusty/neutron-api/next
Diff against target: 465 lines (+244/-24)
14 files modified
hooks/charmhelpers/contrib/charmsupport/nrpe.py (+41/-7)
hooks/charmhelpers/contrib/hahelpers/cluster.py (+5/-1)
hooks/charmhelpers/contrib/openstack/amulet/deployment.py (+5/-2)
hooks/charmhelpers/contrib/openstack/context.py (+26/-9)
hooks/charmhelpers/contrib/openstack/files/__init__.py (+18/-0)
hooks/charmhelpers/contrib/openstack/files/check_haproxy.sh (+32/-0)
hooks/charmhelpers/contrib/openstack/files/check_haproxy_queue_depth.sh (+30/-0)
hooks/charmhelpers/contrib/openstack/ip.py (+37/-0)
hooks/charmhelpers/contrib/openstack/utils.py (+1/-0)
hooks/charmhelpers/core/fstab.py (+2/-2)
hooks/charmhelpers/core/strutils.py (+42/-0)
hooks/neutron_api_utils.py (+3/-1)
templates/icehouse/neutron.conf (+1/-1)
templates/kilo/neutron.conf (+1/-1)
To merge this branch: bzr merge lp:~hopem/charms/trusty/neutron-api/pki-token-support
Reviewer Review Type Date Requested Status
Liam Young (community) Approve
Review via email: mp+250370@code.launchpad.net
To post a comment you must log in.
Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_lint_check #2136 neutron-api-next for hopem mp250370
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/2136/

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_unit_test #1925 neutron-api-next for hopem mp250370
    UNIT OK: passed

Build: http://10.245.162.77:8080/job/charm_unit_test/1925/

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_amulet_test #2044 neutron-api-next for hopem mp250370
    AMULET FAIL: amulet-test missing

AMULET Results (max last 2 lines):
INFO:root:Search string not found in makefile target commands.
ERROR:root:No make target was executed.

Full amulet test output: http://paste.ubuntu.com/10325776/
Build: http://10.245.162.77:8080/job/charm_amulet_test/2044/

82. By Edward Hope-Morley

synced /next

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_lint_check #2209 neutron-api-next for hopem mp250370
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/2209/

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_unit_test #1998 neutron-api-next for hopem mp250370
    UNIT OK: passed

Build: http://10.245.162.77:8080/job/charm_unit_test/1998/

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_amulet_test #2155 neutron-api-next for hopem mp250370
    AMULET FAIL: amulet-test failed

AMULET Results (max last 2 lines):
  ERROR subprocess encountered error code 1
  make: *** [test] Error 1

Full amulet test output: http://paste.ubuntu.com/10396393/
Build: http://10.245.162.77:8080/job/charm_amulet_test/2155/

Revision history for this message
Liam Young (gnuoy) wrote :

Approve

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'hooks/charmhelpers/contrib/charmsupport/nrpe.py'
--- hooks/charmhelpers/contrib/charmsupport/nrpe.py 2015-01-26 09:44:26 +0000
+++ hooks/charmhelpers/contrib/charmsupport/nrpe.py 2015-02-24 11:59:09 +0000
@@ -24,6 +24,8 @@
24import pwd24import pwd
25import grp25import grp
26import os26import os
27import glob
28import shutil
27import re29import re
28import shlex30import shlex
29import yaml31import yaml
@@ -161,7 +163,7 @@
161 log('Check command not found: {}'.format(parts[0]))163 log('Check command not found: {}'.format(parts[0]))
162 return ''164 return ''
163165
164 def write(self, nagios_context, hostname, nagios_servicegroups=None):166 def write(self, nagios_context, hostname, nagios_servicegroups):
165 nrpe_check_file = '/etc/nagios/nrpe.d/{}.cfg'.format(167 nrpe_check_file = '/etc/nagios/nrpe.d/{}.cfg'.format(
166 self.command)168 self.command)
167 with open(nrpe_check_file, 'w') as nrpe_check_config:169 with open(nrpe_check_file, 'w') as nrpe_check_config:
@@ -177,14 +179,11 @@
177 nagios_servicegroups)179 nagios_servicegroups)
178180
179 def write_service_config(self, nagios_context, hostname,181 def write_service_config(self, nagios_context, hostname,
180 nagios_servicegroups=None):182 nagios_servicegroups):
181 for f in os.listdir(NRPE.nagios_exportdir):183 for f in os.listdir(NRPE.nagios_exportdir):
182 if re.search('.*{}.cfg'.format(self.command), f):184 if re.search('.*{}.cfg'.format(self.command), f):
183 os.remove(os.path.join(NRPE.nagios_exportdir, f))185 os.remove(os.path.join(NRPE.nagios_exportdir, f))
184186
185 if not nagios_servicegroups:
186 nagios_servicegroups = nagios_context
187
188 templ_vars = {187 templ_vars = {
189 'nagios_hostname': hostname,188 'nagios_hostname': hostname,
190 'nagios_servicegroup': nagios_servicegroups,189 'nagios_servicegroup': nagios_servicegroups,
@@ -211,10 +210,10 @@
211 super(NRPE, self).__init__()210 super(NRPE, self).__init__()
212 self.config = config()211 self.config = config()
213 self.nagios_context = self.config['nagios_context']212 self.nagios_context = self.config['nagios_context']
214 if 'nagios_servicegroups' in self.config:213 if 'nagios_servicegroups' in self.config and self.config['nagios_servicegroups']:
215 self.nagios_servicegroups = self.config['nagios_servicegroups']214 self.nagios_servicegroups = self.config['nagios_servicegroups']
216 else:215 else:
217 self.nagios_servicegroups = 'juju'216 self.nagios_servicegroups = self.nagios_context
218 self.unit_name = local_unit().replace('/', '-')217 self.unit_name = local_unit().replace('/', '-')
219 if hostname:218 if hostname:
220 self.hostname = hostname219 self.hostname = hostname
@@ -322,3 +321,38 @@
322 check_cmd='check_status_file.py -f '321 check_cmd='check_status_file.py -f '
323 '/var/lib/nagios/service-check-%s.txt' % svc,322 '/var/lib/nagios/service-check-%s.txt' % svc,
324 )323 )
324
325
326def copy_nrpe_checks():
327 """
328 Copy the nrpe checks into place
329
330 """
331 NAGIOS_PLUGINS = '/usr/local/lib/nagios/plugins'
332 nrpe_files_dir = os.path.join(os.getenv('CHARM_DIR'), 'hooks',
333 'charmhelpers', 'contrib', 'openstack',
334 'files')
335
336 if not os.path.exists(NAGIOS_PLUGINS):
337 os.makedirs(NAGIOS_PLUGINS)
338 for fname in glob.glob(os.path.join(nrpe_files_dir, "check_*")):
339 if os.path.isfile(fname):
340 shutil.copy2(fname,
341 os.path.join(NAGIOS_PLUGINS, os.path.basename(fname)))
342
343
344def add_haproxy_checks(nrpe, unit_name):
345 """
346 Add checks for each service in list
347
348 :param NRPE nrpe: NRPE object to add check to
349 :param str unit_name: Unit name to use in check description
350 """
351 nrpe.add_check(
352 shortname='haproxy_servers',
353 description='Check HAProxy {%s}' % unit_name,
354 check_cmd='check_haproxy.sh')
355 nrpe.add_check(
356 shortname='haproxy_queue',
357 description='Check HAProxy queue depth {%s}' % unit_name,
358 check_cmd='check_haproxy_queue_depth.sh')
325359
=== modified file 'hooks/charmhelpers/contrib/hahelpers/cluster.py'
--- hooks/charmhelpers/contrib/hahelpers/cluster.py 2015-01-26 09:44:26 +0000
+++ hooks/charmhelpers/contrib/hahelpers/cluster.py 2015-02-24 11:59:09 +0000
@@ -48,6 +48,9 @@
48from charmhelpers.core.decorators import (48from charmhelpers.core.decorators import (
49 retry_on_exception,49 retry_on_exception,
50)50)
51from charmhelpers.core.strutils import (
52 bool_from_string,
53)
5154
5255
53class HAIncompleteConfig(Exception):56class HAIncompleteConfig(Exception):
@@ -164,7 +167,8 @@
164 .167 .
165 returns: boolean168 returns: boolean
166 '''169 '''
167 if config_get('use-https') == "yes":170 use_https = config_get('use-https')
171 if use_https and bool_from_string(use_https):
168 return True172 return True
169 if config_get('ssl_cert') and config_get('ssl_key'):173 if config_get('ssl_cert') and config_get('ssl_key'):
170 return True174 return True
171175
=== modified file 'hooks/charmhelpers/contrib/openstack/amulet/deployment.py'
--- hooks/charmhelpers/contrib/openstack/amulet/deployment.py 2015-01-26 09:44:26 +0000
+++ hooks/charmhelpers/contrib/openstack/amulet/deployment.py 2015-02-24 11:59:09 +0000
@@ -71,16 +71,19 @@
71 services.append(this_service)71 services.append(this_service)
72 use_source = ['mysql', 'mongodb', 'rabbitmq-server', 'ceph',72 use_source = ['mysql', 'mongodb', 'rabbitmq-server', 'ceph',
73 'ceph-osd', 'ceph-radosgw']73 'ceph-osd', 'ceph-radosgw']
74 # Openstack subordinate charms do not expose an origin option as that
75 # is controlled by the principle
76 ignore = ['neutron-openvswitch']
7477
75 if self.openstack:78 if self.openstack:
76 for svc in services:79 for svc in services:
77 if svc['name'] not in use_source:80 if svc['name'] not in use_source + ignore:
78 config = {'openstack-origin': self.openstack}81 config = {'openstack-origin': self.openstack}
79 self.d.configure(svc['name'], config)82 self.d.configure(svc['name'], config)
8083
81 if self.source:84 if self.source:
82 for svc in services:85 for svc in services:
83 if svc['name'] in use_source:86 if svc['name'] in use_source and svc['name'] not in ignore:
84 config = {'source': self.source}87 config = {'source': self.source}
85 self.d.configure(svc['name'], config)88 self.d.configure(svc['name'], config)
8689
8790
=== modified file 'hooks/charmhelpers/contrib/openstack/context.py'
--- hooks/charmhelpers/contrib/openstack/context.py 2015-01-26 09:44:26 +0000
+++ hooks/charmhelpers/contrib/openstack/context.py 2015-02-24 11:59:09 +0000
@@ -279,9 +279,25 @@
279class IdentityServiceContext(OSContextGenerator):279class IdentityServiceContext(OSContextGenerator):
280 interfaces = ['identity-service']280 interfaces = ['identity-service']
281281
282 def __init__(self, service=None, service_user=None):
283 self.service = service
284 self.service_user = service_user
285
282 def __call__(self):286 def __call__(self):
283 log('Generating template context for identity-service', level=DEBUG)287 log('Generating template context for identity-service', level=DEBUG)
284 ctxt = {}288 ctxt = {}
289
290 if self.service and self.service_user:
291 # This is required for pki token signing if we don't want /tmp to
292 # be used.
293 cachedir = '/var/cache/%s' % (self.service)
294 if not os.path.isdir(cachedir):
295 log("Creating service cache dir %s" % (cachedir), level=DEBUG)
296 mkdir(path=cachedir, owner=self.service_user,
297 group=self.service_user, perms=0o700)
298
299 ctxt['signing_dir'] = cachedir
300
285 for rid in relation_ids('identity-service'):301 for rid in relation_ids('identity-service'):
286 for unit in related_units(rid):302 for unit in related_units(rid):
287 rdata = relation_get(rid=rid, unit=unit)303 rdata = relation_get(rid=rid, unit=unit)
@@ -291,15 +307,16 @@
291 auth_host = format_ipv6_addr(auth_host) or auth_host307 auth_host = format_ipv6_addr(auth_host) or auth_host
292 svc_protocol = rdata.get('service_protocol') or 'http'308 svc_protocol = rdata.get('service_protocol') or 'http'
293 auth_protocol = rdata.get('auth_protocol') or 'http'309 auth_protocol = rdata.get('auth_protocol') or 'http'
294 ctxt = {'service_port': rdata.get('service_port'),310 ctxt.update({'service_port': rdata.get('service_port'),
295 'service_host': serv_host,311 'service_host': serv_host,
296 'auth_host': auth_host,312 'auth_host': auth_host,
297 'auth_port': rdata.get('auth_port'),313 'auth_port': rdata.get('auth_port'),
298 'admin_tenant_name': rdata.get('service_tenant'),314 'admin_tenant_name': rdata.get('service_tenant'),
299 'admin_user': rdata.get('service_username'),315 'admin_user': rdata.get('service_username'),
300 'admin_password': rdata.get('service_password'),316 'admin_password': rdata.get('service_password'),
301 'service_protocol': svc_protocol,317 'service_protocol': svc_protocol,
302 'auth_protocol': auth_protocol}318 'auth_protocol': auth_protocol})
319
303 if context_complete(ctxt):320 if context_complete(ctxt):
304 # NOTE(jamespage) this is required for >= icehouse321 # NOTE(jamespage) this is required for >= icehouse
305 # so a missing value just indicates keystone needs322 # so a missing value just indicates keystone needs
306323
=== added directory 'hooks/charmhelpers/contrib/openstack/files'
=== added file 'hooks/charmhelpers/contrib/openstack/files/__init__.py'
--- hooks/charmhelpers/contrib/openstack/files/__init__.py 1970-01-01 00:00:00 +0000
+++ hooks/charmhelpers/contrib/openstack/files/__init__.py 2015-02-24 11:59:09 +0000
@@ -0,0 +1,18 @@
1# Copyright 2014-2015 Canonical Limited.
2#
3# This file is part of charm-helpers.
4#
5# charm-helpers is free software: you can redistribute it and/or modify
6# it under the terms of the GNU Lesser General Public License version 3 as
7# published by the Free Software Foundation.
8#
9# charm-helpers is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU Lesser General Public License for more details.
13#
14# You should have received a copy of the GNU Lesser General Public License
15# along with charm-helpers. If not, see <http://www.gnu.org/licenses/>.
16
17# dummy __init__.py to fool syncer into thinking this is a syncable python
18# module
019
=== added file 'hooks/charmhelpers/contrib/openstack/files/check_haproxy.sh'
--- hooks/charmhelpers/contrib/openstack/files/check_haproxy.sh 1970-01-01 00:00:00 +0000
+++ hooks/charmhelpers/contrib/openstack/files/check_haproxy.sh 2015-02-24 11:59:09 +0000
@@ -0,0 +1,32 @@
1#!/bin/bash
2#--------------------------------------------
3# This file is managed by Juju
4#--------------------------------------------
5#
6# Copyright 2009,2012 Canonical Ltd.
7# Author: Tom Haddon
8
9CRITICAL=0
10NOTACTIVE=''
11LOGFILE=/var/log/nagios/check_haproxy.log
12AUTH=$(grep -r "stats auth" /etc/haproxy | head -1 | awk '{print $4}')
13
14for appserver in $(grep ' server' /etc/haproxy/haproxy.cfg | awk '{print $2'});
15do
16 output=$(/usr/lib/nagios/plugins/check_http -a ${AUTH} -I 127.0.0.1 -p 8888 --regex="class=\"(active|backup)(2|3).*${appserver}" -e ' 200 OK')
17 if [ $? != 0 ]; then
18 date >> $LOGFILE
19 echo $output >> $LOGFILE
20 /usr/lib/nagios/plugins/check_http -a ${AUTH} -I 127.0.0.1 -p 8888 -v | grep $appserver >> $LOGFILE 2>&1
21 CRITICAL=1
22 NOTACTIVE="${NOTACTIVE} $appserver"
23 fi
24done
25
26if [ $CRITICAL = 1 ]; then
27 echo "CRITICAL:${NOTACTIVE}"
28 exit 2
29fi
30
31echo "OK: All haproxy instances looking good"
32exit 0
033
=== added file 'hooks/charmhelpers/contrib/openstack/files/check_haproxy_queue_depth.sh'
--- hooks/charmhelpers/contrib/openstack/files/check_haproxy_queue_depth.sh 1970-01-01 00:00:00 +0000
+++ hooks/charmhelpers/contrib/openstack/files/check_haproxy_queue_depth.sh 2015-02-24 11:59:09 +0000
@@ -0,0 +1,30 @@
1#!/bin/bash
2#--------------------------------------------
3# This file is managed by Juju
4#--------------------------------------------
5#
6# Copyright 2009,2012 Canonical Ltd.
7# Author: Tom Haddon
8
9# These should be config options at some stage
10CURRQthrsh=0
11MAXQthrsh=100
12
13AUTH=$(grep -r "stats auth" /etc/haproxy | head -1 | awk '{print $4}')
14
15HAPROXYSTATS=$(/usr/lib/nagios/plugins/check_http -a ${AUTH} -I 127.0.0.1 -p 8888 -u '/;csv' -v)
16
17for BACKEND in $(echo $HAPROXYSTATS| xargs -n1 | grep BACKEND | awk -F , '{print $1}')
18do
19 CURRQ=$(echo "$HAPROXYSTATS" | grep $BACKEND | grep BACKEND | cut -d , -f 3)
20 MAXQ=$(echo "$HAPROXYSTATS" | grep $BACKEND | grep BACKEND | cut -d , -f 4)
21
22 if [[ $CURRQ -gt $CURRQthrsh || $MAXQ -gt $MAXQthrsh ]] ; then
23 echo "CRITICAL: queue depth for $BACKEND - CURRENT:$CURRQ MAX:$MAXQ"
24 exit 2
25 fi
26done
27
28echo "OK: All haproxy queue depths looking good"
29exit 0
30
031
=== modified file 'hooks/charmhelpers/contrib/openstack/ip.py'
--- hooks/charmhelpers/contrib/openstack/ip.py 2015-01-26 09:44:26 +0000
+++ hooks/charmhelpers/contrib/openstack/ip.py 2015-02-24 11:59:09 +0000
@@ -26,6 +26,8 @@
26)26)
27from charmhelpers.contrib.hahelpers.cluster import is_clustered27from charmhelpers.contrib.hahelpers.cluster import is_clustered
2828
29from functools import partial
30
29PUBLIC = 'public'31PUBLIC = 'public'
30INTERNAL = 'int'32INTERNAL = 'int'
31ADMIN = 'admin'33ADMIN = 'admin'
@@ -107,3 +109,38 @@
107 "clustered=%s)" % (net_type, clustered))109 "clustered=%s)" % (net_type, clustered))
108110
109 return resolved_address111 return resolved_address
112
113
114def endpoint_url(configs, url_template, port, endpoint_type=PUBLIC,
115 override=None):
116 """Returns the correct endpoint URL to advertise to Keystone.
117
118 This method provides the correct endpoint URL which should be advertised to
119 the keystone charm for endpoint creation. This method allows for the url to
120 be overridden to force a keystone endpoint to have specific URL for any of
121 the defined scopes (admin, internal, public).
122
123 :param configs: OSTemplateRenderer config templating object to inspect
124 for a complete https context.
125 :param url_template: str format string for creating the url template. Only
126 two values will be passed - the scheme+hostname
127 returned by the canonical_url and the port.
128 :param endpoint_type: str endpoint type to resolve.
129 :param override: str the name of the config option which overrides the
130 endpoint URL defined by the charm itself. None will
131 disable any overrides (default).
132 """
133 if override:
134 # Return any user-defined overrides for the keystone endpoint URL.
135 user_value = config(override)
136 if user_value:
137 return user_value.strip()
138
139 return url_template % (canonical_url(configs, endpoint_type), port)
140
141
142public_endpoint = partial(endpoint_url, endpoint_type=PUBLIC)
143
144internal_endpoint = partial(endpoint_url, endpoint_type=INTERNAL)
145
146admin_endpoint = partial(endpoint_url, endpoint_type=ADMIN)
110147
=== modified file 'hooks/charmhelpers/contrib/openstack/utils.py'
--- hooks/charmhelpers/contrib/openstack/utils.py 2015-01-26 09:44:26 +0000
+++ hooks/charmhelpers/contrib/openstack/utils.py 2015-02-24 11:59:09 +0000
@@ -103,6 +103,7 @@
103 ('2.1.0', 'juno'),103 ('2.1.0', 'juno'),
104 ('2.2.0', 'juno'),104 ('2.2.0', 'juno'),
105 ('2.2.1', 'kilo'),105 ('2.2.1', 'kilo'),
106 ('2.2.2', 'kilo'),
106])107])
107108
108DEFAULT_LOOPBACK_SIZE = '5G'109DEFAULT_LOOPBACK_SIZE = '5G'
109110
=== modified file 'hooks/charmhelpers/core/fstab.py'
--- hooks/charmhelpers/core/fstab.py 2015-02-17 07:10:15 +0000
+++ hooks/charmhelpers/core/fstab.py 2015-02-24 11:59:09 +0000
@@ -77,7 +77,7 @@
77 for line in self.readlines():77 for line in self.readlines():
78 line = line.decode('us-ascii')78 line = line.decode('us-ascii')
79 try:79 try:
80 if line.strip() and not line.startswith("#"):80 if line.strip() and not line.strip().startswith("#"):
81 yield self._hydrate_entry(line)81 yield self._hydrate_entry(line)
82 except ValueError:82 except ValueError:
83 pass83 pass
@@ -104,7 +104,7 @@
104104
105 found = False105 found = False
106 for index, line in enumerate(lines):106 for index, line in enumerate(lines):
107 if not line.startswith("#"):107 if line.strip() and not line.strip().startswith("#"):
108 if self._hydrate_entry(line) == entry:108 if self._hydrate_entry(line) == entry:
109 found = True109 found = True
110 break110 break
111111
=== added file 'hooks/charmhelpers/core/strutils.py'
--- hooks/charmhelpers/core/strutils.py 1970-01-01 00:00:00 +0000
+++ hooks/charmhelpers/core/strutils.py 2015-02-24 11:59:09 +0000
@@ -0,0 +1,42 @@
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3
4# Copyright 2014-2015 Canonical Limited.
5#
6# This file is part of charm-helpers.
7#
8# charm-helpers is free software: you can redistribute it and/or modify
9# it under the terms of the GNU Lesser General Public License version 3 as
10# published by the Free Software Foundation.
11#
12# charm-helpers is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU Lesser General Public License for more details.
16#
17# You should have received a copy of the GNU Lesser General Public License
18# along with charm-helpers. If not, see <http://www.gnu.org/licenses/>.
19
20import six
21
22
23def bool_from_string(value):
24 """Interpret string value as boolean.
25
26 Returns True if value translates to True otherwise False.
27 """
28 if isinstance(value, six.string_types):
29 value = six.text_type(value)
30 else:
31 msg = "Unable to interpret non-string value '%s' as boolean" % (value)
32 raise ValueError(msg)
33
34 value = value.strip().lower()
35
36 if value in ['y', 'yes', 'true', 't']:
37 return True
38 elif value in ['n', 'no', 'false', 'f']:
39 return False
40
41 msg = "Unable to interpret string value '%s' as boolean" % (value)
42 raise ValueError(msg)
043
=== modified file 'hooks/neutron_api_utils.py'
--- hooks/neutron_api_utils.py 2015-02-17 11:43:13 +0000
+++ hooks/neutron_api_utils.py 2015-02-24 11:59:09 +0000
@@ -77,7 +77,9 @@
77 database=config('database'),77 database=config('database'),
78 ssl_dir=NEUTRON_CONF_DIR),78 ssl_dir=NEUTRON_CONF_DIR),
79 context.PostgresqlDBContext(database=config('database')),79 context.PostgresqlDBContext(database=config('database')),
80 neutron_api_context.IdentityServiceContext(),80 neutron_api_context.IdentityServiceContext(
81 service='neutron',
82 service_user='neutron'),
81 neutron_api_context.NeutronCCContext(),83 neutron_api_context.NeutronCCContext(),
82 context.SyslogContext(),84 context.SyslogContext(),
83 context.BindHostContext(),85 context.BindHostContext(),
8486
=== modified file 'templates/icehouse/neutron.conf'
--- templates/icehouse/neutron.conf 2014-10-22 16:31:29 +0000
+++ templates/icehouse/neutron.conf 2015-02-24 11:59:09 +0000
@@ -56,7 +56,7 @@
56root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf56root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
5757
58[keystone_authtoken]58[keystone_authtoken]
59signing_dir = /var/lib/neutron/keystone-signing59signing_dir = {{ signing_dir }}
60{% if service_host -%}60{% if service_host -%}
61service_protocol = {{ service_protocol }}61service_protocol = {{ service_protocol }}
62service_host = {{ service_host }}62service_host = {{ service_host }}
6363
=== modified file 'templates/kilo/neutron.conf'
--- templates/kilo/neutron.conf 2015-01-20 14:15:55 +0000
+++ templates/kilo/neutron.conf 2015-02-24 11:59:09 +0000
@@ -56,7 +56,7 @@
56root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf56root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
5757
58[keystone_authtoken]58[keystone_authtoken]
59signing_dir = /var/lib/neutron/keystone-signing59signing_dir = {{ signing_dir }}
60{% if service_host -%}60{% if service_host -%}
61service_protocol = {{ service_protocol }}61service_protocol = {{ service_protocol }}
62service_host = {{ service_host }}62service_host = {{ service_host }}

Subscribers

People subscribed via source and target branches