Changes to support getuser by name and gettenant by name calls.
Change-Id: Iac15fdd7588b383e04d5eb0fc6d3a48d9cb7e2e3
This commit is contained in:
parent
47529ee195
commit
135b61b0ac
|
@ -20,10 +20,17 @@ class TenantController(wsgi.Controller):
|
|||
|
||||
@utils.wrap_error
|
||||
def get_tenants(self, req):
|
||||
marker, limit, url = get_marker_limit_and_url(req)
|
||||
tenants = config.SERVICE.get_tenants(utils.get_auth_token(req),
|
||||
marker, limit, url, self.is_service_operation)
|
||||
return utils.send_result(200, req, tenants)
|
||||
tenant_name = req.GET["name"] if "name" in req.GET else None
|
||||
if tenant_name:
|
||||
tenant = config.SERVICE.get_tenant_by_name(
|
||||
utils.get_auth_token(req),
|
||||
tenant_name)
|
||||
return utils.send_result(200, req, tenant)
|
||||
else:
|
||||
marker, limit, url = get_marker_limit_and_url(req)
|
||||
tenants = config.SERVICE.get_tenants(utils.get_auth_token(req),
|
||||
marker, limit, url, self.is_service_operation)
|
||||
return utils.send_result(200, req, tenants)
|
||||
|
||||
@utils.wrap_error
|
||||
def get_tenant(self, req, tenant_id):
|
||||
|
|
|
@ -19,10 +19,17 @@ class UserController(wsgi.Controller):
|
|||
|
||||
@utils.wrap_error
|
||||
def get_users(self, req):
|
||||
marker, limit, url = get_marker_limit_and_url(req)
|
||||
users = config.SERVICE.get_users(utils.get_auth_token(req), marker,
|
||||
limit, url)
|
||||
return utils.send_result(200, req, users)
|
||||
user_name = req.GET["name"] if "name" in req.GET else None
|
||||
if user_name:
|
||||
tenant = config.SERVICE.get_user_by_name(
|
||||
utils.get_auth_token(req),
|
||||
user_name)
|
||||
return utils.send_result(200, req, tenant)
|
||||
else:
|
||||
marker, limit, url = get_marker_limit_and_url(req)
|
||||
users = config.SERVICE.get_users(utils.get_auth_token(req), marker,
|
||||
limit, url)
|
||||
return utils.send_result(200, req, users)
|
||||
|
||||
@utils.wrap_error
|
||||
def get_user(self, req, user_id):
|
||||
|
|
|
@ -238,6 +238,14 @@ class IdentityService(object):
|
|||
raise fault.ItemNotFoundFault("The tenant could not be found")
|
||||
return Tenant(dtenant.id, dtenant.name, dtenant.desc, dtenant.enabled)
|
||||
|
||||
def get_tenant_by_name(self, admin_token, tenant_name):
|
||||
self.__validate_admin_token(admin_token)
|
||||
|
||||
dtenant = api.TENANT.get_by_name(tenant_name)
|
||||
if not dtenant:
|
||||
raise fault.ItemNotFoundFault("The tenant could not be found")
|
||||
return Tenant(dtenant.id, dtenant.name, dtenant.desc, dtenant.enabled)
|
||||
|
||||
def update_tenant(self, admin_token, tenant_id, tenant):
|
||||
self.__validate_admin_token(admin_token)
|
||||
|
||||
|
@ -386,6 +394,14 @@ class IdentityService(object):
|
|||
return User_Update(id=duser.id, tenant_id=duser.tenant_id,
|
||||
email=duser.email, enabled=duser.enabled, name=duser.name)
|
||||
|
||||
def get_user_by_name(self, admin_token, user_name):
|
||||
self.__validate_admin_token(admin_token)
|
||||
duser = api.USER.get_by_name(user_name)
|
||||
if not duser:
|
||||
raise fault.ItemNotFoundFault("The user could not be found")
|
||||
return User_Update(id=duser.id, tenant_id=duser.tenant_id,
|
||||
email=duser.email, enabled=duser.enabled, name=duser.name)
|
||||
|
||||
def update_user(self, admin_token, user_id, user):
|
||||
self.__validate_admin_token(admin_token)
|
||||
|
||||
|
|
|
@ -220,6 +220,11 @@ class ApiTestCase(RestfulTestCase):
|
|||
return self.admin_request(method='GET',
|
||||
path='/tenants/%s' % (tenant_id,), **kwargs)
|
||||
|
||||
def get_tenant_by_name(self, tenant_name, **kwargs):
|
||||
"""GET /tenants?name=tenant_name"""
|
||||
return self.admin_request(method='GET',
|
||||
path='/tenants?name=%s' % (tenant_name,), **kwargs)
|
||||
|
||||
def post_tenant_for_update(self, tenant_id, **kwargs):
|
||||
"""GET /tenants/{tenant_id}"""
|
||||
return self.admin_request(method='POST',
|
||||
|
@ -249,9 +254,9 @@ class ApiTestCase(RestfulTestCase):
|
|||
path='/users/%s' % (user_id,), **kwargs)
|
||||
|
||||
def query_user(self, user_name, **kwargs):
|
||||
"""GET /users?username={user_name}"""
|
||||
"""GET /users?name={user_name}"""
|
||||
return self.admin_request(method='GET',
|
||||
path='/users?username=%s' % (user_name,), **kwargs)
|
||||
path='/users?name=%s' % (user_name,), **kwargs)
|
||||
|
||||
def post_user_for_update(self, user_id, **kwargs):
|
||||
"""POST /users/{user_id}"""
|
||||
|
@ -556,6 +561,11 @@ class FunctionalTestCase(ApiTestCase):
|
|||
tenant_id = optional_str(tenant_id)
|
||||
return self.get_tenant(tenant_id, **kwargs)
|
||||
|
||||
def fetch_tenant_by_name(self, tenant_name=None, **kwargs):
|
||||
tenant_name = optional_str(tenant_name)
|
||||
if tenant_name:
|
||||
return self.get_tenant_by_name(tenant_name, **kwargs)
|
||||
|
||||
def update_tenant(self, tenant_id=None, tenant_name=None,
|
||||
tenant_description=None, tenant_enabled=True, **kwargs):
|
||||
tenant_id = optional_str(tenant_id)
|
||||
|
|
|
@ -184,6 +184,28 @@ class GetTenantTest(TenantTest):
|
|||
'Accept': 'application/xml'})
|
||||
|
||||
|
||||
class GetTenantByNameTest(TenantTest):
|
||||
def setUp(self, *args, **kwargs):
|
||||
super(TenantTest, self).setUp(*args, **kwargs)
|
||||
self.tenant = self.create_tenant().json['tenant']
|
||||
|
||||
def test_get_tenant(self):
|
||||
self.fetch_tenant_by_name(self.tenant['name'], assert_status=200)
|
||||
|
||||
def test_get_tenant_xml(self):
|
||||
self.fetch_tenant_by_name(
|
||||
self.tenant['name'], assert_status=200, headers={
|
||||
"Accept": "application/xml"})
|
||||
|
||||
def test_get_tenant_not_found(self):
|
||||
self.fetch_tenant_by_name(assert_status=404)
|
||||
|
||||
def test_get_tenant_not_found_xml(self):
|
||||
self.fetch_tenant_by_name(
|
||||
common.unique_str(), assert_status=404, headers={
|
||||
'Accept': 'application/xml'})
|
||||
|
||||
|
||||
class UpdateTenantTest(TenantTest):
|
||||
def setUp(self, *args, **kwargs):
|
||||
super(UpdateTenantTest, self).setUp(*args, **kwargs)
|
||||
|
|
Loading…
Reference in New Issue