Sync libraries & common files prior to freeze
* charm-helpers sync for classic charms * charms.ceph sync for ceph charms * rebuild for reactive charms * sync tox.ini files as needed * sync requirements.txt files to sync to standard Change-Id: Ie7640826be5426157c57877348cef43ab6067543
This commit is contained in:
parent
c1b2ce0f0a
commit
1beb8444b4
@ -25,8 +25,10 @@ def _add_path(path):
|
|||||||
if path not in sys.path:
|
if path not in sys.path:
|
||||||
sys.path.insert(1, path)
|
sys.path.insert(1, path)
|
||||||
|
|
||||||
|
|
||||||
_add_path(_root)
|
_add_path(_root)
|
||||||
|
|
||||||
|
|
||||||
import charmhelpers.core.hookenv as hookenv
|
import charmhelpers.core.hookenv as hookenv
|
||||||
import hooks.nova_cc_utils as utils
|
import hooks.nova_cc_utils as utils
|
||||||
import hooks.nova_cc_hooks as ncc_hooks
|
import hooks.nova_cc_hooks as ncc_hooks
|
||||||
|
@ -25,8 +25,10 @@ def _add_path(path):
|
|||||||
if path not in sys.path:
|
if path not in sys.path:
|
||||||
sys.path.insert(1, path)
|
sys.path.insert(1, path)
|
||||||
|
|
||||||
|
|
||||||
_add_path(_root)
|
_add_path(_root)
|
||||||
|
|
||||||
|
|
||||||
import charmhelpers.contrib.openstack.utils as ch_utils
|
import charmhelpers.contrib.openstack.utils as ch_utils
|
||||||
import charmhelpers.core.hookenv as hookenv
|
import charmhelpers.core.hookenv as hookenv
|
||||||
import hooks.nova_cc_utils as utils
|
import hooks.nova_cc_utils as utils
|
||||||
@ -59,6 +61,7 @@ def openstack_upgrade():
|
|||||||
hooks.db_joined(relation_id=r_id)
|
hooks.db_joined(relation_id=r_id)
|
||||||
hooks.config_changed()
|
hooks.config_changed()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
hooks.resolve_CONFIGS()
|
hooks.resolve_CONFIGS()
|
||||||
openstack_upgrade()
|
openstack_upgrade()
|
||||||
|
@ -29,6 +29,8 @@ from subprocess import check_call, CalledProcessError
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
|
|
||||||
|
import charmhelpers.contrib.storage.linux.ceph as ch_ceph
|
||||||
|
|
||||||
from charmhelpers.contrib.openstack.audits.openstack_security_guide import (
|
from charmhelpers.contrib.openstack.audits.openstack_security_guide import (
|
||||||
_config_ini as config_ini
|
_config_ini as config_ini
|
||||||
)
|
)
|
||||||
@ -56,6 +58,7 @@ from charmhelpers.core.hookenv import (
|
|||||||
status_set,
|
status_set,
|
||||||
network_get_primary_address,
|
network_get_primary_address,
|
||||||
WARNING,
|
WARNING,
|
||||||
|
service_name,
|
||||||
)
|
)
|
||||||
|
|
||||||
from charmhelpers.core.sysctl import create as sysctl_create
|
from charmhelpers.core.sysctl import create as sysctl_create
|
||||||
@ -808,6 +811,12 @@ class CephContext(OSContextGenerator):
|
|||||||
|
|
||||||
ctxt['mon_hosts'] = ' '.join(sorted(mon_hosts))
|
ctxt['mon_hosts'] = ' '.join(sorted(mon_hosts))
|
||||||
|
|
||||||
|
if config('pool-type') and config('pool-type') == 'erasure-coded':
|
||||||
|
base_pool_name = config('rbd-pool') or config('rbd-pool-name')
|
||||||
|
if not base_pool_name:
|
||||||
|
base_pool_name = service_name()
|
||||||
|
ctxt['rbd_default_data_pool'] = base_pool_name
|
||||||
|
|
||||||
if not os.path.isdir('/etc/ceph'):
|
if not os.path.isdir('/etc/ceph'):
|
||||||
os.mkdir('/etc/ceph')
|
os.mkdir('/etc/ceph')
|
||||||
|
|
||||||
@ -3175,3 +3184,90 @@ class SRIOVContext(OSContextGenerator):
|
|||||||
:rtype: Dict[str,int]
|
:rtype: Dict[str,int]
|
||||||
"""
|
"""
|
||||||
return self._map
|
return self._map
|
||||||
|
|
||||||
|
|
||||||
|
class CephBlueStoreCompressionContext(OSContextGenerator):
|
||||||
|
"""Ceph BlueStore compression options."""
|
||||||
|
|
||||||
|
# Tuple with Tuples that map configuration option name to CephBrokerRq op
|
||||||
|
# property name
|
||||||
|
options = (
|
||||||
|
('bluestore-compression-algorithm',
|
||||||
|
'compression-algorithm'),
|
||||||
|
('bluestore-compression-mode',
|
||||||
|
'compression-mode'),
|
||||||
|
('bluestore-compression-required-ratio',
|
||||||
|
'compression-required-ratio'),
|
||||||
|
('bluestore-compression-min-blob-size',
|
||||||
|
'compression-min-blob-size'),
|
||||||
|
('bluestore-compression-min-blob-size-hdd',
|
||||||
|
'compression-min-blob-size-hdd'),
|
||||||
|
('bluestore-compression-min-blob-size-ssd',
|
||||||
|
'compression-min-blob-size-ssd'),
|
||||||
|
('bluestore-compression-max-blob-size',
|
||||||
|
'compression-max-blob-size'),
|
||||||
|
('bluestore-compression-max-blob-size-hdd',
|
||||||
|
'compression-max-blob-size-hdd'),
|
||||||
|
('bluestore-compression-max-blob-size-ssd',
|
||||||
|
'compression-max-blob-size-ssd'),
|
||||||
|
)
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
"""Initialize context by loading values from charm config.
|
||||||
|
|
||||||
|
We keep two maps, one suitable for use with CephBrokerRq's and one
|
||||||
|
suitable for template generation.
|
||||||
|
"""
|
||||||
|
charm_config = config()
|
||||||
|
|
||||||
|
# CephBrokerRq op map
|
||||||
|
self.op = {}
|
||||||
|
# Context exposed for template generation
|
||||||
|
self.ctxt = {}
|
||||||
|
for config_key, op_key in self.options:
|
||||||
|
value = charm_config.get(config_key)
|
||||||
|
self.ctxt.update({config_key.replace('-', '_'): value})
|
||||||
|
self.op.update({op_key: value})
|
||||||
|
|
||||||
|
def __call__(self):
|
||||||
|
"""Get context.
|
||||||
|
|
||||||
|
:returns: Context
|
||||||
|
:rtype: Dict[str,any]
|
||||||
|
"""
|
||||||
|
return self.ctxt
|
||||||
|
|
||||||
|
def get_op(self):
|
||||||
|
"""Get values for use in CephBrokerRq op.
|
||||||
|
|
||||||
|
:returns: Context values with CephBrokerRq op property name as key.
|
||||||
|
:rtype: Dict[str,any]
|
||||||
|
"""
|
||||||
|
return self.op
|
||||||
|
|
||||||
|
def get_kwargs(self):
|
||||||
|
"""Get values for use as keyword arguments.
|
||||||
|
|
||||||
|
:returns: Context values with key suitable for use as kwargs to
|
||||||
|
CephBrokerRq add_op_create_*_pool methods.
|
||||||
|
:rtype: Dict[str,any]
|
||||||
|
"""
|
||||||
|
return {
|
||||||
|
k.replace('-', '_'): v
|
||||||
|
for k, v in self.op.items()
|
||||||
|
}
|
||||||
|
|
||||||
|
def validate(self):
|
||||||
|
"""Validate options.
|
||||||
|
|
||||||
|
:raises: AssertionError
|
||||||
|
"""
|
||||||
|
# We slip in a dummy name on class instantiation to allow validation of
|
||||||
|
# the other options. It will not affect further use.
|
||||||
|
#
|
||||||
|
# NOTE: once we retire Python 3.5 we can fold this into a in-line
|
||||||
|
# dictionary comprehension in the call to the initializer.
|
||||||
|
dummy_op = {'name': 'dummy-name'}
|
||||||
|
dummy_op.update(self.op)
|
||||||
|
pool = ch_ceph.BasePool('dummy-service', op=dummy_op)
|
||||||
|
pool.validate()
|
||||||
|
@ -22,3 +22,7 @@ rbd default features = {{ rbd_features }}
|
|||||||
{{ key }} = {{ value }}
|
{{ key }} = {{ value }}
|
||||||
{% endfor -%}
|
{% endfor -%}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
|
{% if rbd_default_data_pool -%}
|
||||||
|
rbd default data pool = {{ rbd_default_data_pool }}
|
||||||
|
{% endif %}
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
{# section header omitted as options can belong to multiple sections #}
|
||||||
|
{% if bluestore_compression_algorithm -%}
|
||||||
|
bluestore compression algorithm = {{ bluestore_compression_algorithm }}
|
||||||
|
{% endif -%}
|
||||||
|
{% if bluestore_compression_mode -%}
|
||||||
|
bluestore compression mode = {{ bluestore_compression_mode }}
|
||||||
|
{% endif -%}
|
||||||
|
{% if bluestore_compression_required_ratio -%}
|
||||||
|
bluestore compression required ratio = {{ bluestore_compression_required_ratio }}
|
||||||
|
{% endif -%}
|
||||||
|
{% if bluestore_compression_min_blob_size -%}
|
||||||
|
bluestore compression min blob size = {{ bluestore_compression_min_blob_size }}
|
||||||
|
{% endif -%}
|
||||||
|
{% if bluestore_compression_min_blob_size_hdd -%}
|
||||||
|
bluestore compression min blob size hdd = {{ bluestore_compression_min_blob_size_hdd }}
|
||||||
|
{% endif -%}
|
||||||
|
{% if bluestore_compression_min_blob_size_ssd -%}
|
||||||
|
bluestore compression min blob size ssd = {{ bluestore_compression_min_blob_size_ssd }}
|
||||||
|
{% endif -%}
|
||||||
|
{% if bluestore_compression_max_blob_size -%}
|
||||||
|
bluestore compression max blob size = {{ bluestore_compression_max_blob_size }}
|
||||||
|
{% endif -%}
|
||||||
|
{% if bluestore_compression_max_blob_size_hdd -%}
|
||||||
|
bluestore compression max blob size hdd = {{ bluestore_compression_max_blob_size_hdd }}
|
||||||
|
{% endif -%}
|
||||||
|
{% if bluestore_compression_max_blob_size_ssd -%}
|
||||||
|
bluestore compression max blob size ssd = {{ bluestore_compression_max_blob_size_ssd }}
|
||||||
|
{% endif -%}
|
File diff suppressed because it is too large
Load Diff
@ -1310,7 +1310,7 @@ def amqp_cell_changed(relation_id=None):
|
|||||||
@hooks.hook('nova-cell-api-relation-changed')
|
@hooks.hook('nova-cell-api-relation-changed')
|
||||||
def nova_cell_api_relation_changed(rid=None, unit=None):
|
def nova_cell_api_relation_changed(rid=None, unit=None):
|
||||||
data = hookenv.relation_get(rid=rid, unit=unit)
|
data = hookenv.relation_get(rid=rid, unit=unit)
|
||||||
ch_neutron.log("Data: {}".format(data, level=hookenv.DEBUG))
|
ch_neutron.log("Data: {}".format(data), level=hookenv.DEBUG)
|
||||||
if not data.get('cell-name'):
|
if not data.get('cell-name'):
|
||||||
return
|
return
|
||||||
cell_updated = ncc_utils.update_child_cell(
|
cell_updated = ncc_utils.update_child_cell(
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
# requirements. They are intertwined. Also, Zaza itself should specify
|
# requirements. They are intertwined. Also, Zaza itself should specify
|
||||||
# all of its own requirements and if it doesn't, fix it there.
|
# all of its own requirements and if it doesn't, fix it there.
|
||||||
#
|
#
|
||||||
|
setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85
|
||||||
pbr>=1.8.0,<1.9.0
|
pbr>=1.8.0,<1.9.0
|
||||||
simplejson>=2.2.0
|
simplejson>=2.2.0
|
||||||
netifaces>=0.10.4
|
netifaces>=0.10.4
|
||||||
|
@ -7,13 +7,13 @@
|
|||||||
# requirements. They are intertwined. Also, Zaza itself should specify
|
# requirements. They are intertwined. Also, Zaza itself should specify
|
||||||
# all of its own requirements and if it doesn't, fix it there.
|
# all of its own requirements and if it doesn't, fix it there.
|
||||||
#
|
#
|
||||||
|
setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85
|
||||||
charm-tools>=2.4.4
|
charm-tools>=2.4.4
|
||||||
requests>=2.18.4
|
requests>=2.18.4
|
||||||
mock>=1.2
|
mock>=1.2
|
||||||
flake8>=2.2.4,<=2.4.1
|
flake8>=2.2.4
|
||||||
stestr>=2.2.0
|
stestr>=2.2.0
|
||||||
coverage>=4.5.2
|
coverage>=4.5.2
|
||||||
pyudev # for ceph-* charm unit tests (need to fix the ceph-* charm unit tests/mocking)
|
pyudev # for ceph-* charm unit tests (need to fix the ceph-* charm unit tests/mocking)
|
||||||
juju!=2.8.3 # this version causes spurious JujuAPIError's
|
|
||||||
git+https://github.com/openstack-charmers/zaza.git#egg=zaza;python_version>='3.0'
|
git+https://github.com/openstack-charmers/zaza.git#egg=zaza;python_version>='3.0'
|
||||||
git+https://github.com/openstack-charmers/zaza-openstack-tests.git#egg=zaza.openstack
|
git+https://github.com/openstack-charmers/zaza-openstack-tests.git#egg=zaza.openstack
|
||||||
|
2
tox.ini
2
tox.ini
@ -116,5 +116,5 @@ commands =
|
|||||||
functest-run-suite --keep-model --bundle {posargs}
|
functest-run-suite --keep-model --bundle {posargs}
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
ignore = E402,E226
|
ignore = E402,E226,W503,W504
|
||||||
exclude = */charmhelpers
|
exclude = */charmhelpers
|
||||||
|
@ -30,4 +30,5 @@ def _add_path(path):
|
|||||||
if path not in sys.path:
|
if path not in sys.path:
|
||||||
sys.path.insert(1, path)
|
sys.path.insert(1, path)
|
||||||
|
|
||||||
|
|
||||||
_add_path(_root)
|
_add_path(_root)
|
||||||
|
Loading…
Reference in New Issue
Block a user