summaryrefslogtreecommitdiff
path: root/ruby/destroy-all-test-users
diff options
context:
space:
mode:
Diffstat (limited to 'ruby/destroy-all-test-users')
-rwxr-xr-xruby/destroy-all-test-users32
1 files changed, 32 insertions, 0 deletions
diff --git a/ruby/destroy-all-test-users b/ruby/destroy-all-test-users
new file mode 100755
index 0000000..45d7055
--- /dev/null
+++ b/ruby/destroy-all-test-users
@@ -0,0 +1,32 @@
+#!/usr/bin/ruby
+
+#
+# Clean up cruft left over by bad tests.
+#
+# Removes all 'test_user_x' users from the users db, along with the
+# corresponding indentities and storage db.
+#
+
+require 'couchrest'
+
+users_db_name = 'users'
+#user_db_name = 'tmp_users'
+identities_db_name = 'identities'
+
+server = CouchRest::Server.new
+users_db = server.database(users_db_name)
+identities_db = server.database(identities_db_name)
+
+records = db.view('User/by_login', :reduce => false, :startkey => 'test_user_', :endkey => 'test_user_'+"\u{fff}")['rows']
+records.each do |record|
+ user_id = record['id']
+ username = record['key']
+ storage_db = server.database("user-" + user_id)
+ storage_db.delete! rescue RestClient::ResourceNotFound
+ identities_db.view('Identity/by_user_id', :reduce => false, :startkey => user_id, :endkey => user_id)['rows'].each do |row|
+ identities_db.delete_doc(row['id'])
+ end
+end
+
+users_db.compact!
+identities_db.compact!