def print_all_data_in_session(self): text = list() mapper = inspect(self) # mapper.attrs stores all model fields in order of definition. for column in mapper.attrs: cleaned_value = remove_empty_from_dict(column.value) if column.key == 'aws_keys': owned_keys = column.value.all() if owned_keys: text.append('aws_keys: [') for each_key in owned_keys: text.append(' <AWSKey: {}>'.format(each_key.key_alias)) text.append(']') elif column.key == 'secret_access_key': text.append('secret_access_key: "******" (Censored)') elif cleaned_value: text.append('{}: {}'.format(column.key, json.dumps(cleaned_value, indent=4, default=str))) if text: print('\n'.join(text)) else: print('This session has no data.')
def get_all_aws_data_fields_as_dict(self): all_data = dict() mapper = inspect(self) for attribute in mapper.attrs: if attribute.key in self.aws_data_field_names: if attribute.value: all_data[attribute.key] = attribute.value return remove_empty_from_dict(all_data)
def wrapper(update: Update, *args, **kwargs): u = User.update_or_create_from_update(update) if u: u.save() update_dict = remove_empty_from_dict(update.to_dict()) update_dict['method'] = f.__name__ logger.info(f"{update_dict}") return f(update, *args, **kwargs)
def get_fields_as_camel_case_dictionary(self): # Deep copy because Permissions->allow_permissions and deny_permissions were dicts that were being passed as reference return copy.deepcopy({ 'UserName': self.user_name, 'UserArn': self.user_arn, 'AccountId': self.account_id, 'UserId': self.user_id, 'Roles': self.roles, 'Groups': self.groups, 'Policies': self.policies, 'AccessKeyId': self.access_key_id, 'SecretAccessKey': self.secret_access_key, 'SessionToken': self.session_token, 'KeyAlias': self.key_alias, 'PermissionsConfirmed': self.permissions_confirmed, 'Permissions': { 'Allow': remove_empty_from_dict(self.allow_permissions), 'Deny': remove_empty_from_dict(self.deny_permissions), }, })