Merge "barbican: Drop redundant full url composition"
This commit is contained in:
@@ -18,7 +18,6 @@ Key manager implementation for Barbican
|
||||
"""
|
||||
import calendar
|
||||
import time
|
||||
import urllib.parse
|
||||
|
||||
from barbicanclient import client as barbican_client_import
|
||||
from barbicanclient import exceptions as barbican_exceptions
|
||||
@@ -124,7 +123,7 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
"""Creates a client to connect to the Barbican service.
|
||||
|
||||
:param context: the user context for authentication
|
||||
:return: tuple of a Barbican Client object and its endpoint
|
||||
:return: a Barbican Client object
|
||||
:raises Forbidden: if the context is None
|
||||
:raises KeyManagerError: if context is missing tenant or tenant is
|
||||
None or error occurs while creating client
|
||||
@@ -141,13 +140,10 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
sess = session.Session(auth=auth, verify=self._verify)
|
||||
|
||||
endpoint = self._get_barbican_endpoint(auth, sess)
|
||||
return (
|
||||
barbican_client_import.Client(
|
||||
version=self.conf.barbican.barbican_api_version,
|
||||
session=sess,
|
||||
endpoint=endpoint),
|
||||
self._create_base_url(auth, sess, endpoint)
|
||||
)
|
||||
return barbican_client_import.Client(
|
||||
version=self.conf.barbican.barbican_api_version,
|
||||
session=sess,
|
||||
endpoint=endpoint)
|
||||
|
||||
# TODO(pbourke): more fine grained exception handling - we are eating
|
||||
# tracebacks here
|
||||
@@ -232,34 +228,6 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
interface=self.conf.barbican.barbican_endpoint_type,
|
||||
region_name=self.conf.barbican.barbican_region_name)
|
||||
|
||||
def _create_base_url(self, auth, sess, endpoint):
|
||||
api_version = None
|
||||
if self.conf.barbican.barbican_api_version:
|
||||
api_version = self.conf.barbican.barbican_api_version
|
||||
elif getattr(auth, 'service_catalog', None):
|
||||
endpoint_data = auth.service_catalog.endpoint_data_for(
|
||||
service_type='key-manager',
|
||||
interface=self.conf.barbican.barbican_endpoint_type,
|
||||
region_name=self.conf.barbican.barbican_region_name)
|
||||
api_version = endpoint_data.api_version
|
||||
elif getattr(auth, 'get_discovery', None):
|
||||
discovery = auth.get_discovery(sess, url=endpoint)
|
||||
raw_data = discovery.raw_version_data()
|
||||
if len(raw_data) == 0:
|
||||
msg = _(
|
||||
"Could not find discovery information for %s") % endpoint
|
||||
LOG.error(msg)
|
||||
raise exception.KeyManagerError(reason=msg)
|
||||
latest_version = raw_data[-1]
|
||||
api_version = latest_version.get('id')
|
||||
|
||||
if endpoint[-1] != '/':
|
||||
endpoint += '/'
|
||||
|
||||
base_url = urllib.parse.urljoin(endpoint, api_version)
|
||||
|
||||
return base_url
|
||||
|
||||
def _delete_order(self, client, order_ref):
|
||||
try:
|
||||
client.orders.delete(order_ref)
|
||||
@@ -287,7 +255,7 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
:return: the UUID of the new key
|
||||
:raises KeyManagerError: if key creation fails
|
||||
"""
|
||||
barbican_client, _ = self._get_barbican_client(context)
|
||||
barbican_client = self._get_barbican_client(context)
|
||||
|
||||
try:
|
||||
key_order = barbican_client.orders.create_key(
|
||||
@@ -320,7 +288,7 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
:raises NotImplementedError: until implemented
|
||||
:raises KeyManagerError: if key pair creation fails
|
||||
"""
|
||||
barbican_client, _ = self._get_barbican_client(context)
|
||||
barbican_client = self._get_barbican_client(context)
|
||||
|
||||
try:
|
||||
key_pair_order = barbican_client.orders.create_asymmetric(
|
||||
@@ -411,7 +379,7 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
:returns: the UUID of the stored object
|
||||
:raises KeyManagerError: if object store fails
|
||||
"""
|
||||
barbican_client, _ = self._get_barbican_client(context)
|
||||
barbican_client = self._get_barbican_client(context)
|
||||
|
||||
try:
|
||||
secret = self._get_barbican_object(barbican_client,
|
||||
@@ -425,20 +393,6 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
LOG.error("Error storing object: %s", e)
|
||||
raise exception.KeyManagerError(reason=e)
|
||||
|
||||
def _create_secret_ref(self, base_url, object_id):
|
||||
"""Creates the URL required for accessing a secret.
|
||||
|
||||
:param endpoint: Base endpoint URL
|
||||
:param object_id: the UUID of the key to copy
|
||||
:return: the URL of the requested secret
|
||||
"""
|
||||
if not object_id:
|
||||
msg = _("Key ID is None")
|
||||
raise exception.KeyManagerError(reason=msg)
|
||||
if base_url[-1] != '/':
|
||||
base_url += '/'
|
||||
return urllib.parse.urljoin(base_url, "secrets/" + object_id)
|
||||
|
||||
def _get_active_order(self, barbican_client, order_ref):
|
||||
"""Returns the order when it is active.
|
||||
|
||||
@@ -592,12 +546,13 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
:raises HTTPClientError: if object retrieval fails with 4xx
|
||||
:raises HTTPServerError: if object retrieval fails with 5xx
|
||||
"""
|
||||
if not object_id:
|
||||
raise exception.KeyManagerError('key identifier not provided')
|
||||
|
||||
barbican_client, base_url = self._get_barbican_client(context)
|
||||
barbican_client = self._get_barbican_client(context)
|
||||
|
||||
try:
|
||||
secret_ref = self._create_secret_ref(base_url, object_id)
|
||||
return barbican_client.secrets.get(secret_ref)
|
||||
return barbican_client.secrets.get(object_id)
|
||||
except (barbican_exceptions.HTTPAuthError,
|
||||
barbican_exceptions.HTTPClientError,
|
||||
barbican_exceptions.HTTPServerError) as e:
|
||||
@@ -648,10 +603,12 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
:raises KeyManagerError: if object deletion fails
|
||||
:raises ManagedObjectNotFoundError: if the object could not be found
|
||||
"""
|
||||
barbican_client, base_url = self._get_barbican_client(context)
|
||||
if not managed_object_id:
|
||||
raise exception.KeyManagerError('key identifier not provided')
|
||||
|
||||
barbican_client = self._get_barbican_client(context)
|
||||
try:
|
||||
secret_ref = self._create_secret_ref(base_url, managed_object_id)
|
||||
barbican_client.secrets.delete(secret_ref, force)
|
||||
barbican_client.secrets.delete(managed_object_id, force)
|
||||
except (barbican_exceptions.HTTPAuthError,
|
||||
barbican_exceptions.HTTPClientError,
|
||||
barbican_exceptions.HTTPServerError) as e:
|
||||
@@ -673,11 +630,13 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
:raises ManagedObjectNotFoundError: if the object could not be found
|
||||
"""
|
||||
|
||||
barbican_client, base_url = self._get_barbican_client(context)
|
||||
if not managed_object_id:
|
||||
raise exception.KeyManagerError('key identifier not provided')
|
||||
|
||||
barbican_client = self._get_barbican_client(context)
|
||||
try:
|
||||
secret_ref = self._create_secret_ref(base_url, managed_object_id)
|
||||
barbican_client.secrets.register_consumer(
|
||||
secret_ref, **consumer_data)
|
||||
managed_object_id, **consumer_data)
|
||||
|
||||
except (barbican_exceptions.HTTPAuthError,
|
||||
barbican_exceptions.HTTPClientError,
|
||||
@@ -690,12 +649,13 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
raise exception.KeyManagerError(reason=e)
|
||||
|
||||
def remove_consumer(self, context, managed_object_id, consumer_data):
|
||||
if not managed_object_id:
|
||||
raise exception.KeyManagerError('key identifier not provided')
|
||||
|
||||
barbican_client, base_url = self._get_barbican_client(context)
|
||||
barbican_client = self._get_barbican_client(context)
|
||||
try:
|
||||
secret_ref = self._create_secret_ref(base_url, managed_object_id)
|
||||
barbican_client.secrets.remove_consumer(
|
||||
secret_ref, **consumer_data)
|
||||
managed_object_id, **consumer_data)
|
||||
except (barbican_exceptions.HTTPAuthError,
|
||||
barbican_exceptions.HTTPClientError,
|
||||
barbican_exceptions.HTTPServerError) as e:
|
||||
@@ -718,7 +678,7 @@ class BarbicanKeyManager(key_manager.KeyManager):
|
||||
:raises KeyManagerError: if listing secrets fails
|
||||
"""
|
||||
objects = []
|
||||
barbican_client, _ = self._get_barbican_client(context)
|
||||
barbican_client = self._get_barbican_client(context)
|
||||
|
||||
if object_type and object_type not in self._secret_type_dict:
|
||||
msg = _("Invalid secret type: %s") % object_type
|
||||
|
||||
@@ -54,7 +54,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
|
||||
# Create a key_id, secret_ref, pre_hex, and hex to use
|
||||
self.key_id = "d152fa13-2b41-42ca-a934-6c21566c0f40"
|
||||
self.secret_ref = ("http://host:9311/v1/secrets/" + self.key_id)
|
||||
self.secret_ref = self.key_id
|
||||
self.pre_hex = "AIDxQp2++uAbKaTVDMXFYIu8PIugJGqkK0JLqkU0rhY="
|
||||
self.hex = ("0080f1429dbefae01b29a4d50cc5c5608bbc3c8ba0246aa42b424baa4"
|
||||
"534ae16")
|
||||
@@ -159,115 +159,11 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
auth = self.key_mgr._get_keystone_auth(self.ctxt)
|
||||
self.assertIsInstance(auth, service_token.ServiceTokenAuthWrapper)
|
||||
|
||||
def test_base_url_old_version(self):
|
||||
version = "v1"
|
||||
self.key_mgr.conf.barbican.barbican_api_version = version
|
||||
endpoint = "http://localhost:9311"
|
||||
base_url = self.key_mgr._create_base_url(mock.Mock(),
|
||||
mock.Mock(),
|
||||
endpoint)
|
||||
self.assertEqual(endpoint + "/" + version, base_url)
|
||||
|
||||
def test_base_url_new_version(self):
|
||||
version = "v1"
|
||||
self.key_mgr.conf.barbican.barbican_api_version = version
|
||||
endpoint = "http://localhost/key_manager"
|
||||
base_url = self.key_mgr._create_base_url(mock.Mock(),
|
||||
mock.Mock(),
|
||||
endpoint)
|
||||
self.assertEqual(endpoint + "/" + version, base_url)
|
||||
|
||||
def test_base_url_service_catalog(self):
|
||||
endpoint_data = mock.Mock()
|
||||
endpoint_data.api_version = 'v321'
|
||||
|
||||
auth = mock.Mock(spec=['service_catalog'])
|
||||
auth.service_catalog.endpoint_data_for.return_value = endpoint_data
|
||||
|
||||
endpoint = "http://localhost/key_manager"
|
||||
|
||||
base_url = self.key_mgr._create_base_url(auth,
|
||||
mock.Mock(),
|
||||
endpoint)
|
||||
self.assertEqual(endpoint + "/" + endpoint_data.api_version, base_url)
|
||||
auth.service_catalog.endpoint_data_for.assert_called_once_with(
|
||||
service_type='key-manager', interface='public',
|
||||
region_name=None)
|
||||
|
||||
def test_base_url_service_catalog_with_endpoint_type(self):
|
||||
self.key_mgr.conf.barbican.barbican_endpoint_type = 'internal'
|
||||
|
||||
endpoint_data = mock.Mock()
|
||||
endpoint_data.api_version = 'v321'
|
||||
|
||||
auth = mock.Mock(spec=['service_catalog'])
|
||||
auth.service_catalog.endpoint_data_for.return_value = endpoint_data
|
||||
|
||||
endpoint = "http://localhost/key_manager"
|
||||
|
||||
base_url = self.key_mgr._create_base_url(auth,
|
||||
mock.Mock(),
|
||||
endpoint)
|
||||
self.assertEqual(endpoint + "/" + endpoint_data.api_version, base_url)
|
||||
auth.service_catalog.endpoint_data_for.assert_called_once_with(
|
||||
service_type='key-manager', interface='internal',
|
||||
region_name=None)
|
||||
|
||||
def test_base_url_service_catalog_with_region_name(self):
|
||||
self.key_mgr.conf.barbican.barbican_region_name = 'regionOne'
|
||||
|
||||
endpoint_data = mock.Mock()
|
||||
endpoint_data.api_version = 'v321'
|
||||
auth = mock.Mock(spec=['service_catalog'])
|
||||
auth.service_catalog.endpoint_data_for.return_value = endpoint_data
|
||||
|
||||
endpoint = "http://localhost/key_manager"
|
||||
|
||||
base_url = self.key_mgr._create_base_url(auth,
|
||||
mock.Mock(),
|
||||
endpoint)
|
||||
self.assertEqual(endpoint + "/" + endpoint_data.api_version, base_url)
|
||||
auth.service_catalog.endpoint_data_for.assert_called_once_with(
|
||||
service_type='key-manager', interface='public',
|
||||
region_name='regionOne')
|
||||
|
||||
def test_base_url_raise_exception(self):
|
||||
auth = mock.Mock(spec=['get_discovery'])
|
||||
sess = mock.Mock()
|
||||
discovery = mock.Mock()
|
||||
discovery.raw_version_data = mock.Mock(return_value=[])
|
||||
auth.get_discovery = mock.Mock(return_value=discovery)
|
||||
|
||||
endpoint = "http://localhost/key_manager"
|
||||
|
||||
self.assertRaises(exception.KeyManagerError,
|
||||
self.key_mgr._create_base_url,
|
||||
auth, sess, endpoint)
|
||||
auth.get_discovery.assert_called_once_with(sess, url=endpoint)
|
||||
self.assertEqual(1, discovery.raw_version_data.call_count)
|
||||
|
||||
def test_base_url_get_discovery(self):
|
||||
version = 'v100500'
|
||||
auth = mock.Mock(spec=['get_discovery'])
|
||||
sess = mock.Mock()
|
||||
discovery = mock.Mock()
|
||||
auth.get_discovery = mock.Mock(return_value=discovery)
|
||||
discovery.raw_version_data = mock.Mock(return_value=[{'id': version}])
|
||||
|
||||
endpoint = "http://localhost/key_manager"
|
||||
|
||||
base_url = self.key_mgr._create_base_url(auth,
|
||||
sess,
|
||||
endpoint)
|
||||
self.assertEqual(endpoint + "/" + version, base_url)
|
||||
auth.get_discovery.assert_called_once_with(sess, url=endpoint)
|
||||
self.assertEqual(1, discovery.raw_version_data.call_count)
|
||||
|
||||
@mock.patch('castellan.key_manager.barbican_key_manager.'
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_create_key(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
# Create order_ref_url and assign return value
|
||||
order_ref_url = ("http://localhost:9311/v1/orders/"
|
||||
@@ -299,7 +195,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_create_key_with_error(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
key_order = mock.Mock()
|
||||
mock_client.orders.create_key.return_value = key_order
|
||||
@@ -312,7 +208,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_create_key_with_error_delete_order(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
# Create order_ref_url and assign return value
|
||||
order_ref_url = ("http://localhost:9311/v1/orders/"
|
||||
@@ -341,7 +237,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_create_key_pair(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
# Create order_ref_url and assign return value
|
||||
order_ref_url = ("http://localhost:9311/v1/orders/"
|
||||
@@ -390,7 +286,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_create_key_pair_with_error(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
asym_order = mock.Mock()
|
||||
mock_client.orders.create_asymmetric.return_value = asym_order
|
||||
@@ -404,7 +300,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_create_key_pair_error_in_delete_order_container(self,
|
||||
mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
# Create order_ref_url and assign return value
|
||||
order_ref_url = ("http://localhost:9311/v1/orders/"
|
||||
@@ -457,7 +353,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_delete_key(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
self.key_mgr.delete(self.ctxt, self.key_id)
|
||||
mock_client.secrets.delete.assert_called_once_with(
|
||||
@@ -468,7 +364,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_delete_secret_with_consumers_no_force_parameter(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
mock_client.secrets.delete = mock.Mock(
|
||||
side_effect=exception.KeyManagerError(
|
||||
@@ -483,7 +379,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_delete_secret_with_consumers_force_parameter_false(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
mock_client.secrets.delete.side_effect = \
|
||||
barbican_exceptions.HTTPClientError(
|
||||
@@ -499,7 +395,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_delete_secret_with_consumers_force_parameter_true(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
self.key_mgr.delete(self.ctxt, self.key_id, force=True)
|
||||
mock_client.secrets.delete.assert_called_once_with(
|
||||
@@ -513,7 +409,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_delete_with_error(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
mock_client.secrets.delete = mock.Mock(
|
||||
side_effect=barbican_exceptions.HTTPClientError('test error'))
|
||||
self.assertRaises(exception.KeyManagerError,
|
||||
@@ -523,7 +419,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_get_key(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
original_secret_metadata = mock.Mock()
|
||||
original_secret_metadata.algorithm = mock.sentinel.alg
|
||||
@@ -566,7 +462,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_get_with_error(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
mock_client.secrets.get.side_effect = \
|
||||
barbican_exceptions.HTTPClientError('test error')
|
||||
self.assertRaises(exception.KeyManagerError,
|
||||
@@ -576,7 +472,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_store_key(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
# Create Key to store
|
||||
secret_key = bytes(b'\x01\x02\xA0\xB3')
|
||||
@@ -605,7 +501,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_store_key_with_name(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
# Create Key to store
|
||||
secret_key = bytes(b'\x01\x02\xA0\xB3')
|
||||
@@ -640,7 +536,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_store_with_error(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
mock_client.secrets.create.side_effect = \
|
||||
barbican_exceptions.HTTPClientError('test error')
|
||||
secret_key = bytes(b'\x01\x02\xA0\xB3')
|
||||
@@ -655,7 +551,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_get_active_order(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
order_ref_url = ("http://localhost:9311/v1/orders/"
|
||||
"4fe939b7-72bc-49aa-bd1e-e979589858af")
|
||||
@@ -682,7 +578,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_get_active_order_timeout(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
order_ref_url = ("http://localhost:9311/v1/orders/"
|
||||
"4fe939b7-72bc-49aa-bd1e-e979589858af")
|
||||
@@ -707,7 +603,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_get_active_order_error(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
order_ref_url = ("http://localhost:9311/v1/orders/"
|
||||
"4fe939b7-72bc-49aa-bd1e-e979589858af")
|
||||
@@ -735,7 +631,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_list(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
original_secret_metadata = mock.Mock()
|
||||
original_secret_metadata.algorithm = mock.sentinel.alg
|
||||
@@ -787,7 +683,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_list_with_error(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
mock_client.secrets.list = mock.Mock(
|
||||
side_effect=barbican_exceptions.HTTPClientError('test error'))
|
||||
self.assertRaises(exception.KeyManagerError,
|
||||
@@ -857,7 +753,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_add_consumer_with_different_project_fails(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Forbidden: SecretConsumer creation attempt not allowed - "
|
||||
@@ -891,7 +787,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_add_consumer_with_invalid_managed_object_id_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = ValueError("Secret incorrectly specified.")
|
||||
self._test_add_consumer_expects_error(
|
||||
@@ -903,7 +799,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_add_consumer_with_inexistent_managed_object_id_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Not Found: Secret not found.", status_code=404)
|
||||
@@ -916,7 +812,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_add_consumer_with_null_service_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -931,7 +827,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_add_consumer_with_empty_service_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -946,7 +842,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_add_consumer_with_null_resource_type_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -961,7 +857,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_add_consumer_with_empty_resource_type_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -976,7 +872,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_add_consumer_with_null_resource_id_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -991,7 +887,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_add_consumer_with_empty_resource_id_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -1006,7 +902,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_add_consumer_with_valid_parameters_doesnt_fail(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
self.key_mgr.add_consumer(
|
||||
self.ctxt, self.secret_ref, self._get_custom_consumer_data())
|
||||
@@ -1021,7 +917,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_remove_consumer_with_different_project_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Forbidden: SecretConsumer creation attempt not allowed - "
|
||||
@@ -1035,7 +931,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_remove_consumer_with_null_managed_object_id_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = ValueError("secret incorrectly specified.")
|
||||
self._test_add_consumer_expects_error(
|
||||
@@ -1047,7 +943,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_remove_consumer_with_empty_managed_object_id_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = ValueError("secret incorrectly specified.")
|
||||
self._test_add_consumer_expects_error(
|
||||
@@ -1059,7 +955,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_remove_consumer_with_invalid_managed_object_id_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = ValueError("Secret incorrectly specified.")
|
||||
self._test_add_consumer_expects_error(
|
||||
@@ -1071,7 +967,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_remove_consumer_without_registered_managed_object_id_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Not Found: Secret not found.", status_code=404)
|
||||
@@ -1083,7 +979,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
'BarbicanKeyManager._get_barbican_client')
|
||||
def test_remove_consumer_with_null_service_fails(self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -1098,7 +994,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_remove_consumer_with_empty_service_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -1113,7 +1009,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_remove_consumer_with_null_resource_type_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -1128,7 +1024,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_remove_consumer_with_empty_resource_type_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -1143,7 +1039,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_remove_consumer_with_null_resource_id_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -1158,7 +1054,7 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_remove_consumer_with_empty_resource_id_fails(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
|
||||
side_effect = barbican_exceptions.HTTPClientError(
|
||||
"Bad Request: Provided object does not match schema "
|
||||
@@ -1173,6 +1069,6 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase):
|
||||
def test_remove_consumer_with_valid_parameters_doesnt_fail(
|
||||
self, mock_get_client):
|
||||
mock_client = mock.Mock()
|
||||
mock_get_client.return_value = (mock_client, self.base_url)
|
||||
mock_get_client.return_value = mock_client
|
||||
self.key_mgr.remove_consumer(
|
||||
self.ctxt, self.secret_ref, self._get_custom_consumer_data())
|
||||
|
||||
Reference in New Issue
Block a user