rspec-system-puppet 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,3 +1,3 @@
1
1
  # rspec-system-puppet
2
2
 
3
- `rspec-system-puppet` is a Puppet plugin for [rspec-system](https://rubygems.org/gems/ruby-system).
3
+ `rspec-system-puppet` is a Puppet plugin for [rspec-system](https://rubygems.org/gems/rspec-system).
@@ -81,18 +81,34 @@ host { 'puppet':
81
81
  # Run puppet agent
82
82
  #
83
83
  # @param opts [Hash] a hash of opts
84
+ # @option opts [RSpecSystem::Node] :node node to execute DSL on
85
+ # @option opts [Boolean] :debug true if debugging required
86
+ # @option opts [Boolean] :trace true if trace required
84
87
  # @return [Hash] a hash of results
85
88
  # @yield [result] yields result when called as a block
86
89
  # @yieldparam result [Hash] a hash containing :exit_code, :stdout and :stderr
87
- def puppet_agent
90
+ # @example
91
+ # puppet_agent.do |r|
92
+ # r[:exit_code].should == 0
93
+ # end
94
+ # @example with debugging enabled
95
+ # puppet_agent(:debug => true).do |r|
96
+ # r[:exit_code].should == 0
97
+ # end
98
+ def puppet_agent(opts = {})
88
99
  # Defaults etc.
89
100
  opts = {
90
101
  :node => rspec_system_node_set.default_node,
91
- }
102
+ :debug => false,
103
+ :trace => true,
104
+ }.merge(opts)
92
105
 
93
106
  node = opts[:node]
94
107
 
95
- result = system_run(:n => node, :c => 'puppet agent -t --detailed-exitcodes')
108
+ cmd = "puppet agent -t --detailed-exitcodes"
109
+ cmd += " --debug" if opts[:debug]
110
+ cmd += " --trace" if opts[:trace]
111
+ result = system_run(:n => node, :c => cmd)
96
112
 
97
113
  if block_given?
98
114
  yield(result)
@@ -159,6 +175,8 @@ host { 'puppet':
159
175
  # code to execute with option defaults
160
176
  # @option opts [String] :code the Puppet DSL code to execute
161
177
  # @option opts [RSpecSystem::Node] :node node to execute DSL on
178
+ # @option opts [Boolean] :debug true if debugging required
179
+ # @option opts [Boolean] :trace true if trace required
162
180
  # @return [Hash] a hash of results
163
181
  # @yield [result] yields result when called as a block
164
182
  # @yieldparam result [Hash] a hash containing :exit_code, :stdout and :stderr
@@ -168,9 +186,6 @@ host { 'puppet':
168
186
  # r[:stdout].should =~ /foo/
169
187
  # end
170
188
  # end
171
- # @todo Support for custom switches perhaps?
172
- # @todo The destination path is static, need a good remote random path
173
- # generator
174
189
  def puppet_apply(opts)
175
190
  if opts.is_a?(String)
176
191
  opts = {:code => opts}
@@ -178,7 +193,9 @@ host { 'puppet':
178
193
 
179
194
  # Defaults
180
195
  opts = {
181
- :node => rspec_system_node_set.default_node
196
+ :node => rspec_system_node_set.default_node,
197
+ :debug => false,
198
+ :trace => true,
182
199
  }.merge(opts)
183
200
 
184
201
  code = opts[:code]
@@ -199,7 +216,11 @@ host { 'puppet':
199
216
  system_run(:n => node, :c => "cat #{remote_path}")
200
217
 
201
218
  log.info("Now running puppet apply")
202
- result = system_run(:n => node, :c => "puppet apply --detailed-exitcodes #{remote_path}")
219
+ cmd = "puppet apply --detailed-exitcodes"
220
+ cmd += " --debug" if opts[:debug]
221
+ cmd += " --trace" if opts[:trace]
222
+ cmd += " #{remote_path}"
223
+ result = system_run(:n => node, :c => cmd)
203
224
 
204
225
  if block_given?
205
226
  yield(result)
@@ -2,7 +2,7 @@
2
2
  Gem::Specification.new do |s|
3
3
  # Metadata
4
4
  s.name = "rspec-system-puppet"
5
- s.version = "0.3.2"
5
+ s.version = "0.3.3"
6
6
  s.authors = ["Ken Barber"]
7
7
  s.email = ["ken@bob.sh"]
8
8
  s.homepage = "https://github.com/kbarber/rspec-system-puppet"
@@ -14,6 +14,14 @@ describe "basic tests:" do
14
14
  end
15
15
  end
16
16
 
17
+ it 'try puppet agent with debug enabled' do
18
+ puppet_agent(:debug => true) do |r|
19
+ r[:stderr].should == ''
20
+ r[:stdout].should =~ /Debug:/
21
+ r[:exit_code].should == 0
22
+ end
23
+ end
24
+
17
25
  it 'facter domain should return something valid' do
18
26
  system_run("facter domain") do |r|
19
27
  r[:stdout].should =~ /[a-z]+/
@@ -44,4 +52,21 @@ describe "basic tests:" do
44
52
  r[:exit_code].should == 0
45
53
  end
46
54
  end
55
+
56
+ it 'try puppet apply with debug mode' do
57
+ puppet_apply(:code => 'notice("foo")', :debug => true) do |r|
58
+ r[:stdout].should =~ /foo/
59
+ r[:stdout].should =~ /Debug:/
60
+ r[:stderr].should == ''
61
+ r[:exit_code].should == 0
62
+ end
63
+ end
64
+
65
+ it 'try puppet apply with trace off' do
66
+ puppet_apply(:code => 'notice("foo")', :trace => false) do |r|
67
+ r[:stdout].should =~ /foo/
68
+ r[:stderr].should == ''
69
+ r[:exit_code].should == 0
70
+ end
71
+ end
47
72
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-system-puppet
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 2
10
- version: 0.3.2
9
+ - 3
10
+ version: 0.3.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ken Barber
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-04-15 00:00:00 Z
18
+ date: 2013-04-19 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rspec-system