fluent-plugin-chef-api 0.1.0 → 0.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5325782f5a23cb6584cbdeb9a6ab7faa65620917
4
- data.tar.gz: 9428717dc18abf198a3a4827dfc08bdb7b6c5e8d
3
+ metadata.gz: d9e66bb1109a731eaf573839fd6e9a147efc4b17
4
+ data.tar.gz: e80e0956ec0c2b644e46575820a8bd8711f5b667
5
5
  SHA512:
6
- metadata.gz: 49eaaad8744e1ab70b9272cb2bb00e6ced26cc5eb5eaf0fbcf443b1258743d4593affee24c41112779fb5509a451e792e1037b1ab0a50f923d6c44ce767130c4
7
- data.tar.gz: 562d55aa0a9887443e1610a2cac3b9c4c0137bab3e2392ab4cee68b9af61e92525327e82aa0e7db2a7f68fbcb2e672a61a2fc29aac0a427426de6417b59db2c5
6
+ metadata.gz: a6fdb5d1e87a4d81121a7b079f9a5b22cb9bc71d1e2168f5b82666e523b6db363e918377d43631abd8283b48c8addb4c4d789b20c24207e0cfc1b1b90e4ac920
7
+ data.tar.gz: 50adcd5cf697041470116c1a4ba8da169599c414b7062ab8dde411646681abe12a4c9e6df8c79182f8ea36a3658c5bd08a018607d25d3f0a11a51d3faa763cbb
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "fluent-plugin-chef-api"
7
- spec.version = "0.1.0"
7
+ spec.version = "0.2.0"
8
8
  spec.authors = ["Yamashita Yuu"]
9
9
  spec.email = ["peek824545201@gmail.com"]
10
10
  spec.license = "Apache-2.0"
@@ -17,8 +17,52 @@ module Fluent
17
17
  require "chef-api"
18
18
  end
19
19
 
20
+ class ChefConfig
21
+ def self.load_file(file)
22
+ new(file).instance_eval { @config.dup }
23
+ end
24
+
25
+ def initialize(file)
26
+ @config = {}
27
+ instance_eval(::File.read(file))
28
+ end
29
+
30
+ def chef_server_url(value)
31
+ @config[:endpoint] = value
32
+ end
33
+
34
+ def node_name(value)
35
+ @config[:client] = value
36
+ end
37
+
38
+ def client_key(value)
39
+ @config[:key] = ::File.read(value)
40
+ end
41
+
42
+ def ssl_verify_mode(value)
43
+ @config[:ssl_verify] = value != :verify_none
44
+ end
45
+
46
+ def method_missing(*args)
47
+ # nop
48
+ end
49
+ end
50
+
20
51
  def configure(conf)
21
52
  super
53
+ @config = {}
54
+ if @config_file
55
+ @config = @config.merge(ChefConfig.load_file(@config_file))
56
+ end
57
+ if @chef_server_url
58
+ @config[:endpoint] = @chef_server_url
59
+ end
60
+ if @node_name
61
+ @config[:client] = value
62
+ end
63
+ if @client_key
64
+ @config[:key] = ::File.read(@client_key)
65
+ end
22
66
  end
23
67
 
24
68
  def start
@@ -32,11 +76,7 @@ module Fluent
32
76
  end
33
77
 
34
78
  def run
35
- connection = ChefAPI::Connection.new(
36
- :endpoint => @chef_server_url,
37
- :client => @node_name,
38
- :key => ::File.read(@client_key),
39
- )
79
+ connection = ChefAPI::Connection.new(@config.dup)
40
80
  next_run = ::Time.new
41
81
  while @running
42
82
  if ::Time.new < next_run
@@ -66,7 +106,7 @@ module Fluent
66
106
  nodes.each do |node|
67
107
  begin
68
108
  Engine.emit("#{@tag}.run_list", Engine.now, data.merge({"value" => node.run_list.length, "node" => node.name}))
69
- ohai_time = node.automatic.fetch("ohai_time")
109
+ ohai_time = node.automatic.fetch("ohai_time").to_i
70
110
  Engine.emit("#{@tag}.ohai_time", Engine.now, data.merge({"value" => ohai_time, "node" => node.name}))
71
111
  Engine.emit("#{@tag}.behind_seconds", Engine.now, data.merge({"value" => Time.new.to_i - ohai_time, "node" => node.name}))
72
112
  rescue => error
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-chef-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yamashita Yuu