Class: GoodData::ProjectLogFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/gooddata/models/project_log_formatter.rb

Instance Method Summary collapse

Constructor Details

#initialize(project) ⇒ ProjectLogFormatter

Returns a new instance of ProjectLogFormatter.



5
6
7
8
# File 'lib/gooddata/models/project_log_formatter.rb', line 5

def initialize(project)
  @project = project
  @users_cache = nil
end

Instance Method Details

#log_created_users(created_users, new_users) ⇒ Object

Log created users

[ { type => :successful || :failed, user => '/gdc/account/profile/[email protected]', message => error_message, reason: error_message }, ... ]

Parameters:

  • created_users (Array<Hash>)

    collection of created user result, e.g:

  • new_users (Array<Hash>)

    collection of new users to be created [ { login => '[email protected]', role_title => 'Editor' || 'Admin' || ... }, ... ]

Returns:

  • nil



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/gooddata/models/project_log_formatter.rb', line 31

def log_created_users(created_users, new_users)
  created_users.each do |created_user|
     = (created_user[:user])
    if created_user[:type] == :successful
      user_data = new_users.find { |new_user| new_user[:login] ==  }
      GoodData.logger.info("Added new user=#{}, roles=#{user_data[:role_title]} to project=#{@project.pid}.")
    elsif created_user[:type] == :failed
      error_message = created_user[:message] || created_user[:reason]
      GoodData.logger.error("Failed to add user=#{} to project=#{@project.pid}. Error: #{error_message}")
    end
  end
end

#log_disabled_users(disabled_users) ⇒ Object

Log disabled users

Parameters:

  • disabled_users (Array<Hash>)

    collection of disabled user result, e.g: [ { type => :successful || :failed, user => '/gdc/account/profile/[email protected]', message => error_message, reason: error_message }, ... ]

Returns:

  • nil



104
105
106
107
108
109
110
111
112
113
114
# File 'lib/gooddata/models/project_log_formatter.rb', line 104

def log_disabled_users(disabled_users)
  disabled_users.each do |disabled_user|
     = (disabled_user[:user])
    if disabled_user[:type] == :successful
      GoodData.logger.warn("Disable user=#{} in project=#{@project.pid}")
    elsif disabled_user[:type] == :failed
      error_message = disabled_user[:message] || disabled_user[:reason]
      GoodData.logger.error("Failed to disable user=#{} in project=#{@project.pid}. Error: #{error_message}")
    end
  end
end

#log_removed_users(removed_users) ⇒ Object

Log removed users

Parameters:

  • removed_users (Array<Hash>)

    collection of removed user result, e.g: [ { type => :successful || :failed, user => { login => '[email protected]' }, message => error_message }, ... ]

Returns:

  • nil



130
131
132
133
134
135
136
137
138
139
140
# File 'lib/gooddata/models/project_log_formatter.rb', line 130

def log_removed_users(removed_users)
  removed_users.each do |removed_user|
     = (removed_user[:user])
    if removed_user[:type] == :successful
      GoodData.logger.warn("Remove user=#{} out of project=#{@project.pid}")
    elsif removed_user[:type] == :failed
      error_message = removed_user[:message]
      GoodData.logger.error("Failed to remove user=#{} out of project=#{@project.pid}. Error: #{error_message}")
    end
  end
end

#log_updated_users(updated_users, changed_users, role_list) ⇒ Object

Log updated users

Parameters:

  • updated_users (Array<Hash>)

    collection of updated user result, e.g: [ { type => :successful || :failed, user => '/gdc/account/profile/[email protected]', message => error_message, reason: error_message }, ... ]

  • changed_users (Array<Hash>)

    collection of changed users to be updated [ { old_obj: { :login => '/gdc/account/profile/[email protected]', :role => '/gdc/projects/clp4z1qw60o0t048tov909b1xi4qztay/roles/5' }, new_obj: { :role_title => 'Editor' || 'Admin' || ... } }, ... ]

  • role_list (Array<ProjectRole>)

    project roles

Returns:

  • nil



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/gooddata/models/project_log_formatter.rb', line 71

def log_updated_users(updated_users, changed_users, role_list)
  updated_users.each do |updated_user|
     = (updated_user[:user])
    if updated_user[:type] == :successful
      changed_user = changed_users.find { |user| user[:old_obj][:login] ==  }
      old_user_data = changed_user[:old_obj]
      old_role_uris = old_user_data[:role] || old_user_data[:roles]
      old_role_titles = old_role_uris.map do |old_role_uri|
        old_role = @project.get_role(old_role_uri, role_list)
        old_role && old_role.title
      end
      new_role_titles = changed_user[:new_obj][:role_title]
      GoodData.logger.info("Update user=#{} from old_roles=#{old_role_titles} to new_roles=#{new_role_titles} in project=#{@project.pid}.")
    elsif updated_user[:type] == :failed
      error_message = updated_user[:message] || updated_user[:reason]
      GoodData.logger.error("Failed to update user=#{} to project=#{@project.pid}. Error: #{error_message}")
    end
  end
end

#log_user_filter_results(results, user_filters) ⇒ Object

Log user filters results

[ { status: :successful || :failed, type: :create || delete, user: user_profile_url }, ... ] { user_profile_url => MandatoryUserFilter, ... }

Parameters:

  • results (Array<Hash>)

    user-filter results

  • user_filters (Hash)

    user-filters data

Returns:

  • nil



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/gooddata/models/project_log_formatter.rb', line 159

def log_user_filter_results(results, user_filters)
  results ||= []
  results.each do |result|
     = result[:user]
    status = result[:status]
    operator = result[:type]
    if status == :successful
      filter_uris = user_filters[].map(&:uri)
      if operator == :create && GoodData.logger.info?
         = users_cache[] || 
        GoodData.logger.info "Created user-filter=#{filter_uris} for user=#{} in project=#{@project.pid}"
      elsif operator == :delete && GoodData.logger.warn?
         = users_cache[] || 
        GoodData.logger.warn "Deleted user-filter=#{filter_uris} of user=#{} in project=#{@project.pid}"
      end
    else
      error_message = result[:message]
      if operator == :create && GoodData.logger.error?
        GoodData.logger.error "Failed to create user-filters for user=#{} in project=#{@project.pid}. Error: #{error_message}"
      elsif operator == :delete && GoodData.logger.error?
        GoodData.logger.error "Failed to delete user-filters from user=#{} in project=#{@project.pid}. Error: #{error_message}"
      end
    end
  end
end