Get the domain/account descriptions before deleting them.
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 3 Feb 2011 17:47:36 +0000 (12:47 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 3 Feb 2011 17:47:36 +0000 (12:47 -0500)
bin/mailshears
src/plugins/dovecot_mailstore.rb

index 5a156f9dce691be8f5e8d0b2e676bec840f2c7a2..9d870d04e245c4a6fef34c07b85ff9453694cd94 100755 (executable)
@@ -111,19 +111,18 @@ Plugin.includers.each do |plugin_class|
 
     if Configuration::I_MEAN_BUSINESS
       leftover_domains.each do |domain|
+        # Get the description before we delete the domain.
+        domain_description = plugin.describe_domain(domain)
         plugin.delete_domain(domain)
-        puts "Removed: #{domain} (#{plugin.describe_domain(domain)})"
+        puts "Removed: #{domain} (#{domain_description})"
       end
 
       leftover_accounts.each do |account|
-        begin
-          plugin.delete_account(account)
-          puts "Removed: #{account} (#{plugin.describe_account(account)})"
-        rescue NonexistentAccountError => e
-          # This usually happens after an account's domain is deleted.
-          # When we try to delete the account, it's already gone.
-          puts "Gone: #{account} (#{plugin.describe_account(account)})"
-        end
+        # Get the description before we delete the domain.
+        # This can still fail if the account's domain is gone.
+        account_description = plugin.describe_account(account)
+        plugin.delete_account(account)
+        puts "Removed: #{account} (#{account_description})"
       end
     end
 
index 40b201924514e032ee3349e1e1aa01aaa00adaa3..0fffd97cbe378279dadf4d5c1ff988d4f63f8349 100644 (file)
@@ -16,7 +16,7 @@ class DovecotMailstore < Mailstore
       domain_path = get_domain_path(domain)
       return domain_path
     rescue NonexistentDomainError => e
-      return e.message
+      return "Doesn't Exist"
     end
   end
 
@@ -25,7 +25,7 @@ class DovecotMailstore < Mailstore
       account_path = get_account_path(account)
       return account_path
     rescue NonexistentAccountError => e
-      return e.message
+      return "Doesn't Exist"
     end
   end
 
@@ -94,7 +94,7 @@ class DovecotMailstore < Mailstore
     if File.directory?(domain_path)
       return domain_path
     else
-      raise NonexistentDomainError.new(domain_path)
+      raise NonexistentDomainError
     end
   end
 
@@ -110,13 +110,18 @@ class DovecotMailstore < Mailstore
     user_part = account_parts[0]
     domain_part = account_parts[1]
 
-    domain_path = get_domain_path(domain_part)
+    begin
+      domain_path = get_domain_path(domain_part)
+    rescue NonexistentDomainError
+      raise NonexistentAccountError
+    end
+
     account_path = File.join(domain_path, user_part)
 
     if File.directory?(account_path)
       return account_path
     else
-      raise NonexistentAccountError.new(account_path)
+      raise NonexistentAccountError
     end
   end