From 2616e9fcdb82bc0357bdf7c80b848b26047fe151 Mon Sep 17 00:00:00 2001
From: Alex Kavanagh <alex.kavanagh@canonical.com>
Date: Fri, 25 Mar 2022 16:57:29 +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

Change-Id: Ib55bfdbdb00b327c3907255a6cf5a5ca1a386ffa
---
 .gitignore                        |  1 +
 .zuul.yaml                        |  2 +-
 charmcraft.yaml                   | 16 ++++++++++++----
 osci.yaml                         |  7 ++-----
 requirements.txt                  |  9 ++++++++-
 src/metadata.yaml                 |  2 +-
 src/tests/bundles/focal-xena.yaml |  3 ++-
 tox.ini                           | 15 +++++----------
 8 files changed, 32 insertions(+), 23 deletions(-)

diff --git a/.gitignore b/.gitignore
index 41218f1..498d8bf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ interfaces
 *__pycache__*
 *.pyc
 *.swp
+*.charm
diff --git a/.zuul.yaml b/.zuul.yaml
index b3037e9..5b72f5a 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -1,5 +1,5 @@
 - project:
     templates:
       - python35-charm-jobs
-      - openstack-python3-ussuri-jobs
+      - openstack-python3-charm-yoga-jobs
       - openstack-cover-jobs
diff --git a/charmcraft.yaml b/charmcraft.yaml
index 4968216..c9a0ed7 100644
--- a/charmcraft.yaml
+++ b/charmcraft.yaml
@@ -19,7 +19,15 @@ parts:
       cp -r $CHARMCRAFT_STAGE/* .
 
 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/osci.yaml b/osci.yaml
index 2c0d22d..8d616ac 100644
--- a/osci.yaml
+++ b/osci.yaml
@@ -1,16 +1,13 @@
 - project:
     templates:
       - charm-unit-jobs-py38
-      - charm-unit-jobs-py39
+      - charm-unit-jobs-py310
       - charm-xena-functional-jobs
       - charm-yoga-functional-jobs
     check:
       jobs:
         - focal-xena
-        - focal-yoga:
-            voting: false
-        - impish-xena:
-            voting: false
+        - focal-yoga
         - jammy-yoga:
             voting: false
     vars:
diff --git a/requirements.txt b/requirements.txt
index a68620f..7755b95 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,9 +8,16 @@
 # requirements.txt
 setuptools<50.0.0  # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85
 
+# 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
+
 # Build requirements
 cffi==1.14.6; python_version < '3.6'  # cffi 1.15.0 drops support for py35.
-charm-tools==2.8.3
+git+https://github.com/juju/charm-tools#egg=charm-tools
 
 simplejson
 
diff --git a/src/metadata.yaml b/src/metadata.yaml
index febed29..c353009 100644
--- a/src/metadata.yaml
+++ b/src/metadata.yaml
@@ -12,7 +12,7 @@ tags:
   - misc
 series:
   - focal
-  - impish
+  - jammy
 subordinate: true
 provides:
   storage-backend:
diff --git a/src/tests/bundles/focal-xena.yaml b/src/tests/bundles/focal-xena.yaml
index 9a1c035..f797169 100644
--- a/src/tests/bundles/focal-xena.yaml
+++ b/src/tests/bundles/focal-xena.yaml
@@ -2,7 +2,8 @@ series: focal
 local_overlay_enabled: False
 
 variables:
-  openstack-origin: &openstack-origin cloud:focal-xena
+  # Use proposed until https://pad.lv/1948507 is fix released
+  openstack-origin: &openstack-origin cloud:focal-xena/proposed
 comment:
 - 'machines section to decide order of deployment. database sooner = faster'
 machines:
diff --git a/tox.ini b/tox.ini
index 2d60b8a..e22fe48 100644
--- a/tox.ini
+++ b/tox.ini
@@ -68,21 +68,11 @@ basepython = python3
 deps = -r{toxinidir}/test-requirements.txt
 commands = stestr run --slowest {posargs}
 
-[testenv:py35]
-basepython = python3.5
-deps = -r{toxinidir}/test-requirements.txt
-commands = stestr run --slowest {posargs}
-
 [testenv:py36]
 basepython = python3.6
 deps = -r{toxinidir}/test-requirements.txt
 commands = stestr run --slowest {posargs}
 
-[testenv:py37]
-basepython = python3.7
-deps = -r{toxinidir}/test-requirements.txt
-commands = stestr run --slowest {posargs}
-
 [testenv:py38]
 basepython = python3.8
 deps = -r{toxinidir}/test-requirements.txt
@@ -93,6 +83,11 @@ basepython = python3.9
 deps = -r{toxinidir}/test-requirements.txt
 commands = stestr run --slowest {posargs}
 
+[testenv:py310]
+basepython = python3.10
+deps = -r{toxinidir}/test-requirements.txt
+commands = stestr run --slowest {posargs}
+
 [testenv:pep8]
 basepython = python3
 deps = flake8==3.9.2