From 861e51dd6a409cb41fa6fdac3f49195acccc6541 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 29 Oct 2015 22:07:51 -0400 Subject: [PATCH] Get the MvRunner working, at least for Postfixadmin. --- lib/mv/mv_runner.rb | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) 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 -- 2.44.2