Fix API/CLI response result for add users to group
Change-Id: Ia28fd5b3d6b05b3666a61cb8b1e93664c6cccc93
This commit is contained in:
parent
3b49b96503
commit
97fc5779ae
@ -5,7 +5,8 @@ from wsmeext.pecan import wsexpose
|
|||||||
from orm.common.orm_common.utils import api_error_utils as err_utils
|
from orm.common.orm_common.utils import api_error_utils as err_utils
|
||||||
from orm.common.orm_common.utils import utils
|
from orm.common.orm_common.utils import utils
|
||||||
from orm.services.customer_manager.cms_rest.logger import get_logger
|
from orm.services.customer_manager.cms_rest.logger import get_logger
|
||||||
from orm.services.customer_manager.cms_rest.logic.error_base import ErrorStatus, NotFound
|
from orm.services.customer_manager.cms_rest.logic.error_base import \
|
||||||
|
ErrorStatus, NotFound
|
||||||
from orm.services.customer_manager.cms_rest.logic.group_logic import GroupLogic
|
from orm.services.customer_manager.cms_rest.logic.group_logic import GroupLogic
|
||||||
from orm.services.customer_manager.cms_rest.model.GroupModels import \
|
from orm.services.customer_manager.cms_rest.model.GroupModels import \
|
||||||
RegionUser, RegionUserResultWrapper
|
RegionUser, RegionUserResultWrapper
|
||||||
@ -18,9 +19,10 @@ class RegionUserController(rest.RestController):
|
|||||||
|
|
||||||
@wsexpose([str], str, str, str, rest_content_types='json')
|
@wsexpose([str], str, str, str, rest_content_types='json')
|
||||||
def get(self, group_id, region_id, user_id):
|
def get(self, group_id, region_id, user_id):
|
||||||
return ["This is groups region user controller for group id: " + group_id]
|
return ["This is groups region user controller for group id: " +
|
||||||
|
group_id]
|
||||||
|
|
||||||
@wsexpose([RegionUserResultWrapper], str, str, body=[RegionUser],
|
@wsexpose(RegionUserResultWrapper, str, str, body=[RegionUser],
|
||||||
rest_content_types='json', status_code=200)
|
rest_content_types='json', status_code=200)
|
||||||
def post(self, group_id, region_id, users):
|
def post(self, group_id, region_id, users):
|
||||||
LOG.info("RegionUserController - Add users to group id {0} "
|
LOG.info("RegionUserController - Add users to group id {0} "
|
||||||
|
@ -126,43 +126,53 @@ class Groups(Base, CMSBaseModel):
|
|||||||
domain_name = self.domain_name
|
domain_name = self.domain_name
|
||||||
description = self.description
|
description = self.description
|
||||||
enabled = True if self.enabled else False
|
enabled = True if self.enabled else False
|
||||||
regions = [group_region.to_wsme() for group_region in self.group_regions if
|
regions = [group_region.to_wsme() for group_region in
|
||||||
group_region.region_id != -1]
|
self.group_regions if group_region.region_id != -1]
|
||||||
|
|
||||||
|
roles = []
|
||||||
customer_roles = [customer_role.get_role_name() for customer_role in
|
customer_roles = [customer_role.get_role_name() for customer_role in
|
||||||
self.groups_customer_roles]
|
self.groups_customer_roles]
|
||||||
domain_roles = [domain_role.get_role_name() for domain_role in
|
domain_roles = [domain_role.get_role_name() for domain_role in
|
||||||
self.groups_domain_roles]
|
self.groups_domain_roles]
|
||||||
roles = sorted(set(customer_roles + domain_roles))
|
roles = sorted(set(customer_roles + domain_roles))
|
||||||
# users = [groups_user.to_wsme() for groups_user in self.groups_users if
|
|
||||||
# groups_user.region_id == -1]
|
users = []
|
||||||
|
for user in self.groups_users:
|
||||||
|
if user.region_id == -1:
|
||||||
|
users.append(GroupWsmeModels.User(id=[user.user.name],
|
||||||
|
domain=user.domain_name))
|
||||||
|
|
||||||
result = GroupWsmeModels.Group(description=description,
|
result = GroupWsmeModels.Group(description=description,
|
||||||
name=name,
|
name=name,
|
||||||
uuid=uuid,
|
uuid=uuid,
|
||||||
regions=regions,
|
regions=regions,
|
||||||
roles=list(roles),
|
roles=list(roles),
|
||||||
|
users=users,
|
||||||
enabled=enabled,
|
enabled=enabled,
|
||||||
domain=domain_name)
|
domain=domain_name)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
' GroupsRegion is a DataObject and contains all the fields defined in GroupsRegion
|
' GroupsRegion is a DataObject and contains all the fields defined in
|
||||||
' table record. Defined as SqlAlchemy model map to a table
|
' in GroupsRegion table record. Defined as SqlAlchemy model map to a table
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
class GroupsRegion(Base, CMSBaseModel):
|
class GroupsRegion(Base, CMSBaseModel):
|
||||||
__tablename__ = "groups_region"
|
__tablename__ = "groups_region"
|
||||||
|
|
||||||
group_id = Column(String(64), ForeignKey('groups.uuid'), primary_key=True, nullable=False, index=True)
|
group_id = Column(String(64), ForeignKey('groups.uuid'),
|
||||||
region_id = Column(Integer, ForeignKey('cms_region.id'), primary_key=True, nullable=False, index=True)
|
primary_key=True, nullable=False, index=True)
|
||||||
|
region_id = Column(Integer, ForeignKey('cms_region.id'),
|
||||||
|
primary_key=True, nullable=False, index=True)
|
||||||
|
|
||||||
group_region_users = relationship("GroupsUser",
|
group_region_users = relationship(
|
||||||
uselist=True,
|
"GroupsUser",
|
||||||
order_by="GroupsUser.user_id",
|
uselist=True,
|
||||||
primaryjoin="and_(GroupsRegion.group_id==GroupsUser.group_id,"
|
order_by="GroupsUser.domain_name",
|
||||||
"GroupsRegion.region_id==GroupsUser.region_id)")
|
primaryjoin="and_(GroupsRegion.group_id==GroupsUser.group_id,"
|
||||||
|
"GroupsRegion.region_id==GroupsUser.region_id)")
|
||||||
|
|
||||||
region = relationship("Region", viewonly=True)
|
region = relationship("Region", viewonly=True)
|
||||||
|
|
||||||
@ -173,7 +183,8 @@ class GroupsRegion(Base, CMSBaseModel):
|
|||||||
return dict(
|
return dict(
|
||||||
group_id=self.group_id,
|
group_id=self.group_id,
|
||||||
region_id=self.region_id,
|
region_id=self.region_id,
|
||||||
group_region_users=[groups_user.__json__() for groups_user in self.group_region_users]
|
group_region_users=[groups_user.__json__() for groups_user in
|
||||||
|
self.group_region_users]
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_proxy_dict(self):
|
def get_proxy_dict(self):
|
||||||
@ -187,21 +198,12 @@ class GroupsRegion(Base, CMSBaseModel):
|
|||||||
def to_wsme(self):
|
def to_wsme(self):
|
||||||
name = self.region.name
|
name = self.region.name
|
||||||
type = self.region.type
|
type = self.region.type
|
||||||
# users = [groups_user.to_wsme() for groups_user in self.group_region_users if
|
|
||||||
# groups_user.region_id > -1]
|
|
||||||
|
|
||||||
users = []
|
users = []
|
||||||
user = None
|
|
||||||
for user_role in self.group_region_users:
|
for user in self.group_region_users:
|
||||||
if user and user.id != user_role.user.name:
|
if user.region_id != -1:
|
||||||
users.append(user)
|
users.append(GroupWsmeModels.User(id=[user.user.name],
|
||||||
user = GroupWsmeModels.User(id=[user_role.user.name], domain=user_role.domain_name)
|
domain=user.domain_name))
|
||||||
elif user is None:
|
|
||||||
user = GroupWsmeModels.User(id=[user_role.user.name], domain=user_role.domain_name)
|
|
||||||
else:
|
|
||||||
user.role.append(user_role.user.name)
|
|
||||||
if user:
|
|
||||||
users.append(user)
|
|
||||||
|
|
||||||
region = GroupWsmeModels.Region(name=name,
|
region = GroupWsmeModels.Region(name=name,
|
||||||
type=type,
|
type=type,
|
||||||
|
@ -43,23 +43,6 @@ class User(Model):
|
|||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
||||||
class UserUsers(Model):
|
|
||||||
users = wsme.wsattr([str], mandatory=True)
|
|
||||||
|
|
||||||
def __init__(self, user=""):
|
|
||||||
self.users = users
|
|
||||||
|
|
||||||
def validate_model(self):
|
|
||||||
# check no duplicate users in dictonary list
|
|
||||||
# if len(set(self.users)) != len(self.users) and
|
|
||||||
# len(set(self.domain)) != len(self.users):
|
|
||||||
# raise ErrorStatus(400, "Duplicate regions found")
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Remove the below return once implementation is done
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
class RegionUser(Model):
|
class RegionUser(Model):
|
||||||
id = wsme.wsattr([str])
|
id = wsme.wsattr([str])
|
||||||
domain = wsme.wsattr(wsme.types.text, mandatory=True)
|
domain = wsme.wsattr(wsme.types.text, mandatory=True)
|
||||||
@ -69,25 +52,6 @@ class RegionUser(Model):
|
|||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
||||||
# class UserAssignment(Model):
|
|
||||||
# userUsers = wsme.wsattr([UserUsers], mandatory=True)
|
|
||||||
# userRegions = wsme.wsattr([UserRegions], mandatory=True)
|
|
||||||
#
|
|
||||||
# def __init__(self, status="", userUsers=None, userRegions=""):
|
|
||||||
# self.userUsers = userUsers
|
|
||||||
# self.userRegions = userRegions
|
|
||||||
#
|
|
||||||
# def validate_model(self):
|
|
||||||
#
|
|
||||||
# if not userUsers and not userRegions:
|
|
||||||
# raise ErrorStatus(400, "Either regions or users"
|
|
||||||
# "is required. ")
|
|
||||||
|
|
||||||
# check no duplicate users in dictonary list
|
|
||||||
# for userRegion in userRegions:
|
|
||||||
# if dups found issue 400 duplicate region error
|
|
||||||
|
|
||||||
|
|
||||||
class Region(Model):
|
class Region(Model):
|
||||||
"""network model the region
|
"""network model the region
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user