Adds certificate tests for keystone v3

This submission adds two test cases for identity to get_certificates.
Adds a script test_certificates.py and add two supporting functions
in json/identity_client.py

Change-Id: Ic67129c9bbad3683e01f2fae7a22bcf1e77d028d
diff --git a/tempest/api/identity/admin/v3/test_certificates.py b/tempest/api/identity/admin/v3/test_certificates.py
new file mode 100644
index 0000000..a53ee0a
--- /dev/null
+++ b/tempest/api/identity/admin/v3/test_certificates.py
@@ -0,0 +1,43 @@
+# Copyright 2014 OpenStack Foundation
+# 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 tempest.api.identity import base
+from tempest import test
+
+
+class CertificatesV3TestJSON(base.BaseIdentityV3AdminTest):
+    _interface = 'json'
+
+    def _verify_response(self, expected, actual):
+        missing_tags = [t for t in expected if t not in actual]
+        self.assertEqual(0, len(missing_tags),
+                         "Failed to fetch expected tag"
+                         "in the certificate: %s" % ','.join(missing_tags))
+
+    @test.attr(type='smoke')
+    def test_get_ca_certificate(self):
+        # Verify ca certificate chain
+        expected_tags = ['BEGIN CERTIFICATE', 'END CERTIFICATE']
+        resp, certificate = self.client.get_ca_certificate()
+        self.assertEqual(200, resp.status)
+        self._verify_response(expected_tags, certificate)
+
+    @test.attr(type='smoke')
+    def test_get_certificates(self):
+        # Verify signing certificates
+        expected_tags = ['Certificate', 'BEGIN CERTIFICATE', 'END CERTIFICATE']
+        resp, certificates = self.client.get_certificates()
+        self.assertEqual(200, resp.status)
+        self._verify_response(expected_tags, certificates)
diff --git a/tempest/services/identity/v3/json/identity_client.py b/tempest/services/identity/v3/json/identity_client.py
index 6829333..73e52a0 100644
--- a/tempest/services/identity/v3/json/identity_client.py
+++ b/tempest/services/identity/v3/json/identity_client.py
@@ -450,6 +450,16 @@
                                % (trust_id, role_id))
         return resp, body
 
+    def get_ca_certificate(self):
+        """GET ca certificate chain."""
+        resp, body = self.get("OS-SIMPLE-CERT/ca")
+        return resp, body
+
+    def get_certificates(self):
+        """GET signing certificates used to sign tokens."""
+        resp, body = self.get("OS-SIMPLE-CERT/certificates")
+        return resp, body
+
 
 class V3TokenClientJSON(rest_client.RestClient):