From: Michael Orlitzky Date: Fri, 30 Oct 2015 02:07:51 +0000 (-0400) Subject: Get the MvRunner working, at least for Postfixadmin. X-Git-Tag: 0.0.1~47 X-Git-Url: https://gitweb.michael.orlitzky.com/?a=commitdiff_plain;h=861e51dd6a409cb41fa6fdac3f49195acccc6541;p=mailshears.git Get the MvRunner working, at least for Postfixadmin. --- diff --git a/lib/mv/mv_runner.rb b/lib/mv/mv_runner.rb index c7dbc5e..d2a7c5b 100644 --- a/lib/mv/mv_runner.rb +++ b/lib/mv/mv_runner.rb @@ -1,10 +1,34 @@ +require 'common/errors' require 'common/runner' class MvRunner include Runner def run(plugin, src, dst) - puts "Not implemented" + # Why think too hard? An user has an @, a domain doesn't. + if not src.include?('@') then + # We only support moving users right now, and the destination + # domain must already exist. + raise NotImplementedError.new('Only users can be moved.') + end + + begin + src_description = plugin.describe_user(src) + plugin.mv_user(src, dst) + msg = "Moved user #{src} (#{src_description}) " + msg += "to #{dst}." + report(plugin, msg) + rescue InvalidUserError => e + report(plugin, e.message) + rescue NonexistentUserError => e + report(plugin, e.message) + rescue NonexistentDomainError => e + report(plugin, e.message) + rescue StandardError => e + msg = "There was an error (#{e.to_s}) moving the user: #{e.message}" + report(plugin, msg) + Kernel.exit(ExitCodes::DATABASE_ERROR) + end end end