implement identity v3 Proxy group role management

identity/v3/_proxy.py handles CVD of project group roles assignments
this patchset proxies following Project class methods
  - unassign_project_role_from_group(project,group,role)
  - assign_project_role_to_group(project,group,role)
  - validate_group_has_role(project,group,role)
Fix no known issue; just adds functionality

Change-Id: I48855a112bb2c46c3aeeb00255b4d8479f0750da
This commit is contained in:
B.Haleblian 2019-01-12 16:49:36 +01:00
parent 47f9206590
commit 9021d5114e
1 changed files with 51 additions and 0 deletions

View File

@ -1165,3 +1165,54 @@ class Proxy(proxy.Proxy):
user = self._get_resource(_user.User, user)
role = self._get_resource(_role.Role, role)
return project.validate_user_has_role(self, user, role)
def assign_project_role_to_group(self, project, group, role):
"""Assign role to group on a project
:param project: Either the ID of a project or a
:class:`~openstack.identity.v3.project.Project`
instance.
:param group: Either the ID of a group or a
:class:`~openstack.identity.v3.group.Group` instance.
:param role: Either the ID of a role or a
:class:`~openstack.identity.v3.role.Role` instance.
:return: ``None``
"""
project = self._get_resource(_project.Project, project)
group = self._get_resource(_group.Group, group)
role = self._get_resource(_role.Role, role)
project.assign_role_to_group(self, group, role)
def unassign_project_role_from_group(self, project, group, role):
"""Unassign role from group on a project
:param project: Either the ID of a project or a
:class:`~openstack.identity.v3.project.Project`
instance.
:param group: Either the ID of a group or a
:class:`~openstack.identity.v3.group.Group` instance.
:param role: Either the ID of a role or a
:class:`~openstack.identity.v3.role.Role` instance.
:return: ``None``
"""
project = self._get_resource(_project.Project, project)
group = self._get_resource(_group.Group, group)
role = self._get_resource(_role.Role, role)
project.unassign_role_from_group(self, group, role)
def validate_group_has_role(self, project, group, role):
"""Validates that a group has a role on a project
:param project: Either the ID of a project or a
:class:`~openstack.identity.v3.project.Project`
instance.
:param group: Either the ID of a group or a
:class:`~openstack.identity.v3.group.Group` instance.
:param role: Either the ID of a role or a
:class:`~openstack.identity.v3.role.Role` instance.
:returns: True if group has role in project
"""
project = self._get_resource(_project.Project, project)
group = self._get_resource(_group.Group, group)
role = self._get_resource(_role.Role, role)
return project.validate_group_has_role(self, group, role)