Sync charm-helpers.
This commit is contained in:
parent
8ee298fe1e
commit
143a6e0ae8
@ -0,0 +1,22 @@
|
|||||||
|
# Bootstrap charm-helpers, installing its dependencies if necessary using
|
||||||
|
# only standard libraries.
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
try:
|
||||||
|
import six # flake8: noqa
|
||||||
|
except ImportError:
|
||||||
|
if sys.version_info.major == 2:
|
||||||
|
subprocess.check_call(['apt-get', 'install', '-y', 'python-six'])
|
||||||
|
else:
|
||||||
|
subprocess.check_call(['apt-get', 'install', '-y', 'python3-six'])
|
||||||
|
import six # flake8: noqa
|
||||||
|
|
||||||
|
try:
|
||||||
|
import yaml # flake8: noqa
|
||||||
|
except ImportError:
|
||||||
|
if sys.version_info.major == 2:
|
||||||
|
subprocess.check_call(['apt-get', 'install', '-y', 'python-yaml'])
|
||||||
|
else:
|
||||||
|
subprocess.check_call(['apt-get', 'install', '-y', 'python3-yaml'])
|
||||||
|
import yaml # flake8: noqa
|
BIN
hooks/charmhelpers/__init__.pyc
Normal file
BIN
hooks/charmhelpers/__init__.pyc
Normal file
Binary file not shown.
@ -395,21 +395,31 @@ def relations_of_type(reltype=None):
|
|||||||
return relation_data
|
return relation_data
|
||||||
|
|
||||||
|
|
||||||
|
@cached
|
||||||
|
def metadata():
|
||||||
|
"""Get the current charm metadata.yaml contents as a python object"""
|
||||||
|
with open(os.path.join(charm_dir(), 'metadata.yaml')) as md:
|
||||||
|
return yaml.safe_load(md)
|
||||||
|
|
||||||
|
|
||||||
@cached
|
@cached
|
||||||
def relation_types():
|
def relation_types():
|
||||||
"""Get a list of relation types supported by this charm"""
|
"""Get a list of relation types supported by this charm"""
|
||||||
charmdir = os.environ.get('CHARM_DIR', '')
|
|
||||||
mdf = open(os.path.join(charmdir, 'metadata.yaml'))
|
|
||||||
md = yaml.safe_load(mdf)
|
|
||||||
rel_types = []
|
rel_types = []
|
||||||
|
md = metadata()
|
||||||
for key in ('provides', 'requires', 'peers'):
|
for key in ('provides', 'requires', 'peers'):
|
||||||
section = md.get(key)
|
section = md.get(key)
|
||||||
if section:
|
if section:
|
||||||
rel_types.extend(section.keys())
|
rel_types.extend(section.keys())
|
||||||
mdf.close()
|
|
||||||
return rel_types
|
return rel_types
|
||||||
|
|
||||||
|
|
||||||
|
@cached
|
||||||
|
def charm_name():
|
||||||
|
"""Get the name of the current charm as is specified on metadata.yaml"""
|
||||||
|
return metadata().get('name')
|
||||||
|
|
||||||
|
|
||||||
@cached
|
@cached
|
||||||
def relations():
|
def relations():
|
||||||
"""Get a nested dictionary of relation data for all related units"""
|
"""Get a nested dictionary of relation data for all related units"""
|
||||||
|
Loading…
Reference in New Issue
Block a user