
Check if VIP or dns-ha is set to determine if the unit expects to be in HA. This is less racey that just checking for the ha relation. Wait until clustered to run the client relation hooks. This fixes bugs where client charms receive the private-address rather than the VIP on initial client relations. Charmhelper sync. Change-Id: I48b15113360ef892e38235ec4518173ec78ad143 Partial-bug: #1661392
26 lines
982 B
Python
26 lines
982 B
Python
import platform
|
|
|
|
|
|
def get_platform():
|
|
"""Return the current OS platform.
|
|
|
|
For example: if current os platform is Ubuntu then a string "ubuntu"
|
|
will be returned (which is the name of the module).
|
|
This string is used to decide which platform module should be imported.
|
|
"""
|
|
# linux_distribution is deprecated and will be removed in Python 3.7
|
|
# Warings *not* disabled, as we certainly need to fix this.
|
|
tuple_platform = platform.linux_distribution()
|
|
current_platform = tuple_platform[0]
|
|
if "Ubuntu" in current_platform:
|
|
return "ubuntu"
|
|
elif "CentOS" in current_platform:
|
|
return "centos"
|
|
elif "debian" in current_platform:
|
|
# Stock Python does not detect Ubuntu and instead returns debian.
|
|
# Or at least it does in some build environments like Travis CI
|
|
return "ubuntu"
|
|
else:
|
|
raise RuntimeError("This module is not supported on {}."
|
|
.format(current_platform))
|