diff options
author | Azul <azul@riseup.net> | 2012-12-31 15:14:08 +0100 |
---|---|---|
committer | Azul <azul@riseup.net> | 2012-12-31 15:14:08 +0100 |
commit | 4aa9a677ca40113d10929e5f060d9676fe93d296 (patch) | |
tree | 52a38dfa63e839e6d2dd2329354b414f2454c448 | |
parent | 66286e53c7cbee8608fc7a4b3beced1b70a07b4e (diff) |
include functions for retrieving certs from couch
-rw-r--r-- | lib/leap_ca/cert.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/leap_ca/cert.rb b/lib/leap_ca/cert.rb index 0587a54..8f1c9e9 100644 --- a/lib/leap_ca/cert.rb +++ b/lib/leap_ca/cert.rb @@ -32,6 +32,22 @@ module LeapCA view :by_random end + class << self + def sample + self.by_random.startkey(rand).first || self.by_random.first + end + + def pick_from_pool + cert = self.sample + raise RECORD_NOT_FOUND unless cert + cert.destroy + return cert + rescue RESOURCE_NOT_FOUND + retry if self.by_random.count > 0 + raise RECORD_NOT_FOUND + end + end + # # generate the private key and client certificate # |