certman 0.8.1 → 0.9.0

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: ae421a511fc7d200686769ed4ce3d076f7a15d63
4
- data.tar.gz: b498e5ae5b18d18a8afd7bed9c84a6aa48334a21
3
+ metadata.gz: 0bc4ef169994ff88ad064ee325db79ccf2dbd7be
4
+ data.tar.gz: af026eb3d38e662dae8cb94b6cfc3836e31ebb36
5
5
  SHA512:
6
- metadata.gz: 57931a85c251a8029150d80f6d570ac0649db2811950ef7a350dab93d9450521aad436bd5952465e250898d0bad3258ec52aa2ed55b0cd039cb982f7a2f610c4
7
- data.tar.gz: 2f4c63ca42262a8d6f332028fbe09206861b56f471d4418cfe70952553b0ea9fa4c56ecdd8fb0944a1f749f15dce622b474995718cd6abf85fd13f25e58d525c
6
+ metadata.gz: 2b988e395fd5373eb271de4f1d32ae41fcfcc0f51faeab245c864e2d6dddf0e93c00be1bebb830ec321d8668a2c95823ee2a26a93c797dc7b96fd2dcb3484e72
7
+ data.tar.gz: af9df5146dd99cbf1a5ee8fa8be2e4567d95f4cb37ba83c3cd9610607a613ea666d68560ad49e6e8d1ee70746e59b7e886ac0e4d52b9db89d75254834f963715
data/README.md CHANGED
@@ -64,6 +64,14 @@ If you want to remain resources, use `--remain-resources` option.
64
64
 
65
65
  (see http://docs.aws.amazon.com/ja_jp/acm/latest/userguide/managed-renewal.html#how-manual-domain-validation-works)
66
66
 
67
+ ### Restore Resources
68
+
69
+ If you want to restore resources for ACM ( to receive approval mail ), use `certman restore-resources`.
70
+
71
+ ```sh
72
+ $ certman restore-resources blog.example.com
73
+ ```
74
+
67
75
  ### Delete Certificate
68
76
 
69
77
  ```sh
@@ -2,7 +2,7 @@ module Certman
2
2
  class CLI < Thor
3
3
  desc 'request [DOMAIN]', 'Request ACM Certificate with only AWS managed services'
4
4
  option :remain_resources, type: :boolean, default: false
5
- option :hosted_zone, type: :string
5
+ option :hosted_zone, type: :string, banner: '<Route53 HostedZone>'
6
6
  def request(domain)
7
7
  pastel = Pastel.new
8
8
  prompt = TTY::Prompt.new
@@ -24,6 +24,27 @@ Receipt Rule Set. OK?"))
24
24
  puts ''
25
25
  end
26
26
 
27
+ desc 'restore-resources [DOMAIN]', 'Restore resources to receive approval mail'
28
+ option :hosted_zone, type: :string, banner: '<Route53 HostedZone>'
29
+ def restore_resources(domain)
30
+ pastel = Pastel.new
31
+ prompt = TTY::Prompt.new
32
+ return unless prompt.yes?(pastel.red("NOTICE! Your selected region is *#{Aws.config[:region]}*. \
33
+ Certman create certificate on *#{Aws.config[:region]}*. OK?"))
34
+ client = Certman::Client.new(domain, options)
35
+ return unless prompt.yes?(pastel.red("NOTICE! Certman use *#{client.region_by_hash}* S3/SES. OK?"))
36
+ return unless prompt.yes?(pastel.red("NOTICE! When requesting, Certman apend Receipt Rule to current Active \
37
+ Receipt Rule Set. OK?"))
38
+ Signal.trap(:INT) do
39
+ puts ''
40
+ puts pastel.red('Rollback start.')
41
+ client.rollback
42
+ end
43
+ client.restore_resources
44
+ puts 'Done.'
45
+ puts ''
46
+ end
47
+
27
48
  desc 'delete [DOMAIN]', 'Delete ACM Certificate'
28
49
  def delete(domain)
29
50
  Certman::Client.new(domain, options).delete
@@ -68,18 +68,59 @@ module Certman
68
68
  @cert_arn
69
69
  end
70
70
 
71
+ def restore_resources
72
+ check_resource(check_acm: false)
73
+
74
+ enforce_region_by_hash do
75
+ step('[S3] Create Bucket for SES inbound', :s3_bucket) do
76
+ create_bucket
77
+ end
78
+ step('[SES] Create Domain Identity', :ses_domain_identity) do
79
+ create_domain_identity
80
+ end
81
+ end
82
+
83
+ step('[Route53] Create TXT Record Set to verify Domain Identity', :route53_txt) do
84
+ create_txt_rset
85
+ end
86
+
87
+ enforce_region_by_hash do
88
+ step('[SES] Check Domain Identity Status *verified*', nil) do
89
+ check_domain_identity_verified
90
+ end
91
+
92
+ step('[Route53] Create MX Record Set', :route53_mx) do
93
+ create_mx_rset
94
+ end
95
+
96
+ unless active_rule_set_exist?
97
+ step('[SES] Create and Active Receipt Rule Set', :ses_rule_set) do
98
+ create_and_active_rule_set
99
+ end
100
+ end
101
+
102
+ step('[SES] Create Receipt Rule', :ses_rule) do
103
+ create_rule
104
+ end
105
+ end
106
+
107
+ cleanup_resources if @do_rollback
108
+ end
109
+
71
110
  def delete
72
111
  s = spinner('[ACM] Delete Certificate')
73
112
  delete_certificate
74
113
  s.success
75
114
  end
76
115
 
77
- def check_resource
116
+ def check_resource(check_acm: true)
78
117
  pastel = Pastel.new
79
118
 
80
- s = spinner('[ACM] Check Certificate')
81
- raise 'Certificate already exist' if certificate_exist?
82
- s.success
119
+ if check_acm
120
+ s = spinner('[ACM] Check Certificate')
121
+ raise 'Certificate already exist' if certificate_exist?
122
+ s.success
123
+ end
83
124
 
84
125
  s = spinner('[Route53] Check Hosted Zone')
85
126
  raise "Hosted Zone #{hosted_zone_domain} does not exist" unless hosted_zone_exist?
@@ -1,3 +1,3 @@
1
1
  module Certman
2
- VERSION = '0.8.1'
2
+ VERSION = '0.9.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.8.1
4
+ version: 0.9.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-08-01 00:00:00.000000000 Z
11
+ date: 2017-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk