certmeister-redis 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b94f6ecf725290836b06d1aa737d62151c19cb28
4
- data.tar.gz: b8494776fc261e13685feac57e28aa74ae3901b2
3
+ metadata.gz: ff17de81019b42432e18f08956642d4972ef0a3f
4
+ data.tar.gz: 0fe5a23d672610a4f1fc10e26f5a948425457ba1
5
5
  SHA512:
6
- metadata.gz: c7292a10d8c95677d2079ce24d704b2c29a88fa5121b77a785c9c7b8ba48dfa271df88a39dfd4a0c352453d40c81aa9a77c3a5fbf650518879de88225ae1ccb1
7
- data.tar.gz: 005a54dfa4ad40f26a94997c4fc8835e84655b2d330aa5f94ecb9a3cd3212bc865d7d45a6f50db46d6a5a0dd506c4d497f62042a75bbb419fc726cbbcf4e41a7
6
+ metadata.gz: d9969df08d48a6891138a1ff2ac3ca5fbd74894c5ece834d03d5232ab9b653719cc3d921843bfb214a57dfe1b1a145072a353ba8be81fdb67e9b231eb6a9eb97
7
+ data.tar.gz: edef146466471161aad7b1588759ab073b61715b6431a44fb903b860e7a5955afd62387280fa255b7fccd2dfab91d21cc98e160fd37627a38303c6a1deac972f
@@ -0,0 +1,44 @@
1
+ module Certmeister
2
+
3
+ module Redis
4
+
5
+ class Store
6
+
7
+ def initialize(redis, environment = "development")
8
+ @redis = redis
9
+ @environment = environment
10
+ @healthy = true
11
+ end
12
+
13
+ def store(cn, pem)
14
+ @redis.set(pem_key(cn), pem)
15
+ end
16
+
17
+ def fetch(cn)
18
+ @redis.get(pem_key(cn))
19
+ end
20
+
21
+ def remove(cn)
22
+ num_removed = @redis.del(pem_key(cn))
23
+ num_removed == 1
24
+ end
25
+
26
+ def health_check
27
+ @healthy
28
+ end
29
+
30
+ private
31
+
32
+ def pem_key(cn)
33
+ "certmeister:#{@environment}:certificate:#{cn}"
34
+ end
35
+
36
+ def break!
37
+ @healthy = false
38
+ end
39
+
40
+ end
41
+
42
+ end
43
+
44
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+ require 'certmeister/test/memory_store_interface'
3
+
4
+ require 'redis'
5
+ require 'certmeister/redis/store'
6
+
7
+ describe Certmeister::Redis::Store do
8
+
9
+ class << self
10
+ include Certmeister::Test::MemoryStoreInterface
11
+ end
12
+
13
+ let(:redis) { Redis.new }
14
+ subject { Certmeister::Redis::Store.new(redis, "test") }
15
+
16
+ it_behaves_like_a_certmeister_store
17
+
18
+ private
19
+
20
+ def redis_cleanup
21
+ ["axl.starjuice.net", "axl.hetzner.africa"].each do |cn|
22
+ redis.del(subject.send(:pem_key, "axl.hetzner.africa"))
23
+ end
24
+ leftovers = redis.keys("*")
25
+ if !leftovers.empty?
26
+ fail "redis keys not cleaned up: #{leftovers.inspect}"
27
+ end
28
+ end
29
+
30
+ before(:each) do
31
+ redis_cleanup
32
+ end
33
+
34
+ after(:each) do
35
+ redis_cleanup
36
+ end
37
+
38
+ end
39
+
metadata CHANGED
@@ -1,57 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: certmeister-redis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sheldon Hearn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-29 00:00:00.000000000 Z
11
+ date: 2014-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: certmeister
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '1.5'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
17
+ - - '='
25
18
  - !ruby/object:Gem::Version
26
- version: '1.5'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
19
+ version: 0.0.2
20
+ type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
- - - ~>
24
+ - - '='
39
25
  - !ruby/object:Gem::Version
40
- version: '0'
26
+ version: 0.0.2
41
27
  - !ruby/object:Gem::Dependency
42
- name: rspec
28
+ name: redis-sentinel
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - ~>
46
32
  - !ruby/object:Gem::Version
47
- version: '2.14'
48
- type: :development
33
+ version: '1.4'
34
+ type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - ~>
53
39
  - !ruby/object:Gem::Version
54
- version: '2.14'
40
+ version: '1.4'
55
41
  description: This gem provides a redis store for use in certmeister, the conditional
56
42
  autosigning certificate authority.
57
43
  email:
@@ -59,7 +45,9 @@ email:
59
45
  executables: []
60
46
  extensions: []
61
47
  extra_rdoc_files: []
62
- files: []
48
+ files:
49
+ - lib/certmeister/redis/store.rb
50
+ - spec/certmeister/redis/store_spec.rb
63
51
  homepage: https://github.com/sheldonh/certmeister
64
52
  licenses:
65
53
  - MIT
@@ -80,8 +68,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
68
  version: '0'
81
69
  requirements: []
82
70
  rubyforge_project:
83
- rubygems_version: 2.1.11
71
+ rubygems_version: 2.2.1
84
72
  signing_key:
85
73
  specification_version: 4
86
74
  summary: Redis store for certmeister
87
- test_files: []
75
+ test_files:
76
+ - spec/certmeister/redis/store_spec.rb