Stable changes for stable/2024.1 (caracal) branch

This patch converts stable/2024.1 into a stable maintenance branch. It:

- modifies .gitreview to point to stable/2024.1
- switches (test-)requirements*.txt -> (test-)requirements*.in
  for pip-compile usage.
- creates (test-)requirements-py*.txt from *.in using pip-compile for
  the relevant python version.
- Updates bundles to point to ceph/edge and 24.04/edge for ceph and
  OVN charms.
- Adds build.lock file to the reactive charms.
- Syncs charm-helpers for classic charms.
- Locks requirements.txt from requirements.in for ops machine charms.
- Locks charms.openstack, zaza, zaza-openstack-tests, charm-helpers to
  stable branches.

Change-Id: I4d7f456693bc27d75c2d16de0491d74f2d7509df
This commit is contained in:
Alex Kavanagh 2024-04-29 11:16:11 +01:00
parent 07da644b2b
commit 1e7b8659b4
20 changed files with 2319 additions and 55 deletions

View File

@ -2,3 +2,5 @@
host=review.opendev.org
port=29418
project=openstack/charm-glance.git
defaultbranch=stable/2024.1

View File

@ -1,4 +1,4 @@
repo: https://github.com/juju/charm-helpers
repo: https://github.com/juju/charm-helpers@stable/caracal
destination: charmhelpers
include:
- core

View File

@ -16,6 +16,7 @@ import glob
import re
import subprocess
import socket
import ssl
from functools import partial
@ -527,19 +528,56 @@ def get_hostname(address, fqdn=True):
return result.split('.')[0]
def port_has_listener(address, port):
class SSLPortCheckInfo(object):
def __init__(self, key, cert, ca_cert, check_hostname=False):
self.key = key
self.cert = cert
self.ca_cert = ca_cert
# NOTE: by default we do not check hostname since the port check is
# typically performed using 0.0.0.0 which will not match the
# certificate. Hence the default for this is False.
self.check_hostname = check_hostname
@property
def ssl_context(self):
context = ssl.create_default_context()
context.check_hostname = self.check_hostname
context.load_cert_chain(self.cert, self.key)
context.load_verify_locations(self.ca_cert)
return context
def port_has_listener(address, port, sslinfo=None):
"""
Returns True if the address:port is open and being listened to,
else False.
else False. By default uses netcat to check ports but if sslinfo is
provided will use an SSL connection instead.
@param address: an IP address or hostname
@param port: integer port
@param sslinfo: optional SSLPortCheckInfo object.
If provided, the check is performed using an ssl
connection.
Note calls 'zc' via a subprocess shell
"""
cmd = ['nc', '-z', address, str(port)]
result = subprocess.call(cmd)
return not (bool(result))
if not sslinfo:
cmd = ['nc', '-z', address, str(port)]
result = subprocess.call(cmd)
return not (bool(result))
try:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) as sock:
ssock = sslinfo.ssl_context.wrap_socket(sock,
server_hostname=address)
ssock.connect((address, port))
# this bit is crucial to ensure tls close_notify is sent
ssock.unwrap()
return True
except ConnectionRefusedError:
return False
def assert_charm_supports_ipv6():

View File

@ -202,6 +202,21 @@ class OSContextGenerator(object):
return self.related
class KeystoneAuditMiddleware(OSContextGenerator):
def __init__(self, service: str) -> None:
self.service_name = service
def __call__(self):
"""Return context dictionary containing configuration status of
audit-middleware and the charm service name.
"""
ctxt = {
'audit_middleware': config('audit-middleware') or False,
'service_name': self.service_name
}
return ctxt
class SharedDBContext(OSContextGenerator):
interfaces = ['shared-db']

View File

@ -0,0 +1,4 @@
{% if audit_middleware -%}
[audit_middleware_notifications]
driver = log
{% endif -%}

View File

@ -0,0 +1,6 @@
{% if audit_middleware and service_name -%}
[filter:audit]
paste.filter_factory = keystonemiddleware.audit:filter_factory
audit_map_file = /etc/{{ service_name }}/api_audit_map.conf
service_name = {{ service_name }}
{% endif -%}

View File

@ -1207,12 +1207,14 @@ def _ows_check_services_running(services, ports):
return ows_check_services_running(services, ports)
def ows_check_services_running(services, ports):
def ows_check_services_running(services, ports, ssl_check_info=None):
"""Check that the services that should be running are actually running
and that any ports specified are being listened to.
@param services: list of strings OR dictionary specifying services/ports
@param ports: list of ports
@param ssl_check_info: SSLPortCheckInfo object. If provided, port checks
will be done using an SSL connection.
@returns state, message: strings or None, None
"""
messages = []
@ -1228,7 +1230,7 @@ def ows_check_services_running(services, ports):
# also verify that the ports that should be open are open
# NB, that ServiceManager objects only OPTIONALLY have ports
map_not_open, ports_open = (
_check_listening_on_services_ports(services))
_check_listening_on_services_ports(services, ssl_check_info))
if not all(ports_open):
# find which service has missing ports. They are in service
# order which makes it a bit easier.
@ -1243,7 +1245,8 @@ def ows_check_services_running(services, ports):
if ports is not None:
# and we can also check ports which we don't know the service for
ports_open, ports_open_bools = _check_listening_on_ports_list(ports)
ports_open, ports_open_bools = \
_check_listening_on_ports_list(ports, ssl_check_info)
if not all(ports_open_bools):
messages.append(
"Ports which should be open, but are not: {}"
@ -1302,7 +1305,8 @@ def _check_running_services(services):
return list(zip(services, services_running)), services_running
def _check_listening_on_services_ports(services, test=False):
def _check_listening_on_services_ports(services, test=False,
ssl_check_info=None):
"""Check that the unit is actually listening (has the port open) on the
ports that the service specifies are open. If test is True then the
function returns the services with ports that are open rather than
@ -1312,11 +1316,14 @@ def _check_listening_on_services_ports(services, test=False):
@param services: OrderedDict(service: [port, ...], ...)
@param test: default=False, if False, test for closed, otherwise open.
@param ssl_check_info: SSLPortCheckInfo object. If provided, port checks
will be done using an SSL connection.
@returns OrderedDict(service: [port-not-open, ...]...), [boolean]
"""
test = not (not (test)) # ensure test is True or False
all_ports = list(itertools.chain(*services.values()))
ports_states = [port_has_listener('0.0.0.0', p) for p in all_ports]
ports_states = [port_has_listener('0.0.0.0', p, ssl_check_info)
for p in all_ports]
map_ports = OrderedDict()
matched_ports = [p for p, opened in zip(all_ports, ports_states)
if opened == test] # essentially opened xor test
@ -1327,16 +1334,19 @@ def _check_listening_on_services_ports(services, test=False):
return map_ports, ports_states
def _check_listening_on_ports_list(ports):
def _check_listening_on_ports_list(ports, ssl_check_info=None):
"""Check that the ports list given are being listened to
Returns a list of ports being listened to and a list of the
booleans.
@param ssl_check_info: SSLPortCheckInfo object. If provided, port checks
will be done using an SSL connection.
@param ports: LIST of port numbers.
@returns [(port_num, boolean), ...], [boolean]
"""
ports_open = [port_has_listener('0.0.0.0', p) for p in ports]
ports_open = [port_has_listener('0.0.0.0', p, ssl_check_info)
for p in ports]
return zip(ports, ports_open), ports_open

View File

@ -17,8 +17,6 @@ from subprocess import (
CalledProcessError,
check_call,
check_output,
Popen,
PIPE,
)
@ -58,9 +56,7 @@ def remove_lvm_physical_volume(block_device):
:param block_device: str: Full path of block device to scrub.
'''
p = Popen(['pvremove', '-ff', block_device],
stdin=PIPE)
p.communicate(input='y\n')
check_call(['pvremove', '-ff', '--yes', block_device])
def list_lvm_volume_group(block_device):

View File

@ -256,8 +256,11 @@ def service_resume(service_name, init_dir="/etc/init",
upstart_file = os.path.join(init_dir, "{}.conf".format(service_name))
sysv_file = os.path.join(initd_dir, service_name)
if init_is_systemd(service_name=service_name):
service('unmask', service_name)
service('enable', service_name)
if service('is-enabled', service_name):
log('service {} already enabled'.format(service_name), level=DEBUG)
else:
service('unmask', service_name)
service('enable', service_name)
elif os.path.exists(upstart_file):
override_path = os.path.join(
init_dir, '{}.override'.format(service_name))

View File

@ -9,19 +9,13 @@ def get_platform():
will be returned (which is the name of the module).
This string is used to decide which platform module should be imported.
"""
# linux_distribution is deprecated and will be removed in Python 3.7
# Warnings *not* disabled, as we certainly need to fix this.
if hasattr(platform, 'linux_distribution'):
tuple_platform = platform.linux_distribution()
current_platform = tuple_platform[0]
else:
current_platform = _get_platform_from_fs()
current_platform = _get_current_platform()
if "Ubuntu" in current_platform:
return "ubuntu"
elif "CentOS" in current_platform:
return "centos"
elif "debian" in current_platform:
elif "debian" in current_platform or "Debian" in current_platform:
# Stock Python does not detect Ubuntu and instead returns debian.
# Or at least it does in some build environments like Travis CI
return "ubuntu"
@ -36,6 +30,24 @@ def get_platform():
.format(current_platform))
def _get_current_platform():
"""Return the current platform information for the OS.
Attempts to lookup linux distribution information from the platform
module for releases of python < 3.7. For newer versions of python,
the platform is determined from the /etc/os-release file.
"""
# linux_distribution is deprecated and will be removed in Python 3.7
# Warnings *not* disabled, as we certainly need to fix this.
if hasattr(platform, 'linux_distribution'):
tuple_platform = platform.linux_distribution()
current_platform = tuple_platform[0]
else:
current_platform = _get_platform_from_fs()
return current_platform
def _get_platform_from_fs():
"""Get Platform from /etc/os-release."""
with open(os.path.join(os.sep, 'etc', 'os-release')) as fin:

View File

@ -0,0 +1,725 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# by the following command:
#
# pip-compile --constraint=/home/alex/Projects/Canonical/git/github.com/openstack-charmers/release-tools/global/constraints-2024.1.txt --output-file=merged-requirements-py310.txt requirements.in test-requirements.in
#
aiohttp==3.9.5
# via
# python-libmaas
# zaza
aiosignal==1.3.1
# via aiohttp
aodhclient==3.5.1
# via zaza-openstack
appdirs==1.4.4
# via python-ironicclient
argcomplete==3.3.0
# via python-libmaas
async-generator==1.10
# via
# zaza
# zaza-openstack
async-timeout==4.0.3
# via aiohttp
attrs==23.2.0
# via
# aiohttp
# jsonschema
# referencing
babel==2.14.0
# via
# python-cinderclient
# python-heatclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
bcrypt==4.1.2
# via paramiko
boto3==1.34.92
# via zaza-openstack
botocore==1.34.92
# via
# boto3
# s3transfer
cachetools==5.3.3
# via google-auth
certifi==2024.2.2
# via
# kubernetes
# requests
cffi==1.16.0
# via
# cryptography
# pynacl
charset-normalizer==3.3.2
# via requests
cliff==2.18.0
# via
# -r test-requirements.in
# aodhclient
# gnocchiclient
# osc-lib
# python-barbicanclient
# python-cloudkittyclient
# python-designateclient
# python-heatclient
# python-ironicclient
# python-neutronclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
# stestr
# tempest
cmd2==0.8.9
# via cliff
colorclass==2.2.2
# via python-libmaas
coverage==7.5.0
# via -r test-requirements.in
croniter==2.0.5
# via -r test-requirements.in
cryptography==3.3.2
# via
# -r requirements.in
# openstacksdk
# paramiko
# pyopenssl
# python-magnumclient
# tempest
# trustme
# zaza
# zaza-openstack
debtcollector==3.0.0
# via
# gnocchiclient
# oslo-config
# oslo-context
# oslo-log
# oslo-utils
# python-designateclient
# python-keystoneclient
# python-manilaclient
# python-neutronclient
# tempest
decorator==5.1.1
# via
# dogpile-cache
# jsonpath-rw
# openstacksdk
# python-magnumclient
defusedxml==0.7.1
# via tempest
dnspython==2.6.1
# via
# -r requirements.in
# pymongo
# zaza-openstack
dogpile-cache==1.3.2
# via
# openstacksdk
# python-ironicclient
extras==1.0.0
# via stestr
fasteners==0.19
# via
# oslo-concurrency
# tempest
fixtures==3.0.0
# via
# stestr
# tempest
frozenlist==1.4.1
# via
# aiohttp
# aiosignal
futurist==1.10.0
# via
# gnocchiclient
# zaza-openstack
gnocchiclient==7.0.8
# via zaza-openstack
google-auth==2.29.0
# via kubernetes
hvac==0.6.4
# via
# zaza
# zaza-openstack
idna==3.7
# via
# requests
# trustme
# yarl
iso8601==2.1.0
# via
# gnocchiclient
# keystoneauth1
# openstacksdk
# oslo-utils
# python-ceilometerclient
# python-heatclient
# python-neutronclient
# python-novaclient
# python-subunit
jinja2==3.1.3
# via
# -r requirements.in
# zaza
# zaza-openstack
jmespath==1.0.1
# via
# boto3
# botocore
# openstacksdk
jsonpatch==1.33
# via
# openstacksdk
# warlock
jsonpath-rw==1.4.0
# via jsonpath-rw-ext
jsonpath-rw-ext==1.2.2
# via python-cloudkittyclient
jsonpointer==2.4
# via jsonpatch
jsonschema==4.21.1
# via
# python-designateclient
# python-ironicclient
# tempest
# warlock
jsonschema-specifications==2023.12.1
# via jsonschema
juju==2.9.46.1
# via
# -c /home/alex/Projects/Canonical/git/github.com/openstack-charmers/release-tools/global/constraints-2024.1.txt
# zaza
juju-wait==2.8.4
# via zaza
jujubundlelib==0.5.7
# via theblues
keystoneauth1==5.6.0
# via
# aodhclient
# gnocchiclient
# openstacksdk
# osc-lib
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-cloudkittyclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
kubernetes==29.0.0
# via juju
lxml==5.2.1
# via zaza-openstack
macaroonbakery==1.3.4
# via
# juju
# python-libmaas
# theblues
# zaza
markupsafe==2.1.5
# via jinja2
msgpack==1.0.8
# via oslo-serialization
multidict==6.0.5
# via
# aiohttp
# yarl
mypy-extensions==1.0.0
# via typing-inspect
netaddr==0.7.20
# via
# -c /home/alex/Projects/Canonical/git/github.com/openstack-charmers/release-tools/global/constraints-2024.1.txt
# -r requirements.in
# oslo-config
# oslo-utils
# osprofiler
# python-neutronclient
# tempest
netifaces==0.11.0
# via
# -r requirements.in
# openstacksdk
# oslo-utils
# python-octaviaclient
oauthlib==3.2.2
# via
# kubernetes
# python-libmaas
# requests-oauthlib
openstacksdk==3.1.0
# via
# os-client-config
# osc-lib
# python-ironicclient
# python-openstackclient
os-client-config==2.1.0
# via
# python-cloudkittyclient
# python-magnumclient
# python-neutronclient
os-service-types==1.7.0
# via
# keystoneauth1
# openstacksdk
osc-lib==2.1.0
# via
# aodhclient
# python-cloudkittyclient
# python-designateclient
# python-heatclient
# python-ironicclient
# python-magnumclient
# python-neutronclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
oslo-concurrency==6.0.0
# via
# osprofiler
# tempest
oslo-config==6.11.3
# via
# oslo-concurrency
# oslo-log
# python-keystoneclient
# python-manilaclient
# tempest
# zaza
# zaza-openstack
oslo-context==5.5.0
# via oslo-log
oslo-i18n==6.3.0
# via
# aodhclient
# osc-lib
# oslo-concurrency
# oslo-config
# oslo-log
# oslo-utils
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-glanceclient
# python-heatclient
# python-keystoneclient
# python-magnumclient
# python-neutronclient
# python-novaclient
# python-openstackclient
# python-watcherclient
oslo-log==5.5.1
# via
# python-cloudkittyclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# tempest
oslo-serialization==5.4.0
# via
# aodhclient
# oslo-log
# osprofiler
# python-barbicanclient
# python-ceilometerclient
# python-designateclient
# python-heatclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-watcherclient
# tempest
oslo-utils==7.1.0
# via
# aodhclient
# osc-lib
# oslo-concurrency
# oslo-log
# oslo-serialization
# osprofiler
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-cloudkittyclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
# tempest
osprofiler==4.1.0
# via aodhclient
packaging==24.0
# via oslo-utils
paramiko==2.12.0
# via
# juju
# tempest
pbr==5.6.0
# via
# -r requirements.in
# aodhclient
# cliff
# fixtures
# futurist
# jsonpath-rw-ext
# keystoneauth1
# openstacksdk
# os-service-types
# osc-lib
# oslo-concurrency
# oslo-context
# oslo-i18n
# oslo-log
# oslo-serialization
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-cloudkittyclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
# stestr
# stevedore
# tempest
pika==1.3.2
# via zaza-openstack
platformdirs==4.2.1
# via openstacksdk
ply==3.11
# via jsonpath-rw
prettytable==0.7.2
# via
# cliff
# futurist
# osprofiler
# python-ceilometerclient
# python-cinderclient
# python-glanceclient
# python-heatclient
# python-magnumclient
# python-manilaclient
# python-novaclient
# tempest
protobuf==5.26.1
# via macaroonbakery
psutil==1.2.1
# via
# -r requirements.in
# -r test-requirements.in
pyasn1==0.6.0
# via
# juju
# pyasn1-modules
# rsa
pyasn1-modules==0.4.0
# via google-auth
pycparser==2.22
# via cffi
pyinotify==0.9.6
# via oslo-log
pymacaroons==0.13.0
# via macaroonbakery
pymongo==4.7.0
# via python-libmaas
pynacl==1.5.0
# via
# macaroonbakery
# paramiko
# pymacaroons
pyopenssl==21.0.0
# via
# python-glanceclient
# zaza-openstack
pyparsing==2.4.7
# via
# -r test-requirements.in
# aodhclient
# cliff
# cmd2
# oslo-utils
pyperclip==1.8.2
# via cmd2
pyrfc3339==1.1
# via
# juju
# macaroonbakery
python-barbicanclient==4.10.0
# via zaza-openstack
python-ceilometerclient==2.9.0
# via zaza-openstack
python-cinderclient==5.0.2
# via
# python-openstackclient
# zaza-openstack
python-cloudkittyclient==4.1.0
# via zaza-openstack
python-dateutil==2.9.0.post0
# via
# botocore
# croniter
# gnocchiclient
# kubernetes
# oslo-log
python-designateclient==2.12.0
# via zaza-openstack
python-glanceclient==4.5.0
# via
# python-openstackclient
# zaza-openstack
python-heatclient==1.18.1
# via zaza-openstack
python-ironicclient==5.5.0
# via zaza-openstack
python-keystoneclient==3.21.0
# via
# python-manilaclient
# python-neutronclient
# python-openstackclient
# zaza-openstack
python-libmaas==0.6.8
# via zaza
python-magnumclient==4.4.0
# via zaza-openstack
python-manilaclient==1.29.0
# via zaza-openstack
python-neutronclient==6.14.1
# via
# python-octaviaclient
# zaza-openstack
python-novaclient==15.1.1
# via
# python-openstackclient
# zaza-openstack
python-octaviaclient==1.10.1
# via zaza-openstack
python-openstackclient==4.0.2
# via python-octaviaclient
python-subunit==1.4.4
# via
# stestr
# tempest
python-swiftclient==3.8.1
# via
# python-heatclient
# zaza-openstack
python-watcherclient==4.4.0
# via zaza-openstack
pytz==2024.1
# via
# croniter
# pyrfc3339
# python-libmaas
pyudev==0.24.1
# via -r test-requirements.in
pyyaml==6.0.1
# via
# cliff
# juju
# juju-wait
# jujubundlelib
# kubernetes
# openstacksdk
# oslo-config
# oslo-utils
# python-cloudkittyclient
# python-heatclient
# python-ironicclient
# python-libmaas
# python-watcherclient
# stestr
# tempest
# zaza
# zaza-openstack
referencing==0.35.0
# via
# jsonschema
# jsonschema-specifications
requests==2.31.0
# via
# -r test-requirements.in
# hvac
# keystoneauth1
# kubernetes
# macaroonbakery
# oslo-config
# osprofiler
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-octaviaclient
# python-swiftclient
# requests-oauthlib
# theblues
requests-oauthlib==2.0.0
# via kubernetes
requestsexceptions==1.4.0
# via openstacksdk
rfc3986==2.0.0
# via oslo-config
rpds-py==0.18.0
# via
# jsonschema
# referencing
rsa==4.9
# via google-auth
s3transfer==0.10.1
# via boto3
simplejson==3.19.2
# via
# -r requirements.in
# osc-lib
# python-cinderclient
# python-manilaclient
# python-neutronclient
# python-novaclient
six==1.16.0
# via
# -r requirements.in
# cliff
# cmd2
# cryptography
# fixtures
# futurist
# gnocchiclient
# jsonpath-rw
# kubernetes
# macaroonbakery
# oslo-config
# paramiko
# pymacaroons
# pyopenssl
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-dateutil
# python-designateclient
# python-heatclient
# python-keystoneclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-swiftclient
stestr==4.1.0
# via
# -r test-requirements.in
# tempest
stevedore==5.2.0
# via
# cliff
# dogpile-cache
# keystoneauth1
# osc-lib
# oslo-config
# python-ceilometerclient
# python-designateclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# tempest
tempest @ git+https://opendev.org/openstack/tempest.git
# via -r test-requirements.in
tenacity==8.2.3
# via
# zaza
# zaza-openstack
terminaltables==3.1.10
# via python-libmaas
testtools==2.7.1
# via
# fixtures
# python-subunit
# stestr
# tempest
theblues==0.5.2
# via juju
tomlkit==0.12.4
# via stestr
toposort==1.10
# via juju
trustme==1.1.0
# via zaza-openstack
typing-extensions==4.11.0
# via
# dogpile-cache
# typing-inspect
typing-inspect==0.9.0
# via juju
tzdata==2024.1
# via
# oslo-serialization
# oslo-utils
ujson==5.9.0
# via gnocchiclient
urllib3==2.2.1
# via
# botocore
# kubernetes
# requests
# tempest
voluptuous==0.14.2
# via stestr
warlock==2.0.1
# via python-glanceclient
wcwidth==0.2.13
# via cmd2
webob==1.8.7
# via osprofiler
websocket-client==1.8.0
# via kubernetes
websockets==12.0
# via juju
wrapt==1.16.0
# via
# debtcollector
# python-glanceclient
yarl==1.9.4
# via aiohttp
zaza @ git+https://github.com/openstack-charmers/zaza.git@stable/caracal
# via
# -r test-requirements.in
# zaza-openstack
zaza-openstack @ git+https://github.com/openstack-charmers/zaza-openstack-tests.git@stable/caracal
# via -r test-requirements.in

View File

@ -0,0 +1,732 @@
#
# This file is autogenerated by pip-compile with Python 3.8
# by the following command:
#
# pip-compile --constraint=/home/alex/Projects/Canonical/git/github.com/openstack-charmers/release-tools/global/constraints-2024.1.txt --output-file=merged-requirements-py38.txt requirements.in test-requirements.in
#
aiohttp==3.9.5
# via
# python-libmaas
# zaza
aiosignal==1.3.1
# via aiohttp
aodhclient==3.5.1
# via zaza-openstack
appdirs==1.4.4
# via python-ironicclient
argcomplete==3.3.0
# via python-libmaas
async-generator==1.10
# via
# zaza
# zaza-openstack
async-timeout==4.0.3
# via aiohttp
attrs==23.2.0
# via
# aiohttp
# jsonschema
# referencing
babel==2.14.0
# via
# python-cinderclient
# python-heatclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
bcrypt==4.1.2
# via paramiko
boto3==1.34.92
# via zaza-openstack
botocore==1.34.92
# via
# boto3
# s3transfer
cachetools==5.3.3
# via google-auth
certifi==2024.2.2
# via
# kubernetes
# requests
cffi==1.16.0
# via
# cryptography
# pynacl
charset-normalizer==3.3.2
# via requests
cliff==2.18.0
# via
# -r test-requirements.in
# aodhclient
# gnocchiclient
# osc-lib
# python-barbicanclient
# python-cloudkittyclient
# python-designateclient
# python-heatclient
# python-ironicclient
# python-neutronclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
# stestr
# tempest
cmd2==0.8.9
# via cliff
colorclass==2.2.2
# via python-libmaas
coverage==7.5.0
# via -r test-requirements.in
croniter==2.0.5
# via -r test-requirements.in
cryptography==3.3.2
# via
# -r requirements.in
# openstacksdk
# paramiko
# pyopenssl
# python-magnumclient
# tempest
# trustme
# zaza
# zaza-openstack
debtcollector==3.0.0
# via
# gnocchiclient
# oslo-config
# oslo-context
# oslo-log
# oslo-utils
# python-designateclient
# python-keystoneclient
# python-manilaclient
# python-neutronclient
# tempest
decorator==5.1.1
# via
# dogpile-cache
# jsonpath-rw
# openstacksdk
# python-magnumclient
defusedxml==0.7.1
# via tempest
dnspython==2.6.1
# via
# -r requirements.in
# pymongo
# zaza-openstack
dogpile-cache==1.3.2
# via
# openstacksdk
# python-ironicclient
extras==1.0.0
# via stestr
fasteners==0.19
# via
# oslo-concurrency
# tempest
fixtures==3.0.0
# via
# stestr
# tempest
frozenlist==1.4.1
# via
# aiohttp
# aiosignal
futurist==1.10.0
# via
# gnocchiclient
# zaza-openstack
gnocchiclient==7.0.8
# via zaza-openstack
google-auth==2.29.0
# via kubernetes
hvac==0.6.4
# via
# zaza
# zaza-openstack
idna==3.7
# via
# requests
# trustme
# yarl
importlib-resources==6.4.0
# via
# jsonschema
# jsonschema-specifications
iso8601==2.1.0
# via
# gnocchiclient
# keystoneauth1
# openstacksdk
# oslo-utils
# python-ceilometerclient
# python-heatclient
# python-neutronclient
# python-novaclient
# python-subunit
jinja2==3.1.3
# via
# -r requirements.in
# zaza
# zaza-openstack
jmespath==1.0.1
# via
# boto3
# botocore
# openstacksdk
jsonpatch==1.33
# via
# openstacksdk
# warlock
jsonpath-rw==1.4.0
# via jsonpath-rw-ext
jsonpath-rw-ext==1.2.2
# via python-cloudkittyclient
jsonpointer==2.4
# via jsonpatch
jsonschema==4.21.1
# via
# python-designateclient
# python-ironicclient
# tempest
# warlock
jsonschema-specifications==2023.12.1
# via jsonschema
juju==2.9.46.1
# via
# -c /home/alex/Projects/Canonical/git/github.com/openstack-charmers/release-tools/global/constraints-2024.1.txt
# zaza
juju-wait==2.8.4
# via zaza
jujubundlelib==0.5.7
# via theblues
keystoneauth1==5.6.0
# via
# aodhclient
# gnocchiclient
# openstacksdk
# osc-lib
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-cloudkittyclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
kubernetes==29.0.0
# via juju
lxml==5.2.1
# via zaza-openstack
macaroonbakery==1.3.4
# via
# juju
# python-libmaas
# theblues
# zaza
markupsafe==2.1.5
# via jinja2
msgpack==1.0.8
# via oslo-serialization
multidict==6.0.5
# via
# aiohttp
# yarl
mypy-extensions==1.0.0
# via typing-inspect
netaddr==0.7.20
# via
# -c /home/alex/Projects/Canonical/git/github.com/openstack-charmers/release-tools/global/constraints-2024.1.txt
# -r requirements.in
# oslo-config
# oslo-utils
# osprofiler
# python-neutronclient
# tempest
netifaces==0.11.0
# via
# -r requirements.in
# openstacksdk
# oslo-utils
# python-octaviaclient
oauthlib==3.2.2
# via
# kubernetes
# python-libmaas
# requests-oauthlib
openstacksdk==3.1.0
# via
# os-client-config
# osc-lib
# python-ironicclient
# python-openstackclient
os-client-config==2.1.0
# via
# python-cloudkittyclient
# python-magnumclient
# python-neutronclient
os-service-types==1.7.0
# via
# keystoneauth1
# openstacksdk
osc-lib==2.1.0
# via
# aodhclient
# python-cloudkittyclient
# python-designateclient
# python-heatclient
# python-ironicclient
# python-magnumclient
# python-neutronclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
oslo-concurrency==6.0.0
# via
# osprofiler
# tempest
oslo-config==6.11.3
# via
# oslo-concurrency
# oslo-log
# python-keystoneclient
# python-manilaclient
# tempest
# zaza
# zaza-openstack
oslo-context==5.5.0
# via oslo-log
oslo-i18n==6.3.0
# via
# aodhclient
# osc-lib
# oslo-concurrency
# oslo-config
# oslo-log
# oslo-utils
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-glanceclient
# python-heatclient
# python-keystoneclient
# python-magnumclient
# python-neutronclient
# python-novaclient
# python-openstackclient
# python-watcherclient
oslo-log==5.5.1
# via
# python-cloudkittyclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# tempest
oslo-serialization==5.4.0
# via
# aodhclient
# oslo-log
# osprofiler
# python-barbicanclient
# python-ceilometerclient
# python-designateclient
# python-heatclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-watcherclient
# tempest
oslo-utils==7.1.0
# via
# aodhclient
# osc-lib
# oslo-concurrency
# oslo-log
# oslo-serialization
# osprofiler
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-cloudkittyclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
# tempest
osprofiler==4.1.0
# via aodhclient
packaging==24.0
# via oslo-utils
paramiko==2.12.0
# via
# juju
# tempest
pbr==5.6.0
# via
# -r requirements.in
# aodhclient
# cliff
# fixtures
# futurist
# jsonpath-rw-ext
# keystoneauth1
# openstacksdk
# os-service-types
# osc-lib
# oslo-concurrency
# oslo-context
# oslo-i18n
# oslo-log
# oslo-serialization
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-cloudkittyclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
# stestr
# stevedore
# tempest
pika==1.3.2
# via zaza-openstack
pkgutil-resolve-name==1.3.10
# via jsonschema
platformdirs==4.2.1
# via openstacksdk
ply==3.11
# via jsonpath-rw
prettytable==0.7.2
# via
# cliff
# futurist
# osprofiler
# python-ceilometerclient
# python-cinderclient
# python-glanceclient
# python-heatclient
# python-magnumclient
# python-manilaclient
# python-novaclient
# tempest
protobuf==5.26.1
# via macaroonbakery
psutil==1.2.1
# via
# -r requirements.in
# -r test-requirements.in
pyasn1==0.6.0
# via
# juju
# pyasn1-modules
# rsa
pyasn1-modules==0.4.0
# via google-auth
pycparser==2.22
# via cffi
pyinotify==0.9.6
# via oslo-log
pymacaroons==0.13.0
# via macaroonbakery
pymongo==4.7.0
# via python-libmaas
pynacl==1.5.0
# via
# macaroonbakery
# paramiko
# pymacaroons
pyopenssl==21.0.0
# via
# python-glanceclient
# zaza-openstack
pyparsing==2.4.7
# via
# -r test-requirements.in
# aodhclient
# cliff
# cmd2
# oslo-utils
pyperclip==1.8.2
# via cmd2
pyrfc3339==1.1
# via
# juju
# macaroonbakery
python-barbicanclient==4.10.0
# via zaza-openstack
python-ceilometerclient==2.9.0
# via zaza-openstack
python-cinderclient==5.0.2
# via
# python-openstackclient
# zaza-openstack
python-cloudkittyclient==4.1.0
# via zaza-openstack
python-dateutil==2.9.0.post0
# via
# botocore
# croniter
# gnocchiclient
# kubernetes
# oslo-log
python-designateclient==2.12.0
# via zaza-openstack
python-glanceclient==4.5.0
# via
# python-openstackclient
# zaza-openstack
python-heatclient==1.18.1
# via zaza-openstack
python-ironicclient==5.5.0
# via zaza-openstack
python-keystoneclient==3.21.0
# via
# python-manilaclient
# python-neutronclient
# python-openstackclient
# zaza-openstack
python-libmaas==0.6.8
# via zaza
python-magnumclient==4.4.0
# via zaza-openstack
python-manilaclient==1.29.0
# via zaza-openstack
python-neutronclient==6.14.1
# via
# python-octaviaclient
# zaza-openstack
python-novaclient==15.1.1
# via
# python-openstackclient
# zaza-openstack
python-octaviaclient==1.10.1
# via zaza-openstack
python-openstackclient==4.0.2
# via python-octaviaclient
python-subunit==1.4.4
# via
# stestr
# tempest
python-swiftclient==3.8.1
# via
# python-heatclient
# zaza-openstack
python-watcherclient==4.4.0
# via zaza-openstack
pytz==2024.1
# via
# babel
# croniter
# oslo-serialization
# oslo-utils
# pyrfc3339
# python-libmaas
pyudev==0.24.1
# via -r test-requirements.in
pyyaml==6.0.1
# via
# cliff
# juju
# juju-wait
# jujubundlelib
# kubernetes
# openstacksdk
# oslo-config
# oslo-utils
# python-cloudkittyclient
# python-heatclient
# python-ironicclient
# python-libmaas
# python-watcherclient
# stestr
# tempest
# zaza
# zaza-openstack
referencing==0.35.0
# via
# jsonschema
# jsonschema-specifications
requests==2.31.0
# via
# -r test-requirements.in
# hvac
# keystoneauth1
# kubernetes
# macaroonbakery
# oslo-config
# osprofiler
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-octaviaclient
# python-swiftclient
# requests-oauthlib
# theblues
requests-oauthlib==2.0.0
# via kubernetes
requestsexceptions==1.4.0
# via openstacksdk
rfc3986==2.0.0
# via oslo-config
rpds-py==0.18.0
# via
# jsonschema
# referencing
rsa==4.9
# via google-auth
s3transfer==0.10.1
# via boto3
simplejson==3.19.2
# via
# -r requirements.in
# osc-lib
# python-cinderclient
# python-manilaclient
# python-neutronclient
# python-novaclient
six==1.16.0
# via
# -r requirements.in
# cliff
# cmd2
# cryptography
# fixtures
# futurist
# gnocchiclient
# jsonpath-rw
# kubernetes
# macaroonbakery
# oslo-config
# paramiko
# pymacaroons
# pyopenssl
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-dateutil
# python-designateclient
# python-heatclient
# python-keystoneclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-swiftclient
stestr==4.1.0
# via
# -r test-requirements.in
# tempest
stevedore==5.2.0
# via
# cliff
# dogpile-cache
# keystoneauth1
# osc-lib
# oslo-config
# python-ceilometerclient
# python-designateclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# tempest
tempest @ git+https://opendev.org/openstack/tempest.git
# via -r test-requirements.in
tenacity==8.2.3
# via
# zaza
# zaza-openstack
terminaltables==3.1.10
# via python-libmaas
testtools==2.7.1
# via
# fixtures
# python-subunit
# stestr
# tempest
theblues==0.5.2
# via juju
tomlkit==0.12.4
# via stestr
toposort==1.10
# via juju
trustme==1.1.0
# via zaza-openstack
typing-extensions==4.11.0
# via
# dogpile-cache
# typing-inspect
typing-inspect==0.9.0
# via juju
ujson==5.9.0
# via gnocchiclient
urllib3==1.26.18
# via
# botocore
# kubernetes
# requests
# tempest
voluptuous==0.14.2
# via stestr
warlock==2.0.1
# via python-glanceclient
wcwidth==0.2.13
# via cmd2
webob==1.8.7
# via osprofiler
websocket-client==1.8.0
# via kubernetes
websockets==7.0
# via juju
wrapt==1.16.0
# via
# debtcollector
# python-glanceclient
yarl==1.9.4
# via aiohttp
zaza @ git+https://github.com/openstack-charmers/zaza.git@stable/caracal
# via
# -r test-requirements.in
# zaza-openstack
zaza-openstack @ git+https://github.com/openstack-charmers/zaza-openstack-tests.git@stable/caracal
# via -r test-requirements.in
zipp==3.18.1
# via importlib-resources

720
test-requirements-py38.txt Normal file
View File

@ -0,0 +1,720 @@
#
# This file is autogenerated by pip-compile with Python 3.8
# by the following command:
#
# pip-compile --constraint=/home/alex/Projects/Canonical/git/github.com/openstack-charmers/release-tools/global/constraints-2024.1.txt --output-file=test-requirements-py38.txt test-requirements.in
#
aiohttp==3.9.5
# via
# python-libmaas
# zaza
aiosignal==1.3.1
# via aiohttp
aodhclient==3.5.1
# via zaza-openstack
appdirs==1.4.4
# via python-ironicclient
argcomplete==3.3.0
# via python-libmaas
async-generator==1.10
# via
# zaza
# zaza-openstack
async-timeout==4.0.3
# via aiohttp
attrs==23.2.0
# via
# aiohttp
# jsonschema
# referencing
babel==2.14.0
# via
# python-cinderclient
# python-heatclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
bcrypt==4.1.2
# via paramiko
boto3==1.34.92
# via zaza-openstack
botocore==1.34.92
# via
# boto3
# s3transfer
cachetools==5.3.3
# via google-auth
certifi==2024.2.2
# via
# kubernetes
# requests
cffi==1.16.0
# via
# cryptography
# pynacl
charset-normalizer==3.3.2
# via requests
cliff==2.18.0
# via
# -r test-requirements.in
# aodhclient
# gnocchiclient
# osc-lib
# python-barbicanclient
# python-cloudkittyclient
# python-designateclient
# python-heatclient
# python-ironicclient
# python-neutronclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
# stestr
# tempest
cmd2==0.8.9
# via cliff
colorclass==2.2.2
# via python-libmaas
coverage==7.5.0
# via -r test-requirements.in
croniter==2.0.5
# via -r test-requirements.in
cryptography==3.3.2
# via
# openstacksdk
# paramiko
# pyopenssl
# python-magnumclient
# tempest
# trustme
# zaza
# zaza-openstack
debtcollector==3.0.0
# via
# gnocchiclient
# oslo-config
# oslo-context
# oslo-log
# oslo-utils
# python-designateclient
# python-keystoneclient
# python-manilaclient
# python-neutronclient
# tempest
decorator==5.1.1
# via
# dogpile-cache
# jsonpath-rw
# openstacksdk
# python-magnumclient
defusedxml==0.7.1
# via tempest
dnspython==2.6.1
# via
# pymongo
# zaza-openstack
dogpile-cache==1.3.2
# via
# openstacksdk
# python-ironicclient
extras==1.0.0
# via stestr
fasteners==0.19
# via
# oslo-concurrency
# tempest
fixtures==4.1.0
# via
# stestr
# tempest
frozenlist==1.4.1
# via
# aiohttp
# aiosignal
futurist==1.10.0
# via
# gnocchiclient
# zaza-openstack
gnocchiclient==7.0.8
# via zaza-openstack
google-auth==2.29.0
# via kubernetes
hvac==0.6.4
# via
# zaza
# zaza-openstack
idna==3.7
# via
# requests
# trustme
# yarl
importlib-resources==6.4.0
# via
# jsonschema
# jsonschema-specifications
iso8601==2.1.0
# via
# gnocchiclient
# keystoneauth1
# openstacksdk
# oslo-utils
# python-ceilometerclient
# python-heatclient
# python-neutronclient
# python-novaclient
# python-subunit
jinja2==3.1.3
# via
# zaza
# zaza-openstack
jmespath==1.0.1
# via
# boto3
# botocore
# openstacksdk
jsonpatch==1.33
# via
# openstacksdk
# warlock
jsonpath-rw==1.4.0
# via jsonpath-rw-ext
jsonpath-rw-ext==1.2.2
# via python-cloudkittyclient
jsonpointer==2.4
# via jsonpatch
jsonschema==4.21.1
# via
# python-designateclient
# python-ironicclient
# tempest
# warlock
jsonschema-specifications==2023.12.1
# via jsonschema
juju==2.9.46.1
# via
# -c /home/alex/Projects/Canonical/git/github.com/openstack-charmers/release-tools/global/constraints-2024.1.txt
# zaza
juju-wait==2.8.4
# via zaza
jujubundlelib==0.5.7
# via theblues
keystoneauth1==5.6.0
# via
# aodhclient
# gnocchiclient
# openstacksdk
# osc-lib
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-cloudkittyclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
kubernetes==29.0.0
# via juju
lxml==5.2.1
# via zaza-openstack
macaroonbakery==1.3.4
# via
# juju
# python-libmaas
# theblues
# zaza
markupsafe==2.1.5
# via jinja2
msgpack==1.0.8
# via oslo-serialization
multidict==6.0.5
# via
# aiohttp
# yarl
mypy-extensions==1.0.0
# via typing-inspect
netaddr==0.10.1
# via
# -c /home/alex/Projects/Canonical/git/github.com/openstack-charmers/release-tools/global/constraints-2024.1.txt
# oslo-config
# oslo-utils
# osprofiler
# python-neutronclient
# tempest
netifaces==0.11.0
# via
# openstacksdk
# oslo-utils
# python-octaviaclient
oauthlib==3.2.2
# via
# kubernetes
# python-libmaas
# requests-oauthlib
openstacksdk==3.1.0
# via
# os-client-config
# osc-lib
# python-ironicclient
# python-openstackclient
os-client-config==2.1.0
# via
# python-cloudkittyclient
# python-magnumclient
# python-neutronclient
os-service-types==1.7.0
# via
# keystoneauth1
# openstacksdk
osc-lib==2.1.0
# via
# aodhclient
# python-cloudkittyclient
# python-designateclient
# python-heatclient
# python-ironicclient
# python-magnumclient
# python-neutronclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
oslo-concurrency==6.0.0
# via
# osprofiler
# tempest
oslo-config==6.11.3
# via
# oslo-concurrency
# oslo-log
# python-keystoneclient
# python-manilaclient
# tempest
# zaza
# zaza-openstack
oslo-context==5.5.0
# via oslo-log
oslo-i18n==6.3.0
# via
# aodhclient
# osc-lib
# oslo-concurrency
# oslo-config
# oslo-log
# oslo-utils
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-glanceclient
# python-heatclient
# python-keystoneclient
# python-magnumclient
# python-neutronclient
# python-novaclient
# python-openstackclient
# python-watcherclient
oslo-log==5.5.1
# via
# python-cloudkittyclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# tempest
oslo-serialization==5.4.0
# via
# aodhclient
# oslo-log
# osprofiler
# python-barbicanclient
# python-ceilometerclient
# python-designateclient
# python-heatclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-watcherclient
# tempest
oslo-utils==7.1.0
# via
# aodhclient
# osc-lib
# oslo-concurrency
# oslo-log
# oslo-serialization
# osprofiler
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-cloudkittyclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
# tempest
osprofiler==4.1.0
# via aodhclient
packaging==24.0
# via oslo-utils
paramiko==2.12.0
# via
# juju
# tempest
pbr==6.0.0
# via
# aodhclient
# cliff
# fixtures
# futurist
# jsonpath-rw-ext
# keystoneauth1
# openstacksdk
# os-service-types
# osc-lib
# oslo-concurrency
# oslo-context
# oslo-i18n
# oslo-log
# oslo-serialization
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-cloudkittyclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-watcherclient
# stestr
# stevedore
# tempest
pika==1.3.2
# via zaza-openstack
pkgutil-resolve-name==1.3.10
# via jsonschema
platformdirs==4.2.1
# via openstacksdk
ply==3.11
# via jsonpath-rw
prettytable==0.7.2
# via
# cliff
# futurist
# osprofiler
# python-ceilometerclient
# python-cinderclient
# python-glanceclient
# python-heatclient
# python-magnumclient
# python-manilaclient
# python-novaclient
# tempest
protobuf==5.26.1
# via macaroonbakery
psutil==5.9.8
# via -r test-requirements.in
pyasn1==0.6.0
# via
# juju
# pyasn1-modules
# rsa
pyasn1-modules==0.4.0
# via google-auth
pycparser==2.22
# via cffi
pyinotify==0.9.6
# via oslo-log
pymacaroons==0.13.0
# via macaroonbakery
pymongo==4.7.0
# via python-libmaas
pynacl==1.5.0
# via
# macaroonbakery
# paramiko
# pymacaroons
pyopenssl==21.0.0
# via
# python-glanceclient
# zaza-openstack
pyparsing==2.4.7
# via
# -r test-requirements.in
# aodhclient
# cliff
# cmd2
# oslo-utils
pyperclip==1.8.2
# via cmd2
pyrfc3339==1.1
# via
# juju
# macaroonbakery
python-barbicanclient==4.10.0
# via zaza-openstack
python-ceilometerclient==2.9.0
# via zaza-openstack
python-cinderclient==5.0.2
# via
# python-openstackclient
# zaza-openstack
python-cloudkittyclient==4.1.0
# via zaza-openstack
python-dateutil==2.9.0.post0
# via
# botocore
# croniter
# gnocchiclient
# kubernetes
# oslo-log
python-designateclient==2.12.0
# via zaza-openstack
python-glanceclient==4.5.0
# via
# python-openstackclient
# zaza-openstack
python-heatclient==1.18.1
# via zaza-openstack
python-ironicclient==5.5.0
# via zaza-openstack
python-keystoneclient==3.21.0
# via
# python-manilaclient
# python-neutronclient
# python-openstackclient
# zaza-openstack
python-libmaas==0.6.8
# via zaza
python-magnumclient==4.4.0
# via zaza-openstack
python-manilaclient==1.29.0
# via zaza-openstack
python-neutronclient==6.14.1
# via
# python-octaviaclient
# zaza-openstack
python-novaclient==15.1.1
# via
# python-openstackclient
# zaza-openstack
python-octaviaclient==1.10.1
# via zaza-openstack
python-openstackclient==4.0.2
# via python-octaviaclient
python-subunit==1.4.4
# via
# stestr
# tempest
python-swiftclient==3.8.1
# via
# python-heatclient
# zaza-openstack
python-watcherclient==4.4.0
# via zaza-openstack
pytz==2024.1
# via
# babel
# croniter
# oslo-serialization
# oslo-utils
# pyrfc3339
# python-libmaas
pyudev==0.24.1
# via -r test-requirements.in
pyyaml==6.0.1
# via
# cliff
# juju
# juju-wait
# jujubundlelib
# kubernetes
# openstacksdk
# oslo-config
# oslo-utils
# python-cloudkittyclient
# python-heatclient
# python-ironicclient
# python-libmaas
# python-watcherclient
# stestr
# tempest
# zaza
# zaza-openstack
referencing==0.35.0
# via
# jsonschema
# jsonschema-specifications
requests==2.31.0
# via
# -r test-requirements.in
# hvac
# keystoneauth1
# kubernetes
# macaroonbakery
# oslo-config
# osprofiler
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-designateclient
# python-glanceclient
# python-heatclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# python-manilaclient
# python-neutronclient
# python-octaviaclient
# python-swiftclient
# requests-oauthlib
# theblues
requests-oauthlib==2.0.0
# via kubernetes
requestsexceptions==1.4.0
# via openstacksdk
rfc3986==2.0.0
# via oslo-config
rpds-py==0.18.0
# via
# jsonschema
# referencing
rsa==4.9
# via google-auth
s3transfer==0.10.1
# via boto3
simplejson==3.19.2
# via
# osc-lib
# python-cinderclient
# python-manilaclient
# python-neutronclient
# python-novaclient
six==1.16.0
# via
# cliff
# cmd2
# cryptography
# futurist
# gnocchiclient
# jsonpath-rw
# kubernetes
# macaroonbakery
# oslo-config
# paramiko
# pymacaroons
# pyopenssl
# python-barbicanclient
# python-ceilometerclient
# python-cinderclient
# python-dateutil
# python-designateclient
# python-heatclient
# python-keystoneclient
# python-manilaclient
# python-neutronclient
# python-novaclient
# python-octaviaclient
# python-openstackclient
# python-swiftclient
stestr==4.1.0
# via
# -r test-requirements.in
# tempest
stevedore==5.2.0
# via
# cliff
# dogpile-cache
# keystoneauth1
# osc-lib
# oslo-config
# python-ceilometerclient
# python-designateclient
# python-ironicclient
# python-keystoneclient
# python-magnumclient
# tempest
tempest @ git+https://opendev.org/openstack/tempest.git
# via -r test-requirements.in
tenacity==8.2.3
# via
# zaza
# zaza-openstack
terminaltables==3.1.10
# via python-libmaas
testtools==2.7.1
# via
# python-subunit
# stestr
# tempest
theblues==0.5.2
# via juju
tomlkit==0.12.4
# via stestr
toposort==1.10
# via juju
trustme==1.1.0
# via zaza-openstack
typing-extensions==4.11.0
# via
# dogpile-cache
# typing-inspect
typing-inspect==0.9.0
# via juju
ujson==5.9.0
# via gnocchiclient
urllib3==1.26.18
# via
# botocore
# kubernetes
# requests
# tempest
voluptuous==0.14.2
# via stestr
warlock==2.0.1
# via python-glanceclient
wcwidth==0.2.13
# via cmd2
webob==1.8.7
# via osprofiler
websocket-client==1.8.0
# via kubernetes
websockets==7.0
# via juju
wrapt==1.16.0
# via
# debtcollector
# python-glanceclient
yarl==1.9.4
# via aiohttp
zaza @ git+https://github.com/openstack-charmers/zaza.git@stable/caracal
# via
# -r test-requirements.in
# zaza-openstack
zaza-openstack @ git+https://github.com/openstack-charmers/zaza-openstack-tests.git@stable/caracal
# via -r test-requirements.in
zipp==3.18.1
# via importlib-resources

View File

@ -19,8 +19,8 @@ cliff<3.0.0
coverage>=4.5.2
pyudev # for ceph-* charm unit tests (need to fix the ceph-* charm unit tests/mocking)
git+https://github.com/openstack-charmers/zaza.git#egg=zaza
git+https://github.com/openstack-charmers/zaza-openstack-tests.git#egg=zaza.openstack
git+https://github.com/openstack-charmers/zaza.git@stable/caracal#egg=zaza
git+https://github.com/openstack-charmers/zaza-openstack-tests.git@stable/caracal#egg=zaza.openstack
# Needed for charm-glance:
git+https://opendev.org/openstack/tempest.git#egg=tempest

View File

@ -62,7 +62,7 @@ applications:
- '6'
- '7'
- '8'
channel: reef/edge
channel: squid/edge
ceph-radosgw:
charm: ch:ceph-radosgw
@ -71,7 +71,7 @@ applications:
source: *openstack-origin
to:
- '15'
channel: reef/edge
channel: squid/edge
ceph-mon:
charm: ch:ceph-mon
@ -83,7 +83,7 @@ applications:
- '9'
- '10'
- '11'
channel: reef/edge
channel: squid/edge
rabbitmq-server:
charm: ch:rabbitmq-server

View File

@ -62,7 +62,7 @@ applications:
- '6'
- '7'
- '8'
channel: reef/edge
channel: squid/edge
ceph-radosgw:
charm: ch:ceph-radosgw
@ -71,7 +71,7 @@ applications:
source: *openstack-origin
to:
- '15'
channel: reef/edge
channel: squid/edge
ceph-mon:
charm: ch:ceph-mon
@ -83,7 +83,7 @@ applications:
- '9'
- '10'
- '11'
channel: reef/edge
channel: squid/edge
rabbitmq-server:
charm: ch:rabbitmq-server

View File

@ -62,7 +62,7 @@ applications:
- '6'
- '7'
- '8'
channel: reef/edge
channel: squid/edge
ceph-radosgw:
charm: ch:ceph-radosgw
@ -71,7 +71,7 @@ applications:
source: *openstack-origin
to:
- '15'
channel: reef/edge
channel: squid/edge
ceph-mon:
charm: ch:ceph-mon
@ -83,7 +83,7 @@ applications:
- '9'
- '10'
- '11'
channel: reef/edge
channel: squid/edge
rabbitmq-server:
charm: ch:rabbitmq-server

View File

@ -62,7 +62,7 @@ applications:
- '6'
- '7'
- '8'
channel: reef/edge
channel: squid/edge
ceph-radosgw:
charm: ch:ceph-radosgw
@ -71,7 +71,7 @@ applications:
source: *openstack-origin
to:
- '15'
channel: reef/edge
channel: squid/edge
ceph-mon:
charm: ch:ceph-mon
@ -83,7 +83,7 @@ applications:
- '9'
- '10'
- '11'
channel: reef/edge
channel: squid/edge
rabbitmq-server:
charm: ch:rabbitmq-server

27
tox.ini
View File

@ -32,9 +32,7 @@ passenv =
CS_*
OS_*
TEST_*
deps =
-c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt}
-r{toxinidir}/test-requirements.txt
deps = -r{toxinidir}/test-requirements-py38.txt
[testenv:build]
basepython = python3
@ -49,19 +47,23 @@ commands =
{toxinidir}/rename.sh
charmcraft clean
[testenv:py38]
basepython = python3.8
deps =
-c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt}
-r{toxinidir}/merged-requirements-py38.txt
[testenv:py310]
basepython = python3.10
deps =
-c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/merged-requirements-py310.txt
[testenv:py3]
basepython = python3
deps =
-c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/merged-requirements-py310.txt
[testenv:pep8]
basepython = python3
@ -76,8 +78,7 @@ commands = flake8 {posargs} hooks unit_tests tests actions lib files
basepython = python3
deps =
-c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/merged-requirements-py310.txt
setenv =
{[testenv]setenv}
PYTHON=coverage run
@ -110,22 +111,22 @@ commands =
functest-run-suite --help
[testenv:func]
basepython = python3
basepython = python3.8
commands =
functest-run-suite --keep-model
[testenv:func-smoke]
basepython = python3
basepython = python3.8
commands =
functest-run-suite --keep-model --smoke
[testenv:func-dev]
basepython = python3
basepython = python3.8
commands =
functest-run-suite --keep-model --dev
[testenv:func-target]
basepython = python3
basepython = python3.8
commands =
functest-run-suite --keep-model --bundle {posargs}