From eb913cfb5d85da92b260891aef68b09e6825887e Mon Sep 17 00:00:00 2001 From: Alex Kavanagh Date: Fri, 25 Mar 2022 16:42:38 +0000 Subject: [PATCH] Updates to enable jammy and finalise charmcraft builds - Add 22.04 to charmcraft.yaml - Update metadata to include jammy - Remove impish from metadata - Update osci.yaml to include py3.10 default job - Modify tox.ini to remove py35,py36,py37 tox target and add py310 target. - ensure that the openstack-origin is yoga - Fix mocking on unit tests for install.real hook Change-Id: I7bf692965341c0cc1c84c7d3c77cce63a6cb6cbc --- .zuul.yaml | 2 +- charmcraft.yaml | 16 ++++++++++++---- config.yaml | 2 +- metadata.yaml | 2 +- osci.yaml | 5 +++-- requirements.txt | 10 ++++++++++ tox.ini | 17 ++++++++--------- unit_tests/test_horizon_hooks.py | 12 ++++++++++++ 8 files changed, 48 insertions(+), 18 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 0eed1965..7ffc71cb 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,4 +1,4 @@ - project: templates: - - openstack-python3-ussuri-jobs + - openstack-python3-charm-yoga-jobs - openstack-cover-jobs diff --git a/charmcraft.yaml b/charmcraft.yaml index 11d5f7cd..eb74c308 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -22,7 +22,15 @@ parts: - README.md bases: - - name: ubuntu - channel: "20.04" - architectures: - - amd64 + - build-on: + - name: ubuntu + channel: "20.04" + architectures: + - amd64 + run-on: + - name: ubuntu + channel: "20.04" + architectures: [amd64, s390x, ppc64el, arm64] + - name: ubuntu + channel: "22.04" + architectures: [amd64, s390x, ppc64el, arm64] diff --git a/config.yaml b/config.yaml index aaecbe1f..93d94299 100644 --- a/config.yaml +++ b/config.yaml @@ -10,7 +10,7 @@ options: Setting this to True will allow supporting services to log to syslog. openstack-origin: type: string - default: distro + default: yoga description: | Repository from which to install. May be one of the following: distro (default), ppa:somecustom/ppa, a deb url sources entry, diff --git a/metadata.yaml b/metadata.yaml index 7301bf5e..b1fe5d17 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -11,7 +11,7 @@ extra-bindings: public: # Only used to allow specifying a hostname for DNS-HA. series: - focal -- impish +- jammy provides: nrpe-external-master: interface: nrpe-external-master diff --git a/osci.yaml b/osci.yaml index d5816413..6864313d 100644 --- a/osci.yaml +++ b/osci.yaml @@ -1,7 +1,7 @@ - project: templates: - charm-unit-jobs-py38 - - charm-unit-jobs-py39 + - charm-unit-jobs-py310 - charm-xena-functional-jobs - charm-yoga-functional-jobs check: @@ -21,7 +21,8 @@ dependencies: - osci-lint - tox-py38 - - tox-py39 + - name: tox-py310 + soft: true - charm-build vars: tox_extra_args: vault:jammy-vault dashboard:jammy-yoga-cmr-vault diff --git a/requirements.txt b/requirements.txt index ead6e89a..196ff38f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,6 +11,16 @@ pbr==5.6.0 simplejson>=2.2.0 netifaces>=0.10.4 +# Build requirements +cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35. + +# NOTE: newer versions of cryptography require a Rust compiler to build, +# see +# * https://github.com/openstack-charmers/zaza/issues/421 +# * https://mail.python.org/pipermail/cryptography-dev/2021-January/001003.html +# +cryptography<3.4 + # Strange import error with newer netaddr: netaddr>0.7.16,<0.8.0 diff --git a/tox.ini b/tox.ini index 81fd2492..c41077de 100644 --- a/tox.ini +++ b/tox.ini @@ -51,8 +51,8 @@ commands = charmcraft -v build {toxinidir}/rename.sh -[testenv:py35] -basepython = python3.5 +[testenv:py3] +basepython = python3 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt @@ -60,26 +60,25 @@ deps = -r{toxinidir}/requirements.txt basepython = python3.6 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt - -[testenv:py37] -basepython = python3.7 -deps = -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt +commands = stestr run --slowest {posargs} [testenv:py38] basepython = python3.8 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt +commands = stestr run --slowest {posargs} [testenv:py39] basepython = python3.9 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt +commands = stestr run --slowest {posargs} -[testenv:py3] -basepython = python3 +[testenv:py310] +basepython = python3.10 deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt +commands = stestr run --slowest {posargs} [testenv:pep8] basepython = python3 diff --git a/unit_tests/test_horizon_hooks.py b/unit_tests/test_horizon_hooks.py index 2ab5bb36..09795d35 100644 --- a/unit_tests/test_horizon_hooks.py +++ b/unit_tests/test_horizon_hooks.py @@ -111,6 +111,12 @@ class TestHorizonHooks(CharmTestCase): _determine_packages.return_value = [] self.filter_installed_packages.return_value = ['foo', 'bar'] self.os_release.return_value = 'icehouse' + + def config_side_effect(key): + return { + 'openstack-origin': 'distro', + }[key] + self.config.side_effect = config_side_effect self._call_hook('install.real') self.configure_installation_source.assert_called_with('distro') self.apt_update.assert_called_with(fatal=True) @@ -122,6 +128,12 @@ class TestHorizonHooks(CharmTestCase): self.filter_installed_packages.return_value = ['foo', 'bar'] self.os_release.return_value = 'icehouse' self.lsb_release.return_value = {'DISTRIB_CODENAME': 'precise'} + + def config_side_effect(key): + return { + 'openstack-origin': 'distro', + }[key] + self.config.side_effect = config_side_effect self._call_hook('install.real') self.configure_installation_source.assert_called_with('distro') self.apt_update.assert_called_with(fatal=True)