Merge "Release based management of haproxy context"
This commit is contained in:
commit
b33397afa8
|
@ -158,6 +158,8 @@ class HAProxyContext(ch_context.HAProxyContext):
|
|||
'''
|
||||
ctxt = super(HAProxyContext, self).__call__()
|
||||
|
||||
os_rel = ch_utils.os_release('nova-common')
|
||||
cmp_os_rel = ch_utils.CompareOpenStackReleases(os_rel)
|
||||
# determine which port api processes should bind to, depending
|
||||
# on existence of haproxy + apache frontends
|
||||
compute_api = ch_cluster.determine_api_port(
|
||||
|
@ -203,6 +205,16 @@ class HAProxyContext(ch_context.HAProxyContext):
|
|||
common.api_port('nova-api-metadata'), a_metadata_api],
|
||||
}
|
||||
|
||||
if cmp_os_rel >= 'kilo':
|
||||
del listen_ports['ec2_listen_port']
|
||||
del listen_ports['s3_listen_port']
|
||||
del port_mapping['nova-api-ec2']
|
||||
del port_mapping['nova-objectstore']
|
||||
|
||||
if cmp_os_rel < 'ocata':
|
||||
del listen_ports['placement_listen_port']
|
||||
del port_mapping['nova-placement-api']
|
||||
|
||||
# for haproxy.conf
|
||||
ctxt['service_ports'] = port_mapping
|
||||
# for nova.conf
|
||||
|
|
|
@ -150,6 +150,7 @@ class NovaComputeContextTests(CharmTestCase):
|
|||
mock_get_address_in_network, mock_kv, mock_https,
|
||||
mock_unit_get, mock_network_manager, mock_mkdir,
|
||||
mock_get_relation_ip, mock_config):
|
||||
self.os_release.return_value = 'ocata'
|
||||
mock_config.side_effect = self.test_config.get
|
||||
mock_https.return_value = False
|
||||
mock_unit_get.return_value = '127.0.0.1'
|
||||
|
@ -157,6 +158,21 @@ class NovaComputeContextTests(CharmTestCase):
|
|||
ctxt = context.HAProxyContext()()
|
||||
self.assertEqual(ctxt['service_ports']['nova-api-os-compute'],
|
||||
[8774, 8764])
|
||||
self.assertTrue('nova-placement-api' in ctxt['service_ports'])
|
||||
self.assertTrue('nova-api-ec2' not in ctxt['service_ports'])
|
||||
self.assertTrue('nova-objectstore' not in ctxt['service_ports'])
|
||||
|
||||
self.os_release.return_value = 'icehouse'
|
||||
ctxt = context.HAProxyContext()()
|
||||
self.assertTrue('nova-placement-api' not in ctxt['service_ports'])
|
||||
self.assertTrue('nova-api-ec2' in ctxt['service_ports'])
|
||||
self.assertTrue('nova-objectstore' in ctxt['service_ports'])
|
||||
|
||||
self.os_release.return_value = 'kilo'
|
||||
ctxt = context.HAProxyContext()()
|
||||
self.assertTrue('nova-placement-api' not in ctxt['service_ports'])
|
||||
self.assertTrue('nova-api-ec2' not in ctxt['service_ports'])
|
||||
self.assertTrue('nova-objectstore' not in ctxt['service_ports'])
|
||||
|
||||
@mock.patch('charmhelpers.contrib.openstack.context.config')
|
||||
def test_console_ssl_disabled(self, mock_config):
|
||||
|
|
Loading…
Reference in New Issue