chef_knives 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,4 +1,8 @@
1
- === 0.2 / 2009-09-09
1
+ === 0.3 / 2009-11-09
2
+
3
+ * chef_node_find script added
4
+
5
+ === 0.2 / 2009-10-09
2
6
 
3
7
  * chef_node_stats script added
4
8
 
data/Manifest.txt CHANGED
@@ -2,6 +2,7 @@ History.txt
2
2
  Manifest.txt
3
3
  README.txt
4
4
  Rakefile
5
+ bin/chef_node_find
5
6
  bin/chef_node_fs_usage
6
7
  bin/chef_node_mem_usage
7
8
  bin/chef_node_stats
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'couchrest'
4
+ require 'chef'
5
+ require 'choice'
6
+ require 'pp'
7
+
8
+ CHEF_DB_URL = 'http://localhost:5984/chef'
9
+
10
+ def humanize_bytes(bytes)
11
+ return "0 Bytes" if bytes == 0
12
+ m = bytes.to_i
13
+ units = %w[Bits Bytes MB GB TB PB]
14
+ while (m/1024.0) >= 1
15
+ m = m/1024.0
16
+ units.shift
17
+ end
18
+ return m.round.to_s + " #{units[0]}"
19
+ end
20
+
21
+ def main
22
+ Choice.options do
23
+ header ''
24
+ header 'Available options:'
25
+
26
+ option :help do
27
+ long '--help'
28
+ short '-h'
29
+ desc 'Show this message'
30
+ action do
31
+ Choice.help
32
+ exit
33
+ end
34
+ end
35
+
36
+ option :match do
37
+ default '.*'
38
+ long '--match'
39
+ short '-m'
40
+ desc 'Match only the nodes with an FQDN matching this value'
41
+ end
42
+ end
43
+
44
+ db = CouchRest.database(CHEF_DB_URL)
45
+
46
+ db.documents['rows'].each do |doc|
47
+ if doc['id'] =~ /node_/
48
+ node = db.get(doc['id'])
49
+ next if node.fqdn !~ /#{Choice.choices[:match]}/
50
+ plat = node.platform+node.platform_version
51
+ fqdn = node.fqdn
52
+ puts fqdn
53
+ puts "-------------"
54
+ puts "Platform: " + plat
55
+ puts "Uptime: " + node.uptime
56
+ puts "Memory Total: " + humanize_bytes(node.memory.total.gsub('kB','').to_i * 1024)
57
+ puts "Memory Free: " + humanize_bytes(node.memory.free.gsub('kB','').to_i * 1024)
58
+ puts "Network Interfaces: "
59
+ puts "Is a Virtual Machine?: #{(node.virtualization.role == 'guest') rescue false}"
60
+ node.network.interfaces.each_key do |iface|
61
+ next unless node.network.interfaces[iface][:addresses]
62
+ puts " #{iface}"
63
+ node.network.interfaces[iface].addresses.each_key do |a|
64
+ print " #{a}".ljust(30)
65
+ puts " [#{node.network.interfaces[iface].addresses[a].family}]"
66
+ end
67
+ end
68
+ puts
69
+ end
70
+ end
71
+ end
72
+
73
+ main
data/chef_knives.gemspec CHANGED
@@ -1,15 +1,15 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{chef_knives}
3
- s.version = "0.2"
3
+ s.version = "0.3"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
6
  s.authors = ["Sergio Rubio"]
7
- s.date = %q{2009-09-10}
7
+ s.date = %q{2009-09-11}
8
8
  s.description = %q{Unofficial Chef Server scripts and related stuff. http://wiki.opscode.com/display/chef}
9
9
  s.email = ["sergio@rubio.name"]
10
- s.executables = ["chef_node_fs_usage", "chef_node_mem_usage", "chef_node_stats"]
10
+ s.executables = ["chef_node_find", "chef_node_fs_usage", "chef_node_mem_usage", "chef_node_stats"]
11
11
  s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
12
- s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "bin/chef_node_fs_usage", "bin/chef_node_mem_usage", "bin/chef_node_stats", "chef_knives.gemspec", "lib/chef/knives.rb"]
12
+ s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "bin/chef_node_find", "bin/chef_node_fs_usage", "bin/chef_node_mem_usage", "bin/chef_node_stats", "chef_knives.gemspec", "lib/chef/knives.rb"]
13
13
  s.homepage = %q{http://github.com/rubiojr/chef-knives}
14
14
  s.rdoc_options = ["--main", "README.txt"]
15
15
  s.require_paths = ["lib"]
data/lib/chef/knives.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Chef
2
2
  module Knives
3
- VERSION = '0.2'
3
+ VERSION = '0.3'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef_knives
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.2"
4
+ version: "0.3"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Rubio
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-10 00:00:00 +02:00
12
+ date: 2009-09-11 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -26,6 +26,7 @@ description: Unofficial Chef Server scripts and related stuff. http://wiki.opsco
26
26
  email:
27
27
  - sergio@rubio.name
28
28
  executables:
29
+ - chef_node_find
29
30
  - chef_node_fs_usage
30
31
  - chef_node_mem_usage
31
32
  - chef_node_stats
@@ -40,6 +41,7 @@ files:
40
41
  - Manifest.txt
41
42
  - README.txt
42
43
  - Rakefile
44
+ - bin/chef_node_find
43
45
  - bin/chef_node_fs_usage
44
46
  - bin/chef_node_mem_usage
45
47
  - bin/chef_node_stats