Fixing stringent uid value checks in the ProxyKmipClient

This change loosens the input requirements for ProxyKmipClient
operations that accept a secret UID. Operations like Get and
Destroy used to require a string value but are allowed in the
KMIP specification to take no value at all. This change updates
the ProxyKmipClient to properly reflect the specification. The
underlying KMIPProxy client is mostly unchanged.

Closes #261
This commit is contained in:
Peter Hamilton 2017-02-10 11:40:40 -05:00
parent 0faf1e5f43
commit fae811528b
2 changed files with 9 additions and 7 deletions

View File

@ -391,7 +391,7 @@ class ProxyKmipClient(api.KmipClient):
message = result.result_message.value
raise exceptions.KmipOperationFailure(status, reason, message)
def get(self, uid):
def get(self, uid=None):
"""
Get a managed object from a KMIP appliance.
@ -407,8 +407,9 @@ class ProxyKmipClient(api.KmipClient):
TypeError: if the input argument is invalid
"""
# Check input
if not isinstance(uid, six.string_types):
raise TypeError("uid must be a string")
if uid is not None:
if not isinstance(uid, six.string_types):
raise TypeError("uid must be a string")
# Verify that operations can be given at this time
if not self._is_open:
@ -541,7 +542,7 @@ class ProxyKmipClient(api.KmipClient):
message = result.result_message.value
raise exceptions.KmipOperationFailure(status, reason, message)
def destroy(self, uid):
def destroy(self, uid=None):
"""
Destroy a managed object stored by a KMIP appliance.
@ -557,8 +558,9 @@ class ProxyKmipClient(api.KmipClient):
TypeError: if the input argument is invalid
"""
# Check input
if not isinstance(uid, six.string_types):
raise TypeError("uid must be a string")
if uid is not None:
if not isinstance(uid, six.string_types):
raise TypeError("uid must be a string")
# Verify that operations can be given at this time
if not self._is_open:

View File

@ -357,7 +357,7 @@ class KMIPProxy(KMIP):
revocation_message=message,
credential=credential)
def destroy(self, uuid, credential=None):
def destroy(self, uuid=None, credential=None):
return self._destroy(unique_identifier=uuid,
credential=credential)