chef-handler-datadog 0.0.13 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,55 @@
1
+ # rcov generated
2
+ coverage
3
+
4
+ # rdoc generated
5
+ rdoc
6
+
7
+ # yard generated
8
+ doc
9
+ .yardoc
10
+
11
+ # bundler
12
+ .bundle
13
+
14
+ # jeweler generated
15
+ pkg
16
+
17
+ # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
18
+ #
19
+ # * Create a file at ~/.gitignore
20
+ # * Include files you want ignored
21
+ # * Run: git config --global core.excludesfile ~/.gitignore
22
+ #
23
+ # After doing this, these files will be ignored in all your git projects,
24
+ # saving you from having to 'pollute' every project you touch with them
25
+ #
26
+ # Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
27
+ #
28
+ # For MacOS:
29
+ #
30
+ .DS_Store
31
+
32
+ # For RVM
33
+ .rvmrc
34
+
35
+ # For TextMate
36
+ *.tmproj
37
+ # tmtags
38
+
39
+ # For emacs:
40
+ #*~
41
+ #\#*
42
+ #.\#*
43
+
44
+ # For vim:
45
+ #*.swp
46
+
47
+ # For redcar:
48
+ #.redcar
49
+
50
+ # For rubinius:
51
+ #*.rbc
52
+
53
+ json
54
+ rake
55
+ Gemfile.lock
@@ -1,5 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 1.8.7
4
+ - 1.9.3
4
5
  env:
5
- - CHEF_VERSION=0.9.18
6
+ - CHEF_VERSION=0.10.8
7
+ - CHEF_VERSION=10.12.0
8
+ - CHEF_VERSION=10.14.2
data/Gemfile CHANGED
@@ -1,14 +1,4 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- # Add dependencies required to use your gem here.
4
- gem "chef", ">= 0.9.18"
5
- gem "dogapi", ">= 1.2"
6
-
7
- # Add dependencies to develop your gem here.
8
- # Include everything needed to run rake, tests, features, etc.
9
- group :development do
10
- gem "shoulda", ">= 0"
11
- gem "bundler", ">= 1.0.0"
12
- gem "jeweler", "~> 1.6.4"
13
- gem "rdoc", ">= 0"
14
- end
3
+ # Specify your gem's dependencies in chef-handler-datadog.gemspec
4
+ gemspec
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011 Mike Fiedler
1
+ Copyright (c) 2011-2012 Datadog, Inc.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -1,14 +1,15 @@
1
- = chef-handler-datadog
1
+ # chef-handler-datadog
2
2
 
3
3
  An Exception and Report Handler for Chef.
4
4
 
5
- {<img src="https://secure.travis-ci.org/DataDog/chef-handler-datadog.png?branch=master" alt="Build Status" />}[http://travis-ci.org/DataDog/chef-handler-datadog]
6
- == Using chef-handler-datadog
5
+ [![Build Status](https://secure.travis-ci.org/DataDog/chef-handler-datadog.png?branch=master)](http://travis-ci.org/DataDog/chef-handler-datadog)
6
+
7
+ ## Using chef-handler-datadog
7
8
 
8
9
  The [Chef integration page](https://app.datadoghq.com/accounts/settings#integrations) has detailed instructions.
9
10
 
10
- == Contributing to chef-handler-datadog
11
-
11
+ ## Contributing to chef-handler-datadog
12
+
12
13
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
13
14
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
14
15
  * Fork the project
@@ -17,6 +18,6 @@ The [Chef integration page](https://app.datadoghq.com/accounts/settings#integrat
17
18
  * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
18
19
  * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
19
20
 
20
- == Copyright
21
+ ## Copyright
21
22
 
22
- Copyright (c) 2011 Datadog, Inc. See LICENSE.txt for further details.
23
+ Copyright (c) 2012 Datadog, Inc. See LICENSE.txt for further details.
data/Rakefile CHANGED
@@ -1,29 +1,7 @@
1
+ #!/usr/bin/env rake
1
2
  # encoding: utf-8
2
-
3
3
  require 'rubygems'
4
- require 'bundler'
5
- begin
6
- Bundler.setup(:default, :development)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
12
- require 'rake'
13
-
14
- require 'jeweler'
15
- Jeweler::Tasks.new do |gem|
16
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "chef-handler-datadog"
18
- gem.homepage = "http://www.datadoghq.com/"
19
- gem.license = "BSD"
20
- gem.summary = %Q{Chef Handler for DataDog events and metrics}
21
- gem.description = %Q{This Handler will report the events and metrics for a chef-client run to DataDog.}
22
- gem.email = "packages@datadoghq.com"
23
- gem.authors = ["Mike Fiedler", "Adam Jacob", "Alexis Le-Quoc"]
24
- # dependencies defined in Gemfile
25
- end
26
- Jeweler::RubygemsDotOrgTasks.new
4
+ require 'bundler/gem_tasks'
27
5
 
28
6
  require 'rake/testtask'
29
7
  Rake::TestTask.new(:test) do |test|
@@ -0,0 +1,32 @@
1
+ # -*- encoding: utf-8 -*-
2
+ chef_version = ENV.key?('CHEF_VERSION') ? "= #{ENV['CHEF_VERSION']}" : ['~> 10.12']
3
+ require File.expand_path('../lib/chef-handler-datadog', __FILE__)
4
+
5
+ Gem::Specification.new do |gem|
6
+
7
+ gem.name = "chef-handler-datadog"
8
+ gem.summary = %q{Chef Handler for DataDog events and metrics}
9
+ gem.description = %q{This Handler will report the events and metrics for a chef-client run to DataDog.}
10
+ gem.license = "BSD"
11
+ gem.version = ChefHandlerDatadog::VERSION
12
+
13
+ gem.files = `git ls-files`.split($\)
14
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
+ gem.require_paths = ['lib']
17
+ gem.extra_rdoc_files = ['README.md', 'LICENSE.txt']
18
+
19
+ gem.add_dependency 'chef', chef_version
20
+ gem.add_dependency 'dogapi', ">= 1.2"
21
+
22
+ gem.add_development_dependency 'rake'
23
+ gem.add_development_dependency 'shoulda'
24
+ gem.add_development_dependency 'bundler'
25
+ gem.add_development_dependency 'rdoc'
26
+ gem.add_development_dependency 'travis-lint'
27
+
28
+ gem.authors = ["Mike Fiedler", "Adam Jacob", "Alexis Le-Quoc"]
29
+ gem.email = ["packages@datadoghq.com"]
30
+ gem.homepage = "http://www.datadoghq.com/"
31
+
32
+ end
@@ -1,136 +1,3 @@
1
- require 'rubygems'
2
- require 'chef'
3
- require 'chef/handler'
4
- require 'dogapi'
5
-
6
- class Datadog < Chef::Handler
7
-
8
- # For the tags to work, the client must have created an Application Key on the
9
- # "Account Settings" page here: https://app.datadoghq.com/account/settings
10
- # It should be passed along from the node/role/environemnt attributes, as the default is nil.
11
- def initialize(opts = nil)
12
- opts = opts || {}
13
- @api_key = opts[:api_key]
14
- @application_key = opts[:application_key]
15
- # If we're on ec2, use the instance by default, unless instructed otherwise
16
- @use_ec2_instance_id = !opts.has_key?(:use_ec2_instance_id) || opts.has_key?(:use_ec2_instance_id) && opts[:use_ec2_instance_id]
17
- @dog = Dogapi::Client.new(@api_key, application_key = @application_key)
18
- end
19
-
20
- def report
21
- hostname = run_status.node.name
22
- if @use_ec2_instance_id && run_status.node.attribute?("ec2") && run_status.node.ec2.attribute?("instance_id")
23
- hostname = run_status.node.ec2.instance_id
24
- end
25
-
26
- # Send the metrics
27
- begin
28
- @dog.emit_point("chef.resources.total", run_status.all_resources.length, :host => hostname)
29
- @dog.emit_point("chef.resources.updated", run_status.updated_resources.length, :host => hostname)
30
- @dog.emit_point("chef.resources.elapsed_time", run_status.elapsed_time, :host => hostname)
31
- rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT => e
32
- Chef::Log.error("Could not send metrics to Datadog. Connection error:\n" + e)
33
- end
34
-
35
- event_title = ""
36
- run_time = pluralize(run_status.elapsed_time, "second")
37
- if run_status.success?
38
- alert_type = "success"
39
- event_priority = "low"
40
- event_title << "Chef completed in #{run_time} on #{hostname} "
41
- else
42
- event_title << "Chef failed in #{run_time} on #{hostname} "
43
- end
44
-
45
- event_data = "Chef updated #{run_status.updated_resources.length} resources out of #{run_status.all_resources.length} resources total."
46
- if run_status.updated_resources.length.to_i > 0
47
- event_data << "\n@@@\n"
48
- run_status.updated_resources.each do |r|
49
- event_data << "- #{r.to_s} (#{defined_at(r)})\n"
50
- end
51
- event_data << "\n@@@\n"
52
- end
53
-
54
- if run_status.failed?
55
- alert_type = "error"
56
- event_priority = "normal"
57
- event_data << "\n@@@\n#{run_status.formatted_exception}\n@@@\n"
58
- event_data << "\n@@@\n#{run_status.backtrace.join("\n")}\n@@@\n"
59
- end
60
-
61
- # Submit the details back to Datadog
62
- begin
63
- # Send the Event data
64
- @dog.emit_event(Dogapi::Event.new(event_data,
65
- :msg_title => event_title,
66
- :event_type => 'config_management.run',
67
- :event_object => hostname,
68
- :alert_type => alert_type,
69
- :priority => event_priority,
70
- :source_type_name => 'chef'
71
- ), :host => hostname)
72
-
73
- # Get the current list of tags, remove any "role:" entries
74
- host_tags = @dog.host_tags(node.name)[1]["tags"] || []
75
- host_tags.delete_if {|tag| tag.start_with?('role:') }
76
-
77
- # Get list of chef roles, rename them to tag format
78
- chef_roles = node.run_list.roles
79
- chef_roles.collect! {|role| "role:" + role }
80
-
81
- # Get the chef environment (as long as it's not '_default')
82
- if node.respond_to?('chef_environment') && node.chef_environment != '_default'
83
- host_tags.delete_if {|tag| tag.start_with?('env:') }
84
- host_tags << "env:" + node.chef_environment
85
- end
86
-
87
- # Combine (union) both arrays. Removes dupes, preserves non-chef tags.
88
- new_host_tags = host_tags | chef_roles
89
-
90
- # Replace all tags with the new tags
91
- @dog.update_tags(node.name, new_host_tags)
92
-
93
- rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT => e
94
- Chef::Log.error("Could not connect to Datadog. Connection error:\n" + e)
95
- Chef::Log.error("Data to be submitted was:")
96
- Chef::Log.error(event_title)
97
- Chef::Log.error(event_data)
98
- Chef::Log.error("Tags to be set for this run:")
99
- Chef::Log.error(new_host_tags)
100
- end
101
- end
102
-
103
- private
104
-
105
- def pluralize(number, noun)
106
- begin
107
- case number
108
- when 0..1
109
- "less than 1 #{noun}"
110
- else
111
- "#{number.round} #{noun}s"
112
- end
113
- rescue
114
- Chef::Log.warn("Cannot make #{number} more legible")
115
- "#{number} #{noun}s"
116
- end
117
- end
118
-
119
- ## This function is to mimic behavior built into a later version of chef than 0.9.x
120
- ## Source is here: https://github.com/opscode/chef/blob/master/chef/lib/chef/resource.rb#L415-424
121
- ## Including this based on help from schisamo
122
- def defined_at(resource)
123
- cookbook_name = resource.cookbook_name
124
- recipe_name = resource.recipe_name
125
- source_line = resource.source_line
126
- if cookbook_name && recipe_name && source_line
127
- "#{cookbook_name}::#{recipe_name} line #{source_line.split(':')[1]}"
128
- elsif source_line
129
- file, line_no = source_line.split(':')
130
- "#{file} line #{line_no}"
131
- else
132
- "dynamically defined"
133
- end
134
- end
135
-
1
+ module ChefHandlerDatadog
2
+ VERSION = "0.1.0"
136
3
  end
@@ -0,0 +1,140 @@
1
+ require 'rubygems'
2
+ require 'chef'
3
+ require 'chef/handler'
4
+ require 'dogapi'
5
+
6
+ class Chef
7
+ class Handler
8
+ class Datadog < Chef::Handler
9
+
10
+ # For the tags to work, the client must have created an Application Key on the
11
+ # "Account Settings" page here: https://app.datadoghq.com/account/settings
12
+ # It should be passed along from the node/role/environemnt attributes, as the default is nil.
13
+ def initialize(opts = nil)
14
+ opts = opts || {}
15
+ @api_key = opts[:api_key]
16
+ @application_key = opts[:application_key]
17
+ # If we're on ec2, use the instance by default, unless instructed otherwise
18
+ @use_ec2_instance_id = !opts.has_key?(:use_ec2_instance_id) || opts.has_key?(:use_ec2_instance_id) && opts[:use_ec2_instance_id]
19
+ @dog = Dogapi::Client.new(@api_key, application_key = @application_key)
20
+ end
21
+
22
+ def report
23
+ hostname = run_status.node.name
24
+ if @use_ec2_instance_id && run_status.node.attribute?("ec2") && run_status.node.ec2.attribute?("instance_id")
25
+ hostname = run_status.node.ec2.instance_id
26
+ end
27
+
28
+ # Send the metrics
29
+ begin
30
+ @dog.emit_point("chef.resources.total", run_status.all_resources.length, :host => hostname)
31
+ @dog.emit_point("chef.resources.updated", run_status.updated_resources.length, :host => hostname)
32
+ @dog.emit_point("chef.resources.elapsed_time", run_status.elapsed_time, :host => hostname)
33
+ rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT => e
34
+ Chef::Log.error("Could not send metrics to Datadog. Connection error:\n" + e)
35
+ end
36
+
37
+ event_title = ""
38
+ run_time = pluralize(run_status.elapsed_time, "second")
39
+ if run_status.success?
40
+ alert_type = "success"
41
+ event_priority = "low"
42
+ event_title << "Chef completed in #{run_time} on #{hostname} "
43
+ else
44
+ event_title << "Chef failed in #{run_time} on #{hostname} "
45
+ end
46
+
47
+ event_data = "Chef updated #{run_status.updated_resources.length} resources out of #{run_status.all_resources.length} resources total."
48
+ if run_status.updated_resources.length.to_i > 0
49
+ event_data << "\n@@@\n"
50
+ run_status.updated_resources.each do |r|
51
+ event_data << "- #{r.to_s} (#{defined_at(r)})\n"
52
+ end
53
+ event_data << "\n@@@\n"
54
+ end
55
+
56
+ if run_status.failed?
57
+ alert_type = "error"
58
+ event_priority = "normal"
59
+ event_data << "\n@@@\n#{run_status.formatted_exception}\n@@@\n"
60
+ event_data << "\n@@@\n#{run_status.backtrace.join("\n")}\n@@@\n"
61
+ end
62
+
63
+ # Submit the details back to Datadog
64
+ begin
65
+ # Send the Event data
66
+ @dog.emit_event(Dogapi::Event.new(event_data,
67
+ :msg_title => event_title,
68
+ :event_type => 'config_management.run',
69
+ :event_object => hostname,
70
+ :alert_type => alert_type,
71
+ :priority => event_priority,
72
+ :source_type_name => 'chef'
73
+ ), :host => hostname)
74
+
75
+ # Get the current list of tags, remove any "role:" entries
76
+ host_tags = @dog.host_tags(node.name)[1]["tags"] || []
77
+ host_tags.delete_if {|tag| tag.start_with?('role:') }
78
+
79
+ # Get list of chef roles, rename them to tag format
80
+ chef_roles = node.run_list.roles
81
+ chef_roles.collect! {|role| "role:" + role }
82
+
83
+ # Get the chef environment (as long as it's not '_default')
84
+ if node.respond_to?('chef_environment') && node.chef_environment != '_default'
85
+ host_tags.delete_if {|tag| tag.start_with?('env:') }
86
+ host_tags << "env:" + node.chef_environment
87
+ end
88
+
89
+ # Combine (union) both arrays. Removes dupes, preserves non-chef tags.
90
+ new_host_tags = host_tags | chef_roles
91
+
92
+ # Replace all tags with the new tags
93
+ @dog.update_tags(node.name, new_host_tags)
94
+
95
+ rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT => e
96
+ Chef::Log.error("Could not connect to Datadog. Connection error:\n" + e)
97
+ Chef::Log.error("Data to be submitted was:")
98
+ Chef::Log.error(event_title)
99
+ Chef::Log.error(event_data)
100
+ Chef::Log.error("Tags to be set for this run:")
101
+ Chef::Log.error(new_host_tags)
102
+ end
103
+ end
104
+
105
+ private
106
+
107
+ def pluralize(number, noun)
108
+ begin
109
+ case number
110
+ when 0..1
111
+ "less than 1 #{noun}"
112
+ else
113
+ "#{number.round} #{noun}s"
114
+ end
115
+ rescue
116
+ Chef::Log.warn("Cannot make #{number} more legible")
117
+ "#{number} #{noun}s"
118
+ end
119
+ end
120
+
121
+ ## This function is to mimic behavior built into a later version of chef than 0.9.x
122
+ ## Source is here: https://github.com/opscode/chef/blob/master/chef/lib/chef/resource.rb#L415-424
123
+ ## Including this based on help from schisamo
124
+ def defined_at(resource)
125
+ cookbook_name = resource.cookbook_name
126
+ recipe_name = resource.recipe_name
127
+ source_line = resource.source_line
128
+ if cookbook_name && recipe_name && source_line
129
+ "#{cookbook_name}::#{recipe_name} line #{source_line.split(':')[1]}"
130
+ elsif source_line
131
+ file, line_no = source_line.split(':')
132
+ "#{file} line #{line_no}"
133
+ else
134
+ "dynamically defined"
135
+ end
136
+ end
137
+
138
+ end #end class Datadog
139
+ end #end class Handler
140
+ end #end class Chef
@@ -12,7 +12,7 @@ require 'shoulda'
12
12
 
13
13
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
14
  $LOAD_PATH.unshift(File.dirname(__FILE__))
15
- require 'chef-handler-datadog'
15
+ require 'chef/handler/datadog'
16
16
 
17
17
  class Test::Unit::TestCase
18
18
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-handler-datadog
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 13
10
- version: 0.0.13
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mike Fiedler
@@ -17,28 +17,25 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2012-07-27 00:00:00 Z
20
+ date: 2012-09-14 00:00:00 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
- name: chef
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
23
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
24
  none: false
27
25
  requirements:
28
- - - ">="
26
+ - - ~>
29
27
  - !ruby/object:Gem::Version
30
- hash: 31
28
+ hash: 59
31
29
  segments:
32
- - 0
33
- - 9
34
- - 18
35
- version: 0.9.18
30
+ - 10
31
+ - 12
32
+ version: "10.12"
33
+ prerelease: false
36
34
  type: :runtime
37
- version_requirements: *id001
35
+ name: chef
36
+ requirement: *id001
38
37
  - !ruby/object:Gem::Dependency
39
- name: dogapi
40
- prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
38
+ version_requirements: &id002 !ruby/object:Gem::Requirement
42
39
  none: false
43
40
  requirements:
44
41
  - - ">="
@@ -48,12 +45,12 @@ dependencies:
48
45
  - 1
49
46
  - 2
50
47
  version: "1.2"
48
+ prerelease: false
51
49
  type: :runtime
52
- version_requirements: *id002
50
+ name: dogapi
51
+ requirement: *id002
53
52
  - !ruby/object:Gem::Dependency
54
- name: shoulda
55
- prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
57
54
  none: false
58
55
  requirements:
59
56
  - - ">="
@@ -62,44 +59,54 @@ dependencies:
62
59
  segments:
63
60
  - 0
64
61
  version: "0"
62
+ prerelease: false
65
63
  type: :development
66
- version_requirements: *id003
64
+ name: rake
65
+ requirement: *id003
67
66
  - !ruby/object:Gem::Dependency
68
- name: bundler
69
- prerelease: false
70
- requirement: &id004 !ruby/object:Gem::Requirement
67
+ version_requirements: &id004 !ruby/object:Gem::Requirement
71
68
  none: false
72
69
  requirements:
73
70
  - - ">="
74
71
  - !ruby/object:Gem::Version
75
- hash: 23
72
+ hash: 3
76
73
  segments:
77
- - 1
78
74
  - 0
79
- - 0
80
- version: 1.0.0
75
+ version: "0"
76
+ prerelease: false
81
77
  type: :development
82
- version_requirements: *id004
78
+ name: shoulda
79
+ requirement: *id004
83
80
  - !ruby/object:Gem::Dependency
84
- name: jeweler
85
- prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
81
+ version_requirements: &id005 !ruby/object:Gem::Requirement
87
82
  none: false
88
83
  requirements:
89
- - - ~>
84
+ - - ">="
90
85
  - !ruby/object:Gem::Version
91
- hash: 7
86
+ hash: 3
92
87
  segments:
93
- - 1
94
- - 6
95
- - 4
96
- version: 1.6.4
88
+ - 0
89
+ version: "0"
90
+ prerelease: false
97
91
  type: :development
98
- version_requirements: *id005
92
+ name: bundler
93
+ requirement: *id005
99
94
  - !ruby/object:Gem::Dependency
100
- name: rdoc
95
+ version_requirements: &id006 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ hash: 3
101
+ segments:
102
+ - 0
103
+ version: "0"
101
104
  prerelease: false
102
- requirement: &id006 !ruby/object:Gem::Requirement
105
+ type: :development
106
+ name: rdoc
107
+ requirement: *id006
108
+ - !ruby/object:Gem::Dependency
109
+ version_requirements: &id007 !ruby/object:Gem::Requirement
103
110
  none: false
104
111
  requirements:
105
112
  - - ">="
@@ -108,26 +115,30 @@ dependencies:
108
115
  segments:
109
116
  - 0
110
117
  version: "0"
118
+ prerelease: false
111
119
  type: :development
112
- version_requirements: *id006
120
+ name: travis-lint
121
+ requirement: *id007
113
122
  description: This Handler will report the events and metrics for a chef-client run to DataDog.
114
- email: packages@datadoghq.com
123
+ email:
124
+ - packages@datadoghq.com
115
125
  executables: []
116
126
 
117
127
  extensions: []
118
128
 
119
129
  extra_rdoc_files:
130
+ - README.md
120
131
  - LICENSE.txt
121
- - README.rdoc
122
132
  files:
133
+ - .gitignore
123
134
  - .travis.yml
124
135
  - Gemfile
125
- - Gemfile.lock
126
136
  - LICENSE.txt
127
- - README.rdoc
137
+ - README.md
128
138
  - Rakefile
129
- - VERSION
139
+ - chef-handler-datadog.gemspec
130
140
  - lib/chef-handler-datadog.rb
141
+ - lib/chef/handler/datadog.rb
131
142
  - test/helper.rb
132
143
  - test/test_chef-handler-datadog.rb
133
144
  homepage: http://www.datadoghq.com/
@@ -163,5 +174,6 @@ rubygems_version: 1.8.24
163
174
  signing_key:
164
175
  specification_version: 3
165
176
  summary: Chef Handler for DataDog events and metrics
166
- test_files: []
167
-
177
+ test_files:
178
+ - test/helper.rb
179
+ - test/test_chef-handler-datadog.rb
@@ -1,77 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- bunny (0.7.9)
5
- chef (0.10.8)
6
- bunny (>= 0.6.0)
7
- erubis
8
- highline
9
- json (>= 1.4.4, <= 1.6.1)
10
- mixlib-authentication (>= 1.1.0)
11
- mixlib-cli (>= 1.1.0)
12
- mixlib-config (>= 1.1.2)
13
- mixlib-log (>= 1.3.0)
14
- moneta
15
- net-ssh (~> 2.1.3)
16
- net-ssh-multi (~> 1.1.0)
17
- ohai (>= 0.6.0)
18
- rest-client (>= 1.0.4, < 1.7.0)
19
- treetop (~> 1.4.9)
20
- uuidtools
21
- dogapi (1.2.8)
22
- json (>= 1.5.1)
23
- erubis (2.7.0)
24
- git (1.2.5)
25
- highline (1.6.11)
26
- jeweler (1.6.4)
27
- bundler (~> 1.0)
28
- git (>= 1.2.5)
29
- rake
30
- json (1.6.1)
31
- mime-types (1.17.2)
32
- mixlib-authentication (1.1.4)
33
- mixlib-log
34
- mixlib-cli (1.2.2)
35
- mixlib-config (1.1.2)
36
- mixlib-log (1.3.0)
37
- moneta (0.6.0)
38
- net-ssh (2.1.4)
39
- net-ssh-gateway (1.1.0)
40
- net-ssh (>= 1.99.1)
41
- net-ssh-multi (1.1)
42
- net-ssh (>= 2.1.4)
43
- net-ssh-gateway (>= 0.99.0)
44
- ohai (0.6.10)
45
- mixlib-cli
46
- mixlib-config
47
- mixlib-log
48
- systemu (~> 2.2.0)
49
- yajl-ruby
50
- polyglot (0.3.3)
51
- rake (0.9.2.2)
52
- rdoc (3.12)
53
- json (~> 1.4)
54
- rest-client (1.6.7)
55
- mime-types (>= 1.16)
56
- shoulda (3.0.1)
57
- shoulda-context (~> 1.0.0)
58
- shoulda-matchers (~> 1.0.0)
59
- shoulda-context (1.0.0)
60
- shoulda-matchers (1.0.0)
61
- systemu (2.2.0)
62
- treetop (1.4.10)
63
- polyglot
64
- polyglot (>= 0.3.1)
65
- uuidtools (2.1.2)
66
- yajl-ruby (1.1.0)
67
-
68
- PLATFORMS
69
- ruby
70
-
71
- DEPENDENCIES
72
- bundler (>= 1.0.0)
73
- chef (>= 0.9.18)
74
- dogapi (>= 1.2)
75
- jeweler (~> 1.6.4)
76
- rdoc
77
- shoulda
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.0.13