Users


Users exist within the scope of an Organization within Control Hub. The SDK allows you to create new users, delete existing users, update current users, and more.

Creating a new user

You can create a new streamsets.sdk.sch_models.User instance using the streamsets.sdk.sch_models.UserBuilder class. Use the streamsets.sdk.ControlHub.get_user_builder() method to instantiate the builder object:

user_builder = sch.get_user_builder()
user = user_builder.build(id='jonsmith@test', display_name='jon smith', email_address='johnsmith@gmail.com')
user.roles = ['Job Operator', 'Pipeline Editor', 'Organization User']     # default roles for new users
sch.add_user(user)

Retrieving existing users

Retrieving existing users from Control Hub is as simple as asking for the users attribute from the streamsets.sdk.ControlHub instance you’ve instantiated. You can further filter the available users by specifying items like id, display_name, or email_address:

# Get all users belonging to current organization
sch.users

# Get a particular user
sch.users.get(id='jonsmith@test')

Output:

# sch.users
[<User (id=admin@test, display_name=admin)>,
 <User (id=jonsmith@test, display_name=jon smith)>]

# sch.users.get(id='jonsmith@test')
<User (id=jonsmith@test, display_name=jon smith)>

Updating an existing user

Updating a user’s attributes is, likewise, a simple task. Just retrieve the user you wish to update, modify an attribute like roles or groups, and then pass the user object into the streamsets.sdk.ControlHub.update_user() method:

user = sch.users.get(id='jonsmith@test')
user.roles = ['Organization User']
sch.update_user(user)

Deactivating existing users

Deactivating users can be done for a single user, or multiple users at once. Simply retrieve the user(s) you wish to deactivate from Control Hub, and pass it into the streamsets.sdk.ControlHub.deactivate_user() method:

# Deactivate single user
user = sch.users.get(id='jonsmith@test')
sch.deactivate_user(user)

# Deactivate multiple users
users = sch.users.get_all(display_name='Test User')
sch.deactivate_user(*users)

Deleting existing users

The SDK also allows for deletion of users from an organization, the syntax for which is identical to deactivation of a user. Deletion can be done for a single user, or multiple users at once. Simply retrieve the user you wish to deactivate from Control Hub, and pass it into the streamsets.sdk.ControlHub.delete_user() method:

# Deactivate and delete a single user
user = sch.users.get(id='jonsmith@test')
sch.delete_user(user, deactivate=True)

# Delete multiple users
users = sch.users.get_all(display_name='Test User')
sch.delete_user(*users)