puppetdashboardmonitor 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,2 @@
1
+ # PuppetDashboardMonitor
2
+ A tool for monitoring the highlights of puppet dashboard.
@@ -0,0 +1,19 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'json'
4
+ require 'yaml'
5
+ require 'puppetdashboardmonitoring'
6
+
7
+ def run
8
+
9
+ config = YAML::load(File.read('etc/dashboard.yaml'))
10
+
11
+ data = Hash.new
12
+ data = PuppetDashboardMonitoring.go(config)
13
+ data
14
+
15
+ end
16
+
17
+ output = run()
18
+ puts output.to_json
19
+
@@ -0,0 +1,4 @@
1
+ ---
2
+ :url: 'https://dashboard.example.net'
3
+ :authuser: 'monitor'
4
+ :authpass: 'secretpassword'
@@ -0,0 +1,30 @@
1
+ require "net/http"
2
+ require "uri"
3
+
4
+ module PuppetDashboardMonitoring
5
+ module_function
6
+
7
+ def go (config)
8
+ @config = config
9
+ data = Hash.new
10
+ data[:nodes] = Hash.new
11
+ data[:nodes][:total] = get_json("#{@config[:url]}/nodes.json").count
12
+ data[:nodes][:changed] = get_json("#{@config[:url]}/nodes/changed.json").count
13
+ data[:nodes][:unresponsive] = get_json("#{@config[:url]}/nodes/unresponsive.json").count
14
+ data
15
+ end
16
+
17
+ def get_json (url, user=@config[:authuser], pass=@config[:authpass])
18
+ uri = URI.parse(url)
19
+
20
+ http = Net::HTTP.new(uri.host, uri.port)
21
+ http.use_ssl = true
22
+ #http.verify_mode = OpenSSL::SSL::VERIFY_NONE
23
+
24
+ request = Net::HTTP::Get.new(uri.request_uri)
25
+ request.basic_auth(user,pass)
26
+ response = http.request(request)
27
+ JSON.parse(response.body)
28
+ end
29
+
30
+ end
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: puppetdashboardmonitor
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Zach Leslie
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-26 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Parses json from the various node states on puppet dashboard and returns
15
+ those values in a json blob
16
+ email: xaque208@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - bin/puppetdashboardmonitor
22
+ - lib/puppetdashboardmonitoring.rb
23
+ - etc/dashboard.yaml.sample
24
+ - README.md
25
+ homepage: https://github.com/xaque208/puppetdashboardmonitor
26
+ licenses: []
27
+ post_install_message:
28
+ rdoc_options: []
29
+ require_paths:
30
+ - lib
31
+ required_ruby_version: !ruby/object:Gem::Requirement
32
+ none: false
33
+ requirements:
34
+ - - ! '>='
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ! '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ requirements: []
44
+ rubyforge_project:
45
+ rubygems_version: 1.8.24
46
+ signing_key:
47
+ specification_version: 3
48
+ summary: A tool to get the highlights from the Puppet Dashboard
49
+ test_files: []