aws-cleaner 1.0.0 → 2.0.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 +4 -4
 - data/bin/aws_cleaner.rb +31 -11
 - metadata +3 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 4cac446b2547a119136092534b75f3ea31ae2986
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: a26ce3525908ff62c301b623cf7bf3ab765f1584
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: f9235bced7a80ac1390f229ae198ba9f17ea02a5340da3a79978c94a925a888dfde1bb6c5c243908018e7179c82ac0223be7e879f54732f125b19d3c31dabbcf
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 05020a834092037f3b086860e0eac24491312072e601a862c89eb1265200a0efc5af4d395ee9c5caa94052ac04bdd283338069166b6bac758d30bc33ed599fb2
         
     | 
    
        data/bin/aws_cleaner.rb
    CHANGED
    
    | 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            #
         
     | 
| 
       3 
3 
     | 
    
         
             
            # Listen for AWS CloudWatch Events EC2 termination events delivered via SQS
         
     | 
| 
       4 
4 
     | 
    
         
             
            # and remove the node from Chef and Sensu and send a notification
         
     | 
| 
       5 
     | 
    
         
            -
            # to Hipchat
         
     | 
| 
      
 5 
     | 
    
         
            +
            # to Hipchat or Slack
         
     | 
| 
       6 
6 
     | 
    
         
             
            #
         
     | 
| 
       7 
7 
     | 
    
         
             
            # Copyright (c) 2015, 2016 Eric Heydrick
         
     | 
| 
       8 
8 
     | 
    
         
             
            # Licensed under The MIT License
         
     | 
| 
         @@ -16,6 +16,7 @@ begin 
     | 
|
| 
       16 
16 
     | 
    
         
             
              require 'hipchat'
         
     | 
| 
       17 
17 
     | 
    
         
             
              require 'rest-client'
         
     | 
| 
       18 
18 
     | 
    
         
             
              require 'trollop'
         
     | 
| 
      
 19 
     | 
    
         
            +
              require 'slack/poster'
         
     | 
| 
       19 
20 
     | 
    
         
             
            rescue LoadError => e
         
     | 
| 
       20 
21 
     | 
    
         
             
              raise "Missing gems: #{e}"
         
     | 
| 
       21 
22 
     | 
    
         
             
            end
         
     | 
| 
         @@ -105,10 +106,10 @@ def remove_from_sensu(node_name) 
     | 
|
| 
       105 
106 
     | 
    
         
             
              response = RestClient::Request.execute(url: "#{@config[:sensu][:url]}/clients/#{node_name}", method: :delete, timeout: 5, open_timeout: 5)
         
     | 
| 
       106 
107 
     | 
    
         
             
              case response.code
         
     | 
| 
       107 
108 
     | 
    
         
             
              when 202
         
     | 
| 
       108 
     | 
    
         
            -
                 
     | 
| 
      
 109 
     | 
    
         
            +
                notify_chat('Removed ' + node_name + ' from Sensu')
         
     | 
| 
       109 
110 
     | 
    
         
             
                return true
         
     | 
| 
       110 
111 
     | 
    
         
             
              else
         
     | 
| 
       111 
     | 
    
         
            -
                 
     | 
| 
      
 112 
     | 
    
         
            +
                notify_chat('Failed to remove ' + node_name + ' from Sensu')
         
     | 
| 
       112 
113 
     | 
    
         
             
                return false
         
     | 
| 
       113 
114 
     | 
    
         
             
              end
         
     | 
| 
       114 
115 
     | 
    
         
             
            end
         
     | 
| 
         @@ -123,10 +124,11 @@ def remove_from_chef(node_name) 
     | 
|
| 
       123 
124 
     | 
    
         
             
              rescue => e
         
     | 
| 
       124 
125 
     | 
    
         
             
                puts "Failed to remove chef node: #{e}"
         
     | 
| 
       125 
126 
     | 
    
         
             
              else
         
     | 
| 
       126 
     | 
    
         
            -
                 
     | 
| 
      
 127 
     | 
    
         
            +
                notify_chat('Removed ' + node_name + ' from Chef')
         
     | 
| 
       127 
128 
     | 
    
         
             
              end
         
     | 
| 
       128 
129 
     | 
    
         
             
            end
         
     | 
| 
       129 
130 
     | 
    
         | 
| 
      
 131 
     | 
    
         
            +
            # notify hipchat
         
     | 
| 
       130 
132 
     | 
    
         
             
            def notify_hipchat(msg)
         
     | 
| 
       131 
133 
     | 
    
         
             
              hipchat = HipChat::Client.new(
         
     | 
| 
       132 
134 
     | 
    
         
             
                @config[:hipchat][:api_token],
         
     | 
| 
         @@ -136,6 +138,24 @@ def notify_hipchat(msg) 
     | 
|
| 
       136 
138 
     | 
    
         
             
              hipchat[room].send('AWS Cleaner', msg)
         
     | 
| 
       137 
139 
     | 
    
         
             
            end
         
     | 
| 
       138 
140 
     | 
    
         | 
| 
      
 141 
     | 
    
         
            +
            # notify slack
         
     | 
| 
      
 142 
     | 
    
         
            +
            def notify_slack(msg)
         
     | 
| 
      
 143 
     | 
    
         
            +
              slack = Slack::Poster.new(@config[:slack][:webhook_url])
         
     | 
| 
      
 144 
     | 
    
         
            +
              slack.channel = @config[:slack][:channel]
         
     | 
| 
      
 145 
     | 
    
         
            +
              slack.username = @config[:slack][:username] ||= 'aws-cleaner'
         
     | 
| 
      
 146 
     | 
    
         
            +
              slack.icon_emoji = @config[:slack][:icon_emoji] ||= nil
         
     | 
| 
      
 147 
     | 
    
         
            +
              slack.send_message(msg)
         
     | 
| 
      
 148 
     | 
    
         
            +
            end
         
     | 
| 
      
 149 
     | 
    
         
            +
             
     | 
| 
      
 150 
     | 
    
         
            +
            # generic chat notification method
         
     | 
| 
      
 151 
     | 
    
         
            +
            def notify_chat(msg)
         
     | 
| 
      
 152 
     | 
    
         
            +
              if @config[:hipchat][:enable]
         
     | 
| 
      
 153 
     | 
    
         
            +
                notify_hipchat(msg)
         
     | 
| 
      
 154 
     | 
    
         
            +
              elsif @config[:slack][:enable]
         
     | 
| 
      
 155 
     | 
    
         
            +
                notify_slack(msg)
         
     | 
| 
      
 156 
     | 
    
         
            +
              end
         
     | 
| 
      
 157 
     | 
    
         
            +
            end
         
     | 
| 
      
 158 
     | 
    
         
            +
             
     | 
| 
       139 
159 
     | 
    
         
             
            # generate the URL for the webhook
         
     | 
| 
       140 
160 
     | 
    
         
             
            def generate_template(item, template_variable_method, template_variable_argument, template_variable)
         
     | 
| 
       141 
161 
     | 
    
         
             
              begin
         
     | 
| 
         @@ -169,15 +189,15 @@ def fire_webhook(config) 
     | 
|
| 
       169 
189 
     | 
    
         
             
              if r.code != 200
         
     | 
| 
       170 
190 
     | 
    
         
             
                return false
         
     | 
| 
       171 
191 
     | 
    
         
             
              else
         
     | 
| 
       172 
     | 
    
         
            -
                # notify  
     | 
| 
       173 
     | 
    
         
            -
                if config[: 
     | 
| 
      
 192 
     | 
    
         
            +
                # notify chat when webhook is successful
         
     | 
| 
      
 193 
     | 
    
         
            +
                if config[:chat][:enable]
         
     | 
| 
       174 
194 
     | 
    
         
             
                  msg = generate_template(
         
     | 
| 
       175 
     | 
    
         
            -
                    config[: 
     | 
| 
       176 
     | 
    
         
            -
                    config[: 
     | 
| 
       177 
     | 
    
         
            -
                    config[: 
     | 
| 
       178 
     | 
    
         
            -
                    config[: 
     | 
| 
      
 195 
     | 
    
         
            +
                    config[:chat][:message],
         
     | 
| 
      
 196 
     | 
    
         
            +
                    config[:chat][:method],
         
     | 
| 
      
 197 
     | 
    
         
            +
                    config[:chat][:argument],
         
     | 
| 
      
 198 
     | 
    
         
            +
                    config[:chat][:variable]
         
     | 
| 
       179 
199 
     | 
    
         
             
                  )
         
     | 
| 
       180 
     | 
    
         
            -
                   
     | 
| 
      
 200 
     | 
    
         
            +
                  notify_chat(msg)
         
     | 
| 
       181 
201 
     | 
    
         
             
                end
         
     | 
| 
       182 
202 
     | 
    
         
             
                return true
         
     | 
| 
       183 
203 
     | 
    
         
             
              end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: aws-cleaner
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version:  
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.0.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Eric Heydrick
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2016- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-06-30 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: aws-sdk-core
         
     | 
| 
         @@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       108 
108 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       109 
109 
     | 
    
         
             
            requirements: []
         
     | 
| 
       110 
110 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       111 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 111 
     | 
    
         
            +
            rubygems_version: 2.5.1
         
     | 
| 
       112 
112 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       113 
113 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       114 
114 
     | 
    
         
             
            summary: AWS Cleaner cleans up after EC2 instances are terminated
         
     |