Browse Source
This patch will add cert API test for signing and showing certificates. The tests for certificates are integrated into test_bay tests in order to reuse an already existing bay for cert testing. As a side effect, this patch also combines update bay test with create, list, and delete to minimize the time spent waiting on bay create. Implements: blueprint magnum-tempest Change-Id: Ifbb4c779376fa401ca2538aba5097f7af8b4973echanges/89/260889/22
11 changed files with 271 additions and 26 deletions
@ -0,0 +1,56 @@
|
||||
# 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 magnum.tests.functional.api.v1.models import cert_model |
||||
from magnum.tests.functional.common import client |
||||
|
||||
|
||||
class CertClient(client.MagnumClient): |
||||
"""Encapsulates REST calls and maps JSON to/from models""" |
||||
|
||||
url = "/certificates" |
||||
|
||||
@classmethod |
||||
def cert_uri(cls, bay_id): |
||||
"""Construct bay uri |
||||
|
||||
:param bay_id: bay uuid or name |
||||
:returns: url string |
||||
""" |
||||
|
||||
return "{0}/{1}".format(cls.url, bay_id) |
||||
|
||||
def get_cert(self, bay_id, **kwargs): |
||||
"""Makes GET /certificates/bay_id request and returns CertEntity |
||||
|
||||
Abstracts REST call to return a single cert based on uuid or name |
||||
|
||||
:param bay_id: bay uuid or name |
||||
:returns: response object and BayCollection object |
||||
""" |
||||
|
||||
resp, body = self.get(self.cert_uri(bay_id)) |
||||
return self.deserialize(resp, body, cert_model.CertEntity) |
||||
|
||||
def post_cert(self, model, **kwargs): |
||||
"""Makes POST /certificates request and returns CertEntity |
||||
|
||||
Abstracts REST call to sign new certificate |
||||
|
||||
:param model: CertEntity |
||||
:returns: response object and CertEntity object |
||||
""" |
||||
|
||||
resp, body = self.post( |
||||
CertClient.url, |
||||
body=model.to_json(), **kwargs) |
||||
return self.deserialize(resp, body, cert_model.CertEntity) |
@ -0,0 +1,24 @@
|
||||
# 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 magnum.tests.functional.common import models |
||||
|
||||
|
||||
class CertData(models.BaseModel): |
||||
"""Data that encapsulates cert attributes""" |
||||
pass |
||||
|
||||
|
||||
class CertEntity(models.EntityModel): |
||||
"""Entity Model that represents a single instance of CertData""" |
||||
ENTITY_NAME = 'certificate' |
||||
MODEL_TYPE = CertData |
Loading…
Reference in new issue