ruby-puppetdb 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjdkNGNlZjVmMjE3Mzc2YjJmM2ViMWEzZjdkNDllMzNiNWNlMTY3MA==
4
+ NjY0NTMwZTM1NjBkOTRjYmU4M2Y5N2VlNzlkZTUwMWEzZmMxYjk5Mg==
5
5
  data.tar.gz: !binary |-
6
- ZmJiM2NjYTljMTAwNDc3MzEyNDM5YjJmNmNhYzc1YTA4MzA5Yzk1NQ==
6
+ MjgxMGNiMjdjNjRjZDMyZWE2OTg4MDliODcxMTQyOTY1YWVlZmY5Mw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MjZiNjBmZmJlMDc3N2M2YTY4YWQ1MjJlOTNlNmIwNjNiNDI1YjRlMWM4NjI4
10
- MzA5ZmY1YjBjYTAzOGVhOTBmZjg1MDY2NzFlZjU2ZjJiN2YxYmRhOTM3ZmZm
11
- ZjFjNzIyNTM4YTM0ZDQ0Zjk0ZmUzZDNlNGVhMThiYzFlN2M0MmU=
9
+ ZThkNjAwMGZhYzZhNzIyOTI2NjJkNjZiMjY0YThiY2EzODIzODAzMWMwZmIz
10
+ MTJhNGQwN2NkNGExMzI4M2Q5ZmU2Y2I3ZTRhMWE4N2RlZDE4N2RiYjk3NjBk
11
+ ZTI4MzEwODYzZTI1ZTg3NzlhZThkOTVkMGFkZWNhZTZhOTQ1ODY=
12
12
  data.tar.gz: !binary |-
13
- YTdhMmE3NTQ4NmYyN2QxZjAzYjA5NmNhMjUzODU4M2JhMDdjOTczYWUyYjA1
14
- ZDU4M2FkMjRhMzliZjYwYzM4NWQ5MmMxNDhmNGU5NDZlZjZkYWQ1ZGJhY2Zk
15
- YzA2YzRlYTQzZWQzYzg2NTZiZmVmYTkxYTg1NzdkN2U2MTIwZDQ=
13
+ NTU4NzI1OTBjMGUxMjVlNGQ2N2ExNGQ5YzZmNTc4NWM5NDZmZTQwODM3Nzli
14
+ MzBjZDA1ZjU1YjE4Y2E2MWRjNGI3MTAxNjk3YjViZmY1YjgzMWFmZGI1ZjZi
15
+ Y2I2OGNmNTA3MmVlZjM2MWQ2MTc2ZDYxMmZiNTg4MjVjMzE4NDg=
@@ -1,4 +1,4 @@
1
1
  module PuppetDB
2
2
  # Current version of this module
3
- VERSION = [2, 0, 0]
3
+ VERSION = [2, 0, 1]
4
4
  end
@@ -95,18 +95,18 @@ class PuppetDB::Lexer < Racc::Parser
95
95
  when (text = @ss.scan(/\!~/))
96
96
  action { [:NOTMATCH, text] }
97
97
 
98
- when (text = @ss.scan(/</))
99
- action { [:LESSTHAN, text] }
100
-
101
98
  when (text = @ss.scan(/<=/))
102
99
  action { [:LESSTHANEQ, text] }
103
100
 
104
- when (text = @ss.scan(/>/))
105
- action { [:GREATERTHAN, text] }
101
+ when (text = @ss.scan(/</))
102
+ action { [:LESSTHAN, text] }
106
103
 
107
104
  when (text = @ss.scan(/>=/))
108
105
  action { [:GREATERTHANEQ, text] }
109
106
 
107
+ when (text = @ss.scan(/>/))
108
+ action { [:GREATERTHAN, text] }
109
+
110
110
  when (text = @ss.scan(/\*/))
111
111
  action { [:ASTERISK, text] }
112
112
 
@@ -18,10 +18,10 @@ rule
18
18
  \!= { [:NOTEQUALS, text] }
19
19
  ~ { [:MATCH, text] }
20
20
  \!~ { [:NOTMATCH, text] }
21
- < { [:LESSTHAN, text] }
22
21
  <= { [:LESSTHANEQ, text] }
23
- > { [:GREATERTHAN, text] }
22
+ < { [:LESSTHAN, text] }
24
23
  >= { [:GREATERTHANEQ, text] }
24
+ > { [:GREATERTHAN, text] }
25
25
  \* { [:ASTERISK, text] }
26
26
  \# { [:HASH, text] }
27
27
  \. { [:DOT, text] }
@@ -4,108 +4,200 @@ require 'spec_helper'
4
4
  require 'puppetdb/parser'
5
5
 
6
6
  describe PuppetDB::Parser do
7
- context "Query parsing" do
7
+ context 'Query parsing' do
8
8
  let(:parser) { PuppetDB::Parser.new }
9
- it "should handle empty queries" do
9
+ it 'should handle empty queries' do
10
10
  parser.parse('').should be_nil
11
11
  end
12
12
 
13
- it "should handle double quoted strings" do
14
- parser.parse('foo="bar"').should eq ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["foo"]], ["=", "value", "bar"]]]]]
13
+ it 'should handle double quoted strings' do
14
+ parser.parse('foo="bar"').should eq \
15
+ ['in', 'certname',
16
+ ['extract', 'certname',
17
+ ['select_fact_contents',
18
+ ['and',
19
+ ['=', 'path', ['foo']],
20
+ ['=', 'value', 'bar']]]]]
21
+ end
22
+
23
+ it 'should handle single quoted strings' do
24
+ parser.parse('foo=\'bar\'').should eq \
25
+ ['in', 'certname',
26
+ ['extract', 'certname',
27
+ ['select_fact_contents',
28
+ ['and',
29
+ ['=', 'path', ['foo']],
30
+ ['=', 'value', 'bar']]]]]
15
31
  end
16
32
 
17
- it "should handle single quoted strings" do
18
- parser.parse('foo=\'bar\'').should eq ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["foo"]], ["=", "value", "bar"]]]]]
33
+ it 'should handle = operator' do
34
+ parser.parse('foo=bar').should eq \
35
+ ['in', 'certname',
36
+ ['extract', 'certname',
37
+ ['select_fact_contents',
38
+ ['and',
39
+ ['=', 'path', ['foo']],
40
+ ['=', 'value', 'bar']]]]]
19
41
  end
20
42
 
21
- it "should handle precedence" do
22
- parser.parse('foo=1 or bar=2 and baz=3').should eq ["or", ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["foo"]], ["=", "value", 1]]]]], ["and", ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["bar"]], ["=", "value", 2]]]]], ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["baz"]], ["=", "value", 3]]]]]]]
23
- parser.parse('(foo=1 or bar=2) and baz=3').should eq ["and", ["or", ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["foo"]], ["=", "value", 1]]]]], ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["bar"]], ["=", "value", 2]]]]]], ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["baz"]], ["=", "value", 3]]]]]]
43
+ it 'should handle != operator' do
44
+ parser.parse('foo!=bar').should eq \
45
+ ['in', 'certname',
46
+ ['extract', 'certname',
47
+ ['select_fact_contents',
48
+ ['and',
49
+ ['=', 'path', ['foo']],
50
+ ['not', ['=', 'value', 'bar']]]]]]
24
51
  end
25
52
 
26
- it "should parse resource queries for exported resources" do
27
- parser.parse('@@file[foo]').should eq ["in", "certname", ["extract", "certname", ["select_resources", ["and", ["=", "type", "File"], ["=", "title", "foo"], ["=", "exported", true]]]]]
53
+ it 'should handle ~ operator' do
54
+ parser.parse('foo~bar').should eq \
55
+ ['in', 'certname',
56
+ ['extract', 'certname',
57
+ ['select_fact_contents',
58
+ ['and',
59
+ ['=', 'path', ['foo']],
60
+ ['~', 'value', 'bar']]]]]
28
61
  end
29
62
 
30
- it "should parse resource queries with type, title and parameters" do
31
- parser.parse('file[foo]{bar=baz}').should eq ["in", "certname", ["extract", "certname", ["select_resources", ["and", ["=", "type", "File"], ["=", "title", "foo"], ["=", "exported", false], ["=", ["parameter", "bar"], "baz"]]]]]
63
+ it 'should handle !~ operator' do
64
+ parser.parse('foo!~bar').should eq \
65
+ ['in', 'certname',
66
+ ['extract', 'certname',
67
+ ['select_fact_contents',
68
+ ['and',
69
+ ['=', 'path', ['foo']],
70
+ ['not', ['~', 'value', 'bar']]]]]]
32
71
  end
33
72
 
34
- it "should parse resource queries with tags" do
35
- parser.parse('file[foo]{tag=baz}').should eq ["in", "certname", ["extract", "certname", ["select_resources", ["and", ["=", "type", "File"], ["=", "title", "foo"], ["=", "exported", false], ["=", "tag", "baz"]]]]]
73
+ it 'should handle >= operator' do
74
+ parser.parse('foo>=1').should eq \
75
+ ['in', 'certname',
76
+ ['extract', 'certname',
77
+ ['select_fact_contents',
78
+ ['and',
79
+ ['=', 'path', ['foo']],
80
+ ['>=', 'value', 1]]]]]
36
81
  end
37
82
 
38
- it "should handle precedence within resource parameter queries" do
39
- parser.parse('file[foo]{foo=1 or bar=2 and baz=3}').should eq ["in", "certname", ["extract", "certname", ["select_resources", ["and", ["=", "type", "File"], ["=", "title", "foo"], ["=", "exported", false], ["or", ["=", ["parameter", "foo"], 1], ["and", ["=", ["parameter", "bar"], 2], ["=", ["parameter", "baz"], 3]]]]]]]
40
- parser.parse('file[foo]{(foo=1 or bar=2) and baz=3}').should eq ["in", "certname", ["extract", "certname", ["select_resources", ["and", ["=", "type", "File"], ["=", "title", "foo"], ["=", "exported", false], ["and", ["or", ["=", ["parameter", "foo"], 1], ["=", ["parameter", "bar"], 2]], ["=", ["parameter", "baz"], 3]]]]]]
83
+ it 'should handle <= operator' do
84
+ parser.parse('foo<=1').should eq \
85
+ ['in', 'certname',
86
+ ['extract', 'certname',
87
+ ['select_fact_contents',
88
+ ['and',
89
+ ['=', 'path', ['foo']],
90
+ ['<=', 'value', 1]]]]]
41
91
  end
42
92
 
43
- it "should capitalize class names" do
44
- parser.parse('class[foo::bar]').should eq ["in", "certname", ["extract", "certname", ["select_resources", ["and", ["=", "type", "Class"], ["=", "title", "Foo::Bar"], ["=", "exported", false]]]]]
93
+ it 'should handle > operator' do
94
+ parser.parse('foo>1').should eq \
95
+ ['in', 'certname',
96
+ ['extract', 'certname',
97
+ ['select_fact_contents',
98
+ ['and',
99
+ ['=', 'path', ['foo']],
100
+ ['>', 'value', 1]]]]]
45
101
  end
46
102
 
47
- it "should parse resource queries with regeexp title matching" do
48
- parser.parse('class[~foo]').should eq ["in", "certname", ["extract", "certname", ["select_resources", ["and", ["=", "type", "Class"], ["~", "title", "foo"], ["=", "exported", false]]]]]
103
+ it 'should handle < operator' do
104
+ parser.parse('foo<1').should eq \
105
+ ['in', 'certname',
106
+ ['extract', 'certname',
107
+ ['select_fact_contents',
108
+ ['and',
109
+ ['=', 'path', ['foo']],
110
+ ['<', 'value', 1]]]]]
49
111
  end
50
112
 
51
- it "should be able to negate expressions" do
52
- parser.parse('not foo=bar').should eq ["not", ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["foo"]], ["=", "value", "bar"]]]]]]
113
+ it 'should handle precedence' do
114
+ parser.parse('foo=1 or bar=2 and baz=3').should eq ['or', ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', ['foo']], ['=', 'value', 1]]]]], ['and', ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', ['bar']], ['=', 'value', 2]]]]], ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', ['baz']], ['=', 'value', 3]]]]]]]
115
+ parser.parse('(foo=1 or bar=2) and baz=3').should eq ['and', ['or', ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', ['foo']], ['=', 'value', 1]]]]], ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', ['bar']], ['=', 'value', 2]]]]]], ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', ['baz']], ['=', 'value', 3]]]]]]
53
116
  end
54
117
 
55
- it "should handle single string expressions" do
56
- parser.parse('foo.bar.com').should eq ["~", "certname", "foo\\.bar\\.com"]
118
+ it 'should parse resource queries for exported resources' do
119
+ parser.parse('@@file[foo]').should eq ['in', 'certname', ['extract', 'certname', ['select_resources', ['and', ['=', 'type', 'File'], ['=', 'title', 'foo'], ['=', 'exported', true]]]]]
57
120
  end
58
121
 
59
- it "should handle structured facts" do
60
- parser.parse('foo.bar=baz').should eq ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["foo", "bar"]], ["=", "value", "baz"]]]]]
122
+ it 'should parse resource queries with type, title and parameters' do
123
+ parser.parse('file[foo]{bar=baz}').should eq ['in', 'certname', ['extract', 'certname', ['select_resources', ['and', ['=', 'type', 'File'], ['=', 'title', 'foo'], ['=', 'exported', false], ['=', %w(parameter bar), 'baz']]]]]
61
124
  end
62
125
 
63
- it "should handle structured facts with array component" do
64
- parser.parse('foo.bar.0=baz').should eq ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["foo", "bar", 0]], ["=", "value", "baz"]]]]]
126
+ it 'should parse resource queries with tags' do
127
+ parser.parse('file[foo]{tag=baz}').should eq ['in', 'certname', ['extract', 'certname', ['select_resources', ['and', ['=', 'type', 'File'], ['=', 'title', 'foo'], ['=', 'exported', false], ['=', 'tag', 'baz']]]]]
65
128
  end
66
129
 
67
- it "should handle structured facts with match operator" do
68
- parser.parse('foo.bar.~".*"=baz').should eq ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["~>", "path", ["foo", "bar", ".*"]], ["=", "value", "baz"]]]]]
130
+ it 'should handle precedence within resource parameter queries' do
131
+ parser.parse('file[foo]{foo=1 or bar=2 and baz=3}').should eq ['in', 'certname', ['extract', 'certname', ['select_resources', ['and', ['=', 'type', 'File'], ['=', 'title', 'foo'], ['=', 'exported', false], ['or', ['=', %w(parameter foo), 1], ['and', ['=', %w(parameter bar), 2], ['=', %w(parameter baz), 3]]]]]]]
132
+ parser.parse('file[foo]{(foo=1 or bar=2) and baz=3}').should eq ['in', 'certname', ['extract', 'certname', ['select_resources', ['and', ['=', 'type', 'File'], ['=', 'title', 'foo'], ['=', 'exported', false], ['and', ['or', ['=', %w(parameter foo), 1], ['=', %w(parameter bar), 2]], ['=', %w(parameter baz), 3]]]]]]
69
133
  end
70
134
 
71
- it "should handle structured facts with wildcard operator" do
72
- parser.parse('foo.bar.*=baz').should eq ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["~>", "path", ["foo", "bar", ".*"]], ["=", "value", "baz"]]]]]
135
+ it 'should capitalize class names' do
136
+ parser.parse('class[foo::bar]').should eq ['in', 'certname', ['extract', 'certname', ['select_resources', ['and', ['=', 'type', 'Class'], ['=', 'title', 'Foo::Bar'], ['=', 'exported', false]]]]]
73
137
  end
74
138
 
75
- it "should handle #node subqueries" do
76
- parser.parse('#node.catalog_environment=production').should eq ["in", "certname", ["extract", "certname", ["select_nodes", ["=", "catalog_environment", "production"]]]]
139
+ it 'should parse resource queries with regeexp title matching' do
140
+ parser.parse('class[~foo]').should eq ['in', 'certname', ['extract', 'certname', ['select_resources', ['and', ['=', 'type', 'Class'], ['~', 'title', 'foo'], ['=', 'exported', false]]]]]
77
141
  end
78
142
 
79
- it "should handle #node subqueries with block of conditions" do
80
- parser.parse('#node { catalog_environment=production }').should eq ["in", "certname", ["extract", "certname", ["select_nodes", ["=", "catalog_environment", "production"]]]]
143
+ it 'should be able to negate expressions' do
144
+ parser.parse('not foo=bar').should eq ['not', ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', ['foo']], ['=', 'value', 'bar']]]]]]
81
145
  end
82
146
 
83
- it "should handle #node subquery combined with fact query" do
84
- parser.parse('#node.catalog_environment=production and foo=bar').should eq ["and", ["in", "certname", ["extract", "certname", ["select_nodes", ["=", "catalog_environment", "production"]]]], ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["foo"]], ["=", "value", "bar"]]]]]]
147
+ it 'should handle single string expressions' do
148
+ parser.parse('foo.bar.com').should eq ['~', 'certname', 'foo\\.bar\\.com']
85
149
  end
86
150
 
87
- it "should escape non match parts on structured facts with match operator" do
88
- parser.parse('"foo.bar".~".*"=baz').should eq ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["~>", "path", ["foo\\.bar", ".*"]], ["=", "value", "baz"]]]]]
151
+ it 'should handle structured facts' do
152
+ parser.parse('foo.bar=baz').should eq ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', %w(foo bar)], ['=', 'value', 'baz']]]]]
89
153
  end
90
154
 
91
- it "should parse dates in queries" do
92
- date = Time.new(2014,9,9).iso8601
93
- parser.parse('#node.report_timestamp<@"Sep 9, 2014"').should eq ["in", "certname", ["extract", "certname", ["select_nodes", ["<", "report_timestamp", date]]]]
155
+ it 'should handle structured facts with array component' do
156
+ parser.parse('foo.bar.0=baz').should eq ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', ['foo', 'bar', 0]], ['=', 'value', 'baz']]]]]
157
+ end
158
+
159
+ it 'should handle structured facts with match operator' do
160
+ parser.parse('foo.bar.~".*"=baz').should eq ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['~>', 'path', ['foo', 'bar', '.*']], ['=', 'value', 'baz']]]]]
161
+ end
162
+
163
+ it 'should handle structured facts with wildcard operator' do
164
+ parser.parse('foo.bar.*=baz').should eq ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['~>', 'path', ['foo', 'bar', '.*']], ['=', 'value', 'baz']]]]]
165
+ end
166
+
167
+ it 'should handle #node subqueries' do
168
+ parser.parse('#node.catalog_environment=production').should eq ['in', 'certname', ['extract', 'certname', ['select_nodes', ['=', 'catalog_environment', 'production']]]]
169
+ end
170
+
171
+ it 'should handle #node subqueries with block of conditions' do
172
+ parser.parse('#node { catalog_environment=production }').should eq ['in', 'certname', ['extract', 'certname', ['select_nodes', ['=', 'catalog_environment', 'production']]]]
173
+ end
174
+
175
+ it 'should handle #node subquery combined with fact query' do
176
+ parser.parse('#node.catalog_environment=production and foo=bar').should eq ['and', ['in', 'certname', ['extract', 'certname', ['select_nodes', ['=', 'catalog_environment', 'production']]]], ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', ['foo']], ['=', 'value', 'bar']]]]]]
177
+ end
178
+
179
+ it 'should escape non match parts on structured facts with match operator' do
180
+ parser.parse('"foo.bar".~".*"=baz').should eq ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['~>', 'path', ['foo\\.bar', '.*']], ['=', 'value', 'baz']]]]]
181
+ end
182
+
183
+ it 'should parse dates in queries' do
184
+ date = Time.new(2014, 9, 9).iso8601
185
+ parser.parse('#node.report_timestamp<@"Sep 9, 2014"').should eq ['in', 'certname', ['extract', 'certname', ['select_nodes', ['<', 'report_timestamp', date]]]]
94
186
  end
95
187
  end
96
188
 
97
- context "facts_query" do
189
+ context 'facts_query' do
98
190
  let(:parser) { PuppetDB::Parser.new }
99
191
  it 'should return a query for all if no facts are specified' do
100
- parser.facts_query('kernel=Linux').should eq ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["kernel"]], ["=", "value", "Linux"]]]]]
192
+ parser.facts_query('kernel=Linux').should eq ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', ['kernel']], ['=', 'value', 'Linux']]]]]
101
193
  end
102
194
 
103
195
  it 'should return a query for specific facts if they are specified' do
104
- parser.facts_query('kernel=Linux', ['ipaddress']). should eq ["and", ["in", "certname", ["extract", "certname", ["select_fact_contents", ["and", ["=", "path", ["kernel"]], ["=", "value", "Linux"]]]]], ["or", ["=", "name", "ipaddress"]]]
196
+ parser.facts_query('kernel=Linux', ['ipaddress']). should eq ['and', ['in', 'certname', ['extract', 'certname', ['select_fact_contents', ['and', ['=', 'path', ['kernel']], ['=', 'value', 'Linux']]]]], ['or', ['=', 'name', 'ipaddress']]]
105
197
  end
106
198
 
107
199
  it 'should return a query for matching facts on all nodes if query is missing' do
108
- parser.facts_query('', ['ipaddress']).should eq ["or", ["=", "name", "ipaddress"]]
200
+ parser.facts_query('', ['ipaddress']).should eq ['or', ['=', 'name', 'ipaddress']]
109
201
  end
110
202
  end
111
203
 
@@ -113,16 +205,16 @@ describe PuppetDB::Parser do
113
205
  let(:parser) { PuppetDB::Parser.new }
114
206
  it 'should merge facts into a nested hash' do
115
207
  parser.facts_hash([
116
- {"certname"=>"ip-172-31-45-32.eu-west-1.compute.internal", "environment"=>"production", "name"=>"kernel", "value"=>"Linux"},
117
- {"certname"=>"ip-172-31-33-234.eu-west-1.compute.internal", "environment"=>"production", "name"=>"kernel", "value"=>"Linux"},
118
- {"certname"=>"ip-172-31-5-147.eu-west-1.compute.internal", "environment"=>"production", "name"=>"kernel", "value"=>"Linux"},
119
- {"certname"=>"ip-172-31-45-32.eu-west-1.compute.internal", "environment"=>"production", "name"=>"fqdn", "value"=>"ip-172-31-45-32.eu-west-1.compute.internal"},
120
- {"certname"=>"ip-172-31-33-234.eu-west-1.compute.internal", "environment"=>"production", "name"=>"fqdn", "value"=>"ip-172-31-33-234.eu-west-1.compute.internal"},
121
- {"certname"=>"ip-172-31-5-147.eu-west-1.compute.internal", "environment"=>"production", "name"=>"fqdn", "value"=>"ip-172-31-5-147.eu-west-1.compute.internal"}
208
+ { 'certname' => 'ip-172-31-45-32.eu-west-1.compute.internal', 'environment' => 'production', 'name' => 'kernel', 'value' => 'Linux' },
209
+ { 'certname' => 'ip-172-31-33-234.eu-west-1.compute.internal', 'environment' => 'production', 'name' => 'kernel', 'value' => 'Linux' },
210
+ { 'certname' => 'ip-172-31-5-147.eu-west-1.compute.internal', 'environment' => 'production', 'name' => 'kernel', 'value' => 'Linux' },
211
+ { 'certname' => 'ip-172-31-45-32.eu-west-1.compute.internal', 'environment' => 'production', 'name' => 'fqdn', 'value' => 'ip-172-31-45-32.eu-west-1.compute.internal' },
212
+ { 'certname' => 'ip-172-31-33-234.eu-west-1.compute.internal', 'environment' => 'production', 'name' => 'fqdn', 'value' => 'ip-172-31-33-234.eu-west-1.compute.internal' },
213
+ { 'certname' => 'ip-172-31-5-147.eu-west-1.compute.internal', 'environment' => 'production', 'name' => 'fqdn', 'value' => 'ip-172-31-5-147.eu-west-1.compute.internal' }
122
214
  ]).should eq(
123
- "ip-172-31-45-32.eu-west-1.compute.internal"=>{"kernel"=>"Linux", "fqdn"=>"ip-172-31-45-32.eu-west-1.compute.internal"},
124
- "ip-172-31-33-234.eu-west-1.compute.internal"=>{"kernel"=>"Linux", "fqdn"=>"ip-172-31-33-234.eu-west-1.compute.internal"},
125
- "ip-172-31-5-147.eu-west-1.compute.internal"=>{"kernel"=>"Linux", "fqdn"=>"ip-172-31-5-147.eu-west-1.compute.internal"}
215
+ 'ip-172-31-45-32.eu-west-1.compute.internal' => { 'kernel' => 'Linux', 'fqdn' => 'ip-172-31-45-32.eu-west-1.compute.internal' },
216
+ 'ip-172-31-33-234.eu-west-1.compute.internal' => { 'kernel' => 'Linux', 'fqdn' => 'ip-172-31-33-234.eu-west-1.compute.internal' },
217
+ 'ip-172-31-5-147.eu-west-1.compute.internal' => { 'kernel' => 'Linux', 'fqdn' => 'ip-172-31-5-147.eu-west-1.compute.internal' }
126
218
  )
127
219
  end
128
220
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-puppetdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Dalen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-12 00:00:00.000000000 Z
11
+ date: 2015-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json