[beisner,james-page] Fixup support for PXC >= vivid

This commit is contained in:
James Page 2015-07-24 14:24:08 +01:00
commit 99c29b569b
3 changed files with 32 additions and 7 deletions

View File

@ -44,7 +44,7 @@ from charmhelpers.contrib.peerstorage import (
peer_retrieve_by_prefix,
)
from percona_utils import (
PACKAGES,
determine_packages,
MY_CNF,
setup_percona_repo,
get_host_ip,
@ -105,7 +105,7 @@ def install():
# Render base configuration (no cluster)
render_config()
apt_update(fatal=True)
apt_install(PACKAGES, fatal=True)
apt_install(determine_packages(), fatal=True)
configure_sstuser(config('sst-password'))

View File

@ -48,11 +48,6 @@ from MySQLdb import (
OperationalError
)
PACKAGES = [
'percona-xtradb-cluster-server-5.5',
'percona-xtradb-cluster-client-5.5',
]
KEY = "keys/repo.percona.com"
REPO = """deb http://repo.percona.com/apt {release} main
deb-src http://repo.percona.com/apt {release} main"""
@ -61,6 +56,22 @@ SEEDED_MARKER = "/var/lib/mysql/seeded"
HOSTS_FILE = '/etc/hosts'
def determine_packages():
if lsb_release()['DISTRIB_CODENAME'] > 'utopic':
# NOTE(beisner): pxc 5.6 client package is not available
# in Vivid, install mysql 5.6 client instead per
# https://launchpad.net/bugs/1476845.
return [
'percona-xtradb-cluster-server-5.6',
'mysql-client-5.6'
]
else:
return [
'percona-xtradb-cluster-server-5.5',
'percona-xtradb-cluster-client-5.5',
]
def seeded():
''' Check whether service unit is already seeded '''
return os.path.exists(SEEDED_MARKER)

View File

@ -145,3 +145,17 @@ class UtilsTests(unittest.TestCase):
mock_related_units.return_value = ['test/0', 'test/1']
self.assertTrue(percona_utils.is_sufficient_peers())
@mock.patch.object(percona_utils, 'lsb_release')
def test_packages_gt_utopic(self, mock_lsb_release):
mock_lsb_release.return_value = {'DISTRIB_CODENAME': 'vivid'}
self.assertEqual(percona_utils.determine_packages(),
['percona-xtradb-cluster-server-5.6',
'mysql-client-5.6'])
@mock.patch.object(percona_utils, 'lsb_release')
def test_packages_le_utopic(self, mock_lsb_release):
mock_lsb_release.return_value = {'DISTRIB_CODENAME': 'utopic'}
self.assertEqual(percona_utils.determine_packages(),
['percona-xtradb-cluster-server-5.5',
'percona-xtradb-cluster-client-5.5'])