web-facter 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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