Hello community,
here is the log from the commit of package python-castellan for
openSUSE:Factory checked in at 2020-10-26 16:14:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-castellan (Old)
and /work/SRC/openSUSE:Factory/.python-castellan.new.3463 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-castellan"
Mon Oct 26 16:14:35 2020 rev:12 rq:841171 version:3.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-castellan/python-castellan.changes
2020-06-05 20:11:00.017890802 +0200
+++
/work/SRC/openSUSE:Factory/.python-castellan.new.3463/python-castellan.changes
2020-10-26 16:15:34.342896205 +0100
@@ -1,0 +2,27 @@
+Fri Oct 9 19:12:45 UTC 2020 - [email protected]
+
+- update to version 3.6.0
+ - Remove translation sections from setup.cfg
+ - Bump vault version
+ - Bump default tox env from py37 to py38
+ - add "verify_ssl_path" config for barbican key manager
+ - Fix hacking min version to 3.0.1
+ - Add to_dict and from_dict conversions to managed objects
+ - Update lower-constraints versions
+ - Add py38 package metadata
+ - drop mock from lower-constraints
+ - migrate testing to ubuntu focal
+ - Update hacking for Python3
+ - Add handler for Bad Request error during Vault authentication
+ - Replaces _get_api_version with config option
+ - Add Python3 victoria unit tests
+ - Switch to newer openstackdocstheme and reno versions
+ - Update master for stable/ussuri
+ - Use 'barbican_endpoint_type'config option to get endpoint from catalog
+ - zuul: use the new barbican simple-crypto job
+ - Some Cleanups
+ - Bump bandit version
+ - [goal] Migrate testing to ubuntu focal
+ - Use unittest.mock instead of third party mock
+
+-------------------------------------------------------------------
Old:
----
castellan-3.0.1.tar.gz
New:
----
castellan-3.6.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-castellan.spec ++++++
--- /var/tmp/diff_new_pack.d4crcu/_old 2020-10-26 16:15:34.906896724 +0100
+++ /var/tmp/diff_new_pack.d4crcu/_new 2020-10-26 16:15:34.910896728 +0100
@@ -17,16 +17,16 @@
Name: python-castellan
-Version: 3.0.1
+Version: 3.6.0
Release: 0
Summary: Generic Key Manager interface for OpenStack
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/castellan
-Source0:
https://files.pythonhosted.org/packages/source/c/castellan/castellan-3.0.1.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/c/castellan/castellan-3.6.0.tar.gz
BuildRequires: openstack-macros
BuildRequires: python3-barbicanclient >= 4.5.2
-BuildRequires: python3-cryptography >= 2.1
+BuildRequires: python3-cryptography >= 2.7
BuildRequires: python3-keystoneauth1 >= 3.4.0
BuildRequires: python3-oslo.config >= 6.4.0
BuildRequires: python3-oslo.log >= 3.36.0
@@ -44,9 +44,9 @@
%package -n python3-castellan
Summary: Generic Key Manager interface for OpenStack
Group: Development/Languages/Python
-Requires: python3-Babel >= 2.3.4
+Requires: python3-Babel
Requires: python3-barbicanclient >= 4.5.2
-Requires: python3-cryptography >= 2.1
+Requires: python3-cryptography >= 2.7
Requires: python3-keystoneauth1 >= 3.4.0
Requires: python3-oslo.config >= 6.4.0
Requires: python3-oslo.context >= 2.19.2
@@ -73,7 +73,7 @@
This package contains the documentation
%prep
-%autosetup -p1 -n castellan-3.0.1
+%autosetup -p1 -n castellan-3.6.0
%py_req_cleanup
%build
++++++ _service ++++++
--- /var/tmp/diff_new_pack.d4crcu/_old 2020-10-26 16:15:34.950896764 +0100
+++ /var/tmp/diff_new_pack.d4crcu/_new 2020-10-26 16:15:34.950896764 +0100
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/ussuri/openstack/castellan/castellan.spec.j2</param>
+ <param
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/victoria/openstack/castellan/castellan.spec.j2</param>
<param name="output-name">python-castellan.spec</param>
- <param
name="requirements">https://opendev.org/openstack/castellan/raw/branch/stable/ussuri/requirements.txt</param>
+ <param
name="requirements">https://opendev.org/openstack/castellan/raw/branch/stable/victoria/requirements.txt</param>
<param name="changelog-email">[email protected]</param>
<param name="changelog-provider">gh,openstack,castellan</param>
</service>
++++++ castellan-3.0.1.tar.gz -> castellan-3.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/.zuul.yaml
new/castellan-3.6.0/.zuul.yaml
--- old/castellan-3.0.1/.zuul.yaml 2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/.zuul.yaml 2020-09-11 21:26:04.000000000 +0200
@@ -1,6 +1,6 @@
- job:
name: castellan-functional-vault
- parent: openstack-tox-py27
+ parent: openstack-tox-py36
description: |
Run tox functional-vault target
required-projects:
@@ -51,16 +51,16 @@
jobs:
- castellan-functional-vault
- castellan-functional-devstack
- - barbican-simple-crypto-devstack-tempest-castellan-from-git
+ - barbican-tempest-plugin-simple-crypto-castellan-src
gate:
jobs:
- castellan-functional-vault
- castellan-functional-devstack
- - barbican-simple-crypto-devstack-tempest-castellan-from-git
+ - barbican-tempest-plugin-simple-crypto-castellan-src
templates:
- check-requirements
- openstack-lower-constraints-jobs
- - openstack-python3-ussuri-jobs
+ - openstack-python3-victoria-jobs
- periodic-stable-jobs
- publish-openstack-docs-pti
- release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/AUTHORS new/castellan-3.6.0/AUTHORS
--- old/castellan-3.0.1/AUTHORS 2020-04-13 19:09:45.000000000 +0200
+++ new/castellan-3.6.0/AUTHORS 2020-09-11 21:27:14.000000000 +0200
@@ -22,7 +22,9 @@
Fernando Diaz <[email protected]>
Flavio Percoco <[email protected]>
Ghanshyam Mann <[email protected]>
+Hervé Beraud <[email protected]>
Ian Wienand <[email protected]>
+Ivan Kolodyazhny <[email protected]>
James E. Blair <[email protected]>
James Page <[email protected]>
Jamie Lennox <[email protected]>
@@ -35,6 +37,7 @@
Kaitlin Farr <[email protected]>
Kiran_totad <[email protected]>
Le Hou <[email protected]>
+Luigi Toscano <[email protected]>
Michael McCune <[email protected]>
Moises Guimaraes de Medeiros <[email protected]>
Moisés Guimarães de Medeiros <[email protected]>
@@ -45,6 +48,7 @@
Paul Bourke <[email protected]>
Pavlo Shchelokovskyy <[email protected]>
Robert Clark <[email protected]>
+Sean McGinnis <[email protected]>
Steve Martinelli <[email protected]>
Sungjin Yook <[email protected]>
Swapnil Kulkarni (coolsvap) <[email protected]>
@@ -64,6 +68,7 @@
liujiong <[email protected]>
melissaml <[email protected]>
rajat29 <[email protected]>
+ramboman <[email protected]>
sonu.kumar <[email protected]>
ting.wang <[email protected]>
wu.chunyang <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/ChangeLog
new/castellan-3.6.0/ChangeLog
--- old/castellan-3.0.1/ChangeLog 2020-04-13 19:09:45.000000000 +0200
+++ new/castellan-3.6.0/ChangeLog 2020-09-11 21:27:14.000000000 +0200
@@ -1,10 +1,60 @@
CHANGES
=======
+3.6.0
+-----
+
+* [goal] Migrate testing to ubuntu focal
+
+3.5.0
+-----
+
+* zuul: use the new barbican simple-crypto job
+* Use 'barbican\_endpoint\_type'config option to get endpoint from catalog
+* Bump bandit version
+
+3.4.0
+-----
+
+* migrate testing to ubuntu focal
+* Add to\_dict and from\_dict conversions to managed objects
+
+3.3.0
+-----
+
+* Bump vault version
+
+3.2.0
+-----
+
+* Replaces \_get\_api\_version with config option
+
+3.1.1
+-----
+
+* Add handler for Bad Request error during Vault authentication
+* drop mock from lower-constraints
+* Some Cleanups
+* Update lower-constraints versions
+
+3.1.0
+-----
+
+* Fix hacking min version to 3.0.1
+* Switch to newer openstackdocstheme and reno versions
+* Remove translation sections from setup.cfg
+* add "verify\_ssl\_path" config for barbican key manager
+* Bump default tox env from py37 to py38
+* Add py38 package metadata
+* Use unittest.mock instead of third party mock
+* Add Python3 victoria unit tests
+* Update master for stable/ussuri
+
3.0.1
-----
* Fix stale references to renamed constant
+* Update hacking for Python3
3.0.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/PKG-INFO new/castellan-3.6.0/PKG-INFO
--- old/castellan-3.0.1/PKG-INFO 2020-04-13 19:09:45.000000000 +0200
+++ new/castellan-3.6.0/PKG-INFO 2020-09-11 21:27:14.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: castellan
-Version: 3.0.1
+Version: 3.6.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.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/babel.cfg
new/castellan-3.6.0/babel.cfg
--- old/castellan-3.0.1/babel.cfg 2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/babel.cfg 1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-[python: **.py]
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/castellan/common/exception.py
new/castellan-3.6.0/castellan/common/exception.py
--- old/castellan-3.0.1/castellan/common/exception.py 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/common/exception.py 2020-09-11
21:26:04.000000000 +0200
@@ -64,6 +64,14 @@
message = _("Key not found, uuid: %(uuid)s")
+class InvalidManagedObjectDictError(CastellanException):
+ message = _("Dict has no field '%(field)s'.")
+
+
+class UnknownManagedObjectTypeError(CastellanException):
+ message = _("Type not found, type: %(type)s")
+
+
class AuthTypeInvalidError(CastellanException):
message = _("Invalid auth_type was specified, auth_type: %(type)s")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/castellan/common/objects/__init__.py
new/castellan-3.6.0/castellan/common/objects/__init__.py
--- old/castellan-3.0.1/castellan/common/objects/__init__.py 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/common/objects/__init__.py 2020-09-11
21:26:04.000000000 +0200
@@ -0,0 +1,49 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from castellan.common import exception
+from castellan.common.objects import opaque_data
+from castellan.common.objects import passphrase
+from castellan.common.objects import private_key
+from castellan.common.objects import public_key
+from castellan.common.objects import symmetric_key
+from castellan.common.objects import x_509
+
+_managed_objects_by_type = {
+ cls.managed_type(): cls for cls in [
+ opaque_data.OpaqueData,
+ passphrase.Passphrase,
+ private_key.PrivateKey,
+ public_key.PublicKey,
+ symmetric_key.SymmetricKey,
+ x_509.X509,
+ ]
+}
+
+
+def from_dict(obj, id=None):
+ try:
+ managed_object_type = obj["type"]
+ except KeyError:
+ raise exception.InvalidManagedObjectDictError(field="type")
+
+ try:
+ cls = _managed_objects_by_type[managed_object_type]
+ except KeyError:
+ raise exception.UnknownManagedObjectTypeError(type=managed_object_type)
+
+ try:
+ managed_object = cls.from_dict(obj, id)
+ except KeyError as e:
+ raise exception.InvalidManagedObjectDictError(field=str(e))
+
+ return managed_object
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/castellan/common/objects/key.py
new/castellan-3.6.0/castellan/common/objects/key.py
--- old/castellan-3.0.1/castellan/common/objects/key.py 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/common/objects/key.py 2020-09-11
21:26:04.000000000 +0200
@@ -22,14 +22,17 @@
"""
import abc
+import binascii
+from castellan.common.objects import exception
from castellan.common.objects import managed_object
class Key(managed_object.ManagedObject):
"""Base class to represent all keys."""
- @abc.abstractproperty
+ @property
+ @abc.abstractmethod
def algorithm(self):
"""Returns the key's algorithm.
@@ -38,7 +41,8 @@
"""
pass
- @abc.abstractproperty
+ @property
+ @abc.abstractmethod
def bit_length(self):
"""Returns the key's bit length.
@@ -47,3 +51,33 @@
the length of the modulus.
"""
pass
+
+ def to_dict(self):
+ dict_fields = super().to_dict()
+
+ dict_fields["algorithm"] = self.algorithm
+ dict_fields["bit_length"] = self.bit_length
+
+ return dict_fields
+
+ @classmethod
+ def from_dict(cls, dict_fields, id=None, metadata_only=False):
+ try:
+ value = None
+
+ # NOTE(moguimar): the managed object's value is exported as
+ # a hex string. For now, this is a compatibility thing with
+ # the already existent vault_key_manager backend.
+ if not metadata_only and dict_fields["value"] is not None:
+ value = binascii.unhexlify(dict_fields["value"])
+
+ return cls(
+ algorithm=dict_fields["algorithm"],
+ bit_length=dict_fields["bit_length"],
+ key=value,
+ name=dict_fields["name"],
+ created=dict_fields["created"],
+ id=id,
+ )
+ except KeyError as e:
+ raise exception.InvalidManagedObjectDictError(field=str(e))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/common/objects/managed_object.py
new/castellan-3.6.0/castellan/common/objects/managed_object.py
--- old/castellan-3.0.1/castellan/common/objects/managed_object.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/common/objects/managed_object.py
2020-09-11 21:26:04.000000000 +0200
@@ -19,7 +19,11 @@
This module defines the ManagedObject class. The ManagedObject class
is the base class to represent all objects managed by the key manager.
"""
+
import abc
+import binascii
+
+from castellan.common import exception
class ManagedObject(object, metaclass=abc.ABCMeta):
@@ -69,7 +73,8 @@
"""
return self._created
- @abc.abstractproperty
+ @property
+ @abc.abstractmethod
def format(self):
"""Returns the encoding format.
@@ -78,6 +83,11 @@
"""
pass
+ @property
+ def value(self):
+ """Returns the managed object value."""
+ return self.get_encoded()
+
@abc.abstractmethod
def get_encoded(self):
"""Returns the encoded object.
@@ -90,3 +100,63 @@
def is_metadata_only(self):
"""Returns if the associated object is only metadata or not."""
return self.get_encoded() is None
+
+ @classmethod
+ @abc.abstractmethod
+ def managed_type(cls):
+ """Returns the managed object type identifier.
+
+ Returns the object's type identifier for serialization purpose.
+ """
+ pass
+
+ @classmethod
+ def from_dict(cls, dict_fields, id=None, metadata_only=False):
+ """Returns an instance of this class based on a dict object.
+
+ :param dict_fields: The dictionary containing all necessary params
+ to create one instance.
+ :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.
+ """
+ try:
+ value = None
+
+ # NOTE(moguimar): the managed object's value is exported as
+ # a hex string. For now, this is a compatibility thing with
+ # the already existent vault_key_manager backend.
+ if not metadata_only and dict_fields["value"] is not None:
+ value = binascii.unhexlify(dict_fields["value"])
+
+ return cls(
+ value,
+ name=dict_fields["name"],
+ created=dict_fields["created"],
+ id=id,
+ )
+ except KeyError as e:
+ raise exception.InvalidManagedObjectDictError(field=str(e))
+
+ def to_dict(self, metadata_only=False):
+ """Returns a dict that can be used with the from_dict() method.
+
+ :param metadata_only: A switch to create an dictionary with metadata
+ only, without the secret itself.
+
+ :rtype: dict
+ """
+ value = None
+
+ # NOTE(moguimar): the managed object's value is exported as
+ # a hex string. For now, this is a compatibility thing with
+ # the already existent vault_key_manager backend.
+ if not metadata_only and self.value is not None:
+ value = binascii.hexlify(self.value).decode("utf-8")
+
+ return {
+ "type": self.managed_type(),
+ "name": self.name,
+ "created": self.created,
+ "value": value,
+ }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/common/objects/opaque_data.py
new/castellan-3.6.0/castellan/common/objects/opaque_data.py
--- old/castellan-3.0.1/castellan/common/objects/opaque_data.py 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/common/objects/opaque_data.py 2020-09-11
21:26:04.000000000 +0200
@@ -31,15 +31,17 @@
Expected type for data is a bytestring.
"""
self._data = data
- super(OpaqueData, self).__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id)
+
+ @classmethod
+ def managed_type(cls):
+ return "opaque"
@property
def format(self):
- """This method returns 'Opaque'."""
return "Opaque"
def get_encoded(self):
- """Returns the data in its original format."""
return self._data
def __eq__(self, other):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/common/objects/passphrase.py
new/castellan-3.6.0/castellan/common/objects/passphrase.py
--- old/castellan-3.0.1/castellan/common/objects/passphrase.py 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/common/objects/passphrase.py 2020-09-11
21:26:04.000000000 +0200
@@ -31,15 +31,17 @@
The expected type for the passphrase is a bytestring.
"""
self._passphrase = passphrase
- super(Passphrase, self).__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id)
+
+ @classmethod
+ def managed_type(cls):
+ return "passphrase"
@property
def format(self):
- """This method returns 'RAW'."""
return "RAW"
def get_encoded(self):
- """Returns the data in a bytestring."""
return self._passphrase
def __eq__(self, other):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/common/objects/private_key.py
new/castellan-3.6.0/castellan/common/objects/private_key.py
--- old/castellan-3.0.1/castellan/common/objects/private_key.py 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/common/objects/private_key.py 2020-09-11
21:26:04.000000000 +0200
@@ -35,25 +35,25 @@
self._alg = algorithm
self._bit_length = bit_length
self._key = key
- super(PrivateKey, self).__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id)
+
+ @classmethod
+ def managed_type(cls):
+ return "private"
@property
def algorithm(self):
- """Returns the algorithm for asymmetric encryption."""
return self._alg
@property
def format(self):
- """This method returns 'PKCS8'."""
return "PKCS8"
@property
def bit_length(self):
- """Returns the key length."""
return self._bit_length
def get_encoded(self):
- """Returns the key in DER encoded format."""
return self._key
def __eq__(self, other):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/common/objects/public_key.py
new/castellan-3.6.0/castellan/common/objects/public_key.py
--- old/castellan-3.0.1/castellan/common/objects/public_key.py 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/common/objects/public_key.py 2020-09-11
21:26:04.000000000 +0200
@@ -36,25 +36,25 @@
self._alg = algorithm
self._bit_length = bit_length
self._key = key
- super(PublicKey, self).__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id)
+
+ @classmethod
+ def managed_type(cls):
+ return "public"
@property
def algorithm(self):
- """Returns the algorithm for asymmetric encryption."""
return self._alg
@property
def format(self):
- """This method returns 'SubjectPublicKeyInfo'."""
return "SubjectPublicKeyInfo"
def get_encoded(self):
- """Returns the key in its encoded format."""
return self._key
@property
def bit_length(self):
- """Returns the key length."""
return self._bit_length
def __eq__(self, other):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/common/objects/symmetric_key.py
new/castellan-3.6.0/castellan/common/objects/symmetric_key.py
--- old/castellan-3.0.1/castellan/common/objects/symmetric_key.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/common/objects/symmetric_key.py
2020-09-11 21:26:04.000000000 +0200
@@ -35,25 +35,25 @@
self._alg = algorithm
self._bit_length = bit_length
self._key = key
- super(SymmetricKey, self).__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id)
+
+ @classmethod
+ def managed_type(cls):
+ return "symmetric"
@property
def algorithm(self):
- """Returns the algorithm for symmetric encryption."""
return self._alg
@property
def format(self):
- """This method returns 'RAW'."""
return "RAW"
def get_encoded(self):
- """Returns the key in its encoded format."""
return self._key
@property
def bit_length(self):
- """Returns the key length."""
return self._bit_length
def __eq__(self, other):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/castellan/common/objects/x_509.py
new/castellan-3.6.0/castellan/common/objects/x_509.py
--- old/castellan-3.0.1/castellan/common/objects/x_509.py 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/common/objects/x_509.py 2020-09-11
21:26:04.000000000 +0200
@@ -31,15 +31,17 @@
The data should be in a bytestring.
"""
self._data = data
- super(X509, self).__init__(name=name, created=created, id=id)
+ super().__init__(name=name, created=created, id=id)
+
+ @classmethod
+ def managed_type(cls):
+ return "certificate"
@property
def format(self):
- """This method returns 'X.509'."""
return "X.509"
def get_encoded(self):
- """Returns the data in its encoded format."""
return self._data
def __eq__(self, other):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/key_manager/barbican_key_manager.py
new/castellan-3.6.0/castellan/key_manager/barbican_key_manager.py
--- old/castellan-3.0.1/castellan/key_manager/barbican_key_manager.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/key_manager/barbican_key_manager.py
2020-09-11 21:26:04.000000000 +0200
@@ -64,7 +64,14 @@
cfg.BoolOpt('verify_ssl',
default=True,
help='Specifies if insecure TLS (https) requests. If False, '
- 'the server\'s certificate will not be validated'),
+ 'the server\'s certificate will not be validated, if '
+ 'True, we can set the verify_ssl_path config meanwhile.'),
+ cfg.StrOpt('verify_ssl_path',
+ default=None,
+ help='A path to a bundle or CA certs to check against, or '
+ 'None for requests to attempt to locate and use '
+ 'certificates which verify_ssh is True. If verify_ssl '
+ 'is False, this is ignored.'),
cfg.StrOpt('barbican_endpoint_type',
default='public',
choices=['public', 'internal', 'admin'],
@@ -109,8 +116,10 @@
try:
auth = self._get_keystone_auth(context)
- sess = session.Session(auth=auth,
- verify=self.conf.barbican.verify_ssl)
+ verify_ssl = self.conf.barbican.verify_ssl
+ verify_ssl_path = self.conf.barbican.verify_ssl_path
+ verify = verify_ssl and verify_ssl_path or verify_ssl
+ sess = session.Session(auth=auth, verify=verify)
self._barbican_endpoint = self._get_barbican_endpoint(auth, sess)
self._barbican_client = barbican_client_import.Client(
@@ -184,7 +193,8 @@
return barbican.barbican_endpoint
elif getattr(auth, 'service_catalog', None):
endpoint_data = auth.service_catalog.endpoint_data_for(
- service_type='key-manager')
+ service_type='key-manager',
+ interface=barbican.barbican_endpoint_type)
return endpoint_data.url
else:
service_parameters = {'service_type': 'key-manager',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/key_manager/vault_key_manager.py
new/castellan-3.6.0/castellan/key_manager/vault_key_manager.py
--- old/castellan-3.0.1/castellan/key_manager/vault_key_manager.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/key_manager/vault_key_manager.py
2020-09-11 21:26:04.000000000 +0200
@@ -41,6 +41,7 @@
_DEFAULT_VAULT_URL = "http://127.0.0.1:8200"
_DEFAULT_MOUNTPOINT = "secret"
+_DEFAULT_VERSION = 2
_vault_opts = [
cfg.StrOpt('root_token_id',
@@ -53,6 +54,10 @@
default=_DEFAULT_MOUNTPOINT,
help='Mountpoint of KV store in Vault to use, for example: '
'{}'.format(_DEFAULT_MOUNTPOINT)),
+ cfg.IntOpt('kv_version',
+ default=_DEFAULT_VERSION,
+ help='Version of KV store in Vault to use, for example: '
+ '{}'.format(_DEFAULT_VERSION)),
cfg.StrOpt('vault_url',
default=_DEFAULT_VAULT_URL,
help='Use this endpoint to connect to Vault, for example: '
@@ -92,41 +97,24 @@
self._approle_token_ttl = None
self._approle_token_issue = None
self._kv_mountpoint = self._conf.vault.kv_mountpoint
+ self._kv_version = self._conf.vault.kv_version
self._vault_url = self._conf.vault.vault_url
if self._vault_url.startswith("https://"):
self._verify_server = self._conf.vault.ssl_ca_crt_file or True
else:
self._verify_server = False
- self._vault_kv_version = None
def _get_url(self):
if not self._vault_url.endswith('/'):
self._vault_url += '/'
return self._vault_url
- def _get_api_version(self):
- if self._vault_kv_version:
- return self._vault_kv_version
-
- resource_url = '{}v1/sys/internal/ui/mounts/{}'.format(
- self._get_url(),
- self._kv_mountpoint
- )
- resp = self._do_http_request(self._session.get, resource_url)
-
- if resp.status_code == requests.codes['not_found']:
- self._vault_kv_version = '1'
- else:
- self._vault_kv_version = resp.json()['data']['options']['version']
-
- return self._vault_kv_version
-
def _get_resource_url(self, key_id=None):
return '{}v1/{}/{}{}'.format(
self._get_url(),
self._kv_mountpoint,
- '' if self._get_api_version() == '1' else
+ '' if self._kv_version == 1 else
'data/' if key_id else
'metadata/', # no key_id is for listing and 'data/' doesn't works
@@ -173,10 +161,14 @@
if resp.status_code == requests.codes['forbidden']:
raise exception.Forbidden()
- resp = resp.json()
- self._cached_approle_token_id = resp['auth']['client_token']
+ resp_data = resp.json()
+
+ if resp.status_code == requests.codes['bad_request']:
+ raise exception.KeyManagerError(', '.join(resp_data['errors']))
+
+ self._cached_approle_token_id = resp_data['auth']['client_token']
self._approle_token_issue = token_issue_utc
- self._approle_token_ttl = resp['auth']['lease_duration']
+ self._approle_token_ttl = resp_data['auth']['lease_duration']
return {'X-Vault-Token': self._approle_token_id}
return {}
@@ -264,7 +256,7 @@
'name': value.name,
'created': value.created
}
- if self._get_api_version() != '1':
+ if self._kv_version > 1:
record = {'data': record}
self._do_http_request(self._session.post,
@@ -309,7 +301,7 @@
raise exception.ManagedObjectNotFoundError(uuid=key_id)
record = resp.json()['data']
- if self._get_api_version() != '1':
+ if self._kv_version > 1:
record = record['data']
key = None if metadata_only else binascii.unhexlify(record['value'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/castellan/options.py
new/castellan-3.6.0/castellan/options.py
--- old/castellan-3.0.1/castellan/options.py 2020-04-13 19:08:56.000000000
+0200
+++ new/castellan-3.6.0/castellan/options.py 2020-09-11 21:26:04.000000000
+0200
@@ -41,6 +41,7 @@
def set_defaults(conf, backend=None, barbican_endpoint=None,
barbican_api_version=None, auth_endpoint=None,
retry_delay=None, number_of_retries=None, verify_ssl=None,
+ 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,
@@ -57,6 +58,7 @@
:param retry_delay: Use this attribute to set retry delay.
:param number_of_retries: Use this attribute to set number of retries.
:param verify_ssl: Use this to specify if ssl should be verified.
+ :param verify_ssl_path: Use this to specify the CA path.
:param vault_root_token_id: Use this for the root token id for vault.
:param vault_approle_role_id: Use this for the approle role_id for vault.
:param vault_approle_secret_id: Use this for the approle secret_id
@@ -103,6 +105,9 @@
if verify_ssl is not None:
conf.set_default('verify_ssl', verify_ssl,
group=bkm._BARBICAN_OPT_GROUP)
+ if verify_ssl_path is not None:
+ conf.set_default('verify_ssl_path', verify_ssl_path,
+ group=bkm._BARBICAN_OPT_GROUP)
if barbican_endpoint_type is not None:
conf.set_default('barbican_endpoint_type', barbican_endpoint_type,
group=bkm._BARBICAN_OPT_GROUP)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/tests/unit/credentials/test_keystone_password.py
new/castellan-3.6.0/castellan/tests/unit/credentials/test_keystone_password.py
---
old/castellan-3.0.1/castellan/tests/unit/credentials/test_keystone_password.py
2020-04-13 19:08:56.000000000 +0200
+++
new/castellan-3.6.0/castellan/tests/unit/credentials/test_keystone_password.py
2020-09-11 21:26:04.000000000 +0200
@@ -117,7 +117,7 @@
self.ks_password_credential)
self.assertFalse(self.ks_password_credential is None)
- self.assertFalse(None == self.ks_password_credential)
+ self.assertFalse(None == self.ks_password_credential) # noqa: E711
other_ks_password_credential = keystone_password.KeystonePassword(
self.password,
@@ -140,7 +140,7 @@
def test___ne___none(self):
self.assertTrue(self.ks_password_credential is not None)
- self.assertTrue(None != self.ks_password_credential)
+ self.assertTrue(None != self.ks_password_credential) # noqa: E711
def test___ne___password(self):
other_password = "wheresmyCat??"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/tests/unit/credentials/test_keystone_token.py
new/castellan-3.6.0/castellan/tests/unit/credentials/test_keystone_token.py
--- old/castellan-3.0.1/castellan/tests/unit/credentials/test_keystone_token.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/tests/unit/credentials/test_keystone_token.py
2020-09-11 21:26:04.000000000 +0200
@@ -93,7 +93,7 @@
self.ks_token_credential)
self.assertFalse(self.ks_token_credential is None)
- self.assertFalse(None == self.ks_token_credential)
+ self.assertFalse(None == self.ks_token_credential) # noqa: E711
other_ks_token_credential = keystone_token.KeystoneToken(
self.token,
@@ -112,7 +112,7 @@
def test___ne___none(self):
self.assertTrue(self.ks_token_credential is not None)
- self.assertTrue(None != self.ks_token_credential)
+ self.assertTrue(None != self.ks_token_credential) # noqa: E711
def test___ne___token(self):
other_token = "5c59e3217d3d4dd297589b297aee2a6f"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/tests/unit/credentials/test_password.py
new/castellan-3.6.0/castellan/tests/unit/credentials/test_password.py
--- old/castellan-3.0.1/castellan/tests/unit/credentials/test_password.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/tests/unit/credentials/test_password.py
2020-09-11 21:26:04.000000000 +0200
@@ -46,7 +46,7 @@
self.assertTrue(self.password_credential is self.password_credential)
self.assertFalse(self.password_credential is None)
- self.assertFalse(None == self.password_credential)
+ self.assertFalse(None == self.password_credential) # noqa: E711
other_password_credential = password.Password(self.username,
self.password)
@@ -55,7 +55,7 @@
def test___ne___none(self):
self.assertTrue(self.password_credential is not None)
- self.assertTrue(None != self.password_credential)
+ self.assertTrue(None != self.password_credential) # noqa: E711
def test___ne___username(self):
other_username = "service"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/tests/unit/credentials/test_token.py
new/castellan-3.6.0/castellan/tests/unit/credentials/test_token.py
--- old/castellan-3.0.1/castellan/tests/unit/credentials/test_token.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/tests/unit/credentials/test_token.py
2020-09-11 21:26:04.000000000 +0200
@@ -39,7 +39,7 @@
self.assertTrue(self.token_credential is self.token_credential)
self.assertFalse(self.token_credential is None)
- self.assertFalse(None == self.token_credential)
+ self.assertFalse(None == self.token_credential) # noqa: E711
other_token_credential = token.Token(self.token)
self.assertTrue(self.token_credential == other_token_credential)
@@ -47,7 +47,7 @@
def test___ne___none(self):
self.assertTrue(self.token_credential is not None)
- self.assertTrue(None != self.token_credential)
+ self.assertTrue(None != self.token_credential) # noqa: E711
def test___ne___token(self):
other_token = "fe32af1fe47e4744a48254e60ae80012"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/tests/unit/key_manager/test_barbican_key_manager.py
new/castellan-3.6.0/castellan/tests/unit/key_manager/test_barbican_key_manager.py
---
old/castellan-3.0.1/castellan/tests/unit/key_manager/test_barbican_key_manager.py
2020-04-13 19:08:56.000000000 +0200
+++
new/castellan-3.6.0/castellan/tests/unit/key_manager/test_barbican_key_manager.py
2020-09-11 21:26:04.000000000 +0200
@@ -17,9 +17,9 @@
Test cases for the barbican key manager.
"""
import calendar
+from unittest import mock
from barbicanclient import exceptions as barbican_exceptions
-import mock
from oslo_utils import timeutils
from castellan.common import exception
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/tests/unit/key_manager/test_migration_key_manager.py
new/castellan-3.6.0/castellan/tests/unit/key_manager/test_migration_key_manager.py
---
old/castellan-3.0.1/castellan/tests/unit/key_manager/test_migration_key_manager.py
2020-04-13 19:08:56.000000000 +0200
+++
new/castellan-3.6.0/castellan/tests/unit/key_manager/test_migration_key_manager.py
2020-09-11 21:26:04.000000000 +0200
@@ -18,7 +18,7 @@
"""
import binascii
-import mock
+from unittest import mock
from oslo_config import cfg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/tests/unit/objects/__init__.py
new/castellan-3.6.0/castellan/tests/unit/objects/__init__.py
--- old/castellan-3.0.1/castellan/tests/unit/objects/__init__.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/tests/unit/objects/__init__.py
2020-09-11 21:26:04.000000000 +0200
@@ -0,0 +1,37 @@
+# Copyright 2020 Red Hat, Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+Test cases for Managed Objects.
+"""
+from castellan.common import exception
+from castellan.common import objects
+from castellan.tests import base
+
+
+class ManagedObjectFromDictTestCase(base.TestCase):
+ def test_invalid_dict(self):
+ self.assertRaises(
+ exception.InvalidManagedObjectDictError,
+ objects.from_dict,
+ {},
+ )
+
+ def test_unknown_type(self):
+ self.assertRaises(
+ exception.UnknownManagedObjectTypeError,
+ objects.from_dict,
+ {"type": "non-existing-managed-object-type"},
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/tests/unit/objects/test_opaque.py
new/castellan-3.6.0/castellan/tests/unit/objects/test_opaque.py
--- old/castellan-3.0.1/castellan/tests/unit/objects/test_opaque.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/tests/unit/objects/test_opaque.py
2020-09-11 21:26:04.000000000 +0200
@@ -16,6 +16,7 @@
"""
Test cases for the opaque data class.
"""
+from castellan.common import objects
from castellan.common.objects import opaque_data
from castellan.tests import base
@@ -67,7 +68,7 @@
self.assertTrue(self.opaque_data is self.opaque_data)
self.assertFalse(self.opaque_data is None)
- self.assertFalse(None == self.opaque_data)
+ self.assertFalse(None == self.opaque_data) # noqa: E711
other_opaque_data = opaque_data.OpaqueData(self.data)
self.assertTrue(self.opaque_data == other_opaque_data)
@@ -75,8 +76,12 @@
def test___ne___none(self):
self.assertTrue(self.opaque_data is not None)
- self.assertTrue(None != self.opaque_data)
+ self.assertTrue(None != self.opaque_data) # noqa: E711
def test___ne___data(self):
other_opaque = opaque_data.OpaqueData(b'other data', self.name)
self.assertTrue(self.opaque_data != other_opaque)
+
+ def test_to_and_from_dict(self):
+ other = objects.from_dict(self.opaque_data.to_dict())
+ self.assertEqual(self.opaque_data, other)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/tests/unit/objects/test_passphrase.py
new/castellan-3.6.0/castellan/tests/unit/objects/test_passphrase.py
--- old/castellan-3.0.1/castellan/tests/unit/objects/test_passphrase.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/tests/unit/objects/test_passphrase.py
2020-09-11 21:26:04.000000000 +0200
@@ -16,6 +16,7 @@
"""
Test cases for the passphrase class.
"""
+from castellan.common import objects
from castellan.common.objects import passphrase
from castellan.tests import base
@@ -67,7 +68,7 @@
self.assertTrue(self.passphrase is self.passphrase)
self.assertFalse(self.passphrase is None)
- self.assertFalse(None == self.passphrase)
+ self.assertFalse(None == self.passphrase) # noqa: E711
other_passphrase = passphrase.Passphrase(self.passphrase_data)
self.assertTrue(self.passphrase == other_passphrase)
@@ -75,8 +76,12 @@
def test___ne___none(self):
self.assertTrue(self.passphrase is not None)
- self.assertTrue(None != self.passphrase)
+ self.assertTrue(None != self.passphrase) # noqa: E711
def test___ne___data(self):
other_phrase = passphrase.Passphrase(b"other passphrase", self.name)
self.assertTrue(self.passphrase != other_phrase)
+
+ def test_to_and_from_dict(self):
+ other = objects.from_dict(self.passphrase.to_dict())
+ self.assertEqual(self.passphrase, other)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/castellan/tests/unit/objects/test_private_key.py
new/castellan-3.6.0/castellan/tests/unit/objects/test_private_key.py
--- old/castellan-3.0.1/castellan/tests/unit/objects/test_private_key.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/tests/unit/objects/test_private_key.py
2020-09-11 21:26:04.000000000 +0200
@@ -16,6 +16,7 @@
"""
Test cases for the private key class.
"""
+from castellan.common import objects
from castellan.common.objects import private_key
from castellan.tests import base
from castellan.tests import utils
@@ -83,7 +84,7 @@
self.assertTrue(self.key is self.key)
self.assertFalse(self.key is None)
- self.assertFalse(None == self.key)
+ self.assertFalse(None == self.key) # noqa: E711
other_key = private_key.PrivateKey(self.algorithm,
self.bit_length,
@@ -93,7 +94,7 @@
def test___ne___none(self):
self.assertTrue(self.key is not None)
- self.assertTrue(None != self.key)
+ self.assertTrue(None != self.key) # noqa: E711
def test___ne___algorithm(self):
other_key = private_key.PrivateKey('DSA',
@@ -116,3 +117,7 @@
different_encoded,
self.name)
self.assertTrue(self.key != 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-3.0.1/castellan/tests/unit/objects/test_public_key.py
new/castellan-3.6.0/castellan/tests/unit/objects/test_public_key.py
--- old/castellan-3.0.1/castellan/tests/unit/objects/test_public_key.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/tests/unit/objects/test_public_key.py
2020-09-11 21:26:04.000000000 +0200
@@ -16,6 +16,7 @@
"""
Test cases for the public key class.
"""
+from castellan.common import objects
from castellan.common.objects import public_key
from castellan.tests import base
from castellan.tests import utils
@@ -83,7 +84,7 @@
self.assertTrue(self.key is self.key)
self.assertFalse(self.key is None)
- self.assertFalse(None == self.key)
+ self.assertFalse(None == self.key) # noqa: E711
other_key = public_key.PublicKey(self.algorithm,
self.bit_length,
@@ -93,7 +94,7 @@
def test___ne___none(self):
self.assertTrue(self.key is not None)
- self.assertTrue(None != self.key)
+ self.assertTrue(None != self.key) # noqa: E711
def test___ne___algorithm(self):
other_key = public_key.PublicKey('DSA',
@@ -116,3 +117,7 @@
different_encoded,
self.name)
self.assertTrue(self.key != 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-3.0.1/castellan/tests/unit/objects/test_symmetric_key.py
new/castellan-3.6.0/castellan/tests/unit/objects/test_symmetric_key.py
--- old/castellan-3.0.1/castellan/tests/unit/objects/test_symmetric_key.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/tests/unit/objects/test_symmetric_key.py
2020-09-11 21:26:04.000000000 +0200
@@ -16,6 +16,7 @@
"""
Test cases for the symmetric key class.
"""
+from castellan.common import objects
from castellan.common.objects import symmetric_key as sym_key
from castellan.tests import base
@@ -82,7 +83,7 @@
self.assertTrue(self.key is self.key)
self.assertFalse(self.key is None)
- self.assertFalse(None == self.key)
+ self.assertFalse(None == self.key) # noqa: E711
other_key = sym_key.SymmetricKey(self.algorithm,
self.bit_length,
@@ -92,7 +93,7 @@
def test___ne___none(self):
self.assertTrue(self.key is not None)
- self.assertTrue(None != self.key)
+ self.assertTrue(None != self.key) # noqa: E711
def test___ne___algorithm(self):
other_key = sym_key.SymmetricKey('DES',
@@ -115,3 +116,7 @@
different_encoded,
self.name)
self.assertTrue(self.key != 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-3.0.1/castellan/tests/unit/objects/test_x_509.py
new/castellan-3.6.0/castellan/tests/unit/objects/test_x_509.py
--- old/castellan-3.0.1/castellan/tests/unit/objects/test_x_509.py
2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/tests/unit/objects/test_x_509.py
2020-09-11 21:26:04.000000000 +0200
@@ -16,6 +16,7 @@
"""
Test cases for the X.509 certificate class.
"""
+from castellan.common import objects
from castellan.common.objects import x_509
from castellan.tests import base
from castellan.tests import utils
@@ -67,7 +68,7 @@
self.assertTrue(self.cert is self.cert)
self.assertFalse(self.cert is None)
- self.assertFalse(None == self.cert)
+ self.assertFalse(None == self.cert) # noqa: E711
other_x_509 = x_509.X509(self.data)
self.assertTrue(self.cert == other_x_509)
@@ -75,8 +76,12 @@
def test___ne___none(self):
self.assertTrue(self.cert is not None)
- self.assertTrue(None != self.cert)
+ self.assertTrue(None != self.cert) # noqa: E711
def test___ne___data(self):
other_x509 = x_509.X509(b'\x00\x00\x00', self.name)
self.assertTrue(self.cert != other_x509)
+
+ 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-3.0.1/castellan/tests/unit/test_options.py
new/castellan-3.6.0/castellan/tests/unit/test_options.py
--- old/castellan-3.0.1/castellan/tests/unit/test_options.py 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/castellan/tests/unit/test_options.py 2020-09-11
21:26:04.000000000 +0200
@@ -62,11 +62,16 @@
self.assertEqual(number_of_retries,
conf.barbican.number_of_retries)
- verify_ssl = True
- options.set_defaults(conf, verify_ssl=True)
+ verify_ssl = False
+ options.set_defaults(conf, verify_ssl=False)
self.assertEqual(verify_ssl,
conf.barbican.verify_ssl)
+ verify_ssl_path = '/mnt'
+ options.set_defaults(conf, verify_ssl_path='/mnt')
+ self.assertEqual(verify_ssl_path,
+ conf.barbican.verify_ssl_path)
+
barbican_endpoint_type = 'internal'
options.set_defaults(conf, barbican_endpoint_type='internal')
result_type = conf.barbican.barbican_endpoint_type
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/castellan.egg-info/PKG-INFO
new/castellan-3.6.0/castellan.egg-info/PKG-INFO
--- old/castellan-3.0.1/castellan.egg-info/PKG-INFO 2020-04-13
19:09:45.000000000 +0200
+++ new/castellan-3.6.0/castellan.egg-info/PKG-INFO 2020-09-11
21:27:14.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.2
Name: castellan
-Version: 3.0.1
+Version: 3.6.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.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/castellan.egg-info/SOURCES.txt
new/castellan-3.6.0/castellan.egg-info/SOURCES.txt
--- old/castellan-3.0.1/castellan.egg-info/SOURCES.txt 2020-04-13
19:09:45.000000000 +0200
+++ new/castellan-3.6.0/castellan.egg-info/SOURCES.txt 2020-09-11
21:27:14.000000000 +0200
@@ -8,7 +8,6 @@
HACKING.rst
LICENSE
README.rst
-babel.cfg
bindep.txt
lower-constraints.txt
requirements.txt
@@ -102,12 +101,16 @@
playbooks/devstack/post.yaml
playbooks/devstack/pre.yaml
playbooks/devstack/run.yaml
+releasenotes/notes/add-to-dict-and-from-dict-conversions-to-managed-objects-95a9f0fdbd371a87.yaml
releasenotes/notes/add-vault-provider-29a4c19fe67ab51f.yaml
+releasenotes/notes/bug-1876102-7c7288fb6e90b11d.yaml
releasenotes/notes/deprecate-auth-endpoint-b91a3e67b5c7263f.yaml
releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml
releasenotes/notes/fix-vault-create-key-b4340a3067cbd93c.yaml
+releasenotes/notes/fix-vault-flaky-kv-api-version-b0cd9d62a39d2907.yaml
releasenotes/notes/implements-keymanager-option-discovery-13a46c1dfc036a3f.yaml
releasenotes/notes/support-legacy-fixed-key-id-9fa897b547111610.yaml
+releasenotes/notes/use-barbican-endpoint-type-config-option-e583d30930cc22ba.yaml
releasenotes/notes/vault-approle-support-5ea04daea07a152f.yaml
releasenotes/notes/vault-kv-mountpoint-919eb547764a0c74.yaml
releasenotes/source/conf.py
@@ -118,6 +121,7 @@
releasenotes/source/stein.rst
releasenotes/source/train.rst
releasenotes/source/unreleased.rst
+releasenotes/source/ussuri.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-3.0.1/castellan.egg-info/pbr.json
new/castellan-3.6.0/castellan.egg-info/pbr.json
--- old/castellan-3.0.1/castellan.egg-info/pbr.json 2020-04-13
19:09:45.000000000 +0200
+++ new/castellan-3.6.0/castellan.egg-info/pbr.json 2020-09-11
21:27:14.000000000 +0200
@@ -1 +1 @@
-{"git_version": "f8bcee0", "is_release": true}
\ No newline at end of file
+{"git_version": "a10ed81", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/castellan.egg-info/requires.txt
new/castellan-3.6.0/castellan.egg-info/requires.txt
--- old/castellan-3.0.1/castellan.egg-info/requires.txt 2020-04-13
19:09:45.000000000 +0200
+++ new/castellan-3.6.0/castellan.egg-info/requires.txt 2020-09-11
21:27:14.000000000 +0200
@@ -1,12 +1,11 @@
-pbr!=2.1.0,>=2.0.0
-Babel!=2.4.0,>=2.3.4
-cryptography>=2.1
-python-barbicanclient>=4.5.2
+cryptography>=2.7
+keystoneauth1>=3.4.0
oslo.config>=6.4.0
oslo.context>=2.19.2
oslo.i18n>=3.15.3
oslo.log>=3.36.0
oslo.utils>=3.33.0
-stevedore>=1.20.0
-keystoneauth1>=3.4.0
+pbr!=2.1.0,>=2.0.0
+python-barbicanclient>=4.5.2
requests!=2.20.0,>=2.18.0
+stevedore>=1.20.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/doc/requirements.txt
new/castellan-3.6.0/doc/requirements.txt
--- old/castellan-3.0.1/doc/requirements.txt 2020-04-13 19:08:56.000000000
+0200
+++ new/castellan-3.6.0/doc/requirements.txt 2020-09-11 21:26:04.000000000
+0200
@@ -1,4 +1,4 @@
-sphinx>=1.8.0,!=2.1.0 # BSD
+sphinx>=2.0.0,!=2.1.0 # BSD
sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD
-reno>=2.5.0 # Apache-2.0
-openstackdocstheme>=1.18.1 # Apache-2.0
+reno>=3.1.0 # Apache-2.0
+openstackdocstheme>=2.2.1 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/doc/source/conf.py
new/castellan-3.6.0/doc/source/conf.py
--- old/castellan-3.0.1/doc/source/conf.py 2020-04-13 19:08:56.000000000
+0200
+++ new/castellan-3.6.0/doc/source/conf.py 2020-09-11 21:26:04.000000000
+0200
@@ -48,7 +48,7 @@
add_module_names = True
# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
+pygments_style = 'native'
# -- Options for HTML output --------------------------------------------------
@@ -60,11 +60,6 @@
# Output file base name for HTML help builder.
htmlhelp_basename = '%sdoc' % project
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-# html_last_updated_fmt = '%b %d, %Y'
-html_last_updated_fmt = '%Y-%m-%d %H:%M'
-
# Add any paths that contain "extra" files, such as .htaccess or
# robots.txt.
html_extra_path = ['_extra']
@@ -90,6 +85,8 @@
#intersphinx_mapping = {'https://docs.python.org/3/': None}
# -- Options for openstackdocstheme -------------------------------------------
-repository_name = 'openstack/castellan'
-bug_project = 'castellan'
-bug_tag = ''
+openstackdocs_repo_name = 'openstack/castellan'
+openstackdocs_pdf_link = True
+openstackdocs_auto_name = False
+openstackdocs_bug_project = 'castellan'
+openstackdocs_bug_tag = ''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/lower-constraints.txt
new/castellan-3.6.0/lower-constraints.txt
--- old/castellan-3.0.1/lower-constraints.txt 2020-04-13 19:08:56.000000000
+0200
+++ new/castellan-3.6.0/lower-constraints.txt 2020-09-11 21:26:04.000000000
+0200
@@ -1,31 +1,23 @@
-alabaster==0.7.10
appdirs==1.3.0
asn1crypto==0.23.0
-Babel==2.3.4
-bandit==1.1.0
-cffi==1.7.0
+certifi==2020.4.5.2
+cffi==1.14.0
+chardet==3.0.4
cliff==2.8.0
cmd2==0.8.0
coverage==4.0
-cryptography==2.1
+cryptography==2.7
debtcollector==1.2.0
-docutils==0.11
-dulwich==0.15.0
+entrypoints==0.3
extras==1.0.0
fixtures==3.0.0
-flake8==2.5.5
+future==0.18.2
gitdb==0.6.4
GitPython==1.0.1
-hacking==0.12.0
idna==2.5
-imagesize==0.7.1
iso8601==0.1.11
-Jinja2==2.10
keystoneauth1==3.4.0
linecache2==1.0.0
-MarkupSafe==1.0
-mccabe==0.2.1
-mock==2.0.0
monotonic==0.6
mox3==0.20.0
msgpack-python==0.4.0
@@ -40,12 +32,9 @@
oslo.utils==3.33.0
oslotest==3.2.0
pbr==2.0.0
-pep8==1.5.7
pifpaf==0.10.0
prettytable==0.7.2
pycparser==2.18
-pyflakes==0.8.1
-Pygments==2.2.0
pyinotify==0.9.6
pyparsing==2.1.0
pyperclip==1.5.27
@@ -54,17 +43,20 @@
python-mimeparse==1.6.0
python-subunit==1.0.0
pytz==2013.6
-PyYAML==3.12
+PyYAML==3.13
requests==2.18.0
requestsexceptions==1.2.0
rfc3986==0.3.1
+six==1.15.0
smmap==0.9.0
-snowballstemmer==1.2.1
-stevedore==1.20.0
stestr==2.0.0
+stevedore==1.20.0
+testrepository==0.0.20
testscenarios==0.4
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
+urllib3==1.21.1
+voluptuous==0.11.7
wrapt==1.7.0
xattr==0.9.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/releasenotes/notes/add-to-dict-and-from-dict-conversions-to-managed-objects-95a9f0fdbd371a87.yaml
new/castellan-3.6.0/releasenotes/notes/add-to-dict-and-from-dict-conversions-to-managed-objects-95a9f0fdbd371a87.yaml
---
old/castellan-3.0.1/releasenotes/notes/add-to-dict-and-from-dict-conversions-to-managed-objects-95a9f0fdbd371a87.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/castellan-3.6.0/releasenotes/notes/add-to-dict-and-from-dict-conversions-to-managed-objects-95a9f0fdbd371a87.yaml
2020-09-11 21:26:04.000000000 +0200
@@ -0,0 +1,10 @@
+---
+features:
+ - |
+ Historically, the vault key manager backend converts its managed objects
+ to dictionaries in order to send them as a json object. To promote
+ cross-backend compatibility, suck feature should be migrated to managed
+ objects. Methods from_dict() and to_dict() added to class ManagedObject.
+ The Method from_dict() is a class method to create instances based on a
+ dictionary while the method to_dict() is an instance method to translate
+ an instance to a dictionary.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/releasenotes/notes/bug-1876102-7c7288fb6e90b11d.yaml
new/castellan-3.6.0/releasenotes/notes/bug-1876102-7c7288fb6e90b11d.yaml
--- old/castellan-3.0.1/releasenotes/notes/bug-1876102-7c7288fb6e90b11d.yaml
1970-01-01 01:00:00.000000000 +0100
+++ new/castellan-3.6.0/releasenotes/notes/bug-1876102-7c7288fb6e90b11d.yaml
2020-09-11 21:26:04.000000000 +0200
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ Add a new parameter, ``verify_ssl_path``, that can be used to
+ configure the path to CA certs when verifying requests to
+ Barbican.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/releasenotes/notes/fix-vault-flaky-kv-api-version-b0cd9d62a39d2907.yaml
new/castellan-3.6.0/releasenotes/notes/fix-vault-flaky-kv-api-version-b0cd9d62a39d2907.yaml
---
old/castellan-3.0.1/releasenotes/notes/fix-vault-flaky-kv-api-version-b0cd9d62a39d2907.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/castellan-3.6.0/releasenotes/notes/fix-vault-flaky-kv-api-version-b0cd9d62a39d2907.yaml
2020-09-11 21:26:04.000000000 +0200
@@ -0,0 +1,10 @@
+---
+fixes:
+ - |
+ In some situations, vault will not provide KV API version in the options
+ structure. Vault documentation [1] doesn't cover cases when KV API version
+ is not provided. A new configuration option, with default value equivalent
+ to the latest KV API version available (kv_version=2) was added to allow
+ precise configuration of the KV API being used.
+
+ [1] https://learn.hashicorp.com/vault/secrets-management/sm-versioned-kv
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/castellan-3.0.1/releasenotes/notes/use-barbican-endpoint-type-config-option-e583d30930cc22ba.yaml
new/castellan-3.6.0/releasenotes/notes/use-barbican-endpoint-type-config-option-e583d30930cc22ba.yaml
---
old/castellan-3.0.1/releasenotes/notes/use-barbican-endpoint-type-config-option-e583d30930cc22ba.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/castellan-3.6.0/releasenotes/notes/use-barbican-endpoint-type-config-option-e583d30930cc22ba.yaml
2020-09-11 21:26:04.000000000 +0200
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ ``barbican_endpoint_type`` is now used to retrieve Barbican endpoint URL
+ from service catalog. This config option is set to 'public' by default so
+ it will not change the current behaviour.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/releasenotes/source/conf.py
new/castellan-3.6.0/releasenotes/source/conf.py
--- old/castellan-3.0.1/releasenotes/source/conf.py 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/releasenotes/source/conf.py 2020-09-11
21:26:04.000000000 +0200
@@ -52,9 +52,10 @@
master_doc = 'index'
# General information about the project.
-repository_name = 'openstack/castellan'
-bug_project = 'castellan'
-bug_tag = 'doc'
+openstackdocs_repo_name = 'openstack/castellan'
+openstackdocs_auto_name = False
+openstackdocs_bug_project = 'castellan'
+openstackdocs_bug_tag = 'doc'
project = u'Castellan Release Notes'
copyright = u'2017, Castellan Developers'
@@ -95,7 +96,7 @@
# show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
+pygments_style = 'native'
# A list of ignored prefixes for module index sorting.
# modindex_common_prefix = []
@@ -144,10 +145,6 @@
# directly to the root of the documentation.
# html_extra_path = []
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-html_last_updated_fmt = '%Y-%m-%d %H:%M'
-
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
# html_use_smartypants = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/releasenotes/source/index.rst
new/castellan-3.6.0/releasenotes/source/index.rst
--- old/castellan-3.0.1/releasenotes/source/index.rst 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/releasenotes/source/index.rst 2020-09-11
21:26:04.000000000 +0200
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ ussuri
train
stein
rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/releasenotes/source/ussuri.rst
new/castellan-3.6.0/releasenotes/source/ussuri.rst
--- old/castellan-3.0.1/releasenotes/source/ussuri.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/castellan-3.6.0/releasenotes/source/ussuri.rst 2020-09-11
21:26:04.000000000 +0200
@@ -0,0 +1,6 @@
+===========================
+Ussuri Series Release Notes
+===========================
+
+.. release-notes::
+ :branch: stable/ussuri
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/requirements.txt
new/castellan-3.6.0/requirements.txt
--- old/castellan-3.0.1/requirements.txt 2020-04-13 19:08:56.000000000
+0200
+++ new/castellan-3.6.0/requirements.txt 2020-09-11 21:26:04.000000000
+0200
@@ -3,8 +3,7 @@
# process, which may cause wedges in the gate later.
pbr!=2.1.0,>=2.0.0 # Apache-2.0
-Babel!=2.4.0,>=2.3.4 # BSD
-cryptography>=2.1 # BSD/Apache-2.0
+cryptography>=2.7 # BSD/Apache-2.0
python-barbicanclient>=4.5.2 # Apache-2.0
oslo.config>=6.4.0 # Apache-2.0
oslo.context>=2.19.2 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/setup.cfg
new/castellan-3.6.0/setup.cfg
--- old/castellan-3.0.1/setup.cfg 2020-04-13 19:09:45.000000000 +0200
+++ new/castellan-3.6.0/setup.cfg 2020-09-11 21:27:14.000000000 +0200
@@ -17,6 +17,7 @@
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
+ Programming Language :: Python :: 3.8
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: Implementation :: CPython
@@ -34,20 +35,6 @@
barbican = castellan.key_manager.barbican_key_manager:BarbicanKeyManager
vault = castellan.key_manager.vault_key_manager:VaultKeyManager
-[compile_catalog]
-directory = castellan/locale
-domain = castellan
-
-[update_catalog]
-domain = castellan
-output_dir = castellan/locale
-input_file = castellan/locale/castellan.pot
-
-[extract_messages]
-keywords = _ gettext ngettext l_ lazy_gettext
-mapping_file = babel.cfg
-output_file = castellan/locale/castellan.pot
-
[egg_info]
tag_build =
tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/setup.py new/castellan-3.6.0/setup.py
--- old/castellan-3.0.1/setup.py 2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/setup.py 2020-09-11 21:26:04.000000000 +0200
@@ -13,17 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
import setuptools
-# In python < 2.7.4, a lazy loading of package `pbr` will break
-# setuptools if some other modules registered functions in `atexit`.
-# solution from: http://bugs.python.org/issue15881#msg170215
-try:
- import multiprocessing # noqa
-except ImportError:
- pass
-
setuptools.setup(
setup_requires=['pbr>=2.0.0'],
pbr=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/test-requirements.txt
new/castellan-3.6.0/test-requirements.txt
--- old/castellan-3.0.1/test-requirements.txt 2020-04-13 19:08:56.000000000
+0200
+++ new/castellan-3.6.0/test-requirements.txt 2020-09-11 21:26:04.000000000
+0200
@@ -1,7 +1,11 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=3.0.1,<3.1.0 # Apache-2.0
+# remove this pyflakes from here once you bump the
+# hacking to 3.2.0 or above. hacking 3.2.0 takes
+# care of pyflakes version compatibilty.
+pyflakes>=2.1.1
coverage!=4.4,>=4.0 # Apache-2.0
python-barbicanclient>=4.5.2 # Apache-2.0
@@ -11,5 +15,5 @@
fixtures>=3.0.0 # Apache-2.0/BSD
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
-bandit>=1.1.0,<1.6.0 # Apache-2.0
+bandit>=1.6.0,<1.7.0 # Apache-2.0
pifpaf>=0.10.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/tools/setup-vault-env.sh
new/castellan-3.6.0/tools/setup-vault-env.sh
--- old/castellan-3.0.1/tools/setup-vault-env.sh 2020-04-13
19:08:56.000000000 +0200
+++ new/castellan-3.6.0/tools/setup-vault-env.sh 2020-09-11
21:26:04.000000000 +0200
@@ -1,7 +1,7 @@
#!/bin/bash
set -eux
if [ -z "$(which vault)" ]; then
- VAULT_VERSION=0.10.4
+ VAULT_VERSION=1.4.2
SUFFIX=zip
case `uname -s` in
Darwin)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/castellan-3.0.1/tox.ini new/castellan-3.6.0/tox.ini
--- old/castellan-3.0.1/tox.ini 2020-04-13 19:08:56.000000000 +0200
+++ new/castellan-3.6.0/tox.ini 2020-09-11 21:26:04.000000000 +0200
@@ -1,6 +1,6 @@
[tox]
minversion = 3.1.1
-envlist = py37,pep8
+envlist = py38,pep8
ignore_basepython_conflict = True
skipsdist = True
@@ -11,7 +11,7 @@
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./castellan/tests/unit
deps =
-
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
+
-c{env:TOX_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
@@ -78,7 +78,6 @@
[testenv:functional]
usedevelop = True
-install_command = pip install -U {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./castellan/tests/functional
@@ -87,7 +86,6 @@
[testenv:functional-vault]
passenv = HOME
usedevelop = True
-install_command = pip install -U {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./castellan/tests/functional