collect-agent 0.1.8 → 0.1.9

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.
Files changed (3) hide show
  1. data/bin/collect-agent +16 -3
  2. data/collect-agent.gemspec +1 -1
  3. metadata +2 -2
data/bin/collect-agent CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: utf-8
2
+ # coding: utf-8
3
3
 
4
4
  require 'chef'
5
5
  require 'trollop'
@@ -16,8 +16,14 @@ EOS
16
16
 
17
17
  opt :config, "Config chef file", :default => "/etc/chef/client.rb"
18
18
  opt :plugins, "Ohai plugins directory", :default => "/etc/chef/ohai_plugins"
19
+ opt :cookbook, "Ohai download plugins from cookbook", :default => "commonlib"
20
+ opt :cookbook_path, "Cookbook path", :default => "files/default/ohai/plugins"
19
21
  end
20
22
 
23
+ # Get chef config
24
+ Chef::Config.from_file(opts[:config])
25
+ Ohai::Log.level = Chef::Config[:log_level]
26
+
21
27
  # load ohai
22
28
  Ohai::Config[:plugin_path] << opts[:plugins]
23
29
  ohai = Ohai::System.new
@@ -25,7 +31,6 @@ ohai.all_plugins
25
31
  ohai.seen_plugins
26
32
 
27
33
  # get node
28
- Chef::Config.from_file(opts[:config])
29
34
  host = Chef::Config[:node_name] || ohai[:fqdn] || ohai[:hostname]
30
35
  client = Chef::REST.new(Chef::Config[:chef_server_url], host, Chef::Config[:client_key])
31
36
  node = client.get_rest("nodes/#{host}")
@@ -36,4 +41,12 @@ ohai.data.keys.each { |key| node.automatic_attrs[key] = ohai.data[key] }
36
41
  node.set[:collect_agent][:flag] = "collect_agent"
37
42
 
38
43
  # post node
39
- client.put_rest("nodes/#{host}", node)
44
+ client.put_rest("nodes/#{host}", node)
45
+
46
+ # upload plugins
47
+ cookbook = client.get_rest("cookbooks/#{opts[:cookbook]}/latest")
48
+ cookbook.to_hash['files'].each do |file|
49
+ dest = file['path'].gsub(opts[:cookbook_path], opts[:plugins])
50
+ tempfile = client.get_rest(file['url'], true)
51
+ FileUtils.mv(tempfile.path, dest)
52
+ end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "collect-agent"
3
- s.version = "0.1.8"
3
+ s.version = "0.1.9"
4
4
  s.authors = ["Vasiliev D.V."]
5
5
  s.email = %w(vadv.mkn@gmail.com)
6
6
  s.homepage = "https://git.undev.cc/megaadmins/collect-agent"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: collect-agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-26 00:00:00.000000000 Z
12
+ date: 2013-08-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef