web-facter 0.1.1 → 0.1.2

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.
@@ -6,10 +6,19 @@ require 'parseconfig'
6
6
 
7
7
  module WebFacter
8
8
  class App
9
+
10
+ def initialize(filters=[])
11
+ @filters = filters
12
+ end
13
+
9
14
  def call(env)
10
15
  response = Rack::Response.new
11
16
  response.header['Content-Type'] = 'application/json'
12
- response.write JSON.pretty_generate(Facter.to_hash)
17
+ facts = Facter.to_hash.dup
18
+ @filters.each do |filter|
19
+ facts.delete(filter.strip)
20
+ end
21
+ response.write JSON.pretty_generate(facts)
13
22
  response.finish
14
23
  end
15
24
 
@@ -25,13 +34,19 @@ module WebFacter
25
34
  end
26
35
 
27
36
  def self.run!(options)
28
- application = self.new
37
+
38
+ conf = options[:config] ? ParseConfig.new(options[:config]) : false
39
+
40
+ if conf && conf.get_value('filters')
41
+ application = self.new(conf.get_value('filters').split(','))
42
+ else
43
+ application = self.new
44
+ end
29
45
 
30
46
  daemonize = options[:daemonize]
31
47
  port = options[:port]
32
48
 
33
- if options[:config]
34
- conf = ParseConfig.new(options[:config])
49
+ if conf
35
50
  application = application.add_auth(conf) if conf.get_value('password')
36
51
  daemonize = conf.get_value('daemonize') ? conf.get_value('daemonize') == "true" : daemonize
37
52
  port = conf.get_value('port') ? conf.get_value('port') : port
@@ -1,3 +1,3 @@
1
1
  module WebFacter
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -0,0 +1,8 @@
1
+ description "start and stop web-facter"
2
+ author "Gareth Rushgrove"
3
+
4
+ expect daemon
5
+
6
+ env RUBY_BIN=/opt/ruby/bin
7
+
8
+ exec $RUBY_BIN/web-facter --config /etc/web-facter.conf
@@ -0,0 +1,32 @@
1
+ class webfacter(
2
+ $port = '9294',
3
+ $username = nil,
4
+ $password = nil
5
+ ) {
6
+
7
+ package { "web-facter":
8
+ ensure => installed,
9
+ provider => gem,
10
+ }
11
+
12
+ file { "/etc/web-facter.conf":
13
+ ensure => present,
14
+ content => template('web-facter/web-facter.conf'),
15
+ notify => Service['web-facter'],
16
+ }
17
+
18
+ file { "/etc/init/web-facter":
19
+ ensure => present,
20
+ source => "puppet:///modules/web-facter/web-facter",
21
+ }
22
+
23
+ service { "web-facter":
24
+ ensure => running,
25
+ provider => upstart,
26
+ require => [
27
+ Package["web-facter"],
28
+ File["/etc/init/web-facter"],
29
+ ]
30
+ }
31
+
32
+ }
@@ -0,0 +1,3 @@
1
+ port=<%= port %>
2
+ <% if username %>username=<%= username %><% end %>
3
+ <% if password %>password=<%= password %><% end %>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web-facter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-02 00:00:00.000000000Z
12
+ date: 2011-11-07 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
16
- requirement: &70126922955400 !ruby/object:Gem::Requirement
16
+ requirement: &70216156707440 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70126922955400
24
+ version_requirements: *70216156707440
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: facter
27
- requirement: &70126922954980 !ruby/object:Gem::Requirement
27
+ requirement: &70216156707020 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70126922954980
35
+ version_requirements: *70216156707020
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: parseconfig
38
- requirement: &70126922954560 !ruby/object:Gem::Requirement
38
+ requirement: &70216156706600 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70126922954560
46
+ version_requirements: *70216156706600
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: test-unit
49
- requirement: &70126922954140 !ruby/object:Gem::Requirement
49
+ requirement: &70216156706180 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70126922954140
57
+ version_requirements: *70216156706180
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rack-test
60
- requirement: &70126922953720 !ruby/object:Gem::Requirement
60
+ requirement: &70216156705760 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70126922953720
68
+ version_requirements: *70216156705760
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mocha
71
- requirement: &70126922953300 !ruby/object:Gem::Requirement
71
+ requirement: &70216156705340 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70126922953300
79
+ version_requirements: *70216156705340
80
80
  description: Daemon which serves information from the facter gem as JSON over HTTP
81
81
  email:
82
82
  - gareth@morethanseven.net
@@ -93,6 +93,9 @@ files:
93
93
  - bin/web-facter
94
94
  - lib/web-facter.rb
95
95
  - lib/web-facter/version.rb
96
+ - puppet/modules/web-facter/files/web-facter
97
+ - puppet/modules/web-facter/manifests/init.pp
98
+ - puppet/modules/web-facter/templates/web-facter.conf
96
99
  - test/integration_test.rb
97
100
  - test/test_helper.rb
98
101
  - web-facter.gemspec