app/models/foreman_tasks/lock.rb in foreman-tasks-0.5.5 vs app/models/foreman_tasks/lock.rb in foreman-tasks-0.5.6
- old
+ new
@@ -11,10 +11,24 @@
RESERVED_LOCK_NAMES = [LINK_LOCK_NAME, OWNER_LOCK_NAME, ALL_LOCK_NAME]
class LockConflict < StandardError
attr_reader :required_lock, :conflicting_locks
def initialize(required_lock, conflicting_locks)
- super("required lock: #{required_lock} conflicts wiht #{conflicting_locks.inspect}")
+ header = <<-TXT.gsub(/^ *\|/, '')
+ |Required lock is already taken by other running tasks.
+ |Please inspect their state, fix their errors nad resume them.
+ |
+ |Required lock: #{required_lock.name}
+ |Conflicts with tasks:
+ TXT
+ url_helpers = Rails.application.routes.url_helpers
+ conflicting_tasks = conflicting_locks.
+ map(&:task).
+ uniq.
+ map { |task| "- #{Setting['foreman_url'] + url_helpers.foreman_tasks_task_path(task)}" }.
+ join("\n")
+
+ super header + conflicting_tasks
@required_lock = required_lock
@conflicting_locks = conflicting_locks
end
end