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 utils
|
||||
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.model.GroupModels import \
|
||||
RegionUser, RegionUserResultWrapper
|
||||
@ -18,9 +19,10 @@ class RegionUserController(rest.RestController):
|
||||
|
||||
@wsexpose([str], str, str, str, rest_content_types='json')
|
||||
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)
|
||||
def post(self, group_id, region_id, users):
|
||||
LOG.info("RegionUserController - Add users to group id {0} "
|
||||
|
@ -126,43 +126,53 @@ class Groups(Base, CMSBaseModel):
|
||||
domain_name = self.domain_name
|
||||
description = self.description
|
||||
enabled = True if self.enabled else False
|
||||
regions = [group_region.to_wsme() for group_region in self.group_regions if
|
||||
group_region.region_id != -1]
|
||||
regions = [group_region.to_wsme() for group_region in
|
||||
self.group_regions if group_region.region_id != -1]
|
||||
|
||||
roles = []
|
||||
customer_roles = [customer_role.get_role_name() for customer_role in
|
||||
self.groups_customer_roles]
|
||||
domain_roles = [domain_role.get_role_name() for domain_role in
|
||||
self.groups_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,
|
||||
name=name,
|
||||
uuid=uuid,
|
||||
regions=regions,
|
||||
roles=list(roles),
|
||||
users=users,
|
||||
enabled=enabled,
|
||||
domain=domain_name)
|
||||
return result
|
||||
|
||||
|
||||
'''
|
||||
' GroupsRegion is a DataObject and contains all the fields defined in GroupsRegion
|
||||
' table record. Defined as SqlAlchemy model map to a table
|
||||
' GroupsRegion is a DataObject and contains all the fields defined in
|
||||
' in GroupsRegion table record. Defined as SqlAlchemy model map to a table
|
||||
'''
|
||||
|
||||
|
||||
class GroupsRegion(Base, CMSBaseModel):
|
||||
__tablename__ = "groups_region"
|
||||
|
||||
group_id = Column(String(64), ForeignKey('groups.uuid'), primary_key=True, nullable=False, index=True)
|
||||
region_id = Column(Integer, ForeignKey('cms_region.id'), primary_key=True, nullable=False, index=True)
|
||||
group_id = Column(String(64), ForeignKey('groups.uuid'),
|
||||
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",
|
||||
uselist=True,
|
||||
order_by="GroupsUser.user_id",
|
||||
primaryjoin="and_(GroupsRegion.group_id==GroupsUser.group_id,"
|
||||
"GroupsRegion.region_id==GroupsUser.region_id)")
|
||||
group_region_users = relationship(
|
||||
"GroupsUser",
|
||||
uselist=True,
|
||||
order_by="GroupsUser.domain_name",
|
||||
primaryjoin="and_(GroupsRegion.group_id==GroupsUser.group_id,"
|
||||
"GroupsRegion.region_id==GroupsUser.region_id)")
|
||||
|
||||
region = relationship("Region", viewonly=True)
|
||||
|
||||
@ -173,7 +183,8 @@ class GroupsRegion(Base, CMSBaseModel):
|
||||
return dict(
|
||||
group_id=self.group_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):
|
||||
@ -187,21 +198,12 @@ class GroupsRegion(Base, CMSBaseModel):
|
||||
def to_wsme(self):
|
||||
name = self.region.name
|
||||
type = self.region.type
|
||||
# users = [groups_user.to_wsme() for groups_user in self.group_region_users if
|
||||
# groups_user.region_id > -1]
|
||||
|
||||
users = []
|
||||
user = None
|
||||
for user_role in self.group_region_users:
|
||||
if user and user.id != user_role.user.name:
|
||||
users.append(user)
|
||||
user = GroupWsmeModels.User(id=[user_role.user.name], domain=user_role.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)
|
||||
|
||||
for user in self.group_region_users:
|
||||
if user.region_id != -1:
|
||||
users.append(GroupWsmeModels.User(id=[user.user.name],
|
||||
domain=user.domain_name))
|
||||
|
||||
region = GroupWsmeModels.Region(name=name,
|
||||
type=type,
|
||||
|
@ -43,23 +43,6 @@ class User(Model):
|
||||
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):
|
||||
id = wsme.wsattr([str])
|
||||
domain = wsme.wsattr(wsme.types.text, mandatory=True)
|
||||
@ -69,25 +52,6 @@ class RegionUser(Model):
|
||||
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):
|
||||
"""network model the region
|
||||
"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user