lester 1.0.0.pre1 → 1.0.0.pre2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/lester/factory.rb +5 -5
- data/lib/lester/version.rb +1 -1
- data/spec/acceptance/cli_init_spec.rb +17 -1
- data/spec/acceptance/cli_renew_spec.rb +21 -1
- metadata +59 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9cd94f15e8e4c24b2865432990ecb938b130bbb
|
4
|
+
data.tar.gz: a7e6b43cc55488bfbe5fa6942b531558f03f4b9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e00b55bcd24fafe1f087af99e350829e60e59a43a862992126cdd3015e763cb9383dcd243affb02642f815fa5a26db8da34a1c3782f0bee1f63d3673b61d149
|
7
|
+
data.tar.gz: ed3b0cbae73e924428625142fa8aa0f13b93c9e9a98ea157c6cb8dd3857332db5d6bc6d1481f4392b8f1a63e4a508276b4565c2f71b8e0317142ca92b6caf4be
|
data/lib/lester/factory.rb
CHANGED
@@ -37,7 +37,11 @@ module Lester
|
|
37
37
|
private
|
38
38
|
|
39
39
|
def create_store(suffix)
|
40
|
-
|
40
|
+
uri = URI(sprintf('s3://%s', @config[:storage_bucket]))
|
41
|
+
bucket_name = uri.host
|
42
|
+
prefix = sprintf('%s/%s/%s', uri.path, @config[:domain], suffix).sub('/', '')
|
43
|
+
bucket = Aws::S3::Bucket.new(bucket_name)
|
44
|
+
S3Store.new(bucket, prefix, store_options)
|
41
45
|
end
|
42
46
|
|
43
47
|
def store_options
|
@@ -55,10 +59,6 @@ module Lester
|
|
55
59
|
@site_bucket ||= Aws::S3::Bucket.new(@config[:site_bucket])
|
56
60
|
end
|
57
61
|
|
58
|
-
def storage_bucket
|
59
|
-
@storage_bucket ||= Aws::S3::Bucket.new(@config[:storage_bucket])
|
60
|
-
end
|
61
|
-
|
62
62
|
def iam
|
63
63
|
@iam ||= Aws::IAM::Client.new
|
64
64
|
end
|
data/lib/lester/version.rb
CHANGED
@@ -11,11 +11,15 @@ describe 'bin/lester init' do
|
|
11
11
|
[
|
12
12
|
'init',
|
13
13
|
'--domain', 'example.org',
|
14
|
-
'--storage-bucket',
|
14
|
+
'--storage-bucket', storage_bucket_name,
|
15
15
|
'--private-key', private_key_path,
|
16
16
|
]
|
17
17
|
end
|
18
18
|
|
19
|
+
let :storage_bucket_name do
|
20
|
+
'example-org-backup'
|
21
|
+
end
|
22
|
+
|
19
23
|
context 'when the private key exists' do
|
20
24
|
it 'stores it' do
|
21
25
|
command.run
|
@@ -29,6 +33,18 @@ describe 'bin/lester init' do
|
|
29
33
|
end
|
30
34
|
end
|
31
35
|
|
36
|
+
context 'when --storage-bucket includes a prefix' do
|
37
|
+
let :storage_bucket_name do
|
38
|
+
'example-org-backup/lester'
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'stores it under the given prefix' do
|
42
|
+
command.run
|
43
|
+
object = storage_bucket.object('lester/example.org/account/private_key.json')
|
44
|
+
expect { JSON::JWK.new(JSON.parse(object.read)).to_key }.to_not raise_error
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
32
48
|
context 'when the private key does not exist' do
|
33
49
|
let :private_key_path do
|
34
50
|
'this/should/not/exist.pem'
|
@@ -13,12 +13,16 @@ describe 'bin/lester renew' do
|
|
13
13
|
'--domain', 'example.org',
|
14
14
|
'--endpoint', 'http://127.0.0.1:4000',
|
15
15
|
'--site-bucket', 'example-org-site',
|
16
|
-
'--storage-bucket',
|
16
|
+
'--storage-bucket', storage_bucket_name,
|
17
17
|
'--email', 'contact@example.org',
|
18
18
|
'--distribution-id', 'distribution-id',
|
19
19
|
]
|
20
20
|
end
|
21
21
|
|
22
|
+
let :storage_bucket_name do
|
23
|
+
'example-org-backup'
|
24
|
+
end
|
25
|
+
|
22
26
|
before do
|
23
27
|
storage_bucket.put_object(key: 'example.org/account/private_key.json', body: Pathname.new(private_key_path))
|
24
28
|
cloudfront.add_config('distribution-id', {
|
@@ -119,6 +123,22 @@ describe 'bin/lester renew' do
|
|
119
123
|
end
|
120
124
|
end
|
121
125
|
end
|
126
|
+
|
127
|
+
context 'when --storage-bucket includes a prefix' do
|
128
|
+
let :storage_bucket_name do
|
129
|
+
'example-org-backup/lester'
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'stores everything under given prefix' do
|
133
|
+
storage_bucket.put_object(key: 'lester/example.org/account/private_key.json', body: Pathname.new(private_key_path))
|
134
|
+
command.run
|
135
|
+
keys = storage_bucket.keys.select { |k| k.start_with?('lester') }
|
136
|
+
expect(keys).to_not be_empty
|
137
|
+
keys.each do |key|
|
138
|
+
expect(key).to start_with('lester/example.org')
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
122
142
|
end
|
123
143
|
|
124
144
|
context 'when verification fails', vcr: { cassette_name: 'verification-fail' } do
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lester
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.pre2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mathias Söderberg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: json
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.8.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.8.2
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: acme-client
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +108,48 @@ dependencies:
|
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '3'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: tara
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "<"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "<"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: github_api
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "<"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '1'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "<"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: mime-types
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '3'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '3'
|
97
153
|
description: Let's Encrypt certificate renewer for sites hosted on S3
|
98
154
|
email:
|
99
155
|
- mths@sdrbrg.se
|
@@ -155,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
155
211
|
version: 1.3.1
|
156
212
|
requirements: []
|
157
213
|
rubyforge_project:
|
158
|
-
rubygems_version: 2.4.5
|
214
|
+
rubygems_version: 2.4.5
|
159
215
|
signing_key:
|
160
216
|
specification_version: 4
|
161
217
|
summary: Renew Let's Encrypt certificates using S3
|