Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-castellan for
openSUSE:Factory checked in at 2024-01-05 21:41:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-castellan (Old)
and /work/SRC/openSUSE:Factory/.python-castellan.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-castellan"
Fri Jan 5 21:41:52 2024 rev:17 rq:1136733 version:4.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-castellan/python-castellan.changes
2023-12-03 20:49:17.946846767 +0100
+++
/work/SRC/openSUSE:Factory/.python-castellan.new.28375/python-castellan.changes
2024-01-05 21:43:09.090093425 +0100
@@ -1,0 +2,26 @@
+Thu Jan 4 09:15:28 UTC 2024 - [email protected]
+
+- update to version 4.3.0
+ - Revert "Implement force parameter"
+ - Revert "Moves supported python runtimes from version 3.8 to 3.10"
+ - Update master for stable/zed
+ - Revert "Add secret consumers documentation and release note"
+ - Moves supported python runtimes from version 3.8 to 3.10
+ - Initial change to add secret consumers
+ - Add Python3 antelope unit tests
+ - Revert "Add secret consumers functional tests"
+ - Add force parameter functional tests
+ - Update master for stable/2023.1
+ - Implement force parameter
+ - Add support for specifying Vault KV path
+ - Add secret consumers
+ - Add secret consumers functional tests
+ - Add secret consumers documentation and release note
+ - Update TOX_CONSTRAINTS_FILE for stable/2023.2
+ - Revert "Add secret consumers"
+ - Make tests more consistent
+ - Fix tox4 error
+ - Update .gitreview for stable/2023.2
+ - Revert "Add force parameter functional tests"
+
+-------------------------------------------------------------------
Old:
----
castellan-4.0.0.tar.gz
New:
----
castellan-4.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-castellan.spec ++++++
--- /var/tmp/diff_new_pack.ervazY/_old 2024-01-05 21:43:09.674114778 +0100
+++ /var/tmp/diff_new_pack.ervazY/_new 2024-01-05 21:43:09.678114925 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-castellan
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
Name: python-castellan
-Version: 4.0.0
+Version: 4.3.0
Release: 0
Summary: Generic Key Manager interface for OpenStack
License: Apache-2.0
Group: Development/Languages/Python
URL: https://docs.openstack.org/castellan
-Source0:
https://files.pythonhosted.org/packages/source/c/castellan/castellan-4.0.0.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/c/castellan/castellan-4.3.0.tar.gz
BuildRequires: openstack-macros
BuildRequires: python3-barbicanclient >= 5.5.0
BuildRequires: python3-cryptography >= 2.7
@@ -74,7 +74,7 @@
This package contains the documentation
%prep
-%autosetup -p1 -n castellan-4.0.0
+%autosetup -p1 -n castellan-4.3.0
%py_req_cleanup
%build
++++++ _service ++++++
--- /var/tmp/diff_new_pack.ervazY/_old 2024-01-05 21:43:09.706115949 +0100
+++ /var/tmp/diff_new_pack.ervazY/_new 2024-01-05 21:43:09.710116095 +0100
@@ -1,13 +1,13 @@
<services>
- <service mode="disabled" name="renderspec">
+ <service mode="manual" name="renderspec">
<param
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/master/openstack/castellan/castellan.spec.j2</param>
<param name="output-name">python-castellan.spec</param>
<param
name="requirements">https://opendev.org/openstack/castellan/raw/master/requirements.txt</param>
<param name="changelog-email">[email protected]</param>
<param name="changelog-provider">gh,openstack,castellan</param>
</service>
- <service mode="disabled" name="download_files">
+ <service mode="manual" name="download_files">
</service>
- <service name="format_spec_file" mode="disabled"/>
+ <service name="format_spec_file" mode="manual"/>
</services>
++++++ castellan-4.0.0.tar.gz -> castellan-4.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/.zuul.yaml
new/castellan-4.3.0/.zuul.yaml
--- old/castellan-4.0.0/.zuul.yaml 2022-07-12 11:27:50.000000000 +0200
+++ new/castellan-4.3.0/.zuul.yaml 2023-09-22 16:47:08.000000000 +0200
@@ -1,12 +1,12 @@
- job:
name: castellan-functional-vault
- parent: openstack-tox-py38
+ parent: openstack-tox-py310
description: |
Run tox functional-vault target
required-projects:
- name: openstack/castellan
vars:
- tox_envlist: functional-vault
+ tox_envlist: functional-vault-py310
- job:
name: castellan-functional-devstack
@@ -59,7 +59,7 @@
- barbican-tempest-plugin-simple-crypto-castellan-src
templates:
- check-requirements
- - openstack-python3-zed-jobs
+ - openstack-python3-jobs
- periodic-stable-jobs
- publish-openstack-docs-pti
- release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/AUTHORS new/castellan-4.3.0/AUTHORS
--- old/castellan-4.0.0/AUTHORS 2022-07-12 11:28:29.000000000 +0200
+++ new/castellan-4.3.0/AUTHORS 2023-09-22 16:47:32.000000000 +0200
@@ -17,13 +17,16 @@
Doug Hellmann <[email protected]>
Douglas Mendizábal <[email protected]>
Douglas Mendizábal <[email protected]>
+Dr. Jens Harbott <[email protected]>
Dung Ha <[email protected]>
Ellen Batbouta <[email protected]>
Elod Illes <[email protected]>
Eric Harney <[email protected]>
Fernando Diaz <[email protected]>
Flavio Percoco <[email protected]>
+Ghanshyam <[email protected]>
Ghanshyam Mann <[email protected]>
+Grzegorz Grasza <[email protected]>
Hervé Beraud <[email protected]>
Ian Wienand <[email protected]>
Ivan Kolodyazhny <[email protected]>
@@ -44,6 +47,7 @@
Lingxian Kong <[email protected]>
Luigi Toscano <[email protected]>
Mark Goddard <[email protected]>
+Mauricio Harley <[email protected]>
Michael McCune <[email protected]>
Moises Guimaraes de Medeiros <[email protected]>
Moisés Guimarães de Medeiros <[email protected]>
@@ -55,6 +59,7 @@
Pavlo Shchelokovskyy <[email protected]>
Robert Clark <[email protected]>
Sam Morrison <[email protected]>
+Scott Solkhon <[email protected]>
Sean McGinnis <[email protected]>
Steve Martinelli <[email protected]>
Sungjin Yook <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/ChangeLog
new/castellan-4.3.0/ChangeLog
--- old/castellan-4.0.0/ChangeLog 2022-07-12 11:28:29.000000000 +0200
+++ new/castellan-4.3.0/ChangeLog 2023-09-22 16:47:32.000000000 +0200
@@ -1,6 +1,39 @@
CHANGES
=======
+4.3.0
+-----
+
+* Revert "Add secret consumers"
+* Revert "Implement force parameter"
+* Revert "Add secret consumers functional tests"
+* Revert "Add force parameter functional tests"
+* Revert "Add secret consumers documentation and release note"
+* Update TOX\_CONSTRAINTS\_FILE for stable/2023.2
+* Update .gitreview for stable/2023.2
+
+4.2.0
+-----
+
+* Revert "Moves supported python runtimes from version 3.8 to 3.10"
+* Moves supported python runtimes from version 3.8 to 3.10
+* Update master for stable/2023.1
+* Add secret consumers documentation and release note
+* Add force parameter functional tests
+* Add secret consumers functional tests
+* Implement force parameter
+* Add secret consumers
+
+4.1.0
+-----
+
+* Initial change to add secret consumers
+* Add support for specifying Vault KV path
+* Fix tox4 error
+* Make tests more consistent
+* Add Python3 antelope unit tests
+* Update master for stable/zed
+
4.0.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/PKG-INFO new/castellan-4.3.0/PKG-INFO
--- old/castellan-4.0.0/PKG-INFO 2022-07-12 11:28:29.794007300 +0200
+++ new/castellan-4.3.0/PKG-INFO 2023-09-22 16:47:32.592500000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: castellan
-Version: 4.0.0
+Version: 4.3.0
Summary: Generic Key Manager interface for OpenStack
Home-page: https://docs.openstack.org/castellan/latest/
Author: OpenStack
@@ -36,6 +36,7 @@
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/castellan/common/objects/key.py
new/castellan-4.3.0/castellan/common/objects/key.py
--- old/castellan-4.0.0/castellan/common/objects/key.py 2022-07-12
11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/common/objects/key.py 2023-09-22
16:47:08.000000000 +0200
@@ -57,6 +57,7 @@
dict_fields["algorithm"] = self.algorithm
dict_fields["bit_length"] = self.bit_length
+ dict_fields["consumers"] = self.consumers
return dict_fields
@@ -78,6 +79,7 @@
name=dict_fields["name"],
created=dict_fields["created"],
id=id,
+ consumers=dict_fields["consumers"]
)
except KeyError as e:
raise exception.InvalidManagedObjectDictError(field=str(e))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/common/objects/managed_object.py
new/castellan-4.3.0/castellan/common/objects/managed_object.py
--- old/castellan-4.0.0/castellan/common/objects/managed_object.py
2022-07-12 11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/common/objects/managed_object.py
2023-09-22 16:47:08.000000000 +0200
@@ -29,12 +29,13 @@
class ManagedObject(object, metaclass=abc.ABCMeta):
"""Base class to represent all managed objects."""
- def __init__(self, name=None, created=None, id=None):
+ def __init__(self, name=None, created=None, id=None, consumers=[]):
"""Managed Object
:param name: the name of the managed object.
:param created: the time a managed object was created.
:param id: the ID of the object, generated after storing the object.
+ :param consumers: the list of object's consumers.
"""
self._name = name
@@ -46,6 +47,7 @@
type(created))
self._id = id
+ self._consumers = consumers
@property
def id(self):
@@ -74,6 +76,14 @@
return self._created
@property
+ def consumers(self):
+ """Returns the list of consumers for this object.
+
+ Returns the object's consumers or [] if the object does not have any.
+ """
+ return self._consumers
+
+ @property
@abc.abstractmethod
def format(self):
"""Returns the encoding format.
@@ -111,7 +121,8 @@
pass
@classmethod
- def from_dict(cls, dict_fields, id=None, metadata_only=False):
+ def from_dict(cls, dict_fields, id=None, metadata_only=False,
+ consumers=[]):
"""Returns an instance of this class based on a dict object.
:param dict_fields: The dictionary containing all necessary params
@@ -119,6 +130,7 @@
:param id: The optional param 'id' to be passed to the constructor.
:param metadata_only: A switch to create an instance with metadata
only, without the secret itself.
+ :param consumers: A list with object's consumers.
"""
try:
value = None
@@ -134,6 +146,7 @@
name=dict_fields["name"],
created=dict_fields["created"],
id=id,
+ consumers=consumers
)
except KeyError as e:
raise exception.InvalidManagedObjectDictError(field=str(e))
@@ -159,4 +172,5 @@
"name": self.name,
"created": self.created,
"value": value,
+ "consumers": self.consumers
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/common/objects/opaque_data.py
new/castellan-4.3.0/castellan/common/objects/opaque_data.py
--- old/castellan-4.0.0/castellan/common/objects/opaque_data.py 2022-07-12
11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/common/objects/opaque_data.py 2023-09-22
16:47:08.000000000 +0200
@@ -25,13 +25,14 @@
class OpaqueData(managed_object.ManagedObject):
"""This class represents opaque data."""
- def __init__(self, data, name=None, created=None, id=None):
+ def __init__(self, data, name=None, created=None, id=None, consumers=[]):
"""Create a new OpaqueData object.
Expected type for data is a bytestring.
"""
self._data = data
- super().__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id,
+ consumers=consumers)
@classmethod
def managed_type(cls):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/common/objects/passphrase.py
new/castellan-4.3.0/castellan/common/objects/passphrase.py
--- old/castellan-4.0.0/castellan/common/objects/passphrase.py 2022-07-12
11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/common/objects/passphrase.py 2023-09-22
16:47:08.000000000 +0200
@@ -25,13 +25,15 @@
class Passphrase(managed_object.ManagedObject):
"""This class represents a passphrase."""
- def __init__(self, passphrase, name=None, created=None, id=None):
+ def __init__(self, passphrase, name=None, created=None, id=None,
+ consumers=[]):
"""Create a new Passphrase object.
The expected type for the passphrase is a bytestring.
"""
self._passphrase = passphrase
- super().__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id,
+ consumers=consumers)
@classmethod
def managed_type(cls):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/common/objects/private_key.py
new/castellan-4.3.0/castellan/common/objects/private_key.py
--- old/castellan-4.0.0/castellan/common/objects/private_key.py 2022-07-12
11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/common/objects/private_key.py 2023-09-22
16:47:08.000000000 +0200
@@ -26,7 +26,7 @@
"""This class represents private keys."""
def __init__(self, algorithm, bit_length, key,
- name=None, created=None, id=None):
+ name=None, created=None, id=None, consumers=[]):
"""Create a new PrivateKey object.
The arguments specify the algorithm and bit length for the asymmetric
@@ -35,7 +35,8 @@
self._alg = algorithm
self._bit_length = bit_length
self._key = key
- super().__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id,
+ consumers=consumers)
@classmethod
def managed_type(cls):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/common/objects/public_key.py
new/castellan-4.3.0/castellan/common/objects/public_key.py
--- old/castellan-4.0.0/castellan/common/objects/public_key.py 2022-07-12
11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/common/objects/public_key.py 2023-09-22
16:47:08.000000000 +0200
@@ -26,7 +26,7 @@
"""This class represents public keys."""
def __init__(self, algorithm, bit_length, key,
- name=None, created=None, id=None):
+ name=None, created=None, id=None, consumers=[]):
"""Create a new PublicKey object.
The arguments specify the algorithm and bit length for the asymmetric
@@ -36,7 +36,8 @@
self._alg = algorithm
self._bit_length = bit_length
self._key = key
- super().__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id,
+ consumers=consumers)
@classmethod
def managed_type(cls):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/common/objects/symmetric_key.py
new/castellan-4.3.0/castellan/common/objects/symmetric_key.py
--- old/castellan-4.0.0/castellan/common/objects/symmetric_key.py
2022-07-12 11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/common/objects/symmetric_key.py
2023-09-22 16:47:08.000000000 +0200
@@ -26,7 +26,7 @@
"""This class represents symmetric keys."""
def __init__(self, algorithm, bit_length, key,
- name=None, created=None, id=None):
+ name=None, created=None, id=None, consumers=[]):
"""Create a new SymmetricKey object.
The arguments specify the algorithm and bit length for the symmetric
@@ -35,7 +35,8 @@
self._alg = algorithm
self._bit_length = bit_length
self._key = key
- super().__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id,
+ consumers=consumers)
@classmethod
def managed_type(cls):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/castellan/common/objects/x_509.py
new/castellan-4.3.0/castellan/common/objects/x_509.py
--- old/castellan-4.0.0/castellan/common/objects/x_509.py 2022-07-12
11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/common/objects/x_509.py 2023-09-22
16:47:08.000000000 +0200
@@ -25,13 +25,14 @@
class X509(certificate.Certificate):
"""This class represents X.509 certificates."""
- def __init__(self, data, name=None, created=None, id=None):
+ def __init__(self, data, name=None, created=None, id=None, consumers=[]):
"""Create a new X509 object.
The data should be in a bytestring.
"""
self._data = data
- super().__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id,
+ consumers=consumers)
@classmethod
def managed_type(cls):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/key_manager/vault_key_manager.py
new/castellan-4.3.0/castellan/key_manager/vault_key_manager.py
--- old/castellan-4.0.0/castellan/key_manager/vault_key_manager.py
2022-07-12 11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/key_manager/vault_key_manager.py
2023-09-22 16:47:08.000000000 +0200
@@ -54,6 +54,9 @@
default=_DEFAULT_MOUNTPOINT,
help='Mountpoint of KV store in Vault to use, for example: '
'{}'.format(_DEFAULT_MOUNTPOINT)),
+ cfg.StrOpt('kv_path',
+ help='Path relative to root of KV store in Vault to use.'
+ ),
cfg.IntOpt('kv_version',
default=_DEFAULT_VERSION,
help='Version of KV store in Vault to use, for example: '
@@ -101,6 +104,7 @@
self._approle_token_ttl = None
self._approle_token_issue = None
self._kv_mountpoint = self._conf.vault.kv_mountpoint
+ self._kv_path = self._conf.vault.kv_path
self._kv_version = self._conf.vault.kv_version
self._vault_url = self._conf.vault.vault_url
self._namespace = self._conf.vault.namespace
@@ -115,14 +119,14 @@
return self._vault_url
def _get_resource_url(self, key_id=None):
- return '{}v1/{}/{}{}'.format(
+ return '{}v1/{}/{}{}{}'.format(
self._get_url(),
self._kv_mountpoint,
'' if self._kv_version == 1 else
'data/' if key_id else
'metadata/', # no key_id is for listing and 'data/' doesn't works
-
+ (self._kv_path + '/') if self._kv_path else '',
key_id if key_id else '?list=true')
@property
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/castellan/options.py
new/castellan-4.3.0/castellan/options.py
--- old/castellan-4.0.0/castellan/options.py 2022-07-12 11:27:50.000000000
+0200
+++ new/castellan-4.3.0/castellan/options.py 2023-09-22 16:47:08.000000000
+0200
@@ -39,7 +39,7 @@
verify_ssl_path=None,
api_class=None, vault_root_token_id=None,
vault_approle_role_id=None, vault_approle_secret_id=None,
- vault_kv_mountpoint=None, vault_url=None,
+ vault_kv_mountpoint=None, vault_kv_path=None, vault_url=None,
vault_ssl_ca_crt_file=None, vault_use_ssl=None,
vault_namespace=None,
barbican_endpoint_type=None,
@@ -61,6 +61,7 @@
:param vault_approle_secret_id: Use this for the approle secret_id
for vault.
:param vault_kv_mountpoint: Mountpoint of KV store in vault to use.
+ :param vault_kv_path: Path relative to root of KV store in Vault to use.
:param vault_url: Use this for the url for vault.
:param vault_use_ssl: Use this to force vault driver to use ssl.
:param vault_ssl_ca_crt_file: Use this for the CA file for vault.
@@ -124,6 +125,9 @@
if vault_kv_mountpoint is not None:
conf.set_default('kv_mountpoint', vault_kv_mountpoint,
group=vkm._VAULT_OPT_GROUP)
+ if vault_kv_path is not None:
+ conf.set_default('kv_path', vault_kv_path,
+ group=vkm._VAULT_OPT_GROUP)
if vault_url is not None:
conf.set_default('vault_url', vault_url,
group=vkm._VAULT_OPT_GROUP)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/tests/functional/key_manager/test_key_manager.py
new/castellan-4.3.0/castellan/tests/functional/key_manager/test_key_manager.py
---
old/castellan-4.0.0/castellan/tests/functional/key_manager/test_key_manager.py
2022-07-12 11:27:50.000000000 +0200
+++
new/castellan-4.3.0/castellan/tests/functional/key_manager/test_key_manager.py
2023-09-22 16:47:08.000000000 +0200
@@ -18,6 +18,7 @@
These test cases should pass against any key manager.
"""
+from oslo_utils import uuidutils
from castellan.common import exception
from castellan.common.objects import opaque_data
@@ -57,13 +58,13 @@
def _get_test_opaque_data():
- data = bytes(b'opaque data')
+ data = bytes(uuidutils.generate_uuid(), encoding='utf-8')
opaque_object = opaque_data.OpaqueData(data)
return opaque_object
def _get_test_passphrase():
- data = bytes(b'passphrase')
+ data = bytes(uuidutils.generate_uuid(), encoding='utf-8')
passphrase_object = passphrase.Passphrase(data)
return passphrase_object
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/tests/unit/objects/test_opaque.py
new/castellan-4.3.0/castellan/tests/unit/objects/test_opaque.py
--- old/castellan-4.0.0/castellan/tests/unit/objects/test_opaque.py
2022-07-12 11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/tests/unit/objects/test_opaque.py
2023-09-22 16:47:08.000000000 +0200
@@ -26,12 +26,16 @@
def _create_data(self):
return opaque_data.OpaqueData(self.data,
self.name,
- self.created)
+ self.created,
+ consumers=self.consumers)
def setUp(self):
self.data = bytes(b"secret opaque data")
self.name = 'my opaque'
self.created = 1448088699
+ self.consumers = [{'service': 'service_test',
+ 'resource_type': 'type_test',
+ 'resource_id': 'id_test'}]
self.opaque_data = self._create_data()
super(OpaqueDataTestCase, self).setUp()
@@ -55,11 +59,15 @@
def test_get_created(self):
self.assertEqual(self.created, self.opaque_data.created)
+ def test_get_consumers(self):
+ self.assertEqual(self.consumers, self.opaque_data.consumers)
+
def test_get_created_none(self):
created = None
data = opaque_data.OpaqueData(self.data,
self.name,
- created)
+ created,
+ consumers=self.consumers)
self.assertEqual(created, data.created)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/tests/unit/objects/test_passphrase.py
new/castellan-4.3.0/castellan/tests/unit/objects/test_passphrase.py
--- old/castellan-4.0.0/castellan/tests/unit/objects/test_passphrase.py
2022-07-12 11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/tests/unit/objects/test_passphrase.py
2023-09-22 16:47:08.000000000 +0200
@@ -26,12 +26,16 @@
def _create_passphrase(self):
return passphrase.Passphrase(self.passphrase_data,
self.name,
- self.created)
+ self.created,
+ consumers=self.consumers)
def setUp(self):
self.passphrase_data = bytes(b"secret passphrase")
self.name = 'my phrase'
self.created = 1448088699
+ self.consumers = [{'service': 'service_test',
+ 'resource_type': 'type_test',
+ 'resource_id': 'id_test'}]
self.passphrase = self._create_passphrase()
super(PassphraseTestCase, self).setUp()
@@ -55,11 +59,15 @@
def test_get_created(self):
self.assertEqual(self.created, self.passphrase.created)
+ def test_get_consumers(self):
+ self.assertEqual(self.consumers, self.passphrase.consumers)
+
def test_get_created_none(self):
created = None
phrase = passphrase.Passphrase(self.passphrase_data,
self.name,
- created)
+ created,
+ consumers=self.consumers)
self.assertEqual(created, phrase.created)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/tests/unit/objects/test_private_key.py
new/castellan-4.3.0/castellan/tests/unit/objects/test_private_key.py
--- old/castellan-4.0.0/castellan/tests/unit/objects/test_private_key.py
2022-07-12 11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/tests/unit/objects/test_private_key.py
2023-09-22 16:47:08.000000000 +0200
@@ -29,7 +29,8 @@
self.bit_length,
self.encoded,
self.name,
- self.created)
+ self.created,
+ consumers=self.consumers)
def setUp(self):
self.algorithm = 'RSA'
@@ -37,6 +38,9 @@
self.encoded = bytes(utils.get_private_key_der())
self.name = 'my key'
self.created = 1448088699
+ self.consumers = [{'service': 'service_test',
+ 'resource_type': 'type_test',
+ 'resource_id': 'id_test'}]
super(PrivateKeyTestCase, self).setUp()
@@ -69,13 +73,17 @@
def test_get_created(self):
self.assertEqual(self.created, self.key.created)
+ def test_get_consumers(self):
+ self.assertEqual(self.consumers, self.key.consumers)
+
def test_get_created_none(self):
created = None
key = private_key.PrivateKey(self.algorithm,
self.bit_length,
self.encoded,
self.name,
- created)
+ created,
+ consumers=self.consumers)
self.assertEqual(created, key.created)
@@ -88,7 +96,8 @@
other_key = private_key.PrivateKey(self.algorithm,
self.bit_length,
- self.encoded)
+ self.encoded,
+ consumers=self.consumers)
self.assertTrue(self.key == other_key)
self.assertFalse(self.key is other_key)
@@ -100,14 +109,16 @@
other_key = private_key.PrivateKey('DSA',
self.bit_length,
self.encoded,
- self.name)
+ self.name,
+ consumers=self.consumers)
self.assertTrue(self.key != other_key)
def test___ne___bit_length(self):
other_key = private_key.PrivateKey(self.algorithm,
4096,
self.encoded,
- self.name)
+ self.name,
+ consumers=self.consumers)
self.assertTrue(self.key != other_key)
def test___ne___encoded(self):
@@ -115,9 +126,22 @@
other_key = private_key.PrivateKey(self.algorithm,
self.bit_length,
different_encoded,
- self.name)
+ self.name,
+ consumers=self.consumers)
self.assertTrue(self.key != other_key)
+ def test___ne___consumers(self):
+ different_consumers = [{'service': 'other_service',
+ 'resource_type': 'other_type',
+ 'resource_id': 'other_id'}]
+ other_key = private_key.PrivateKey(self.algorithm,
+ self.bit_length,
+ self.encoded,
+ self.name,
+ consumers=different_consumers)
+
+ self.assertTrue(self.key is not other_key)
+
def test_to_and_from_dict(self):
other = objects.from_dict(self.key.to_dict())
self.assertEqual(self.key, other)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/tests/unit/objects/test_public_key.py
new/castellan-4.3.0/castellan/tests/unit/objects/test_public_key.py
--- old/castellan-4.0.0/castellan/tests/unit/objects/test_public_key.py
2022-07-12 11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/tests/unit/objects/test_public_key.py
2023-09-22 16:47:08.000000000 +0200
@@ -29,7 +29,8 @@
self.bit_length,
self.encoded,
self.name,
- self.created)
+ self.created,
+ consumers=self.consumers)
def setUp(self):
self.algorithm = 'RSA'
@@ -37,6 +38,9 @@
self.encoded = bytes(utils.get_public_key_der())
self.name = 'my key'
self.created = 1448088699
+ self.consumers = [{'service': 'service_test',
+ 'resource_type': 'type_test',
+ 'resource_id': 'id_test'}]
super(PublicKeyTestCase, self).setUp()
@@ -48,7 +52,8 @@
self.bit_length,
None,
self.name,
- self.created)
+ self.created,
+ consumers=self.consumers)
self.assertTrue(k.is_metadata_only())
def test_get_algorithm(self):
@@ -69,13 +74,17 @@
def test_get_created(self):
self.assertEqual(self.created, self.key.created)
+ def test_get_consumers(self):
+ self.assertEqual(self.consumers, self.key.consumers)
+
def test_get_created_none(self):
created = None
key = public_key.PublicKey(self.algorithm,
self.bit_length,
self.encoded,
self.name,
- created)
+ created,
+ consumers=self.consumers)
self.assertEqual(created, key.created)
@@ -88,7 +97,8 @@
other_key = public_key.PublicKey(self.algorithm,
self.bit_length,
- self.encoded)
+ self.encoded,
+ consumers=self.consumers)
self.assertTrue(self.key == other_key)
self.assertFalse(self.key is other_key)
@@ -100,14 +110,16 @@
other_key = public_key.PublicKey('DSA',
self.bit_length,
self.encoded,
- self.name)
+ self.name,
+ consumers=self.consumers)
self.assertTrue(self.key != other_key)
def test___ne___bit_length(self):
other_key = public_key.PublicKey(self.algorithm,
4096,
self.encoded,
- self.name)
+ self.name,
+ consumers=self.consumers)
self.assertTrue(self.key != other_key)
def test___ne___encoded(self):
@@ -115,9 +127,21 @@
other_key = public_key.PublicKey(self.algorithm,
self.bit_length,
different_encoded,
- self.name)
+ self.name,
+ consumers=self.consumers)
self.assertTrue(self.key != other_key)
+ def test___ne___consumers(self):
+ different_consumers = [{'service': 'other_service',
+ 'resource_type': 'other_type',
+ 'resource_id': 'other_id'}]
+ other_key = public_key.PublicKey(self.algorithm,
+ self.bit_length,
+ self.encoded,
+ self.name,
+ consumers=different_consumers)
+ self.assertTrue(self.key is not other_key)
+
def test_to_and_from_dict(self):
other = objects.from_dict(self.key.to_dict())
self.assertEqual(self.key, other)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/tests/unit/objects/test_symmetric_key.py
new/castellan-4.3.0/castellan/tests/unit/objects/test_symmetric_key.py
--- old/castellan-4.0.0/castellan/tests/unit/objects/test_symmetric_key.py
2022-07-12 11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/tests/unit/objects/test_symmetric_key.py
2023-09-22 16:47:08.000000000 +0200
@@ -28,7 +28,8 @@
self.bit_length,
self.encoded,
self.name,
- self.created)
+ self.created,
+ consumers=self.consumers)
def setUp(self):
self.algorithm = 'AES'
@@ -36,6 +37,9 @@
self.bit_length = len(self.encoded) * 8
self.name = 'my key'
self.created = 1448088699
+ self.consumers = [{'service': 'service_test',
+ 'resource_type': 'type_test',
+ 'resource_id': 'id_test'}]
super(SymmetricKeyTestCase, self).setUp()
@@ -47,7 +51,8 @@
self.bit_length,
None,
self.name,
- self.created)
+ self.created,
+ consumers=self.consumers)
self.assertTrue(k.is_metadata_only())
def test_get_format(self):
@@ -68,13 +73,17 @@
def test_get_created(self):
self.assertEqual(self.created, self.key.created)
+ def test_get_consumers(self):
+ self.assertEqual(self.consumers, self.key.consumers)
+
def test_get_created_none(self):
created = None
key = sym_key.SymmetricKey(self.algorithm,
self.bit_length,
self.encoded,
self.name,
- created)
+ created,
+ consumers=self.consumers)
self.assertEqual(created, key.created)
@@ -87,7 +96,8 @@
other_key = sym_key.SymmetricKey(self.algorithm,
self.bit_length,
- self.encoded)
+ self.encoded,
+ consumers=self.consumers)
self.assertTrue(self.key == other_key)
self.assertFalse(self.key is other_key)
@@ -99,14 +109,16 @@
other_key = sym_key.SymmetricKey('DES',
self.bit_length,
self.encoded,
- self.name)
+ self.name,
+ consumers=self.consumers)
self.assertTrue(self.key != other_key)
def test___ne___bit_length(self):
other_key = sym_key.SymmetricKey(self.algorithm,
self.bit_length * 2,
self.encoded,
- self.name)
+ self.name,
+ consumers=self.consumers)
self.assertTrue(self.key != other_key)
def test___ne___encoded(self):
@@ -114,9 +126,21 @@
other_key = sym_key.SymmetricKey(self.algorithm,
self.bit_length,
different_encoded,
- self.name)
+ self.name,
+ consumers=self.consumers)
self.assertTrue(self.key != other_key)
+ def test___ne___consumers(self):
+ different_consumers = [{'service': 'other_service',
+ 'resource_type': 'other_type',
+ 'resource_id': 'other_id'}]
+ other_key = sym_key.SymmetricKey(self.algorithm,
+ self.bit_length,
+ self.encoded,
+ self.name,
+ consumers=different_consumers)
+ self.assertTrue(self.key is not other_key)
+
def test_to_and_from_dict(self):
other = objects.from_dict(self.key.to_dict())
self.assertEqual(self.key, other)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-4.0.0/castellan/tests/unit/objects/test_x_509.py
new/castellan-4.3.0/castellan/tests/unit/objects/test_x_509.py
--- old/castellan-4.0.0/castellan/tests/unit/objects/test_x_509.py
2022-07-12 11:27:50.000000000 +0200
+++ new/castellan-4.3.0/castellan/tests/unit/objects/test_x_509.py
2023-09-22 16:47:08.000000000 +0200
@@ -27,12 +27,16 @@
def _create_cert(self):
return x_509.X509(self.data,
self.name,
- self.created)
+ self.created,
+ consumers=self.consumers)
def setUp(self):
self.data = utils.get_certificate_der()
self.name = 'my cert'
self.created = 1448088699
+ self.consumers = [{'service': 'service_test',
+ 'resource_type': 'type_test',
+ 'resource_id': 'id_test'}]
super(X509TestCase, self).setUp()
@@ -55,11 +59,15 @@
def test_get_created(self):
self.assertEqual(self.created, self.cert.created)
+ def test_get_consumers(self):
+ self.assertEqual(self.consumers, self.cert.consumers)
+
def test_get_created_none(self):
created = None
cert = x_509.X509(self.data,
self.name,
- created)
+ created,
+ consumers=self.consumers)
self.assertEqual(created, cert.created)
@@ -82,6 +90,16 @@
other_x509 = x_509.X509(b'\x00\x00\x00', self.name)
self.assertTrue(self.cert != other_x509)
+ def test___ne___consumers(self):
+ different_consumers = [{'service': 'other_service',
+ 'resource_type': 'other_type',
+ 'resource_id': 'other_id'}]
+ other_cert = x_509.X509(self.data,
+ self.name,
+ self.created,
+ consumers=different_consumers)
+ self.assertTrue(self.cert is not other_cert)
+
def test_to_and_from_dict(self):
other = objects.from_dict(self.cert.to_dict())
self.assertEqual(self.cert, other)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/castellan.egg-info/PKG-INFO
new/castellan-4.3.0/castellan.egg-info/PKG-INFO
--- old/castellan-4.0.0/castellan.egg-info/PKG-INFO 2022-07-12
11:28:29.000000000 +0200
+++ new/castellan-4.3.0/castellan.egg-info/PKG-INFO 2023-09-22
16:47:32.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: castellan
-Version: 4.0.0
+Version: 4.3.0
Summary: Generic Key Manager interface for OpenStack
Home-page: https://docs.openstack.org/castellan/latest/
Author: OpenStack
@@ -36,6 +36,7 @@
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/castellan.egg-info/SOURCES.txt
new/castellan-4.3.0/castellan.egg-info/SOURCES.txt
--- old/castellan-4.0.0/castellan.egg-info/SOURCES.txt 2022-07-12
11:28:29.000000000 +0200
+++ new/castellan-4.3.0/castellan.egg-info/SOURCES.txt 2023-09-22
16:47:32.000000000 +0200
@@ -117,6 +117,7 @@
releasenotes/notes/vault-approle-support-5ea04daea07a152f.yaml
releasenotes/notes/vault-kv-mountpoint-919eb547764a0c74.yaml
releasenotes/notes/vault-namespaces-7d334e7407396df9.yaml
+releasenotes/source/2023.1.rst
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/pike.rst
@@ -130,6 +131,7 @@
releasenotes/source/wallaby.rst
releasenotes/source/xena.rst
releasenotes/source/yoga.rst
+releasenotes/source/zed.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
tools/setup-vault-env.sh
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/castellan.egg-info/pbr.json
new/castellan-4.3.0/castellan.egg-info/pbr.json
--- old/castellan-4.0.0/castellan.egg-info/pbr.json 2022-07-12
11:28:29.000000000 +0200
+++ new/castellan-4.3.0/castellan.egg-info/pbr.json 2023-09-22
16:47:32.000000000 +0200
@@ -1 +1 @@
-{"git_version": "73569c8", "is_release": true}
\ No newline at end of file
+{"git_version": "7033db5", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/releasenotes/source/2023.1.rst
new/castellan-4.3.0/releasenotes/source/2023.1.rst
--- old/castellan-4.0.0/releasenotes/source/2023.1.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/castellan-4.3.0/releasenotes/source/2023.1.rst 2023-09-22
16:47:08.000000000 +0200
@@ -0,0 +1,6 @@
+===========================
+2023.1 Series Release Notes
+===========================
+
+.. release-notes::
+ :branch: stable/2023.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/releasenotes/source/index.rst
new/castellan-4.3.0/releasenotes/source/index.rst
--- old/castellan-4.0.0/releasenotes/source/index.rst 2022-07-12
11:27:50.000000000 +0200
+++ new/castellan-4.3.0/releasenotes/source/index.rst 2023-09-22
16:47:08.000000000 +0200
@@ -6,6 +6,8 @@
:maxdepth: 1
unreleased
+ 2023.1
+ zed
yoga
xena
wallaby
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/releasenotes/source/zed.rst
new/castellan-4.3.0/releasenotes/source/zed.rst
--- old/castellan-4.0.0/releasenotes/source/zed.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/castellan-4.3.0/releasenotes/source/zed.rst 2023-09-22
16:47:08.000000000 +0200
@@ -0,0 +1,6 @@
+========================
+Zed Series Release Notes
+========================
+
+.. release-notes::
+ :branch: stable/zed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/setup.cfg
new/castellan-4.3.0/setup.cfg
--- old/castellan-4.0.0/setup.cfg 2022-07-12 11:28:29.794007300 +0200
+++ new/castellan-4.3.0/setup.cfg 2023-09-22 16:47:32.592500000 +0200
@@ -17,6 +17,7 @@
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
+ Programming Language :: Python :: 3.10
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: Implementation :: CPython
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-4.0.0/tox.ini new/castellan-4.3.0/tox.ini
--- old/castellan-4.0.0/tox.ini 2022-07-12 11:27:50.000000000 +0200
+++ new/castellan-4.3.0/tox.ini 2023-09-22 16:47:08.000000000 +0200
@@ -2,7 +2,6 @@
minversion = 3.18.0
envlist = py3,pep8
ignore_basepython_conflict = True
-skipsdist = True
[testenv]
usedevelop = True
@@ -11,10 +10,10 @@
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./castellan/tests/unit
deps =
-
-c{env:TOX_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
+
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2023.2}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-commands = stestr run --slowest {posargs}
+commands = stestr run --slowest --concurrency=1 {posargs}
[testenv:pep8]
commands =
@@ -81,7 +80,7 @@
setenv =
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./castellan/tests/functional
-commands = stestr run --slowest {posargs}
+commands = stestr run --slowest --concurrency=1 {posargs}
[testenv:functional-vault]
passenv = HOME
@@ -90,7 +89,9 @@
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./castellan/tests/functional
commands =
- {toxinidir}/tools/setup-vault-env.sh pifpaf -e VAULT_TEST run vault --
stestr run --slowest {posargs}
+ {toxinidir}/tools/setup-vault-env.sh pifpaf -e VAULT_TEST run vault --
stestr run --concurrency=1 --slowest {posargs}
+allowlist_externals =
+ {toxinidir}/tools/setup-vault-env.sh
[testenv:genconfig]
commands =