Migrated certificates_client.py from tempest

This migrates the above files from tempest. This includes tempest
commits:

 * certificates_client.py     : Ia97c34f15aa06e11434ea9f66359adbca75bd9d4
 * test_certificates_client.py: I3ad6761651cec5e66012d08e6b63322f53286a5c
 * certificates.py            : Ica929c402a3d042ae751302384e68853eb28b405

to see the commit history for these files refer to the above sha1s
in the tempest repository

Partially implements blueprint migrate-service-clients-to-tempest-lib
Change-Id: I225569ddb2c56200cf071e7abd017ce183fd161f
This commit is contained in:
OTSUKA, Yuanying 2015-09-25 13:58:38 +09:00 committed by Ken'ichi Ohmichi
parent 6757c130b9
commit 96595ea411
3 changed files with 142 additions and 0 deletions

View File

@ -0,0 +1,41 @@
# Copyright 2014 NEC Corporation. All rights reserved.
#
# 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.
import copy
_common_schema = {
'status_code': [200],
'response_body': {
'type': 'object',
'properties': {
'certificate': {
'type': 'object',
'properties': {
'data': {'type': 'string'},
'private_key': {'type': 'string'},
},
'additionalProperties': False,
'required': ['data', 'private_key']
}
},
'additionalProperties': False,
'required': ['certificate']
}
}
get_certificate = copy.deepcopy(_common_schema)
get_certificate['response_body']['properties']['certificate'][
'properties']['private_key'].update({'type': 'null'})
create_certificate = copy.deepcopy(_common_schema)

View File

@ -0,0 +1,37 @@
# Copyright 2013 IBM Corp
# All Rights Reserved.
#
# 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 oslo_serialization import jsonutils as json
from tempest_lib.api_schema.response.compute.v2_1 import certificates as schema
from tempest_lib.common import rest_client
class CertificatesClient(rest_client.RestClient):
def show_certificate(self, certificate_id):
url = "os-certificates/%s" % certificate_id
resp, body = self.get(url)
body = json.loads(body)
self.validate_response(schema.get_certificate, resp, body)
return rest_client.ResponseBody(resp, body)
def create_certificate(self):
"""create certificates."""
url = "os-certificates"
resp, body = self.post(url, None)
body = json.loads(body)
self.validate_response(schema.create_certificate, resp, body)
return rest_client.ResponseBody(resp, body)

View File

@ -0,0 +1,64 @@
# Copyright 2015 NEC Corporation. All rights reserved.
#
# 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.
import copy
from tempest_lib.services.compute import certificates_client
from tempest_lib.tests import fake_auth_provider
from tempest_lib.tests.services.compute import base
class TestCertificatesClient(base.BaseComputeServiceTest):
FAKE_CERTIFICATE = {
"certificate": {
"data": "-----BEGIN----MIICyzCCAjSgAwI----END CERTIFICATE-----\n",
"private_key": None
}
}
def setUp(self):
super(TestCertificatesClient, self).setUp()
fake_auth = fake_auth_provider.FakeAuthProvider()
self.client = certificates_client.CertificatesClient(
fake_auth, 'compute', 'regionOne')
def _test_show_certificate(self, bytes_body=False):
self.check_service_client_function(
self.client.show_certificate,
'tempest_lib.common.rest_client.RestClient.get',
self.FAKE_CERTIFICATE,
bytes_body,
certificate_id="fake-id")
def test_show_certificate_with_str_body(self):
self._test_show_certificate()
def test_show_certificate_with_bytes_body(self):
self._test_show_certificate(bytes_body=True)
def _test_create_certificate(self, bytes_body=False):
cert = copy.deepcopy(self.FAKE_CERTIFICATE)
cert['certificate']['private_key'] = "my_private_key"
self.check_service_client_function(
self.client.create_certificate,
'tempest_lib.common.rest_client.RestClient.post',
cert,
bytes_body)
def test_create_certificate_with_str_body(self):
self._test_create_certificate()
def test_create_certificate_with_bytes_body(self):
self._test_create_certificate(bytes_body=True)