Modified plugin contract to include barbican-meta-dto
We expect the barbican-meta-dto to be used for storing a CSR generated in the stored key mechanism, as well as the plugin_ca_id. These fields are added here, but the code that uses them will be added in a subsequent CR. Change-Id: I27c20130228a20484ed601020614d45521a348f5 Implements: blueprint identify-cas
This commit is contained in:
@@ -611,13 +611,15 @@ class DogtagCAPlugin(cm.CertificatePluginBase):
|
||||
except pki.CertNotFoundException:
|
||||
return None
|
||||
|
||||
def check_certificate_status(self, order_id, order_meta, plugin_meta):
|
||||
def check_certificate_status(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Check the status of a certificate request.
|
||||
|
||||
:param order_id: ID of the order associated with this request
|
||||
:param order_meta: order_metadata associated with this order
|
||||
:param plugin_meta: data populated by previous calls for this order,
|
||||
in particular the request_id
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
:return: cm.ResultDTO
|
||||
"""
|
||||
request_id = self._get_request_id(order_id, plugin_meta, "checking")
|
||||
@@ -675,7 +677,8 @@ class DogtagCAPlugin(cm.CertificatePluginBase):
|
||||
u._("Invalid request_status returned by CA"))
|
||||
|
||||
@_catch_request_exception
|
||||
def issue_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def issue_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Issue a certificate request to the Dogtag CA
|
||||
|
||||
Call the relevant certificate issuance function depending on the
|
||||
@@ -685,6 +688,7 @@ class DogtagCAPlugin(cm.CertificatePluginBase):
|
||||
:param order_meta: dict containing all the inputs for this request.
|
||||
This includes the request_type.
|
||||
:param plugin_meta: Used to store data for status check
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
:return: cm.ResultDTO
|
||||
"""
|
||||
request_type = order_meta.get(
|
||||
@@ -707,55 +711,70 @@ class DogtagCAPlugin(cm.CertificatePluginBase):
|
||||
"Dogtag plugin does not support %s request type".format(
|
||||
request_type))
|
||||
|
||||
return jump_table[request_type](order_id, order_meta, plugin_meta)
|
||||
return jump_table[request_type](order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto)
|
||||
|
||||
@_catch_enrollment_exceptions
|
||||
def _issue_simple_cmc_request(self, order_id, order_meta, plugin_meta):
|
||||
def _issue_simple_cmc_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Issue a simple CMC request to the Dogtag CA.
|
||||
|
||||
:param order_id:
|
||||
:param order_meta:
|
||||
:param plugin_meta:
|
||||
:param barbican_meta_dto:
|
||||
:return: cm.ResultDTO
|
||||
"""
|
||||
if barbican_meta_dto.generated_csr is not None:
|
||||
csr = barbican_meta_dto.generated_csr
|
||||
else:
|
||||
csr = order_meta.get('request_data')
|
||||
|
||||
profile_id = self.simple_cmc_profile
|
||||
inputs = {
|
||||
'cert_request_type': 'pkcs10',
|
||||
'cert_request': order_meta.get('request_data')
|
||||
'cert_request': csr
|
||||
}
|
||||
|
||||
request = self.certclient.create_enrollment_request(profile_id, inputs)
|
||||
results = self.certclient.submit_enrollment_request(request)
|
||||
return self._process_enrollment_results(results, plugin_meta)
|
||||
return self._process_enrollment_results(results,
|
||||
plugin_meta,
|
||||
barbican_meta_dto)
|
||||
|
||||
def _issue_full_cmc_request(self, order_id, order_meta, plugin_meta):
|
||||
def _issue_full_cmc_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Issue a full CMC request to the Dogtag CA.
|
||||
|
||||
:param order_id:
|
||||
:param order_meta:
|
||||
:param plugin_meta:
|
||||
:param barbican_meta_dto:
|
||||
:return: cm.ResultDTO
|
||||
"""
|
||||
raise DogtagPluginNotSupportedException(
|
||||
"Dogtag plugin does not support %s request type".format(
|
||||
cm.CertificateRequestType.FULL_CMC_REQUEST))
|
||||
|
||||
def _issue_stored_key_request(self, order_id, order_meta, plugin_meta):
|
||||
def _issue_stored_key_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Issue a simple CMC request to the Dogtag CA.
|
||||
|
||||
:param order_id:
|
||||
:param order_meta:
|
||||
:param plugin_meta:
|
||||
:param barbican_meta_dto:
|
||||
:return: cm.ResultDTO
|
||||
"""
|
||||
return self._issue_simple_cmc_request(
|
||||
order_id,
|
||||
order_meta,
|
||||
plugin_meta)
|
||||
plugin_meta,
|
||||
barbican_meta_dto)
|
||||
|
||||
@_catch_enrollment_exceptions
|
||||
def _issue_custom_certificate_request(self, order_id, order_meta,
|
||||
plugin_meta):
|
||||
plugin_meta, barbican_meta_dto):
|
||||
"""Issue a custom certificate request to Dogtag CA
|
||||
|
||||
For now, we assume that we are talking to the Dogtag CA that
|
||||
@@ -771,6 +790,7 @@ class DogtagCAPlugin(cm.CertificatePluginBase):
|
||||
expose syntax. Depending on the profile, only the relevant fields
|
||||
will be populated in the request. All others will be ignored.
|
||||
:param plugin_meta: Used to store data for status check.
|
||||
:param barbican_meta_dto: Extra data to aid in processing.
|
||||
:return: cm.ResultDTO
|
||||
"""
|
||||
profile_id = order_meta.get(self.PROFILE_ID, None)
|
||||
@@ -780,13 +800,18 @@ class DogtagCAPlugin(cm.CertificatePluginBase):
|
||||
status_message=u._("No profile_id specified"))
|
||||
|
||||
results = self.certclient.enroll_cert(profile_id, order_meta)
|
||||
return self._process_enrollment_results(results, plugin_meta)
|
||||
return self._process_enrollment_results(results,
|
||||
plugin_meta,
|
||||
barbican_meta_dto)
|
||||
|
||||
def _process_enrollment_results(self, enrollment_results, plugin_meta):
|
||||
def _process_enrollment_results(self, enrollment_results, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Process results received from Dogtag CA for enrollment
|
||||
|
||||
:param enrollment_results: list of CertEnrollmentResult objects
|
||||
:param plugin_meta: metadata dict for storing plugin specific data
|
||||
:param barbican_meta_dto: object containing extra data to help process
|
||||
the request
|
||||
:return: cm.ResultDTO
|
||||
"""
|
||||
|
||||
@@ -831,7 +856,8 @@ class DogtagCAPlugin(cm.CertificatePluginBase):
|
||||
certificate=cert.encoded,
|
||||
intermediates=cert.pkcs7_cert_chain)
|
||||
|
||||
def modify_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def modify_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Modify a certificate request.
|
||||
|
||||
Once a certificate request is generated, it cannot be modified.
|
||||
@@ -843,14 +869,15 @@ class DogtagCAPlugin(cm.CertificatePluginBase):
|
||||
modified request data will be present here.
|
||||
:param plugin_meta: data stored on behalf of the plugin for further
|
||||
operations
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
:return: ResultDTO:
|
||||
"""
|
||||
result_dto = self.cancel_certificate_request(
|
||||
order_id, order_meta, plugin_meta)
|
||||
order_id, order_meta, plugin_meta, barbican_meta_dto)
|
||||
|
||||
if result_dto.status == cm.CertificateStatus.REQUEST_CANCELED:
|
||||
return self.issue_certificate_request(
|
||||
order_id, order_meta, plugin_meta)
|
||||
order_id, order_meta, plugin_meta, barbican_meta_dto)
|
||||
elif result_dto.status == cm.CertificateStatus.INVALID_OPERATION:
|
||||
return cm.ResultDTO(
|
||||
cm.CertificateStatus.INVALID_OPERATION,
|
||||
@@ -864,13 +891,15 @@ class DogtagCAPlugin(cm.CertificatePluginBase):
|
||||
return result_dto
|
||||
|
||||
@_catch_request_exception
|
||||
def cancel_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def cancel_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Cancel a certificate request.
|
||||
|
||||
:param order_id: ID for the order associated with this request
|
||||
:param order_meta: order metadata fdr this request
|
||||
:param plugin_meta: data stored by plugin for further processing.
|
||||
In particular, the request_id
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
:return: cm.ResultDTO:
|
||||
"""
|
||||
request_id = self._get_request_id(order_id, plugin_meta, "cancelling")
|
||||
|
||||
@@ -211,7 +211,8 @@ class CertificatePluginBase(object):
|
||||
"""
|
||||
|
||||
@abc.abstractmethod
|
||||
def issue_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def issue_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Create the initial order
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -220,6 +221,11 @@ class CertificatePluginBase(object):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf
|
||||
:param barbican_meta_dto:
|
||||
Data transfer object :class:`BarbicanMetaDTO` containing data
|
||||
added to the request by the Barbican server to provide additional
|
||||
context for processing, but which are not in
|
||||
the original request. For example, the plugin_ca_id
|
||||
:returns: A :class:`ResultDTO` instance containing the result
|
||||
populated by the plugin implementation
|
||||
:rtype: :class:`ResultDTO`
|
||||
@@ -227,7 +233,8 @@ class CertificatePluginBase(object):
|
||||
raise NotImplementedError # pragma: no cover
|
||||
|
||||
@abc.abstractmethod
|
||||
def modify_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def modify_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Update the order meta-data
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -236,6 +243,11 @@ class CertificatePluginBase(object):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf
|
||||
:param barbican_meta_dto:
|
||||
Data transfer object :class:`BarbicanMetaDTO` containing data
|
||||
added to the request by the Barbican server to provide additional
|
||||
context for processing, but which are not in
|
||||
the original request. For example, the plugin_ca_id
|
||||
:returns: A :class:`ResultDTO` instance containing the result
|
||||
populated by the plugin implementation
|
||||
:rtype: :class:`ResultDTO`
|
||||
@@ -243,7 +255,8 @@ class CertificatePluginBase(object):
|
||||
raise NotImplementedError # pragma: no cover
|
||||
|
||||
@abc.abstractmethod
|
||||
def cancel_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def cancel_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Cancel the order
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -252,6 +265,11 @@ class CertificatePluginBase(object):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf
|
||||
:param barbican_meta_dto:
|
||||
Data transfer object :class:`BarbicanMetaDTO` containing data
|
||||
added to the request by the Barbican server to provide additional
|
||||
context for processing, but which are not in
|
||||
the original request. For example, the plugin_ca_id
|
||||
:returns: A :class:`ResultDTO` instance containing the result
|
||||
populated by the plugin implementation
|
||||
:rtype: :class:`ResultDTO`
|
||||
@@ -259,7 +277,8 @@ class CertificatePluginBase(object):
|
||||
raise NotImplementedError # pragma: no cover
|
||||
|
||||
@abc.abstractmethod
|
||||
def check_certificate_status(self, order_id, order_meta, plugin_meta):
|
||||
def check_certificate_status(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Check status of the order
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -268,6 +287,11 @@ class CertificatePluginBase(object):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf
|
||||
:param barbican_meta_dto:
|
||||
Data transfer object :class:`BarbicanMetaDTO` containing data
|
||||
added to the request by the Barbican server to provide additional
|
||||
context for processing, but which are not in
|
||||
the original request. For example, the plugin_ca_id
|
||||
:returns: A :class:`ResultDTO` instance containing the result
|
||||
populated by the plugin implementation
|
||||
:rtype: :class:`ResultDTO`
|
||||
@@ -348,6 +372,25 @@ class ResultDTO(object):
|
||||
self.retry_method = retry_method
|
||||
|
||||
|
||||
class BarbicanMetaDTO(object):
|
||||
"""Barbican meta data transfer object
|
||||
|
||||
Information needed to process a certificate request that is not specified
|
||||
in the original request, and written by Barbican core, that is needed
|
||||
by the plugin to process requests.
|
||||
"""
|
||||
|
||||
def __init__(self, plugin_ca_id=None, generated_csr=None):
|
||||
"""Creates a new BarbicanMetaDTO.
|
||||
|
||||
:param plugin_ca_id: ca_id as known to the plugin
|
||||
:param generated_csr: csr generated in the stored-key case
|
||||
:return: BarbicanMetaDTO
|
||||
"""
|
||||
self.plugin_ca_id = plugin_ca_id
|
||||
self.generated_csr = generated_csr
|
||||
|
||||
|
||||
class CertificatePluginManager(named.NamedExtensionManager):
|
||||
def __init__(self, conf=CONF, invoke_on_load=True,
|
||||
invoke_args=(), invoke_kwargs={}):
|
||||
|
||||
@@ -24,7 +24,8 @@ LOG = utils.getLogger(__name__)
|
||||
class SimpleCertificatePlugin(cert.CertificatePluginBase):
|
||||
"""Simple/default certificate plugin."""
|
||||
|
||||
def issue_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def issue_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Create the initial order with CA
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -33,6 +34,7 @@ class SimpleCertificatePlugin(cert.CertificatePluginBase):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf.
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
:returns: A :class:`ResultDTO` instance containing the result
|
||||
populated by the plugin implementation
|
||||
:rtype: :class:`ResultDTO`
|
||||
@@ -40,7 +42,8 @@ class SimpleCertificatePlugin(cert.CertificatePluginBase):
|
||||
LOG.info(u._LI('Invoking issue_certificate_request()'))
|
||||
return cert.ResultDTO(cert.CertificateStatus.WAITING_FOR_CA)
|
||||
|
||||
def modify_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def modify_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Update the order meta-data
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -49,6 +52,7 @@ class SimpleCertificatePlugin(cert.CertificatePluginBase):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf.
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
:returns: A :class:`ResultDTO` instance containing the result
|
||||
populated by the plugin implementation
|
||||
:rtype: :class:`ResultDTO`
|
||||
@@ -56,7 +60,8 @@ class SimpleCertificatePlugin(cert.CertificatePluginBase):
|
||||
LOG.info(u._LI('Invoking modify_certificate_request()'))
|
||||
return cert.ResultDTO(cert.CertificateStatus.WAITING_FOR_CA)
|
||||
|
||||
def cancel_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def cancel_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Cancel the order
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -65,6 +70,7 @@ class SimpleCertificatePlugin(cert.CertificatePluginBase):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf.
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
:returns: A :class:`ResultDTO` instance containing the result
|
||||
populated by the plugin implementation
|
||||
:rtype: :class:`ResultDTO`
|
||||
@@ -72,7 +78,8 @@ class SimpleCertificatePlugin(cert.CertificatePluginBase):
|
||||
LOG.info(u._LI('Invoking cancel_certificate_request()'))
|
||||
return cert.ResultDTO(cert.CertificateStatus.REQUEST_CANCELED)
|
||||
|
||||
def check_certificate_status(self, order_id, order_meta, plugin_meta):
|
||||
def check_certificate_status(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Check status of the order
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -81,6 +88,7 @@ class SimpleCertificatePlugin(cert.CertificatePluginBase):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf.
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
:returns: A :class:`ResultDTO` instance containing the result
|
||||
populated by the plugin implementation
|
||||
:rtype: :class:`ResultDTO`
|
||||
|
||||
@@ -59,7 +59,8 @@ class SymantecCertificatePlugin(cert.CertificatePluginBase):
|
||||
if self.url == None:
|
||||
raise ValueError(u._("url is required"))
|
||||
|
||||
def issue_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def issue_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Create the initial order with CA
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -68,6 +69,7 @@ class SymantecCertificatePlugin(cert.CertificatePluginBase):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf.
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
:returns: ResultDTO
|
||||
"""
|
||||
successful, error_msg, can_retry = _ca_create_order(order_meta,
|
||||
@@ -84,7 +86,8 @@ class SymantecCertificatePlugin(cert.CertificatePluginBase):
|
||||
|
||||
return cert.ResultDTO(status=status, status_message=message)
|
||||
|
||||
def modify_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def modify_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Update the order meta-data
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -93,10 +96,12 @@ class SymantecCertificatePlugin(cert.CertificatePluginBase):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf.
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
"""
|
||||
raise NotImplementedError # pragma: no cover
|
||||
|
||||
def cancel_certificate_request(self, order_id, order_meta, plugin_meta):
|
||||
def cancel_certificate_request(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Cancel the order
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -105,10 +110,12 @@ class SymantecCertificatePlugin(cert.CertificatePluginBase):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf.
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
"""
|
||||
raise NotImplementedError # pragma: no cover
|
||||
|
||||
def check_certificate_status(self, order_id, order_meta, plugin_meta):
|
||||
def check_certificate_status(self, order_id, order_meta, plugin_meta,
|
||||
barbican_meta_dto):
|
||||
"""Check status of the order
|
||||
|
||||
:param order_id: ID associated with the order
|
||||
@@ -117,6 +124,7 @@ class SymantecCertificatePlugin(cert.CertificatePluginBase):
|
||||
this plugin. Plugins may also update/add
|
||||
information here which Barbican will persist
|
||||
on their behalf.
|
||||
:param barbican_meta_dto: additional data needed to process order.
|
||||
"""
|
||||
raise NotImplementedError # pragma: no cover
|
||||
|
||||
|
||||
@@ -75,17 +75,24 @@ def issue_certificate_request(order_model, project_model, repos):
|
||||
container_model = None
|
||||
|
||||
plugin_meta = _get_plugin_meta(order_model, repos)
|
||||
barbican_meta_dto = cert.BarbicanMetaDTO()
|
||||
|
||||
# Locate a suitable plugin to issue a certificate.
|
||||
cert_plugin = cert.CertificatePluginManager().get_plugin(order_model.meta)
|
||||
|
||||
request_type = order_model.meta.get(cert.REQUEST_TYPE)
|
||||
if request_type == cert.CertificateRequestType.STORED_KEY_REQUEST:
|
||||
_generate_csr(order_model, repos)
|
||||
csr = order_model.order_barbican_metadata.get('generated_csr')
|
||||
if csr is None:
|
||||
csr = _generate_csr(order_model, repos)
|
||||
order_model.order_barbican_metadata['generated_csr'] = csr
|
||||
order_model.save()
|
||||
barbican_meta_dto.generated_csr = csr
|
||||
|
||||
result = cert_plugin.issue_certificate_request(order_model.id,
|
||||
order_model.meta,
|
||||
plugin_meta)
|
||||
plugin_meta,
|
||||
barbican_meta_dto)
|
||||
|
||||
# Save plugin order plugin state
|
||||
_save_plugin_metadata(order_model, plugin_meta, repos)
|
||||
@@ -134,13 +141,15 @@ def check_certificate_request(order_model, project_model, plugin_name, repos):
|
||||
"""
|
||||
container_model = None
|
||||
plugin_meta = _get_plugin_meta(order_model, repos)
|
||||
barbican_meta_dto = cert.BarbicanMetaDTO()
|
||||
|
||||
cert_plugin = cert.CertificatePluginManager().get_plugin_by_name(
|
||||
plugin_name)
|
||||
|
||||
result = cert_plugin.check_certificate_request(order_model.id,
|
||||
order_model.meta,
|
||||
plugin_meta)
|
||||
plugin_meta,
|
||||
barbican_meta_dto)
|
||||
|
||||
# Save plugin order plugin state
|
||||
_save_plugin_metadata(order_model, plugin_meta, repos)
|
||||
@@ -245,8 +254,14 @@ def _get_plugin_meta(order_model, repos):
|
||||
|
||||
|
||||
def _generate_csr(order_model, repos):
|
||||
"""Generate a CSR from the public key and add to the order metadata."""
|
||||
"""Generate a CSR from the public key.
|
||||
|
||||
:param: order_model - order for the request
|
||||
:param: repos - parameter to get to repositories
|
||||
:return: CSR (certificate signing request) in PEM format
|
||||
:raise: :class:`StoredKeyPrivateKeyNotFound` if private key not found
|
||||
:class:`StoredKeyContainerNotFound` if container not found
|
||||
"""
|
||||
container_ref = order_model.meta.get('container_ref')
|
||||
|
||||
# extract container_id as the last part of the URL
|
||||
@@ -292,14 +307,8 @@ def _generate_csr(order_model, repos):
|
||||
pass
|
||||
req.sign(pkey, 'sha256')
|
||||
|
||||
# TODO(alee-3) For now, we store the CSR in the order_meta. We need
|
||||
# to revisit whether this is the right place to store this data as it
|
||||
# is not data that was provided by the client. We may end up storing
|
||||
# it in the barbican_metadata structure.
|
||||
|
||||
order_model.meta['request'] = crypto.dump_certificate_request(
|
||||
crypto.FILETYPE_PEM, req)
|
||||
order_model.save()
|
||||
csr = crypto.dump_certificate_request(crypto.FILETYPE_PEM, req)
|
||||
return csr
|
||||
|
||||
|
||||
def _notify_ca_unavailable(order_model, result):
|
||||
|
||||
@@ -306,6 +306,8 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
dogtag_cert.CertRequestStatus.COMPLETE)
|
||||
self.modified_request.cert_id = self.cert_id_mock
|
||||
|
||||
self.barbican_meta_dto = cm.BarbicanMetaDTO()
|
||||
|
||||
def tearDown(self):
|
||||
super(WhenTestingDogtagCAPlugin, self).tearDown()
|
||||
self.patcher.stop()
|
||||
@@ -318,7 +320,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.certclient_mock.enroll_cert.return_value = enrollment_results
|
||||
|
||||
result_dto = self.plugin.issue_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.enroll_cert.assert_called_once_with(
|
||||
self.profile_id,
|
||||
@@ -357,7 +359,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
enrollment_results)
|
||||
|
||||
result_dto = self.plugin.issue_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.create_enrollment_request.assert_called_once_with(
|
||||
self.cfg_mock.dogtag_plugin.simple_cmc_profile,
|
||||
@@ -395,7 +397,8 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.plugin.issue_certificate_request,
|
||||
self.order_id,
|
||||
order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_meta_dto
|
||||
)
|
||||
|
||||
def test_issue_stored_key_request(self):
|
||||
@@ -431,7 +434,8 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.plugin.issue_certificate_request,
|
||||
self.order_id,
|
||||
order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_meta_dto
|
||||
)
|
||||
|
||||
def test_issue_return_data_error_with_no_profile_id(self):
|
||||
@@ -439,7 +443,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
plugin_meta = {}
|
||||
|
||||
result_dto = self.plugin.issue_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.assertEqual(result_dto.status,
|
||||
cm.CertificateStatus.CLIENT_DATA_ISSUE_SEEN,
|
||||
@@ -459,7 +463,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.certclient_mock.enroll_cert.return_value = enrollment_results
|
||||
|
||||
result_dto = self.plugin.issue_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.enroll_cert.assert_called_once_with(
|
||||
self.profile_id,
|
||||
@@ -485,7 +489,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.certclient_mock.enroll_cert.return_value = enrollment_results
|
||||
|
||||
result_dto = self.plugin.issue_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.enroll_cert.assert_called_once_with(
|
||||
self.profile_id,
|
||||
@@ -511,7 +515,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.certclient_mock.enroll_cert.return_value = enrollment_results
|
||||
|
||||
result_dto = self.plugin.issue_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.enroll_cert.assert_called_once_with(
|
||||
self.profile_id,
|
||||
@@ -540,7 +544,8 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.plugin.issue_certificate_request,
|
||||
self.order_id,
|
||||
order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_meta_dto
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
@@ -563,7 +568,8 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.plugin.issue_certificate_request,
|
||||
self.order_id,
|
||||
order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_meta_dto
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
@@ -579,7 +585,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
pki.BadRequestException("bad request"))
|
||||
|
||||
result_dto = self.plugin.issue_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.enroll_cert.assert_called_once_with(
|
||||
self.profile_id,
|
||||
@@ -601,7 +607,8 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.plugin.issue_certificate_request,
|
||||
self.order_id,
|
||||
order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_meta_dto
|
||||
)
|
||||
|
||||
def test_issue_return_ca_unavailable(self):
|
||||
@@ -612,7 +619,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
request_exceptions.RequestException())
|
||||
|
||||
result_dto = self.plugin.issue_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.enroll_cert.assert_called_once_with(
|
||||
self.profile_id,
|
||||
@@ -630,7 +637,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.certclient_mock.review_request.return_value = self.review_response
|
||||
|
||||
result_dto = self.plugin.cancel_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.cancel_request.assert_called_once_with(
|
||||
self.request_id_mock,
|
||||
@@ -648,7 +655,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
pki.RequestNotFoundException("request_not_found"))
|
||||
|
||||
result_dto = self.plugin.cancel_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.review_request.assert_called_once_with(
|
||||
self.request_id_mock)
|
||||
@@ -666,7 +673,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
pki.ConflictingOperationException("conflicting_operation"))
|
||||
|
||||
result_dto = self.plugin.cancel_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.cancel_request.assert_called_once_with(
|
||||
self.request_id_mock,
|
||||
@@ -684,7 +691,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
request_exceptions.RequestException("request_exception"))
|
||||
|
||||
result_dto = self.plugin.cancel_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.assertEqual(result_dto.status,
|
||||
cm.CertificateStatus.CA_UNAVAILABLE_FOR_REQUEST,
|
||||
@@ -699,7 +706,8 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.plugin.cancel_certificate_request,
|
||||
self.order_id,
|
||||
order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_meta_dto
|
||||
)
|
||||
|
||||
def test_check_status(self):
|
||||
@@ -710,7 +718,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.certclient_mock.get_cert.return_value = self.cert
|
||||
|
||||
result_dto = self.plugin.check_certificate_status(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.get_request.assert_called_once_with(
|
||||
self.request_id_mock)
|
||||
@@ -734,7 +742,8 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.plugin.check_certificate_status,
|
||||
self.order_id,
|
||||
order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_meta_dto
|
||||
)
|
||||
|
||||
def test_check_status_rejected(self):
|
||||
@@ -745,7 +754,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.certclient_mock.get_request.return_value = self.request
|
||||
|
||||
result_dto = self.plugin.check_certificate_status(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.get_request.assert_called_once_with(
|
||||
self.request_id_mock)
|
||||
@@ -765,7 +774,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.certclient_mock.get_request.return_value = self.request
|
||||
|
||||
result_dto = self.plugin.check_certificate_status(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.get_request.assert_called_once_with(
|
||||
self.request_id_mock)
|
||||
@@ -785,7 +794,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.certclient_mock.get_request.return_value = self.request
|
||||
|
||||
result_dto = self.plugin.check_certificate_status(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.get_request.assert_called_once_with(
|
||||
self.request_id_mock)
|
||||
@@ -809,7 +818,8 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.plugin.check_certificate_status,
|
||||
self.order_id,
|
||||
order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_meta_dto
|
||||
)
|
||||
|
||||
def test_modify_request(self):
|
||||
@@ -826,7 +836,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.certclient_mock.enroll_cert.return_value = enrollment_results
|
||||
|
||||
result_dto = self.plugin.modify_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.cancel_request.assert_called_once_with(
|
||||
self.request_id_mock,
|
||||
@@ -859,7 +869,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
pki.RequestNotFoundException("request_not_found"))
|
||||
|
||||
result_dto = self.plugin.modify_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.review_request.assert_called_once_with(
|
||||
self.request_id_mock)
|
||||
@@ -877,7 +887,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
pki.ConflictingOperationException("conflicting_operation"))
|
||||
|
||||
result_dto = self.plugin.modify_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.certclient_mock.cancel_request.assert_called_once_with(
|
||||
self.request_id_mock,
|
||||
@@ -895,7 +905,7 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
request_exceptions.RequestException("request_exception"))
|
||||
|
||||
result_dto = self.plugin.modify_certificate_request(
|
||||
self.order_id, order_meta, plugin_meta)
|
||||
self.order_id, order_meta, plugin_meta, self.barbican_meta_dto)
|
||||
|
||||
self.assertEqual(result_dto.status,
|
||||
cm.CertificateStatus.CA_UNAVAILABLE_FOR_REQUEST,
|
||||
@@ -910,5 +920,6 @@ class WhenTestingDogtagCAPlugin(utils.BaseTestCase):
|
||||
self.plugin.modify_certificate_request,
|
||||
self.order_id,
|
||||
order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_meta_dto
|
||||
)
|
||||
|
||||
@@ -24,22 +24,22 @@ class WhenTestingSimpleCertificateManagerPlugin(testtools.TestCase):
|
||||
self.plugin = simple.SimpleCertificatePlugin()
|
||||
|
||||
def test_issue_certificate_request(self):
|
||||
result = self.plugin.issue_certificate_request(None, None, None)
|
||||
result = self.plugin.issue_certificate_request(None, None, None, None)
|
||||
|
||||
self.assertEqual(cm.CertificateStatus.WAITING_FOR_CA, result.status)
|
||||
|
||||
def test_check_certificate_status(self):
|
||||
result = self.plugin.check_certificate_status(None, None, None)
|
||||
result = self.plugin.check_certificate_status(None, None, None, None)
|
||||
|
||||
self.assertEqual(cm.CertificateStatus.WAITING_FOR_CA, result.status)
|
||||
|
||||
def test_modify_certificate_request(self):
|
||||
result = self.plugin.modify_certificate_request(None, None, None)
|
||||
result = self.plugin.modify_certificate_request(None, None, None, None)
|
||||
|
||||
self.assertEqual(cm.CertificateStatus.WAITING_FOR_CA, result.status)
|
||||
|
||||
def test_cancel_certificate_request(self):
|
||||
result = self.plugin.cancel_certificate_request(None, None, None)
|
||||
result = self.plugin.cancel_certificate_request(None, None, None, None)
|
||||
|
||||
self.assertEqual(cm.CertificateStatus.REQUEST_CANCELED, result.status)
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import mock
|
||||
import testtools
|
||||
|
||||
try:
|
||||
import barbican.plugin.interface.certificate_manager as cm
|
||||
import barbican.plugin.symantec as sym
|
||||
imports_ok = True
|
||||
except ImportError:
|
||||
@@ -40,6 +41,7 @@ class WhenTestingSymantecPlugin(utils.BaseTestCase):
|
||||
|
||||
self.error_msg = 'Error Message Here'
|
||||
self.symantec = sym.SymantecCertificatePlugin()
|
||||
self.barbican_plugin_dto = cm.BarbicanMetaDTO()
|
||||
|
||||
self.symantec_patcher = mock.patch(
|
||||
'barbican.plugin.symantec._ca_create_order'
|
||||
@@ -60,7 +62,8 @@ class WhenTestingSymantecPlugin(utils.BaseTestCase):
|
||||
result = self.symantec.issue_certificate_request(
|
||||
order_id,
|
||||
self.order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_plugin_dto
|
||||
)
|
||||
|
||||
self.assertEqual(result.status, "waiting for CA")
|
||||
@@ -74,7 +77,8 @@ class WhenTestingSymantecPlugin(utils.BaseTestCase):
|
||||
result = self.symantec.issue_certificate_request(
|
||||
order_id,
|
||||
self.order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_plugin_dto
|
||||
)
|
||||
|
||||
self.assertEqual(result.status, "client data issue seen")
|
||||
@@ -88,7 +92,8 @@ class WhenTestingSymantecPlugin(utils.BaseTestCase):
|
||||
result = self.symantec.issue_certificate_request(
|
||||
order_id,
|
||||
self.order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_plugin_dto
|
||||
)
|
||||
|
||||
self.assertEqual(result.status, "CA unavailable for request")
|
||||
@@ -101,5 +106,6 @@ class WhenTestingSymantecPlugin(utils.BaseTestCase):
|
||||
self.symantec.check_certificate_status,
|
||||
order_id,
|
||||
self.order_meta,
|
||||
plugin_meta
|
||||
plugin_meta,
|
||||
self.barbican_plugin_dto
|
||||
)
|
||||
|
||||
@@ -110,8 +110,10 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
super(WhenIssuingCertificateRequests, self).setUp()
|
||||
self.project_id = "56789"
|
||||
self.order_id = "12345"
|
||||
self.barbican_meta_dto = mock.MagicMock()
|
||||
self.order_meta = {}
|
||||
self.plugin_meta = {}
|
||||
self.barbican_meta = {}
|
||||
self.result = cert_man.ResultDTO(
|
||||
cert_man.CertificateStatus.WAITING_FOR_CA
|
||||
)
|
||||
@@ -123,6 +125,7 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
self.order_model.id = self.order_id
|
||||
self.order_model.meta = self.order_meta
|
||||
self.order_model.project_id = self.project_id
|
||||
self.order_model.order_barbican_meta = self.barbican_meta
|
||||
self.repos = mock.MagicMock()
|
||||
self.project_model = mock.MagicMock()
|
||||
|
||||
@@ -130,6 +133,7 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
self._config_cert_event_plugin()
|
||||
self._config_save_meta_plugin()
|
||||
self._config_get_meta_plugin()
|
||||
self._config_barbican_meta_dto()
|
||||
|
||||
self.private_key_secret_id = "private_key_secret_id"
|
||||
self.public_key_secret_id = "public_key_secret_id"
|
||||
@@ -173,6 +177,7 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
"https://localhost/containers/" + self.container_id,
|
||||
"subject_name": "cn=host.example.com,ou=dev,ou=us,o=example.com"
|
||||
}
|
||||
self.order_model.order_barbican_metadata = {}
|
||||
|
||||
def stored_key_side_effect(self, *args, **kwargs):
|
||||
if args[0] == self.private_key_secret_id:
|
||||
@@ -190,6 +195,7 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
self.save_plugin_meta_patcher.stop()
|
||||
self.get_plugin_meta_patcher.stop()
|
||||
self.cert_event_plugin_patcher.stop()
|
||||
self.barbican_meta_dto_patcher.stop()
|
||||
|
||||
def test_should_return_waiting_for_ca(self):
|
||||
self.result.status = cert_man.CertificateStatus.WAITING_FOR_CA
|
||||
@@ -241,7 +247,8 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
self.repos)
|
||||
|
||||
self._verify_issue_certificate_plugins_called()
|
||||
self.assertIsNotNone(self.order_meta['request'])
|
||||
self.assertIsNotNone(
|
||||
self.order_model.order_barbican_metadata['generated_csr'])
|
||||
|
||||
# TODO(alee-3) Add tests to validate the request based on the validator
|
||||
# code that dave-mccowan is adding.
|
||||
@@ -267,7 +274,8 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
self.repos)
|
||||
|
||||
self._verify_issue_certificate_plugins_called()
|
||||
self.assertIsNotNone(self.order_meta['request'])
|
||||
self.assertIsNotNone(
|
||||
self.order_model.order_barbican_metadata['generated_csr'])
|
||||
|
||||
# TODO(alee-3) Add tests to validate the request based on the validator
|
||||
# code that dave-mccowan is adding.
|
||||
@@ -293,7 +301,8 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
self.repos)
|
||||
|
||||
self._verify_issue_certificate_plugins_called()
|
||||
self.assertIsNotNone(self.order_meta['request'])
|
||||
self.assertIsNotNone(
|
||||
self.order_model.order_barbican_metadata['generated_csr'])
|
||||
|
||||
# TODO(alee-3) Add tests to validate the request based on the validator
|
||||
# code that dave-mccowan is adding.
|
||||
@@ -318,7 +327,8 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
self.repos)
|
||||
|
||||
self._verify_issue_certificate_plugins_called()
|
||||
self.assertIsNotNone(self.order_meta['request'])
|
||||
self.assertIsNotNone(
|
||||
self.order_model.order_barbican_metadata['generated_csr'])
|
||||
|
||||
# TODO(alee-3) Add tests to validate the request based on the validator
|
||||
# code that dave-mccowan is adding.
|
||||
@@ -388,7 +398,8 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
self.repos)
|
||||
|
||||
self._verify_issue_certificate_plugins_called()
|
||||
self.assertIsNotNone(self.order_meta['request'])
|
||||
self.assertIsNotNone(
|
||||
self.order_model.order_barbican_metadata['generated_csr'])
|
||||
|
||||
# TODO(alee-3) Add tests to validate the request based on the validator
|
||||
# code that dave-mccowan is adding.
|
||||
@@ -443,7 +454,8 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
self.cert_plugin.issue_certificate_request.assert_called_once_with(
|
||||
self.order_id,
|
||||
self.order_meta,
|
||||
self.plugin_meta
|
||||
self.plugin_meta,
|
||||
self.barbican_meta_dto
|
||||
)
|
||||
|
||||
self.mock_save_plugin.assert_called_once_with(
|
||||
@@ -487,3 +499,13 @@ class WhenIssuingCertificateRequests(utils.BaseTestCase):
|
||||
**get_plugin_config
|
||||
)
|
||||
self.get_plugin_meta_patcher.start()
|
||||
|
||||
def _config_barbican_meta_dto(self):
|
||||
"""Mock the BarbicanMetaDTO."""
|
||||
get_plugin_config = {'return_value': self.barbican_meta_dto}
|
||||
self.barbican_meta_dto_patcher = mock.patch(
|
||||
'barbican.plugin.interface.certificate_manager'
|
||||
'.BarbicanMetaDTO',
|
||||
**get_plugin_config
|
||||
)
|
||||
self.barbican_meta_dto_patcher.start()
|
||||
|
||||
Reference in New Issue
Block a user