Updating cloudkeep supporting classes
* Switches to the new order format Change-Id: Ifa8757c27bc792bd07a509c76b581f78ddd5253d
This commit is contained in:
parent
cd47e56366
commit
7eb3325754
@ -77,37 +77,45 @@ class OrdersBehavior(object):
|
||||
algorithm=self.config.algorithm,
|
||||
bit_length=self.config.bit_length,
|
||||
mode=self.config.mode,
|
||||
expiration=expiration)
|
||||
expiration=expiration,
|
||||
order_type='key')
|
||||
return resp
|
||||
|
||||
def create_order_overriding_cfg(self, name=None, payload_content_type=None,
|
||||
expiration=None, algorithm=None,
|
||||
bit_length=None, mode=None, headers=None):
|
||||
def create_order_overriding_cfg(
|
||||
self, name=None, expiration=None, algorithm=None, bit_length=None,
|
||||
payload_content_type=None, payload_content_encoding=None,
|
||||
mode=None, headers=None, order_type='key'):
|
||||
"""Creates order using provided parameters or default configurations.
|
||||
Allows for testing individual parameters on creation.
|
||||
"""
|
||||
content_type = payload_content_type or self.config.payload_content_type
|
||||
resp = self.create_order(
|
||||
name=name or self.config.name,
|
||||
payload_content_type=
|
||||
payload_content_type or self.config.payload_content_type,
|
||||
payload_content_type=content_type,
|
||||
payload_content_encoding=payload_content_encoding,
|
||||
algorithm=algorithm or self.config.algorithm,
|
||||
bit_length=bit_length or self.config.bit_length,
|
||||
mode=mode or self.config.mode,
|
||||
expiration=expiration, headers=headers)
|
||||
expiration=expiration,
|
||||
order_type=order_type,
|
||||
headers=headers)
|
||||
|
||||
return resp
|
||||
|
||||
def create_order(self, name=None, payload_content_type=None,
|
||||
algorithm=None, bit_length=None, mode=None,
|
||||
expiration=None, headers=None):
|
||||
def create_order(
|
||||
self, name=None, algorithm=None, bit_length=None, mode=None,
|
||||
payload_content_type=None, payload_content_encoding=None,
|
||||
expiration=None, headers=None, order_type='key'):
|
||||
try:
|
||||
resp = self.orders_client.create_order(
|
||||
name=name,
|
||||
payload_content_type=payload_content_type,
|
||||
payload_content_encoding=payload_content_encoding,
|
||||
algorithm=algorithm,
|
||||
bit_length=bit_length,
|
||||
mode=mode,
|
||||
expiration=expiration,
|
||||
order_type=order_type,
|
||||
headers=headers)
|
||||
except ConnectionError as e:
|
||||
# Gracefully handling when Falcon doesn't properly handle our req
|
||||
@ -124,10 +132,10 @@ class OrdersBehavior(object):
|
||||
self.created_orders.append(behavior_response.id)
|
||||
return behavior_response
|
||||
|
||||
def create_order_w_payload(self, name=None, algorithm=None,
|
||||
bit_length=None, mode=None,
|
||||
payload_content_type=None, expiration=None,
|
||||
payload=None):
|
||||
def create_order_w_payload(
|
||||
self, name=None, algorithm=None, bit_length=None, mode=None,
|
||||
payload_content_type=None, payload_content_encoding=None,
|
||||
expiration=None, payload=None, order_type='key'):
|
||||
"""Creates an order with a plain_text value. Separate from
|
||||
standard create order method because it is used for negative
|
||||
testing only and is expected to fail.
|
||||
@ -140,7 +148,9 @@ class OrdersBehavior(object):
|
||||
mode=mode or self.config.mode,
|
||||
expiration=expiration,
|
||||
payload_content_type=payload_content_type,
|
||||
payload=payload)
|
||||
payload_content_encoding=payload_content_encoding,
|
||||
payload=payload,
|
||||
order_type=order_type)
|
||||
except ConnectionError as e:
|
||||
# Gracefully handling when Falcon doesn't properly handle our req
|
||||
if type(e.message.reason) is BadStatusLine:
|
||||
|
@ -38,8 +38,9 @@ class OrdersClient(BarbicanRestClient):
|
||||
return '{base}/{order_id}'.format(base=self._get_base_url(),
|
||||
order_id=order_id)
|
||||
|
||||
def create_order(self, name, payload_content_type, algorithm,
|
||||
bit_length, mode, expiration, headers=None):
|
||||
def create_order(self, name, algorithm, bit_length, mode, expiration,
|
||||
order_type, payload_content_type,
|
||||
payload_content_encoding, headers=None):
|
||||
"""
|
||||
POST http://.../v1/orders/{order_uuid}
|
||||
Creates an order to generate a secret
|
||||
@ -47,18 +48,20 @@ class OrdersClient(BarbicanRestClient):
|
||||
remote_url = self._get_base_url()
|
||||
secret = Secret(name=name,
|
||||
payload_content_type=payload_content_type,
|
||||
payload_content_encoding=payload_content_encoding,
|
||||
expiration=expiration,
|
||||
algorithm=algorithm,
|
||||
bit_length=bit_length,
|
||||
mode=mode)
|
||||
req_obj = Order(secret=secret)
|
||||
req_obj = Order(meta=secret, order_type=order_type)
|
||||
|
||||
resp = self.request('POST', remote_url, request_entity=req_obj,
|
||||
response_entity_type=OrderRef, headers=headers)
|
||||
return resp
|
||||
|
||||
def create_order_w_payload(self, name, payload_content_type, algorithm,
|
||||
bit_length, mode, expiration, payload):
|
||||
def create_order_w_payload(self, name, algorithm, bit_length, mode,
|
||||
expiration, payload, payload_content_type,
|
||||
payload_content_encoding, order_type):
|
||||
"""
|
||||
POST http://.../v1/orders/{order_uuid}
|
||||
Creates an order to generate a secret with plain text. This is
|
||||
@ -68,12 +71,13 @@ class OrdersClient(BarbicanRestClient):
|
||||
remote_url = self._get_base_url()
|
||||
secret = Secret(name=name,
|
||||
payload_content_type=payload_content_type,
|
||||
payload_content_encoding=payload_content_encoding,
|
||||
expiration=expiration,
|
||||
algorithm=algorithm,
|
||||
bit_length=bit_length,
|
||||
mode=mode,
|
||||
payload=payload)
|
||||
req_obj = Order(secret=secret)
|
||||
req_obj = Order(meta=secret, order_type=order_type)
|
||||
|
||||
resp = self.request('POST', remote_url, request_entity=req_obj,
|
||||
response_entity_type=OrderRef)
|
||||
|
@ -22,9 +22,11 @@ from cloudcafe.cloudkeep.barbican.secrets.models.secret import Secret
|
||||
|
||||
class Order(AutoMarshallingModel):
|
||||
|
||||
def __init__(self, secret, secret_href=None, status=None, order_ref=None):
|
||||
def __init__(self, meta=None, secret_href=None, status=None,
|
||||
order_ref=None, order_type=None):
|
||||
super(Order, self).__init__()
|
||||
self.secret = secret
|
||||
self.order_type = order_type
|
||||
self.meta = meta
|
||||
self.secret_href = secret_href
|
||||
self.status = status
|
||||
self.order_ref = order_ref
|
||||
@ -45,8 +47,8 @@ class Order(AutoMarshallingModel):
|
||||
return self.get_id_from_ref(ref=self.secret_href)
|
||||
|
||||
def _obj_to_json(self):
|
||||
secret_dict = self.secret._obj_to_dict()
|
||||
return dict_to_str({'secret': secret_dict})
|
||||
secret_dict = self.meta._obj_to_dict()
|
||||
return dict_to_str({'type': self.order_type, 'meta': secret_dict})
|
||||
|
||||
@classmethod
|
||||
def _json_to_obj(cls, serialized_str):
|
||||
@ -59,7 +61,8 @@ class Order(AutoMarshallingModel):
|
||||
'order_ref': json_dict.get('order_ref'),
|
||||
'status': json_dict.get('status'),
|
||||
'secret_href': json_dict.get('secret_ref'),
|
||||
'secret': Secret._dict_to_obj(json_dict.get('secret'))
|
||||
'meta': Secret._dict_to_obj(json_dict.get('meta')),
|
||||
'order_type': json_dict.get('type')
|
||||
}
|
||||
return Order(**args)
|
||||
|
||||
|
@ -21,8 +21,9 @@ from cafe.engine.models.base import AutoMarshallingModel
|
||||
|
||||
class Secret(AutoMarshallingModel):
|
||||
|
||||
def __init__(self, name, expiration, algorithm, bit_length, mode,
|
||||
payload_content_type=None, payload=None, content_types=None,
|
||||
def __init__(self, name=None, expiration=None, algorithm=None,
|
||||
bit_length=None, mode=None, payload_content_type=None,
|
||||
payload=None, content_types=None,
|
||||
payload_content_encoding=None):
|
||||
super(Secret, self).__init__()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user