Groups
Section Contents
Groups#
Like users, groups also exist within the scope of an organization within Control Hub. Groups encompass 1 or more users, and help further filter and categorize users within an organization.
Creating a new Group#
You can create a new streamsets.sdk.sch_models.Group
instance within a Control Hub organization via the
streamsets.sdk.sch_models.GroupBuilder
class. Use the streamsets.sdk.ControlHub.get_group_builder()
method to instantiate the builder object:
group_builder = sch.get_group_builder()
group = group_builder.build(id='test@admin', display_name='Test Group')
group.users = ['admin@admin']
sch.add_group(group)
Retrieving existing groups#
Retrieving existing groups from a Control Hub instance is as simple as asking for the groups
attribute from the
streamsets.sdk.ControlHub
instance. You can further filter the available groups by specifying items
like id
and display_name
:
# Get all groups belonging to current organization
sch.groups
# Get a particular group
group = sch.groups.get(id='test@admin')
group
# Validate the users that are members of this group
group.users
Output:
# sch.groups
[<Group (id=all@admin, display_name=all)>,
<Group (id=test@admin, display_name=Test Group)>]
# group
<Group (id=test@admin, display_name=Test Group)>
# group.users
['test@admin', 'johnsmith@admin', 'janedoe@admin']
Updating an existing Group#
The SDK also allows for updating existing groups within an organization. Simply retrieve the group to be modified from
Control Hub, make the desired changes (such as adding a new user, or removing a role from the group), and then pass
the streamsets.sdk.sch_models.Group
instance to the streamsets.sdk.ControlHub.update_group()
method:
group = sch.groups.get(display_name='Test Group')
group.users.append('test@admin')
group.roles.append('Data SLA User')
group.roles.remove('Data SLA Editor')
sch.update_group(group)
Deleting existing Groups#
Deleting existing groups from an organization is also done in a similar fashion. Simply retrieve the group(s) to be
deleted from Control Hub, and then pass the streamsets.sdk.sch_models.Group
instance(s) to the
streamsets.sdk.ControlHub.delete_group()
method:
# Delete a single group
group = sch.groups.get(display_name='Test Group')
sch.delete_group(group)
# Delete multiple groups
groups = sch.groups.get_all(display_name='Test Group')
sch.delete_group(*groups)