puppet-validator 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +13 -5
  2. data/lib/puppet-validator.rb +32 -31
  3. metadata +28 -28
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 67c8ee96635e89f10fdb0562b7c34444aaa46090
4
- data.tar.gz: 832192f6b3ee57c0f418fe86d12dbc2dbdd99c4a
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ODkwMThiYjc2M2RiYTAwYjQzZjdiOGExNzA5M2VhNDcyZDE1MGUxZA==
5
+ data.tar.gz: !binary |-
6
+ YmUxZGMwYmM3ZGE3MjI0ZjNmZDUxMDdlMDYyYTZjOWExNDg3MzUzMA==
5
7
  SHA512:
6
- metadata.gz: be779caf3b0cd291459dcb74c4b48608e6e731babfa3fbb42bbf76b054a349dc3e600d2319c9fe27c08741a84222dccc561ffbc564641871748f6088d566866d
7
- data.tar.gz: b52bfc8a76c77bfd87661dbb964a85411c628f3e5c7c17d4d97b3bf05c757d67e95569b260a2f8d91d1af46aa2e21771ff84c33af08811d68dc86937f7a8c636
8
+ metadata.gz: !binary |-
9
+ ZDM1NTQ3MDc2NGFhNDBkNGUxOWVlZjE0YTA1NmEwMWQ0ZDU4Mzc1NmNkN2Iz
10
+ MmYyNzkwZGY3MjU5MmExYjExNDA0ZjZkODk2ZjdlMTJmYzYxMzBjNTY4ZDll
11
+ MWZiNTBlMWMxYTRjZjRjYzc4YWZlY2U4NGNiZTk5MmM0YWEzY2U=
12
+ data.tar.gz: !binary |-
13
+ M2E0NGIwZDQ3NzZmNzliOTE2N2QyMWFjNDYyZWFmY2VlNzU3NjBhYzRiMDIx
14
+ N2E4ZmRmYzJiYWY0OTc4ZjA2OGVlNzBkYWEzYjY2MWY1NGZlM2RmNGY0NDFh
15
+ YmVkMWEwYjNmYzdiYmY3ZjBkYTBmNTNkMTk1MmI1NjU4NGQ0YmY=
@@ -35,39 +35,42 @@ class PuppetValidator < Sinatra::Base
35
35
  super(app)
36
36
 
37
37
  Puppet.initialize_settings rescue nil
38
+ Puppet.settings[:app_management] = true if Gem::Version.new(Puppet.version) >= Gem::Version.new('4.3.2')
38
39
 
39
- # there must be a better way
40
- if settings.respond_to? :disabled_lint_checks
41
- # can pass in an array, a filename, or a list of checks
42
- if settings.disabled_lint_checks.class == String
43
- path = File.expand_path(settings.disabled_lint_checks)
44
- if File.file? path
45
- data = File.readlines(path).map {|line| line.chomp }
46
- data.reject! {|line| line.empty? or line.start_with? '#' }
40
+ # set up the base environment
41
+ Puppet.push_context(Puppet.base_context(Puppet.settings), 'Setup for Puppet Validator') rescue nil
47
42
 
48
- settings.disabled_lint_checks = data
49
- else
50
- settings.disabled_lint_checks = settings.disabled_lint_checks.split(',')
51
- end
52
- end
43
+ # disable as much disk access as possible
44
+ Puppet::Node::Facts.indirection.terminus_class = :memory
45
+ Puppet::Node.indirection.cache_class = nil
53
46
 
54
- else
55
- # this seems... gross, but I don't know a better way to make sure this
56
- # option exists whether it was passed in or not.
57
- def settings.disabled_lint_checks
58
- []
47
+ # make sure that all the settings we expect are defined.
48
+ [:disabled_lint_checks, :puppet_versions, :csrf].each do |name|
49
+ next if settings.respond_to? name
50
+
51
+ settings.define_singleton_method(name) { Array.new }
52
+
53
+ settings.define_singleton_method("#{name}=") do |arg|
54
+ settings.define_singleton_method(name) { arg }
59
55
  end
60
56
  end
61
57
 
62
- if settings.respond_to? :puppet_versions
63
- # put our supported versions in reverse semver order
64
- settings.puppet_versions = settings.puppet_versions.sort_by { |v| Gem::Version.new(v) }.reverse
65
- else
66
- def settings.puppet_versions
67
- []
58
+ # can pass in an array, a filename, or a list of checks
59
+ if settings.disabled_lint_checks.class == String
60
+ path = File.expand_path(settings.disabled_lint_checks)
61
+ if File.file? path
62
+ data = File.readlines(path).map {|line| line.chomp }
63
+ data.reject! {|line| line.empty? or line.start_with? '#' }
64
+
65
+ settings.disabled_lint_checks = data
66
+ else
67
+ settings.disabled_lint_checks = settings.disabled_lint_checks.split(',')
68
68
  end
69
69
  end
70
70
 
71
+ # put our supported versions in reverse semver order
72
+ settings.puppet_versions = settings.puppet_versions.sort_by { |v| Gem::Version.new(v) }.reverse
73
+
71
74
  end
72
75
 
73
76
  get '/' do
@@ -145,8 +148,6 @@ class PuppetValidator < Sinatra::Base
145
148
 
146
149
  def validate(data)
147
150
  begin
148
- Puppet.settings[:app_management] = true if Gem::Version.new(Puppet.version) >= Gem::Version.new('4.3.2')
149
-
150
151
  Puppet[:code] = data
151
152
 
152
153
  if Puppet::Node::Environment.respond_to?(:create)
@@ -207,13 +208,13 @@ class PuppetValidator < Sinatra::Base
207
208
  return unless settings.graph
208
209
 
209
210
  begin
210
- Puppet::Node::Facts.indirection.terminus_class = :memory
211
- Puppet::Node.indirection.cache_class = nil
212
- node = Puppet::Node.indirection.find(Puppet[:node_name_value])
211
+ node = Puppet::Node.indirection.find('validator')
213
212
  catalog = Puppet::Resource::Catalog.indirection.find(node.name, :use_node => node)
214
213
 
215
- catalog.remove_resource(catalog.resource("Stage", :main))
216
- catalog.remove_resource(catalog.resource("Class", :settings))
214
+ # These calls are failing due to an internal method not being available in 2 & 3.x. Suspect
215
+ # that it's related to the compiler not being set up fully?
216
+ catalog.remove_resource(catalog.resource("Stage", :main)) rescue nil
217
+ catalog.remove_resource(catalog.resource("Class", :settings)) rescue nil
217
218
 
218
219
  graph = catalog.to_ral.relationship_graph.to_dot
219
220
 
metadata CHANGED
@@ -1,115 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Ford
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-07 00:00:00.000000000 Z
11
+ date: 2017-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: puppet
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '2.7'
34
- - - "<"
34
+ - - <
35
35
  - !ruby/object:Gem::Version
36
36
  version: '5.0'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ">="
41
+ - - ! '>='
42
42
  - !ruby/object:Gem::Version
43
43
  version: '2.7'
44
- - - "<"
44
+ - - <
45
45
  - !ruby/object:Gem::Version
46
46
  version: '5.0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: puppet-lint
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - "~>"
51
+ - - ~>
52
52
  - !ruby/object:Gem::Version
53
53
  version: '1.1'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ~>
59
59
  - !ruby/object:Gem::Version
60
60
  version: '1.1'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: nokogiri
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ~>
66
66
  - !ruby/object:Gem::Version
67
67
  version: '1.6'
68
- - - ">="
68
+ - - ! '>='
69
69
  - !ruby/object:Gem::Version
70
70
  version: 1.6.5
71
71
  type: :runtime
72
72
  prerelease: false
73
73
  version_requirements: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - "~>"
75
+ - - ~>
76
76
  - !ruby/object:Gem::Version
77
77
  version: '1.6'
78
- - - ">="
78
+ - - ! '>='
79
79
  - !ruby/object:Gem::Version
80
80
  version: 1.6.5
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: ruby-graphviz
83
83
  requirement: !ruby/object:Gem::Requirement
84
84
  requirements:
85
- - - "~>"
85
+ - - ~>
86
86
  - !ruby/object:Gem::Version
87
87
  version: '1.2'
88
88
  type: :runtime
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
- - - "~>"
92
+ - - ~>
93
93
  - !ruby/object:Gem::Version
94
94
  version: '1.2'
95
- description: |2
96
- Puppet Validator is a simple web service that accepts arbitrary code submissions and
97
- validates it the way `puppet parser validate` would. It can optionally also
98
- run `puppet-lint` checks on the code and display both results together.
95
+ description: ! " Puppet Validator is a simple web service that accepts arbitrary
96
+ code submissions and\n validates it the way `puppet parser validate` would. It
97
+ can optionally also\n run `puppet-lint` checks on the code and display both results
98
+ together.\n"
99
99
  email: binford2k@gmail.com
100
100
  executables:
101
101
  - puppet-validator
102
102
  extensions: []
103
103
  extra_rdoc_files: []
104
104
  files:
105
- - README.md
106
105
  - LICENSE
107
- - config.ru
106
+ - README.md
107
+ - bin/grapher
108
108
  - bin/puppet-validator
109
+ - config.ru
109
110
  - lib/puppet-validator.rb
110
- - bin/grapher
111
- - views/index.erb
112
- - views/result.erb
113
111
  - public/gist.png
114
112
  - public/info.png
115
113
  - public/prism-default.css
@@ -118,6 +116,8 @@ files:
118
116
  - public/scripts.js
119
117
  - public/styles.css
120
118
  - public/testing.html
119
+ - views/index.erb
120
+ - views/result.erb
121
121
  homepage: https://github.com/puppetlabs/puppet-validator/
122
122
  licenses:
123
123
  - Apache-2.0
@@ -128,17 +128,17 @@ require_paths:
128
128
  - lib
129
129
  required_ruby_version: !ruby/object:Gem::Requirement
130
130
  requirements:
131
- - - ">="
131
+ - - ! '>='
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0'
134
134
  required_rubygems_version: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - ! '>='
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  requirements: []
140
140
  rubyforge_project:
141
- rubygems_version: 2.0.14.1
141
+ rubygems_version: 2.6.11
142
142
  signing_key:
143
143
  specification_version: 4
144
144
  summary: Puppet code validator as a service