Class: ProjectImportState
Constant Summary
ApplicationRecord::MAX_PLUCK
Instance Method Summary
collapse
#run_after_commit, #run_after_commit_or_now
cached_column_list, #create_or_load_association, declarative_enum, default_select_columns, id_in, id_not_in, iid_in, pluck_primary_key, primary_key_in, #readable_by?, safe_ensure_unique, safe_find_or_create_by, safe_find_or_create_by!, #to_ability_name, underscore, where_exists, where_not_exists, with_fast_read_statement_timeout, without_order
#serializable_hash
Instance Method Details
#expire_etag_cache ⇒ Object
#in_progress? ⇒ Boolean
119
120
121
|
# File 'app/models/project_import_state.rb', line 119
def in_progress?
scheduled? || started?
end
|
#mark_as_failed(error_message) ⇒ Object
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# File 'app/models/project_import_state.rb', line 100
def mark_as_failed(error_message)
original_errors = errors.dup
sanitized_message = Gitlab::UrlSanitizer.sanitize(error_message)
fail_op
update_column(:last_error, sanitized_message)
rescue ActiveRecord::ActiveRecordError => e
Gitlab::Import::Logger.error(
message: 'Error setting import status to failed',
error: e.message,
original_error: sanitized_message
)
ensure
@errors = original_errors
end
|
#realtime_changes_path ⇒ Object
89
90
91
92
93
94
|
# File 'app/models/project_import_state.rb', line 89
def realtime_changes_path
Gitlab::Routing.url_helpers.polymorphic_path([:realtime_changes_import, project.import_type.to_sym], format: :json)
rescue NoMethodError
nil
end
|
#relation_hard_failures(limit:) ⇒ Object
96
97
98
|
# File 'app/models/project_import_state.rb', line 96
def relation_hard_failures(limit:)
project.import_failures.hard_failures_by_correlation_id(correlation_id).limit(limit)
end
|
#started? ⇒ Boolean
123
124
125
126
|
# File 'app/models/project_import_state.rb', line 123
def started?
status == 'started' && project.import?
end
|