Default to distro, use grizzly if on precise by default

This commit is contained in:
James Page
2013-10-20 17:12:40 -07:00
parent 05fe2dd3e7
commit 6ba2f86ee5
3 changed files with 25 additions and 6 deletions

View File

@@ -8,7 +8,7 @@ options:
type: boolean type: boolean
description: Enable verbose logging description: Enable verbose logging
openstack-origin: openstack-origin:
default: cloud:precise-grizzly default: distro
type: string type: string
description: | description: |
Repository from which to install. May be one of the following: Repository from which to install. May be one of the following:

View File

@@ -15,7 +15,8 @@ from charmhelpers.core.hookenv import (
log log
) )
from charmhelpers.core.host import ( from charmhelpers.core.host import (
restart_on_change restart_on_change,
lsb_release
) )
from charmhelpers.contrib.openstack.utils import ( from charmhelpers.contrib.openstack.utils import (
configure_installation_source, configure_installation_source,
@@ -39,7 +40,11 @@ CONFIGS = register_configs()
@hooks.hook() @hooks.hook()
def install(): def install():
configure_installation_source(config('openstack-origin')) origin = config('openstack-origin')
if (lsb_release()['DISTRIB_CODENAME'] == 'precise'
and origin == 'distro'):
origin = 'cloud:precise-grizzly'
configure_installation_source(origin)
apt_update(fatal=True) apt_update(fatal=True)
apt_install(filter_installed_packages(CEILOMETER_PACKAGES), apt_install(filter_installed_packages(CEILOMETER_PACKAGES),
fatal=True) fatal=True)

View File

@@ -26,7 +26,8 @@ TO_PATCH = [
'filter_installed_packages', 'filter_installed_packages',
'CONFIGS', 'CONFIGS',
'unit_get', 'unit_get',
'get_ceilometer_context' 'get_ceilometer_context',
'lsb_release'
] ]
@@ -35,6 +36,7 @@ class CeilometerHooksTest(CharmTestCase):
def setUp(self): def setUp(self):
super(CeilometerHooksTest, self).setUp(hooks, TO_PATCH) super(CeilometerHooksTest, self).setUp(hooks, TO_PATCH)
self.config.side_effect = self.test_config.get self.config.side_effect = self.test_config.get
self.lsb_release.return_value = {'DISTRIB_CODENAME': 'precise'}
def test_configure_source(self): def test_configure_source(self):
self.test_config.set('openstack-origin', 'cloud:precise-havana') self.test_config.set('openstack-origin', 'cloud:precise-havana')
@@ -42,10 +44,22 @@ class CeilometerHooksTest(CharmTestCase):
self.configure_installation_source.\ self.configure_installation_source.\
assert_called_with('cloud:precise-havana') assert_called_with('cloud:precise-havana')
def test_install_hook(self): def test_install_hook_precise(self):
self.filter_installed_packages.return_value = hooks.CEILOMETER_PACKAGES self.filter_installed_packages.return_value = hooks.CEILOMETER_PACKAGES
hooks.hooks.execute(['hooks/install']) hooks.hooks.execute(['hooks/install'])
self.assertTrue(self.configure_installation_source.called) self.configure_installation_source.\
assert_called_with('cloud:precise-grizzly')
self.open_port.assert_called_with(hooks.CEILOMETER_PORT)
self.apt_update.assert_called_with(fatal=True)
self.apt_install.assert_called_with(hooks.CEILOMETER_PACKAGES,
fatal=True)
def test_install_hook_distro(self):
self.lsb_release.return_value = {'DISTRIB_CODENAME': 'saucy'}
self.filter_installed_packages.return_value = hooks.CEILOMETER_PACKAGES
hooks.hooks.execute(['hooks/install'])
self.configure_installation_source.\
assert_called_with('distro')
self.open_port.assert_called_with(hooks.CEILOMETER_PORT) self.open_port.assert_called_with(hooks.CEILOMETER_PORT)
self.apt_update.assert_called_with(fatal=True) self.apt_update.assert_called_with(fatal=True)
self.apt_install.assert_called_with(hooks.CEILOMETER_PACKAGES, self.apt_install.assert_called_with(hooks.CEILOMETER_PACKAGES,