def test_get_slack_username_slack_username(self): user = { "org_username": "******", "slack_username": "******", } result = integ.get_slack_username(user) self.assertEqual(result, "slack")
def test_get_slack_username_slack_username(self): user = { 'org_username': '******', 'slack_username': '******', } result = integ.get_slack_username(user) self.assertEqual(result, 'slack')
def get_desired_state(slack): desired_state = [] all_users = queries.get_roles() all_clusters = queries.get_clusters(minimal=True) clusters = [c for c in all_clusters if c.get('auth') and c['auth'].get('team') and c.get('ocm')] openshift_users_desired_state = \ openshift_users.fetch_desired_state(oc_map=None) for cluster in clusters: cluster_name = cluster['name'] cluster_users = [u['user'] for u in openshift_users_desired_state if u['cluster'] == cluster_name] usergroup = cluster['auth']['team'] try: ugid = slack.get_usergroup_id(usergroup) except UsergroupNotFoundException: logging.warning(f'Usergroup {usergroup} not found') continue user_names = [slack_usergroups.get_slack_username(u) for u in all_users if include_user(u, cluster_name, cluster_users)] users = slack.get_users_by_names(user_names) channels = slack.get_channels_by_names([slack.chat_kwargs['channel']]) desired_state.append({ "workspace": slack.workspace_name, "usergroup": usergroup, "usergroup_id": ugid, "users": users, "channels": channels, "description": f'Users with access to the {cluster_name} cluster', }) return desired_state
def get_desired_state(slack): """ Get the desired state of the Slack cluster usergroups. :param slack: client for calling Slack API :type slack: reconcile.utils.slack_api.SlackApi :return: desired state data, keys are workspace -> usergroup (ex. state['coreos']['app-sre-ic'] :rtype: dict """ desired_state = {} all_users = queries.get_roles() all_clusters = queries.get_clusters(minimal=True) clusters = [ c for c in all_clusters if c.get("auth") and c["auth"].get("team") and c.get("ocm") ] openshift_users_desired_state = openshift_users.fetch_desired_state( oc_map=None) for cluster in clusters: cluster_name = cluster["name"] cluster_users = [ u["user"] for u in openshift_users_desired_state if u["cluster"] == cluster_name ] usergroup = cluster["auth"]["team"] try: ugid = slack.get_usergroup_id(usergroup) except UsergroupNotFoundException: logging.warning(f"Usergroup {usergroup} not found") continue user_names = [ slack_usergroups.get_slack_username(u) for u in all_users if include_user(u, cluster_name, cluster_users) ] users = slack.get_users_by_names(user_names) channels = slack.get_channels_by_names([slack.channel]) desired_state.setdefault(slack.workspace_name, {})[usergroup] = { "workspace": slack.workspace_name, "usergroup": usergroup, "usergroup_id": ugid, "users": users, "channels": channels, "description": f"Users with access to the {cluster_name} cluster", } return desired_state