Add XML support for test cases under identity admin.
So far test_service.py is not ready. Create_service, list_service and delete_service
in XML/admin_client.py are not working properly. It seems that Keystone does
not support XML for service API. A bug has been raised at
https://bugs.launchpad.net/keystone/+bug/1042144.
I have complied with the XML format as it described in
http://docs.rackspace.com/openstack-extensions/auth/OS-KSADM-admin-devguide/content/POST_addService_v2.0_OS-KSADM_services_Admin_API_Service_Developer_Operations-d1e1357.html
Change-Id: I60f72a0f99deff0bd8ee02bd2db5284d87481d5f
diff --git a/tempest/openstack.py b/tempest/openstack.py
index 89b7718..d9abb64 100644
--- a/tempest/openstack.py
+++ b/tempest/openstack.py
@@ -19,6 +19,10 @@
from tempest import config
from tempest import exceptions
+from tempest.services.identity.json.admin_client import AdminClientJSON
+from tempest.services.identity.json.admin_client import TokenClientJSON
+from tempest.services.identity.xml.admin_client import AdminClientXML
+from tempest.services.identity.xml.admin_client import TokenClientXML
from tempest.services.image import service as image_service
from tempest.services.network.json.network_client import NetworkClient
from tempest.services.nova.json.extensions_client import ExtensionsClientJSON
@@ -48,6 +52,7 @@
from tempest.services.volume.json.volumes_client import VolumesClientJSON
from tempest.services.volume.xml.volumes_client import VolumesClientXML
+
LOG = logging.getLogger(__name__)
IMAGES_CLIENTS = {
@@ -96,6 +101,17 @@
}
+ADMIN_CLIENT = {
+ "json": AdminClientJSON,
+ "xml": AdminClientXML,
+}
+
+TOKEN_CLIENT = {
+ "json": TokenClientJSON,
+ "xml": TokenClientXML,
+}
+
+
class Manager(object):
"""
@@ -148,6 +164,8 @@
VOLUMES_EXTENSIONS_CLIENTS[interface](*client_args)
self.floating_ips_client = FLOAT_CLIENTS[interface](*client_args)
self.volumes_client = VOLUMES_CLIENTS[interface](*client_args)
+ self.admin_client = ADMIN_CLIENT[interface](*client_args)
+ self.token_client = TOKEN_CLIENT[interface](self.config)
except KeyError:
msg = "Unsupported interface type `%s'" % interface
raise exceptions.InvalidConfiguration(msg)
@@ -196,3 +214,33 @@
self.services = {}
self.services['image'] = image_service.Service(self.config)
self.images = self.services['image']
+
+
+class IdentityManager(Manager):
+
+ """
+ Manager object that uses the alt_XXX credentials for its
+ managed client objects
+ """
+
+ def __init__(self, interface='json'):
+ conf = config.TempestConfig()
+ super(IdentityManager, self).__init__(conf.identity_admin.username,
+ conf.identity_admin.password,
+ conf.identity_admin.tenant_name,
+ interface)
+
+
+class IdentityNaManager(Manager):
+
+ """
+ Manager object that uses the alt_XXX credentials for its
+ managed client objects
+ """
+
+ def __init__(self, interface='json'):
+ conf = config.TempestConfig()
+ super(IdentityNaManager, self).__init__(conf.compute.username,
+ conf.compute.password,
+ conf.compute.tenant_name,
+ interface)