sensu-cli 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDU2NGQ5NmQyOGQ1NzNhMmY0NmY3ZDFkZDIyNWI5OGQzZjBjZjU4MQ==
4
+ ZjkwOGFmNTA0OWM4MzZhNThkNjE1NDkwYTZjMGNmNzY2YmYyOWQ3NA==
5
5
  data.tar.gz: !binary |-
6
- MjM1ODMzYjQ2YTcwZjMzYzNkZjgxYTU4MmY1OWZmNGU1ZDUxYmI3NQ==
6
+ MjRkNzBkMTQ0ZWRhNGVkNTRlN2Y5YWVhNjVlODViZmJmNzllMGFmNQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ODJjNmRjYTAxZGU1ODFiNTdhZTgzYzk2MmQ4ZGZmNWNhNTgwM2ZjNjg2YzA5
10
- NzQ2MTFjZTg1OGY3YzhmNGMwNWE2NDY0MWE0MGIzMDZmMDRlMDkxMTMxYmFk
11
- NjIwYjIxZmM2YjNkYWU4ODBiMjkwNTM0MzU1MDJjNjU2OTZlNjI=
9
+ ZWE3ZGZiODZhNzdhNTdhZmM3NjU4Zjk1YzRkNGQzNDZmNjQwMjcxNzE2OWZk
10
+ ZWE2ZWQzZmNkYTY0OTA5MjU5ODhlMTI4ZThmNDNkYmY2N2JiZWYyZGI1ZDk0
11
+ MWNhMzMyNTg3NGMzMzBjNWFjMjVkMGExYTMyZjMzOTg4NDc2NWI=
12
12
  data.tar.gz: !binary |-
13
- NGNhNTMyNDNmZTkwM2VjMGIxNmM4ODljMzE2ZTMwYjkxNDAwNTljODNlMjBk
14
- N2E2MTlkZGZkMzk4ZTE5ZDg3MmU3YzkzMDA0Y2ZlOGUzNTRmYmU0NjNkN2Nm
15
- NjVhMWIyMjRkYmZhN2YzYmEyNDQ3MmE2ZWJjYmQ0ODM0YTJlZTM=
13
+ NTQ3ZjMzMWEyZDliNDk0NGU2NzhiZWU0YjI4NjEzZGEyN2M1MTJjYTg3YTU1
14
+ ZDk1ODQ4M2ExZWE3ODg1ZjcwOGMwZTE3ZGJkMTVkOWIxMDJiNmQ5YmI3ODZj
15
+ Y2Y0YTUzMzBlOTZhMmI0ZTdkMGYzMmQyMTBhNzdkOTM2NjliN2Y=
data/README.md CHANGED
@@ -49,6 +49,11 @@ user "some_user"
49
49
  password "some_secret_password"
50
50
  ````
51
51
 
52
+ Expire Silenced Hosts/Checks
53
+ ----------------------------
54
+ I added an expires option to `sensu silence` to be used like `sensu silence HOST -e 30` where `-e` denotes the number of minutes from now a host/checks silence should expire. This won't work by itself. We add a key to the silence stash with a time in the future. If you run [check-stashes](https://github.com/agent462/sensu-check-stashes) on your sensu-server it will check for expired stashes and delete them.
55
+
56
+ There is also a reason option `-r` available. Be nice and use it so your colleagues know what you're doing.
52
57
 
53
58
  Examples
54
59
  -----------
@@ -108,6 +113,7 @@ TODO
108
113
 
109
114
  License and Author
110
115
  ==================
116
+ I'm releasing this under the MIT or Apache 2.0 license. You pick.
111
117
 
112
118
  Author:: Bryan Brandau <agent462@gmail.com>
113
119
 
data/lib/sensu-cli/cli.rb CHANGED
@@ -253,6 +253,7 @@ module SensuCli
253
253
  opt :id, "The id of the check issued.", :short=>"i", :type => :integer
254
254
  opt :limit, "The number of aggregates to return", :short => "l", :type => :string
255
255
  opt :offset, "The number of aggregates to offset before returning", :short => "o", :type => :string
256
+ #opt :results, "Include the check results", :short => "r", :type => :boolean
256
257
  end
257
258
  Trollop::die :offset, "Offset depends on the limit option --limit ( -l )".color(:red) if p[:offset] && !p[:limit]
258
259
  item = next_argv
@@ -271,6 +272,7 @@ module SensuCli
271
272
  p = Trollop::options do
272
273
  opt :check, "The check to silence (requires --client)", :short => 'k', :type => :string
273
274
  opt :reason, "The reason this check/node is being silenced", :short => 'r', :type => :string
275
+ opt :expires, "The number of minutes the silenced event is valid (must use with check-stashes plugin)", :short => 'e', :type => :integer
274
276
  end
275
277
  command = next_argv
276
278
  explode(opts) if command == nil
@@ -56,7 +56,13 @@ module SensuCli
56
56
  payload = {:client => cli[:fields][:client], :check => cli[:fields][:check]}.to_json
57
57
  path = "/event/resolve"
58
58
  when 'silence'
59
- cli[:fields][:reason] ? payload = ({:reason => cli[:fields][:reason],:timestamp => Time.now.to_i}).to_json : payload = {:timestamp => Time.now.to_i}.to_json
59
+ payload = {:timestamp => Time.now.to_i}
60
+ payload.merge!({:reason => cli[:fields][:reason]}) if cli[:fields][:reason]
61
+ if cli[:fields][:expires]
62
+ expires = Time.now.to_i + (cli[:fields][:expires] * 60)
63
+ payload.merge!({:expires => expires})
64
+ end
65
+ payload = payload.to_json
60
66
  path = "/stashes/silence" << (cli[:fields][:client] ? "/#{cli[:fields][:client]}" : "") << (cli[:fields][:check] ? "/#{cli[:fields][:check]}" : "")
61
67
  when 'aggregates'
62
68
  path = "/aggregates" << (cli[:fields][:check] ? "/#{cli[:fields][:check]}" : "") << (cli[:fields][:id] ? "/#{cli[:fields][:id]}" : "")
@@ -89,7 +95,7 @@ module SensuCli
89
95
  when 'Delete'
90
96
  req = Net::HTTP::Delete.new(@api[:path])
91
97
  when 'Post'
92
- req = Net::HTTP::Post.new(@api[:path],initheader = {'Content-Type' =>'application/json'})
98
+ req = Net::HTTP::Post.new(@api[:path],initheader = {'Content-Type' => 'application/json'})
93
99
  req.body = @api[:payload]
94
100
  end
95
101
  req.basic_auth(Config.user, Config.password) if Config.user && Config.password
@@ -1,3 +1,3 @@
1
1
  module SensuCli
2
- VERSION = '0.0.9'
2
+ VERSION = '0.0.10'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Brandau
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-11 00:00:00.000000000 Z
11
+ date: 2013-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow