def add_user_to_group(ctx, from_json, user_id, group_id): cli_util.load_context_obj_values_from_defaults(ctx) client = cli_util.build_client('identity', 'identity', ctx) result = client.add_user_to_group(add_user_to_group_details={ "userId": user_id, "groupId": group_id }) cli_util.render_response(result, ctx)
def remove_user_from_group(ctx, from_json, compartment_id, user_id, group_id, force): cli_util.load_context_obj_values_from_defaults(ctx) if not force: if not click.confirm("Are you sure you want to remove the given user from the given group?"): ctx.abort() client = cli_util.build_client('identity', ctx) memberships = client.list_user_group_memberships(compartment_id=compartment_id, user_id=user_id, group_id=group_id).data if memberships and len(memberships) == 1: cli_util.render_response(client.remove_user_from_group(user_group_membership_id=memberships[0].id), ctx) else: sys.exit('User {!r} is not a member of group {!r}'.format(user_id, group_id))
def update_policy(ctx, from_json, policy_id, description, statements, version_date, if_match, force, defined_tags, freeform_tags): cli_util.load_context_obj_values_from_defaults(ctx) client = cli_util.build_client('identity', ctx) if statements or version_date: if statements is None or version_date is None: sys.exit('If updating either statements or version date, both parameters must be specified.') if not force: result = client.get_policy(policy_id=policy_id) etag = result.headers['etag'] if (if_match and etag != if_match): sys.exit('If-match {!r} does not match the current etag, {!r}.'.format(if_match, result.headers['etag'])) if_match = etag existing_statements = cli_util.formatted_flat_dict(result.data.statements) if not click.confirm("WARNING: The value passed to statements will overwrite all existing statements for this policy. The existing statements are:\n" + existing_statements + "\nAre you sure you want to continue?"): ctx.abort() if not force: if defined_tags or freeform_tags: if not click.confirm("WARNING: Updates to defined-tags and freeform-tags will replace any existing values. Are you sure you want to continue?"): ctx.abort() args = {} if if_match is not None: args['if_match'] = if_match details = {} if description: details['description'] = description if statements: details['statements'] = cli_util.parse_json_parameter("statements", statements) if version_date: if len(version_date) == 0: version_date = None details['versionDate'] = version_date if defined_tags is not None: details['definedTags'] = cli_util.parse_json_parameter("defined_tags", defined_tags) if freeform_tags is not None: details['freeformTags'] = cli_util.parse_json_parameter("freeform_tags", freeform_tags) result = client.update_policy(policy_id=policy_id, update_policy_details=details, ** args) cli_util.render_response(result, ctx)
def list_users_for_group(ctx, from_json, compartment_id, group_id, page, limit, all_pages, page_size): cli_util.load_context_obj_values_from_defaults(ctx) if all_pages and limit: raise click.UsageError( 'If you provide the --all option you cannot provide the --limit option' ) client = cli_util.build_client('identity', 'identity', ctx) args = {} args['group_id'] = group_id if page is not None: args['page'] = page if limit is not None: args['limit'] = limit if all_pages: if page_size: args['limit'] = page_size result = cli_util.list_call_get_all_results( client.list_user_group_memberships, compartment_id=compartment_id, **args) elif limit is not None: result = cli_util.list_call_get_up_to_limit( client.list_user_group_memberships, limit, page_size, compartment_id=compartment_id, **args) else: result = client.list_user_group_memberships( compartment_id=compartment_id, **args) users = [] for membership in result.data: users.append(client.get_user(membership.user_id).data) cli_util.render(users, result.headers, ctx)