FIX: don't break the message bus when restoring a backup

This commit is contained in:
Régis Hanol
2015-08-27 20:02:13 +02:00
parent 2589a75c46
commit 96c23d51a2
8 changed files with 78 additions and 109 deletions

View File

@ -13,8 +13,8 @@ module BackupRestore
start! BackupRestore::Backuper.new(user_id, opts)
end
def self.restore!(user_id, filename, publish_to_message_bus=false)
start! BackupRestore::Restorer.new(user_id, filename, publish_to_message_bus)
def self.restore!(user_id, opts={})
start! BackupRestore::Restorer.new(user_id, opts)
end
def self.rollback!

View File

@ -6,6 +6,7 @@ module BackupRestore
def initialize(user_id, opts={})
@user_id = user_id
@client_id = opts[:client_id]
@publish_to_message_bus = opts[:publish_to_message_bus] || false
@with_uploads = opts[:with_uploads].nil? ? true : opts[:with_uploads]
@ -336,7 +337,7 @@ module BackupRestore
def publish_log(message, timestamp)
return unless @publish_to_message_bus
data = { timestamp: timestamp, operation: "backup", message: message }
MessageBus.publish(BackupRestore::LOGS_CHANNEL, data, user_ids: [@user_id])
MessageBus.publish(BackupRestore::LOGS_CHANNEL, data, user_ids: [@user_id], client_ids: [@client_id])
end
def save_log(message, timestamp)

View File

@ -7,8 +7,11 @@ module BackupRestore
attr_reader :success
def initialize(user_id, filename, publish_to_message_bus = false)
@user_id, @filename, @publish_to_message_bus = user_id, filename, publish_to_message_bus
def initialize(user_id, opts={})
@user_id = user_id
@client_id = opts[:client_id]
@filename = opts[:filename]
@publish_to_message_bus = opts[:publish_to_message_bus] || false
ensure_restore_is_enabled
ensure_no_operation_is_running
@ -45,8 +48,6 @@ module BackupRestore
switch_schema!
# TOFIX: MessageBus is busted...
migrate_database
reconnect_database
reload_site_settings
@ -354,7 +355,7 @@ module BackupRestore
def publish_log(message, timestamp)
return unless @publish_to_message_bus
data = { timestamp: timestamp, operation: "restore", message: message }
MessageBus.publish(BackupRestore::LOGS_CHANNEL, data, user_ids: [@user_id])
MessageBus.publish(BackupRestore::LOGS_CHANNEL, data, user_ids: [@user_id], client_ids: [@client_id])
end
def save_log(message, timestamp)