certman 0.2.0 → 0.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc3463ae829bfaef6897bb714c2489d113113465
4
- data.tar.gz: 55623eb5f306caa72832a252a06125632344efc9
3
+ metadata.gz: 0e408e374e023b020b14823efde18c02ecda7e96
4
+ data.tar.gz: 974e04dcadccb2b152bcd06eb639ad59e2a4ba1e
5
5
  SHA512:
6
- metadata.gz: 6fab1591da092475a654d4903b9984ec71f4c35b6f85ce69ff4bdfcde40123d3b53557e10f8450d2efff75d777da892542ff424107fecc1eb2b6a81aa42b031f
7
- data.tar.gz: 285bae5e5f326b9b6d57e9d32dcf68b01461354ce63d0b3fed8599a68c49f45e67e28ebe3a8e12c1bdb3028537646efe857a6410a17551f758eccddc00a208e0
6
+ metadata.gz: 60fbd45d48957f144aa4a6e13d278f3da882fc66e50b26edcaaeccb3ad07d18fbd3d6bdec7402e6c1bb176b84672fa06da2001fcd69964c591996f283a6e241c
7
+ data.tar.gz: a4a22c9cd126403dd09c6b37af8d7f7debaee67ba8f6f64391f0597185c7fe98341fde19d4f0b867d8cb000f1c3913704b8f31b5f487c084707e1a939a4b0213
data/README.md CHANGED
@@ -28,35 +28,42 @@ $ gem install certman
28
28
 
29
29
  ```sh
30
30
  $ certman request blog.example.com
31
- NOTICE! Certman support *us-east-1* only, now. OK? Yes
31
+ NOTICE! Your selected region is *ap-northeast-1*. Certman create certificate on *ap-northeast-1*. OK? Yes
32
+ NOTICE! Certman use *us-east-1* S3/SES. OK? Yes
32
33
  NOTICE! When requesting, Certman replace Active Receipt Rule Set. OK? Yes
33
- [✔] [ACM] Check Certificate (successfull)
34
- [✔] [Route53] Check Hosted Zone (successfull)
35
- [✔] [Route53] Check TXT Record (successfull)
36
- [✔] [Route53] Check MX Record (successfull)
37
- [✔] [S3] Create Bucket for SES inbound (successfull)
38
- [✔] [SES] Create Domain Identity (successfull)
39
- [✔] [Route53] Create TXT Record Set to verify Domain Identity (successfull)
40
- [✔] [SES] Check Domain Identity Status *verified* (successfull)
41
- [✔] [Route53] Create MX Record Set (successfull)
42
- [✔] [SES] Create Receipt Rule Set (successfull)
43
- [✔] [SES] Create Receipt Rule (successfull)
44
- [✔] [SES] Replace Active Receipt Rule Set (successfull)
45
- [✔] [ACM] Request Certificate (successfull)
46
- [✔] [S3] Check approval mail (will take about 30 min) (successfull)
47
- [✔] [SES] Revert Active Receipt Rule Set (successfull)
48
- [✔] [SES] Delete Receipt Rule (successfull)
49
- [✔] [SES] Delete Receipt Rule Set (successfull)
50
- [✔] [Route53] Delete MX Record Set (successfull)
51
- [✔] [Route53] Delete TXT Record Set (successfull)
52
- [✔] [SES] Delete Verified Domain Identiry (successfull)
53
- [✔] [S3] Delete Bucket (successfull)
34
+ [✔] [ACM] Check Certificate (ap-northeast-1) (successfull)
35
+ [✔] [Route53] Check Hosted Zone (ap-northeast-1) (successfull)
36
+ [✔] [Route53] Check TXT Record (ap-northeast-1) (successfull)
37
+ [✔] [Route53] Check MX Record (ap-northeast-1) (successfull)
38
+ [✔] [S3] Create Bucket for SES inbound (us-east-1) (successfull)
39
+ [✔] [SES] Create Domain Identity (us-east-1) (successfull)
40
+ [✔] [Route53] Create TXT Record Set to verify Domain Identity (ap-northeast-1) (successfull)
41
+ [✔] [SES] Check Domain Identity Status *verified* (us-east-1) (successfull)
42
+ [✔] [Route53] Create MX Record Set (ap-northeast-1) (successfull)
43
+ [✔] [SES] Create Receipt Rule Set (us-east-1) (successfull)
44
+ [✔] [SES] Create Receipt Rule (us-east-1) (successfull)
45
+ [✔] [SES] Replace Active Receipt Rule Set (us-east-1) (successfull)
46
+ [✔] [ACM] Request Certificate (ap-northeast-1) (successfull)
47
+ [✔] [S3] Check approval mail (will take about 30 min) (us-east-1) (successfull)
48
+ [✔] [SES] Revert Active Receipt Rule Set (us-east-1) (successfull)
49
+ [✔] [SES] Delete Receipt Rule (us-east-1) (successfull)
50
+ [✔] [SES] Delete Receipt Rule Set (us-east-1) (successfull)
51
+ [✔] [Route53] Delete MX Record Set (ap-northeast-1) (successfull)
52
+ [✔] [Route53] Delete TXT Record Set (ap-northeast-1) (successfull)
53
+ [✔] [SES] Delete Verified Domain Identiry (us-east-1) (successfull)
54
+ [✔] [S3] Delete Bucket (us-east-1) (successfull)
54
55
  Done.
55
56
 
56
- certificate_arn: arn:aws:acm:us-east-1:0123456789:certificate/123abcd4-5e67-8f90-123a-4567bc89d01
57
+ certificate_arn: arn:aws:acm:ap-northeast-1:0123456789:certificate/123abcd4-5e67-8f90-123a-4567bc89d01
57
58
 
58
59
  ```
59
60
 
61
+ #### Remain Resources
62
+
63
+ If you want to remain resources, use `--remain-resources` option.
64
+
65
+ (see http://docs.aws.amazon.com/ja_jp/acm/latest/userguide/managed-renewal.html#how-manual-domain-validation-works)
66
+
60
67
  ### Delete Certificate
61
68
 
62
69
  ```sh
data/exe/certman CHANGED
@@ -3,6 +3,5 @@
3
3
  require 'certman'
4
4
 
5
5
  Awsecrets.load
6
- Aws.config[:region] = 'us-east-1'
7
6
 
8
7
  Certman::CLI.start
data/lib/certman/cli.rb CHANGED
@@ -5,7 +5,10 @@ module Certman
5
5
  def request(domain)
6
6
  pastel = Pastel.new
7
7
  prompt = TTY::Prompt.new
8
- return unless prompt.yes?(pastel.red('NOTICE! Certman support *us-east-1* only, now. OK?'))
8
+ return unless prompt.yes?(pastel.red("NOTICE! Your selected region is *#{Aws.config[:region]}*. Certman create certificate on *#{Aws.config[:region]}*. OK?"))
9
+ unless ['us-east-1', 'us-west-2', 'eu-west-1'].include?(Aws.config[:region])
10
+ return unless prompt.yes?(pastel.red('NOTICE! Certman use *us-east-1* S3/SES. OK?'))
11
+ end
9
12
  return unless prompt.yes?(pastel.red('NOTICE! When requesting, Certman replace Active Receipt Rule Set. OK?'))
10
13
  client = Certman::Client.new(domain)
11
14
  Signal.trap(:INT) do
@@ -16,44 +16,51 @@ module Certman
16
16
  def request(remain_resources = false)
17
17
  check_resource
18
18
 
19
- step('[S3] Create Bucket for SES inbound', :s3_bucket) do
20
- create_bucket
21
- end
22
-
23
- step('[SES] Create Domain Identity', :ses_domain_identity) do
24
- create_domain_identity
19
+ enforce_region_to_us_east_1 do
20
+ step('[S3] Create Bucket for SES inbound', :s3_bucket) do
21
+ create_bucket
22
+ end
23
+ step('[SES] Create Domain Identity', :ses_domain_identity) do
24
+ create_domain_identity
25
+ end
25
26
  end
26
27
 
27
28
  step('[Route53] Create TXT Record Set to verify Domain Identity', :route53_txt) do
28
29
  create_txt_rset
29
30
  end
30
31
 
31
- step('[SES] Check Domain Identity Status *verified*', nil) do
32
- check_domain_identity_verified
32
+ enforce_region_to_us_east_1 do
33
+ step('[SES] Check Domain Identity Status *verified*', nil) do
34
+ check_domain_identity_verified
35
+ end
33
36
  end
34
37
 
35
38
  step('[Route53] Create MX Record Set', :route53_mx) do
36
39
  create_mx_rset
37
40
  end
38
41
 
39
- step('[SES] Create Receipt Rule Set', :ses_rule_set) do
40
- create_rule_set
41
- end
42
+ enforce_region_to_us_east_1 do
43
+ step('[SES] Create Receipt Rule Set', :ses_rule_set) do
44
+ create_rule_set
45
+ end
42
46
 
43
- step('[SES] Create Receipt Rule', :ses_rule) do
44
- create_rule
45
- end
47
+ step('[SES] Create Receipt Rule', :ses_rule) do
48
+ create_rule
49
+ end
46
50
 
47
- step('[SES] Replace Active Receipt Rule Set', :ses_replace_active_rule_set) do
48
- replace_active_rule_set
51
+ step('[SES] Replace Active Receipt Rule Set', :ses_replace_active_rule_set) do
52
+ replace_active_rule_set
53
+ end
49
54
  end
50
55
 
51
56
  step('[ACM] Request Certificate', :acm_certificate) do
52
57
  request_certificate
53
58
  end
54
59
 
55
- step('[S3] Check approval mail (will take about 30 min)', nil) do
56
- check_approval_mail
60
+ enforce_region_to_us_east_1 do
61
+ step('[S3] Check approval mail (will take about 30 min)', nil) do
62
+ check_approval_mail
63
+ end
57
64
  end
58
65
 
59
66
  cleanup_resources if !remain_resources || @do_rollback
@@ -93,6 +100,15 @@ module Certman
93
100
 
94
101
  private
95
102
 
103
+ def enforce_region_to_us_east_1
104
+ region = Aws.config[:region]
105
+ unless ['us-east-1', 'us-west-2', 'eu-west-1'].include?(Aws.config[:region])
106
+ Aws.config[:region] = 'us-east-1'
107
+ end
108
+ yield
109
+ Aws.config[:region] = region
110
+ end
111
+
96
112
  def step(message, save)
97
113
  return if @do_rollback
98
114
  s = spinner(message)
@@ -100,8 +116,10 @@ module Certman
100
116
  yield
101
117
  @savepoint.push(save)
102
118
  s.success
103
- rescue
104
- puts "Error: #{$ERROR_INFO}"
119
+ rescue => e
120
+ pastel = Pastel.new
121
+ puts ''
122
+ puts pastel.red("Error: #{e.message}")
105
123
  @do_rollback = true
106
124
  s.error
107
125
  end
@@ -111,13 +129,17 @@ module Certman
111
129
  @savepoint.reverse.each do |state|
112
130
  case state
113
131
  when :s3_bucket
114
- s = spinner('[S3] Delete Bucket')
115
- delete_bucket
116
- s.success
132
+ enforce_region_to_us_east_1 do
133
+ s = spinner('[S3] Delete Bucket')
134
+ delete_bucket
135
+ s.success
136
+ end
117
137
  when :ses_domain_identity
118
- s = spinner('[SES] Delete Verified Domain Identiry')
119
- delete_domain_identity
120
- s.success
138
+ enforce_region_to_us_east_1 do
139
+ s = spinner('[SES] Delete Verified Domain Identiry')
140
+ delete_domain_identity
141
+ s.success
142
+ end
121
143
  when :route53_txt
122
144
  s = spinner('[Route53] Delete TXT Record Set')
123
145
  delete_txt_rset
@@ -127,17 +149,23 @@ module Certman
127
149
  delete_mx_rset
128
150
  s.success
129
151
  when :ses_rule_set
130
- s = spinner('[SES] Delete Receipt Rule Set')
131
- delete_rule_set
132
- s.success
152
+ enforce_region_to_us_east_1 do
153
+ s = spinner('[SES] Delete Receipt Rule Set')
154
+ delete_rule_set
155
+ s.success
156
+ end
133
157
  when :ses_rule
134
- s = spinner('[SES] Delete Receipt Rule')
135
- delete_rule
136
- s.success
158
+ enforce_region_to_us_east_1 do
159
+ s = spinner('[SES] Delete Receipt Rule')
160
+ delete_rule
161
+ s.success
162
+ end
137
163
  when :ses_replace_active_rule_set
138
- s = spinner('[SES] Revert Active Receipt Rule Set')
139
- revert_active_rue_set
140
- s.success
164
+ enforce_region_to_us_east_1 do
165
+ s = spinner('[SES] Revert Active Receipt Rule Set')
166
+ revert_active_rue_set
167
+ s.success
168
+ end
141
169
  end
142
170
  end
143
171
  end
data/lib/certman/log.rb CHANGED
@@ -2,7 +2,7 @@ module Certman
2
2
  class Log
3
3
  def initialize(message)
4
4
  @pastel = Pastel.new
5
- @s = TTY::Spinner.new("[:spinner] #{message}", output: $stdout)
5
+ @s = TTY::Spinner.new("[:spinner] #{message} (#{Aws.config[:region]})", output: $stdout)
6
6
  @s.auto_spin
7
7
  end
8
8
 
@@ -1,3 +1,3 @@
1
1
  module Certman
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: certman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-26 00:00:00.000000000 Z
11
+ date: 2017-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk