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
This commit is contained in:
Alex Kavanagh 2022-03-25 16:42:38 +00:00
parent 1887807f8f
commit eb913cfb5d
8 changed files with 48 additions and 18 deletions

View File

@ -1,4 +1,4 @@
- project: - project:
templates: templates:
- openstack-python3-ussuri-jobs - openstack-python3-charm-yoga-jobs
- openstack-cover-jobs - openstack-cover-jobs

View File

@ -22,7 +22,15 @@ parts:
- README.md - README.md
bases: bases:
- name: ubuntu - build-on:
channel: "20.04" - name: ubuntu
architectures: channel: "20.04"
- amd64 architectures:
- amd64
run-on:
- name: ubuntu
channel: "20.04"
architectures: [amd64, s390x, ppc64el, arm64]
- name: ubuntu
channel: "22.04"
architectures: [amd64, s390x, ppc64el, arm64]

View File

@ -10,7 +10,7 @@ options:
Setting this to True will allow supporting services to log to syslog. Setting this to True will allow supporting services to log to syslog.
openstack-origin: openstack-origin:
type: string type: string
default: distro default: yoga
description: | description: |
Repository from which to install. May be one of the following: Repository from which to install. May be one of the following:
distro (default), ppa:somecustom/ppa, a deb url sources entry, distro (default), ppa:somecustom/ppa, a deb url sources entry,

View File

@ -11,7 +11,7 @@ extra-bindings:
public: # Only used to allow specifying a hostname for DNS-HA. public: # Only used to allow specifying a hostname for DNS-HA.
series: series:
- focal - focal
- impish - jammy
provides: provides:
nrpe-external-master: nrpe-external-master:
interface: nrpe-external-master interface: nrpe-external-master

View File

@ -1,7 +1,7 @@
- project: - project:
templates: templates:
- charm-unit-jobs-py38 - charm-unit-jobs-py38
- charm-unit-jobs-py39 - charm-unit-jobs-py310
- charm-xena-functional-jobs - charm-xena-functional-jobs
- charm-yoga-functional-jobs - charm-yoga-functional-jobs
check: check:
@ -21,7 +21,8 @@
dependencies: dependencies:
- osci-lint - osci-lint
- tox-py38 - tox-py38
- tox-py39 - name: tox-py310
soft: true
- charm-build - charm-build
vars: vars:
tox_extra_args: vault:jammy-vault dashboard:jammy-yoga-cmr-vault tox_extra_args: vault:jammy-vault dashboard:jammy-yoga-cmr-vault

View File

@ -11,6 +11,16 @@ pbr==5.6.0
simplejson>=2.2.0 simplejson>=2.2.0
netifaces>=0.10.4 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: # Strange import error with newer netaddr:
netaddr>0.7.16,<0.8.0 netaddr>0.7.16,<0.8.0

17
tox.ini
View File

@ -51,8 +51,8 @@ commands =
charmcraft -v build charmcraft -v build
{toxinidir}/rename.sh {toxinidir}/rename.sh
[testenv:py35] [testenv:py3]
basepython = python3.5 basepython = python3
deps = -r{toxinidir}/requirements.txt deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
@ -60,26 +60,25 @@ deps = -r{toxinidir}/requirements.txt
basepython = python3.6 basepython = python3.6
deps = -r{toxinidir}/requirements.txt deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
[testenv:py37]
basepython = python3.7
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
[testenv:py38] [testenv:py38]
basepython = python3.8 basepython = python3.8
deps = -r{toxinidir}/requirements.txt deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
[testenv:py39] [testenv:py39]
basepython = python3.9 basepython = python3.9
deps = -r{toxinidir}/requirements.txt deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
[testenv:py3] [testenv:py310]
basepython = python3 basepython = python3.10
deps = -r{toxinidir}/requirements.txt deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
[testenv:pep8] [testenv:pep8]
basepython = python3 basepython = python3

View File

@ -111,6 +111,12 @@ class TestHorizonHooks(CharmTestCase):
_determine_packages.return_value = [] _determine_packages.return_value = []
self.filter_installed_packages.return_value = ['foo', 'bar'] self.filter_installed_packages.return_value = ['foo', 'bar']
self.os_release.return_value = 'icehouse' 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._call_hook('install.real')
self.configure_installation_source.assert_called_with('distro') self.configure_installation_source.assert_called_with('distro')
self.apt_update.assert_called_with(fatal=True) self.apt_update.assert_called_with(fatal=True)
@ -122,6 +128,12 @@ class TestHorizonHooks(CharmTestCase):
self.filter_installed_packages.return_value = ['foo', 'bar'] self.filter_installed_packages.return_value = ['foo', 'bar']
self.os_release.return_value = 'icehouse' self.os_release.return_value = 'icehouse'
self.lsb_release.return_value = {'DISTRIB_CODENAME': 'precise'} 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._call_hook('install.real')
self.configure_installation_source.assert_called_with('distro') self.configure_installation_source.assert_called_with('distro')
self.apt_update.assert_called_with(fatal=True) self.apt_update.assert_called_with(fatal=True)