require 'common/runner' # Dummy implementation of a {MvRunner}. Its run() method will # tell you what would have been moved, but will not actually perform # the operation. # class MvDummyRunner include Runner # Pretend to move *src* to *dst* with *plugin*. Some "what if" # information will be output to stdout. This is useful to see if # there would be (for example) a username collision at *dst* before # attempting the move in earnest. # # @param cfg [Configuration] the configuration options to pass to # the *plugin* we're runnning. # # @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, to which we will move *src*. # 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 # Since we're not actually moving anything, the destination # description is really only useful for seeing whether or not we'd # be trying to move in on top of an existing account. src_description = plugin.describe(src) dst_description = plugin.describe(dst) msg = "Would move user #{src} " # Only append the extra description if it's useful. if not src_description.nil? and not src_description.empty? and not src_description == src.to_s() then msg += "(#{src_description}) " end msg += "to #{dst}" # Only append the extra description if it's useful. if not dst_description.nil? and not dst_description.empty? and not dst_description == dst.to_s() then msg += " (#{dst_description})" end msg += "." report(plugin, msg) end end