[beisner,james-page] Fixup support for PXC >= vivid
This commit is contained in:
commit
99c29b569b
|
@ -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'))
|
||||
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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'])
|
||||
|
|
Loading…
Reference in New Issue