certman 0.8.1 → 0.9.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: 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