class MvRunner
Perform the moving (renaming) of users/domains using {MvPlugin}s.
Public Instance Methods
run(cfg, plugin, src, dst)
click to toggle source
Run plugin to move the user src to dst. The method signature includes the unused cfg for consistency with the runners that do need a {Configuration}.
@param cfg [Configuration] unused.
@param plugin [Class] plugin class that will perform the move.
@param src [User] the source user to be moved.
@param dst [User] the destination user being moved to.
# File lib/mv/mv_runner.rb, line 22 def run(cfg, plugin, src, dst) if src.is_a?(Domain) or dst.is_a?(Domain) then msg = 'only users can be moved' raise NotImplementedError.new(msg) end begin src_description = plugin.describe(src) plugin.mv_user(src, dst) dst_description = plugin.describe(dst) msg = "Moved user " msg += add_description(src, src_description) msg += " to " msg += add_description(dst, dst_description) msg += "." report(plugin, msg) rescue NonexistentUserError # This means that the SOURCE user didn't exist, since a # nonexistent destination user is perfectly expected. report(plugin, "Source user #{src.to_s()} not found.") rescue NonexistentDomainError # This could mean that the source domain doesn't exist, but in # that case, we just report that the source user doesn't # exist. So a nonexistent domain refers to a nonexistent # DESTINATION domain. report(plugin, "Destination domain #{dst.domainpart()} not found.") rescue UserAlreadyExistsError report(plugin, "Destination user #{dst.to_s()} already exists.") end end