Module: Certman::Resource::S3
- Included in:
- Client
- Defined in:
- lib/certman/resource/s3.rb
Instance Method Summary collapse
Instance Method Details
#check_approval_mail ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/certman/resource/s3.rb', line 42 def check_approval_mail is_break = false 30.times do sleep 60 s3.list_objects(bucket: bucket_name).contents.map do |object| res = s3.get_object(bucket: bucket_name, key: object.key) res.body.read.match(%r{https://certificates\.amazon\.com/approvals[^\s]+}) do |md| cert_uri = md[0] handle = open(cert_uri) document = Oga.parse_html(handle) data = {} document.css('form input').each do |input| data[input.get('name')] = input.get('value') end res = Net::HTTP.post_form(URI.parse('https://certificates.amazon.com/approvals'), data) raise 'Can not approve' unless res.body =~ /Success/ # success is_break = true break end end break if is_break break if @do_rollback resend_validation_email end raise 'Can not approve' unless is_break end |
#create_bucket ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/certman/resource/s3.rb', line 4 def create_bucket account_id = sts.get_caller_identity.account bucket_policy = "{\n \"Version\": \"2008-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"GiveSESPermissionToWriteEmail\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": [\n \"ses.amazonaws.com\"\n ]\n },\n \"Action\": [\n \"s3:PutObject\"\n ],\n \"Resource\": \"arn:aws:s3:::\#{bucket_name}/*\",\n \"Condition\": {\n \"StringEquals\": {\n \"aws:Referer\": \"\#{account_id}\"\n }\n }\n }\n ]\n}\n" s3.create_bucket( acl: 'private', bucket: bucket_name ) s3.put_bucket_policy( bucket: bucket_name, policy: bucket_policy, use_accelerate_endpoint: false ) end |
#delete_bucket ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/certman/resource/s3.rb', line 70 def delete_bucket objects = s3.list_objects(bucket: bucket_name).contents.map do |object| { key: object.key } end unless objects.empty? s3.delete_objects( bucket: bucket_name, delete: { objects: objects } ) end s3.delete_bucket(bucket: bucket_name) end |
#s3 ⇒ Object
85 86 87 |
# File 'lib/certman/resource/s3.rb', line 85 def s3 @s3 ||= Aws::S3::Client.new end |