diff options
author | elijah <elijah@riseup.net> | 2015-08-24 10:39:27 -0700 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2015-08-24 10:39:27 -0700 |
commit | 26b54adadf7be2a60ecccde57519653fe769efa4 (patch) | |
tree | 45971be8da00b40131af6a2f37475fc1c280da36 | |
parent | d8c4925f1747c19fba08ca1a4f44f86fea270a99 (diff) |
retry if couchdb command times out.
-rwxr-xr-x | ruby/destroy-all-test-users | 43 |
1 files changed, 28 insertions, 15 deletions
diff --git a/ruby/destroy-all-test-users b/ruby/destroy-all-test-users index 7f98aa6..b578f83 100755 --- a/ruby/destroy-all-test-users +++ b/ruby/destroy-all-test-users @@ -23,25 +23,38 @@ records = users_db.view('User/by_login', :reduce => false, :startkey => 'test_us records.each do |record| user_id = record['id'] username = record['key'] + tries = 0 begin - doc = users_db.get(user_id) - users_db.delete_doc(doc) - puts "deleted #{users_db.name}/#{user_id} (#{username})" - rescue RestClient::ResourceNotFound - end - begin - storage_db = server.database("user-" + user_id) - storage_db.delete! - puts " deleted #{storage_db.name}" - rescue RestClient::ResourceNotFound - end - identities_db.view('Identity/by_user_id', :reduce => false, :startkey => user_id, :endkey => user_id)['rows'].each do |row| begin - doc = identities_db.get(row['id']) - identities_db.delete_doc(doc) - puts " deleted #{identities_db.name}/#{row['id']}" + doc = users_db.get(user_id) + users_db.delete_doc(doc) + puts "deleted #{users_db.name}/#{user_id} (#{username})" + rescue RestClient::ResourceNotFound + end + begin + storage_db = server.database("user-" + user_id) + storage_db.delete! + puts " deleted #{storage_db.name}" rescue RestClient::ResourceNotFound end + identities_db.view('Identity/by_user_id', :reduce => false, :startkey => user_id, :endkey => user_id)['rows'].each do |row| + begin + doc = identities_db.get(row['id']) + identities_db.delete_doc(doc) + puts " deleted #{identities_db.name}/#{row['id']}" + rescue RestClient::ResourceNotFound + end + end + rescue RestClient::RequestTimeout + tries += 1 + if tries < 10 + puts "Got timeout, retrying" + sleep 10 + retry + else + puts "Retry limit reached" + exit(1) + end end end |