puppet 0.25.4 → 0.25.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (169) hide show
  1. data/CHANGELOG +679 -23
  2. data/LICENSE +2 -2
  3. data/README +2 -2
  4. data/README.queueing +1 -1
  5. data/README.rst +2 -2
  6. data/Rakefile +4 -2
  7. data/bin/filebucket +2 -2
  8. data/bin/pi +1 -1
  9. data/bin/puppet +2 -2
  10. data/bin/puppetca +2 -2
  11. data/bin/puppetd +5 -4
  12. data/bin/puppetdoc +4 -4
  13. data/bin/puppetmasterd +2 -2
  14. data/bin/puppetqd +2 -2
  15. data/bin/puppetrun +2 -2
  16. data/bin/ralsh +2 -2
  17. data/conf/epm.list +2 -2
  18. data/conf/gentoo/puppet/puppet.conf +0 -4
  19. data/conf/osx/PackageInfo.plist +1 -1
  20. data/conf/redhat/logrotate +1 -0
  21. data/conf/redhat/puppet.conf +0 -4
  22. data/conf/redhat/puppet.spec +16 -10
  23. data/conf/solaris/pkginfo +2 -2
  24. data/conf/solaris/smf/puppetd.xml +3 -3
  25. data/conf/solaris/smf/puppetmasterd.xml +3 -3
  26. data/conf/solaris/smf/svc-puppetd +1 -1
  27. data/conf/solaris/smf/svc-puppetmasterd +1 -1
  28. data/conf/suse/puppet.spec +16 -14
  29. data/conf/suse/puppet.suse.patch +16 -0
  30. data/examples/etc/puppet/fileserver.conf +5 -5
  31. data/examples/modules/sample-module/README.txt +3 -3
  32. data/examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +1 -1
  33. data/ext/extlookup.rb +1 -1
  34. data/ext/nagios/check_puppet.rb +1 -1
  35. data/ext/nagios/naggen +2 -2
  36. data/ext/puppet-test +2 -2
  37. data/ext/puppetlast +1 -1
  38. data/ext/puppetstoredconfigclean.rb +1 -1
  39. data/ext/regexp_nodes/regexp_nodes.rb +4 -4
  40. data/ext/vim/syntax/puppet.vim +5 -3
  41. data/install.rb +11 -9
  42. data/lib/puppet.rb +1 -1
  43. data/lib/puppet/application/puppetd.rb +5 -4
  44. data/lib/puppet/configurer.rb +38 -31
  45. data/lib/puppet/defaults.rb +18 -13
  46. data/lib/puppet/file_serving/fileset.rb +2 -2
  47. data/lib/puppet/file_serving/terminus_helper.rb +1 -0
  48. data/lib/puppet/indirector/indirection.rb +20 -13
  49. data/lib/puppet/network/authstore.rb +3 -3
  50. data/lib/puppet/network/format_handler.rb +1 -1
  51. data/lib/puppet/network/handler/fileserver.rb +2 -2
  52. data/lib/puppet/network/handler/master.rb +1 -1
  53. data/lib/puppet/network/http_pool.rb +0 -2
  54. data/lib/puppet/network/http_server/webrick.rb +1 -1
  55. data/lib/puppet/parser/ast/casestatement.rb +4 -4
  56. data/lib/puppet/parser/ast/ifstatement.rb +2 -1
  57. data/lib/puppet/parser/ast/leaf.rb +1 -0
  58. data/lib/puppet/parser/ast/selector.rb +2 -3
  59. data/lib/puppet/parser/functions/generate.rb +3 -5
  60. data/lib/puppet/parser/functions/require.rb +8 -1
  61. data/lib/puppet/parser/functions/template.rb +1 -1
  62. data/lib/puppet/parser/lexer.rb +1 -7
  63. data/lib/puppet/parser/resource.rb +10 -4
  64. data/lib/puppet/parser/scope.rb +61 -9
  65. data/lib/puppet/provider/augeas/augeas.rb +23 -7
  66. data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
  67. data/lib/puppet/provider/maillist/mailman.rb +2 -2
  68. data/lib/puppet/provider/package/portage.rb +2 -2
  69. data/lib/puppet/provider/service/debian.rb +2 -2
  70. data/lib/puppet/provider/service/redhat.rb +1 -1
  71. data/lib/puppet/provider/service/smf.rb +4 -1
  72. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +9 -29
  73. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  74. data/lib/puppet/reference/configuration.rb +1 -1
  75. data/lib/puppet/reference/providers.rb +1 -1
  76. data/lib/puppet/reports/tagmail.rb +1 -0
  77. data/lib/puppet/resource/catalog.rb +1 -8
  78. data/lib/puppet/simple_graph.rb +37 -12
  79. data/lib/puppet/ssl/certificate.rb +2 -3
  80. data/lib/puppet/ssl/certificate_authority.rb +1 -1
  81. data/lib/puppet/ssl/host.rb +19 -12
  82. data/lib/puppet/sslcertificates/ca.rb +5 -6
  83. data/lib/puppet/transaction.rb +11 -15
  84. data/lib/puppet/type/augeas.rb +2 -1
  85. data/lib/puppet/type/exec.rb +1 -1
  86. data/lib/puppet/type/file.rb +9 -2
  87. data/lib/puppet/type/file/checksum.rb +2 -1
  88. data/lib/puppet/type/file/source.rb +4 -4
  89. data/lib/puppet/type/maillist.rb +10 -0
  90. data/lib/puppet/type/mount.rb +5 -3
  91. data/lib/puppet/type/tidy.rb +36 -30
  92. data/lib/puppet/util/autoload.rb +2 -2
  93. data/lib/puppet/util/checksums.rb +5 -0
  94. data/lib/puppet/util/monkey_patches.rb +38 -0
  95. data/lib/puppet/util/nagios_maker.rb +1 -1
  96. data/lib/puppet/util/settings.rb +14 -4
  97. data/lib/puppet/util/suidmanager.rb +26 -2
  98. data/lib/puppet/util/zaml.rb +318 -0
  99. data/man/{man8/puppet.conf.8 → man5/puppet.conf.5} +594 -899
  100. data/man/man8/filebucket.8 +31 -45
  101. data/man/man8/pi.8 +16 -22
  102. data/man/man8/puppet.8 +26 -36
  103. data/man/man8/puppetca.8 +38 -51
  104. data/man/man8/puppetd.8 +48 -64
  105. data/man/man8/puppetdoc.8 +37 -48
  106. data/man/man8/puppetmasterd.8 +24 -32
  107. data/man/man8/puppetqd.8 +22 -27
  108. data/man/man8/puppetrun.8 +46 -58
  109. data/man/man8/ralsh.8 +43 -48
  110. data/spec/integration/bin/puppetmasterd.rb +20 -9
  111. data/spec/integration/defaults.rb +4 -0
  112. data/spec/integration/indirector/certificate/rest.rb +0 -1
  113. data/spec/integration/indirector/certificate_request/rest.rb +0 -1
  114. data/spec/integration/indirector/certificate_revocation_list/rest.rb +0 -1
  115. data/spec/integration/indirector/report/rest.rb +0 -1
  116. data/spec/integration/indirector/rest.rb +0 -1
  117. data/spec/integration/parser/functions/require.rb +18 -1
  118. data/spec/unit/application/filebucket.rb +2 -2
  119. data/spec/unit/application/puppetd.rb +4 -5
  120. data/spec/unit/configurer.rb +46 -8
  121. data/spec/unit/file_serving/fileset.rb +6 -0
  122. data/spec/unit/file_serving/terminus_helper.rb +10 -0
  123. data/spec/unit/indirector/indirection.rb +17 -28
  124. data/spec/unit/network/format_handler.rb +3 -2
  125. data/spec/unit/network/http_pool.rb +9 -17
  126. data/spec/unit/parser/ast/casestatement.rb +4 -12
  127. data/spec/unit/parser/ast/ifstatement.rb +2 -1
  128. data/spec/unit/parser/ast/leaf.rb +15 -2
  129. data/spec/unit/parser/ast/selector.rb +4 -12
  130. data/spec/unit/parser/functions/generate.rb +41 -0
  131. data/spec/unit/parser/functions/require.rb +23 -2
  132. data/spec/unit/parser/resource.rb +18 -0
  133. data/spec/unit/parser/scope.rb +94 -3
  134. data/spec/unit/provider/augeas/augeas.rb +27 -3
  135. data/spec/unit/provider/ssh_authorized_key/parsed.rb +30 -19
  136. data/spec/unit/resource/catalog.rb +16 -39
  137. data/spec/unit/simple_graph.rb +14 -0
  138. data/spec/unit/ssl/host.rb +55 -17
  139. data/spec/unit/type/file.rb +43 -11
  140. data/spec/unit/type/file/checksum.rb +28 -0
  141. data/spec/unit/type/tidy.rb +30 -1
  142. data/spec/unit/util/autoload.rb +2 -1
  143. data/spec/unit/util/checksums.rb +7 -1
  144. data/spec/unit/util/settings.rb +39 -2
  145. data/spec/unit/util/zaml.rb +38 -0
  146. data/tasks/rake/changelog.rake +1 -1
  147. data/tasks/rake/gem.rake +3 -3
  148. data/tasks/rake/git_workflow.rake +1 -1
  149. data/tasks/rake/sign.rake +1 -1
  150. data/tasks/rake/yard.rake +11 -0
  151. data/test/certmgr/certmgr.rb +1 -1
  152. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -1
  153. data/test/lib/puppettest/support/utils.rb +2 -1
  154. data/test/network/handler/ca.rb +4 -4
  155. data/test/network/handler/fileserver.rb +15 -9
  156. data/test/other/transactions.rb +1 -6
  157. data/test/puppet/tc_suidmanager.rb +7 -2
  158. data/test/ral/providers/host/parsed.rb +6 -6
  159. data/test/ral/providers/package.rb +4 -0
  160. data/test/ral/providers/sshkey/parsed.rb +5 -5
  161. data/test/ral/type/file.rb +0 -21
  162. data/test/ral/type/host.rb +4 -4
  163. data/test/ral/type/resources.rb +0 -78
  164. data/test/ral/type/sshkey.rb +2 -2
  165. data/test/test +1 -1
  166. data/test/util/settings.rb +6 -6
  167. metadata +1065 -1050
  168. data/test/executables/puppetmodule.rb +0 -55
  169. data/test/ral/providers/service/debian.rb +0 -58
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
4
+
5
+ require 'puppet/util/monkey_patches'
6
+
7
+ describe "Pure ruby yaml implementation" do
8
+ {
9
+ 7 => "--- 7",
10
+ 3.14159 => "--- 3.14159",
11
+ 'test' => "--- test",
12
+ [] => "--- []",
13
+ :symbol => "--- !ruby/sym symbol",
14
+ {:a => "A"} => "--- \n !ruby/sym a: A"
15
+ }.each { |o,y|
16
+ it "should convert the #{o.class} #{o.inspect} to yaml" do
17
+ o.to_yaml.should == y
18
+ end
19
+ it "should produce yaml for the #{o.class} #{o.inspect} that can be reconstituted" do
20
+ YAML.load(o.to_yaml).should == o
21
+ end
22
+ }
23
+ #
24
+ # Can't test for equality on raw objects
25
+ {
26
+ Object.new => "--- !ruby/object {}",
27
+ [Object.new] => "--- \n - !ruby/object {}",
28
+ {Object.new => Object.new} => "--- \n ? !ruby/object {}\n : !ruby/object {}"
29
+ }.each { |o,y|
30
+ it "should convert the #{o.class} #{o.inspect} to yaml" do
31
+ o.to_yaml.should == y
32
+ end
33
+ it "should produce yaml for the #{o.class} #{o.inspect} that can be reconstituted" do
34
+ lambda { YAML.load(o.to_yaml) }.should_not raise_error
35
+ end
36
+ }
37
+ end
38
+
@@ -8,7 +8,7 @@ task :changelog do
8
8
 
9
9
  CHANGELOG_DIR = "#{Dir.pwd}"
10
10
  mkdir(CHANGELOG_DIR) unless File.directory?(CHANGELOG_DIR)
11
- change_body = `git-changelog --no-limit -a`
11
+ change_body = `git-changelog --limit=99999`
12
12
  File.open(File.join(CHANGELOG_DIR, "CHANGELOG"), 'w') do |f|
13
13
  f << change_body
14
14
  end
data/tasks/rake/gem.rake CHANGED
@@ -30,9 +30,9 @@ spec = Gem::Specification.new do |spec|
30
30
  spec.add_dependency('facter', '>= 1.5.1')
31
31
  spec.summary = 'Puppet, an automated configuration management tool'
32
32
  spec.description = 'Puppet, an automated configuration management tool'
33
- spec.author = 'Reductive Labs'
34
- spec.email = 'puppet@reductivelabs.com'
35
- spec.homepage = 'http://reductivelabs.com'
33
+ spec.author = 'Puppet Labs'
34
+ spec.email = 'puppet@puppetlabs.com'
35
+ spec.homepage = 'http://puppetlabs.com'
36
36
  spec.rubyforge_project = 'puppet'
37
37
  spec.has_rdoc = true
38
38
  spec.rdoc_options <<
@@ -1,5 +1,5 @@
1
1
  # This set of tasks helps automate the workflow as described on
2
- # http://reductivelabs.com/trac/puppet/wiki/Development/DevelopmentLifecycle
2
+ # http://puppetlabs.com/trac/puppet/wiki/Development/DevelopmentLifecycle
3
3
 
4
4
 
5
5
  def find_start(start)
data/tasks/rake/sign.rake CHANGED
@@ -1,4 +1,4 @@
1
- desc "Sign to the package with the Reductive Labs release key"
1
+ desc "Sign to the package with the Puppet Labs release key"
2
2
  task :sign_packages do
3
3
 
4
4
  version = Puppet::PUPPETVERSION
@@ -0,0 +1,11 @@
1
+ begin
2
+ require 'yard'
3
+
4
+ YARD::Rake::YardocTask.new do |t|
5
+ t.files = ['lib/**/*.rb', 'spec/**/*.rb']
6
+ end
7
+
8
+ rescue LoadError
9
+ # yard not installed (gem install yard)
10
+ # # http://yardoc.org
11
+ end
@@ -126,7 +126,7 @@ class TestCertMgr < Test::Unit::TestCase
126
126
  :city => "Nashville",
127
127
  :country => "US",
128
128
  :email => "luke@madstop.com",
129
- :org => "Reductive",
129
+ :org => "Puppet",
130
130
  :ou => "Development",
131
131
  :encrypt => mkPassFile()
132
132
  )
@@ -1,7 +1,7 @@
1
1
  ssh-dss AAAAB3NzaC1kc3MAAACBAJkupmdsJSDXfUy5EU5NTRBDr9Woo3w0YnB8KmnJW9ghU8C7SkWPB1fIHVe+esFfd3qWBseb83PoFX63geZJAg6bjV4/Rdn1zEoa9EO2QyUdYUen4+rpsh3vVKZ6HFNsn3+W5+kPYgE1F/N4INqkbjY3sqCkP/W1BL9+sbVVbuJFAAAAFQCfjWDk5XhvGUkPjNWWVqltBYzHtwAAAIEAg/XL7ky7x9Ad5banzPFAfmM+DGFe0A/JEbLDjKmr5KBM5x4RFohtEvZ8ECuVGUOqBWdgAjyYwsG4oRVjLnKrf/rgmbNRzSFgEWkcAye3BVwk7Dt6hh4knEl+mNfOLq+FH0011UhecOiqTcESMzQDtgQ1vJh2VchElBLjl3x/ZugAAACAAh5jGQC338t5ObP8trSlOefkx0sXmmEzUbo3Mt8mGUuGJPx8m+X0L8Xd+l5rQxytqE3SmV/RD+6REqBuPqHM8RQuqAzfjdOeg/Ajdggx1CRMTVhltZsgQoxO30cz9Qo0SdPoL+Jp1fLuaLZq7m/RmsWYvoLT3jebBlpvvQE8YlI= francois.deppierraz@nimag.net
2
2
  ssh-dss AAAAB3NzaC1kc3MAAACBAJkupmdsJSDXfUy5EU5NTRBDr9Woo3w0YnB8KmnJW9ghU8C7SkWPB1fIHVe+esFfd3qWBseb83PoFX63geZJAg6bjV4/Rdn1zEoa9EO2QyUdYUen4+rpsh3vVKZ6HFNsn3+W5+kPYgE1F/N4INqkbjY3sqCkP/W1BL9+sbVVbuJFAAAAFQCfjWDk5XhvGUkPjNWWVqltBYzHtwAAAIEAg/XL7ky7x9Ad5banzPFAfmM+DGFe0A/JEbLDjKmr5KBM5x4RFohtEvZ8ECuVGUOqBWdgAjyYwsG4oRVjLnKrf/rgmbNRzSFgEWkcAye3BVwk7Dt6hh4knEl+mNfOLq+FH0011UhecOiqTcESMzQDtgQ1vJh2VchElBLjl3x/ZugAAACAAh5jGQC338t5ObP8trSlOefkx0sXmmEzUbo3Mt8mGUuGJPx8m+X0L8Xd+l5rQxytqE3SmV/RD+6REqBuPqHM8RQuqAzfjdOeg/Ajdggx1CRMTVhltZsgQoxO30cz9Qo0SdPoL+Jp1fLuaLZq7m/RmsWYvoLT3jebBlpvvQE8YlI= Francois Deppierraz <francois@ctrlaltdel.ch>
3
3
  from="192.168.1.1",command="/bin/false",no-pty,no-port-forwarding ssh-dss AAAAB3NzaC1kc3MAAACBAJkupmdsJSDXfUy5EU5NTRBDr9Woo3w0YnB8KmnJW9ghU8C7SkWPB1fIHVe+esFfd3qWBseb83PoFX63geZJAg6bjV4/Rdn1zEoa9EO2QyUdYUen4+rpsh3vVKZ6HFNsn3+W5+kPYgE1F/N4INqkbjY3sqCkP/W1BL9+sbVVbuJFAAAAFQCfjWDk5XhvGUkPjNWWVqltBYzHtwAAAIEAg/XL7ky7x9Ad5banzPFAfmM+DGFe0A/JEbLDjKmr5KBM5x4RFohtEvZ8ECuVGUOqBWdgAjyYwsG4oRVjLnKrf/rgmbNRzSFgEWkcAye3BVwk7Dt6hh4knEl+mNfOLq+FH0011UhecOiqTcESMzQDtgQ1vJh2VchElBLjl3x/ZugAAACAAh5jGQC338t5ObP8trSlOefkx0sXmmEzUbo3Mt8mGUuGJPx8m+X0L8Xd+l5rQxytqE3SmV/RD+6REqBuPqHM8RQuqAzfjdOeg/Ajdggx1CRMTVhltZsgQoxO30cz9Qo0SdPoL+Jp1fLuaLZq7m/RmsWYvoLT3jebBlpvvQE8YlI= Francois Deppierraz
4
- from="192.168.1.1, www.reductivelabs.com",command="/bin/false",no-pty,no-port-forwarding ssh-dss AAAAB3NzaC1kc3MAAACBAJkupmdsJSDXfUy5EU5NTRBDr9Woo3w0YnB8KmnJW9ghU8C7SkWPB1fIHVe+esFfd3qWBseb83PoFX63geZJAg6bjV4/Rdn1zEoa9EO2QyUdYUen4+rpsh3vVKZ6HFNsn3+W5+kPYgE1F/N4INqkbjY3sqCkP/W1BL9+sbVVbuJFAAAAFQCfjWDk5XhvGUkPjNWWVqltBYzHtwAAAIEAg/XL7ky7x9Ad5banzPFAfmM+DGFe0A/JEbLDjKmr5KBM5x4RFohtEvZ8ECuVGUOqBWdgAjyYwsG4oRVjLnKrf/rgmbNRzSFgEWkcAye3BVwk7Dt6hh4knEl+mNfOLq+FH0011UhecOiqTcESMzQDtgQ1vJh2VchElBLjl3x/ZugAAACAAh5jGQC338t5ObP8trSlOefkx0sXmmEzUbo3Mt8mGUuGJPx8m+X0L8Xd+l5rQxytqE3SmV/RD+6REqBuPqHM8RQuqAzfjdOeg/Ajdggx1CRMTVhltZsgQoxO30cz9Qo0SdPoL+Jp1fLuaLZq7m/RmsWYvoLT3jebBlpvvQE8YlI= Francois Deppierraz
4
+ from="192.168.1.1, www.puppetlabs.com",command="/bin/false",no-pty,no-port-forwarding ssh-dss AAAAB3NzaC1kc3MAAACBAJkupmdsJSDXfUy5EU5NTRBDr9Woo3w0YnB8KmnJW9ghU8C7SkWPB1fIHVe+esFfd3qWBseb83PoFX63geZJAg6bjV4/Rdn1zEoa9EO2QyUdYUen4+rpsh3vVKZ6HFNsn3+W5+kPYgE1F/N4INqkbjY3sqCkP/W1BL9+sbVVbuJFAAAAFQCfjWDk5XhvGUkPjNWWVqltBYzHtwAAAIEAg/XL7ky7x9Ad5banzPFAfmM+DGFe0A/JEbLDjKmr5KBM5x4RFohtEvZ8ECuVGUOqBWdgAjyYwsG4oRVjLnKrf/rgmbNRzSFgEWkcAye3BVwk7Dt6hh4knEl+mNfOLq+FH0011UhecOiqTcESMzQDtgQ1vJh2VchElBLjl3x/ZugAAACAAh5jGQC338t5ObP8trSlOefkx0sXmmEzUbo3Mt8mGUuGJPx8m+X0L8Xd+l5rQxytqE3SmV/RD+6REqBuPqHM8RQuqAzfjdOeg/Ajdggx1CRMTVhltZsgQoxO30cz9Qo0SdPoL+Jp1fLuaLZq7m/RmsWYvoLT3jebBlpvvQE8YlI= Francois Deppierraz
5
5
  ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2Vi+TdC3iOGYcIo5vGTvC9P9rjHl9RxCuZmSfn+YDFQ35RXf0waijtjp9I7GYh6R4hBjA5z0u/Pzi95LET5NfRM0Gdc0DJyvBI7K+ALBxIT383Iz6Yz4iKxe1TEJgHGM2he4+7BHkjc3kdIZqIpZjucCk4VsXSxujO4MKKvtaKK2l+kahlLQHHw/vZkDpIgL52iGVsjW9l8RLJaKHZ4mDHJN/Q/Rzn2W4EvcdHUzwhvGMwZlm8clDwITBrSsawYtnivJrQSYcmTRqJuS8wprNDrLIhTGjrwFg5WpruUuMt6fLuCqwe6TeEL+nh3DQ4g554c5aRp3oU6LGBKTvNZGWQ== francois@korn
6
6
  ssh-dss AAAAB3NzaC1kc3MAAACBAMPpCYnjywOemd8LqbbmC+bePNR3/H1rXsiFwjSLhYE3bbOpvclvOzN1DruFc34m0FopVnMkP+aubjdIYF8pijl+5hg9ggB7Kno2dl0Dd1rGN/swvmhA8OpLAQv7Qt7UnXKVho3as08zYZsrHxYFu0wlnkdbsv4cy4aXyQKd4MPVAAAAFQDSyQFWg8Qt3wU05buhZ10psoR7tQAAAIEAmAhguXwUnI3P2FF5NAW/mpJUmUERdL4pyZARUyAgpf7ezwrh9TJqrvGTQNBF97Xqaivyncm5JWQdMIsTBxEFaXZGkmBta02KnWcn447qvIh7iv8XpNL6M9flCkBEZOJ4t9El0ytTSHHaiCz8A20Et+E8evWyi1kXkFDt8ML2dGgAAACBAK0X4ympbdEjgV/ZyOc+BU22u7vOnfSOUJmyar4Ax1MIDNnoyNWKnGvxRutydQcQOKQHZEU0fE8MhPFn6nLF6CoVfEl/oz0EYz3hjV4WPFpHrF5DY/rhvNj8iuneKJ5P0dy/rG6m5qey25PnHyGFVoIRlkHJvBCJT40dHs40YEjI francois@korn
7
7
  ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAut8aOSxenjOqF527dlsdHWV4MNoAsX14l9M297+SQXaQ5Z3BedIxZaoQthkDALlV/25A1COELrg9J2MqJNQc8Xe9XQOIkBQWWinUlD/BXwoOTWEy8C8zSZPHZ3getMMNhGTBO+q/O+qiJx3y5cA4MTbw2zSxukfWC87qWwcZ64UUlegIM056vPsdZWFclS9hsROVEa57YUMrehQ1EGxT4Z5j6zIopufGFiAPjZigq/vqgcAqhAKP6yu4/gwO6S9tatBeEjZ8fafvj1pmvvIplZeMr96gHE7xS3pEEQqnB3nd4RY7AF6j9kFixnsytAUO7STPh/M3pLiVQBN89TvWPQ==
@@ -154,11 +154,12 @@ end
154
154
  module PuppetTest
155
155
  include PuppetTest::Support::Utils
156
156
 
157
- def self.fakedata(dir,pat='*')
157
+ def fakedata(dir,pat='*')
158
158
  glob = "#{basedir}/test/#{dir}/#{pat}"
159
159
  files = Dir.glob(glob,File::FNM_PATHNAME)
160
160
  raise Puppet::DevError, "No fakedata matching #{glob}" if files.empty?
161
161
  files
162
162
  end
163
+ module_function :fakedata
163
164
 
164
165
  end
@@ -69,7 +69,7 @@ class TestCA < Test::Unit::TestCase
69
69
  newtext = nil
70
70
  assert_nothing_raised {
71
71
  newtext, cacerttext = ca.getcert(
72
- cert.csr.to_s, "test.reductivelabs.com", "127.0.0.1"
72
+ cert.csr.to_s, "test.puppetlabs.com", "127.0.0.1"
73
73
  )
74
74
  }
75
75
 
@@ -110,7 +110,7 @@ class TestCA < Test::Unit::TestCase
110
110
  certtext = nil
111
111
  assert_nothing_raised {
112
112
  certtext, cacerttext = caserv.getcert(
113
- cert.csr.to_s, "test.reductivelabs.com", "127.0.0.1"
113
+ cert.csr.to_s, "test.puppetlabs.com", "127.0.0.1"
114
114
  )
115
115
  }
116
116
 
@@ -167,7 +167,7 @@ class TestCA < Test::Unit::TestCase
167
167
  # make sure we know what's going on
168
168
  assert(caserv.autosign?("hostmatch.domain.com"))
169
169
  assert(caserv.autosign?("fakehost.other.com"))
170
- assert(!caserv.autosign?("kirby.reductivelabs.com"))
170
+ assert(!caserv.autosign?("kirby.puppetlabs.com"))
171
171
  assert(!caserv.autosign?("culain.domain.com"))
172
172
  end
173
173
 
@@ -181,7 +181,7 @@ class TestCA < Test::Unit::TestCase
181
181
  # make sure we know what's going on
182
182
  assert(!caserv.autosign?("hostmatch.domain.com"))
183
183
  assert(!caserv.autosign?("fakehost.other.com"))
184
- assert(!caserv.autosign?("kirby.reductivelabs.com"))
184
+ assert(!caserv.autosign?("kirby.puppetlabs.com"))
185
185
  assert(!caserv.autosign?("culain.domain.com"))
186
186
  end
187
187
 
@@ -947,12 +947,16 @@ allow *
947
947
  end
948
948
 
949
949
  # Now, check that they use Facter info
950
- Puppet.notice "The following messages are normal"
951
950
  client = nil
952
- Facter.stubs(:value).with(:ipaddress).returns("127.0.0.1")
953
951
  Facter.stubs(:value).with { |v| v.to_s == "hostname" }.returns("myhost")
954
952
  Facter.stubs(:value).with { |v| v.to_s == "domain" }.returns("mydomain.com")
955
- Facter.stubs(:value).with(:domain).returns("mydomain.com")
953
+
954
+ Facter.stubs(:to_hash).returns({
955
+ :ipaddress => "127.0.0.1",
956
+ :hostname => "myhost",
957
+ :domain => "mydomain.com",
958
+ })
959
+
956
960
 
957
961
  {"%h" => "myhost", # Short name
958
962
  "%H" => "myhost.mydomain.com", # Full name
@@ -979,13 +983,15 @@ allow *
979
983
 
980
984
  # When mocks attack, part 2
981
985
  kernel_fact = Facter.value(:kernel)
982
- Facter.stubs(:value).with(:kernel).returns(kernel_fact)
983
986
 
984
- Facter.stubs(:value).with(:ipaddress).returns("127.0.0.1")
985
- Facter.stubs(:value).with { |v| v.to_s == "hostname" }.returns("myhost")
986
- Facter.stubs(:value).with { |v| v.to_s == "domain" }.returns("mydomain.com")
987
- Facter.stubs(:value).with(:domain).returns("mydomain.com")
988
- ip = Facter.value(:ipaddress)
987
+ ip = '127.0.0.1'
988
+
989
+ Facter.stubs(:to_hash).returns({
990
+ :kernel => kernel_fact,
991
+ :ipaddress => "127.0.0.1",
992
+ :hostname => "myhost",
993
+ :domain => "mydomain.com",
994
+ })
989
995
 
990
996
  Dir.mkdir(dir)
991
997
  host = "myhost.mydomain.com"
@@ -368,7 +368,7 @@ class TestTransactions < Test::Unit::TestCase
368
368
 
369
369
  # 'subscribe' expects an array of arrays
370
370
  #component[:require] = [[file.class.name,file.name]]
371
- ecomp[:subscribe] = fcomp
371
+ ecomp[:subscribe] = fcomp.ref
372
372
  exec[:refreshonly] = true
373
373
 
374
374
  trans = assert_events([], config)
@@ -555,11 +555,6 @@ class TestTransactions < Test::Unit::TestCase
555
555
  "Generated %s was not a vertex" % name)
556
556
  assert($finished.include?(name), "%s was not finished" % name)
557
557
  end
558
-
559
- # Now make sure that cleanup gets rid of those generated types.
560
- assert_nothing_raised do
561
- trans.cleanup
562
- end
563
558
  end
564
559
 
565
560
  def test_ignore_tags?
@@ -11,7 +11,10 @@ class TestSUIDManager < Test::Unit::TestCase
11
11
  include PuppetTest
12
12
 
13
13
  def setup
14
- @user = nonrootuser
14
+ the_id = 42
15
+ Puppet::Util::SUIDManager.stubs(:convert_xid).returns(the_id)
16
+ Puppet::Util::SUIDManager.stubs(:initgroups)
17
+ @user = stub('user', :uid => the_id, :gid => the_id, :name => 'name')
15
18
  super
16
19
  end
17
20
 
@@ -39,13 +42,14 @@ class TestSUIDManager < Test::Unit::TestCase
39
42
  end
40
43
 
41
44
  def test_utiluid
42
- assert_not_equal(nil, Puppet::Util.uid(@user.name))
45
+ assert_not_equal(nil, Puppet::Util.uid(nonrootuser.name))
43
46
  end
44
47
 
45
48
  def test_asuser_as_root
46
49
  Process.stubs(:uid).returns(0)
47
50
  expects_id_set_and_revert @user.uid, @user.gid
48
51
  Puppet::Util::SUIDManager.asuser @user.uid, @user.gid do end
52
+ rescue Errno::EPERM
49
53
  end
50
54
 
51
55
  def test_asuser_as_nonroot
@@ -96,6 +100,7 @@ class TestSUIDManager < Test::Unit::TestCase
96
100
  private
97
101
 
98
102
  def expects_id_set_and_revert(uid, gid)
103
+ Process.stubs(:groups=)
99
104
  Process.expects(:euid).returns(99997)
100
105
  Process.expects(:egid).returns(99996)
101
106
 
@@ -45,7 +45,7 @@ class TestParsedHostProvider < Test::Unit::TestCase
45
45
  return {
46
46
  :name => "fakehost%s" % @hcount,
47
47
  :ip => "192.168.27.%s" % @hcount,
48
- :alias => ["alias%s" % @hcount],
48
+ :host_aliases => ["alias%s" % @hcount],
49
49
  :ensure => :present
50
50
  }
51
51
  end
@@ -67,7 +67,7 @@ class TestParsedHostProvider < Test::Unit::TestCase
67
67
 
68
68
  # Make sure we convert both directlys correctly using a simple host.
69
69
  def test_basic_isomorphism
70
- hash = {:record_type => :parsed, :name => "myhost", :ip => "192.168.43.56", :alias => %w{another host}}
70
+ hash = {:record_type => :parsed, :name => "myhost", :ip => "192.168.43.56", :host_aliases => %w{another host}}
71
71
 
72
72
  str = nil
73
73
  assert_nothing_raised do
@@ -103,7 +103,7 @@ class TestParsedHostProvider < Test::Unit::TestCase
103
103
  assert_equal([
104
104
  {:record_type => :comment, :line => "# comment one"},
105
105
  {:record_type => :blank, :line => ""},
106
- {:record_type => :parsed, :name => "myhost", :ip => "192.168.43.56", :alias => %w{another host}},
106
+ {:record_type => :parsed, :name => "myhost", :ip => "192.168.43.56", :host_aliases => %w{another host}},
107
107
  {:record_type => :blank, :line => " "},
108
108
  {:record_type => :comment, :line => "# another comment"},
109
109
  {:record_type => :parsed, :name => "anotherhost", :ip => "192.168.43.57"}
@@ -150,13 +150,13 @@ class TestParsedHostProvider < Test::Unit::TestCase
150
150
  }
151
151
 
152
152
  # Remove a single field and make sure it gets tossed
153
- name = host.alias
154
- host.alias = [:absent]
153
+ name = host.host_aliases
154
+ host.host_aliases = [:absent]
155
155
 
156
156
  assert_nothing_raised {
157
157
  host.flush
158
158
  assert(! file.read.include?(name[0]),
159
- "Did not remove alias from disk")
159
+ "Did not remove host_aliases from disk")
160
160
  }
161
161
 
162
162
  # Make sure it throws up if we remove a required field
@@ -238,6 +238,10 @@ class TestPackageProvider < Test::Unit::TestCase
238
238
  end
239
239
  end
240
240
 
241
+ def test_dont_complain_if_theres_nothing_to_test
242
+ assert("sometimes the above metaprogramming fails to find anything to test and the runner complains")
243
+ end
244
+
241
245
  def modpkg(pkg)
242
246
  case pkg[:provider]
243
247
  when :sun
@@ -32,7 +32,7 @@ class TestParsedSSHKey < Test::Unit::TestCase
32
32
  args = {
33
33
  :name => name || "/fspuppet%s" % @pcount,
34
34
  :key => "thisismykey%s" % @pcount,
35
- :alias => ["host1.domain.com","192.168.0.1"],
35
+ :host_aliases => ["host1.domain.com","192.168.0.1"],
36
36
  :type => "dss",
37
37
  :ensure => :present
38
38
  }
@@ -68,11 +68,11 @@ class TestParsedSSHKey < Test::Unit::TestCase
68
68
  key.flush
69
69
  end
70
70
 
71
- assert(key.alias, "No alias set for key")
71
+ assert(key.host_aliases, "No host_aliases set for key")
72
72
 
73
73
  hash = key.property_hash.dup
74
74
  text = @provider.target_object(file).read
75
- names = [key.name, key.alias].flatten.join(",")
75
+ names = [key.name, key.host_aliases].flatten.join(",")
76
76
 
77
77
  assert_equal("#{names} #{key.type} #{key.key}\n", text)
78
78
 
@@ -94,12 +94,12 @@ class TestParsedSSHKey < Test::Unit::TestCase
94
94
  result = @provider.parse_line("one,two type key")
95
95
  end
96
96
  assert_equal("one", result[:name], "Did not call post hook")
97
- assert_equal(%w{two}, result[:alias], "Did not call post hook")
97
+ assert_equal(%w{two}, result[:host_aliases], "Did not call post hook")
98
98
 
99
99
  assert_equal("one,two type key",
100
100
  @provider.to_line(:record_type => :parsed,
101
101
  :name => "one",
102
- :alias => %w{two},
102
+ :host_aliases => %w{two},
103
103
  :type => "type",
104
104
  :key => "key"),
105
105
  "Did not use pre-hook when generating line"
@@ -978,25 +978,4 @@ class TestFile < Test::Unit::TestCase
978
978
  assert_equal("/", obj.title, "/ directory was changed to empty string")
979
979
  end
980
980
 
981
- # #1010 and #1037 -- write should fail if the written checksum does not
982
- # match the file we thought we were writing.
983
- def test_write_validates_checksum
984
- file = tempfile
985
- inst = Puppet::Type.newfile(:path => file, :content => "something")
986
-
987
- tmpfile = file + ".puppettmp"
988
-
989
- wh = mock 'writehandle', :print => nil
990
- rh = mock 'readhandle'
991
- rh.expects(:read).with(4096).times(2).returns("other").then.returns(nil)
992
- File.expects(:open).with { |*args| args[0] == tmpfile and args[1] != "r" }.yields(wh)
993
- File.expects(:open).with { |*args| args[0] == tmpfile and args[1] == "r" }.yields(rh)
994
-
995
- File.stubs(:rename)
996
- FileTest.stubs(:exist?).returns(true)
997
- FileTest.stubs(:file?).returns(true)
998
-
999
- inst.expects(:fail)
1000
- inst.write("something", :whatever)
1001
- end
1002
981
  end
@@ -108,7 +108,7 @@ class TestHost < Test::Unit::TestCase
108
108
  # This was a hard bug to track down.
109
109
  assert_instance_of(String, current_values[host.property(:ip)])
110
110
 
111
- host[:alias] = %w{madstop kirby yayness}
111
+ host[:host_aliases] = %w{madstop kirby yayness}
112
112
 
113
113
  assert_events([:host_changed], host)
114
114
 
@@ -117,7 +117,7 @@ class TestHost < Test::Unit::TestCase
117
117
  }
118
118
 
119
119
  assert_equal(%w{madstop kirby yayness},
120
- current_values[host.property(:alias)])
120
+ current_values[host.property(:host_aliases)])
121
121
 
122
122
  host[:ensure] = :absent
123
123
  assert_events([:host_removed], host)
@@ -184,13 +184,13 @@ class TestHost < Test::Unit::TestCase
184
184
  end
185
185
 
186
186
  def test_aliasisproperty
187
- assert_equal(:property, @hosttype.attrtype(:alias))
187
+ assert_equal(:property, @hosttype.attrtype(:host_aliases))
188
188
  end
189
189
 
190
190
  def test_multivalues
191
191
  host = mkhost
192
192
  assert_raise(Puppet::Error) {
193
- host[:alias] = "puppetmasterd yayness"
193
+ host[:host_aliases] = "puppetmasterd yayness"
194
194
  }
195
195
  end
196
196
 
@@ -59,70 +59,6 @@ class TestResources < Test::Unit::TestCase
59
59
  @type = Puppet::Type.type(:resources)
60
60
  end
61
61
 
62
- def test_purge
63
- # Create a purgeable type
64
- mkpurgertype
65
-
66
- purger = nil
67
- assert_nothing_raised do
68
- purger = @type.new :name => "purgetest", :noop => true, :loglevel => :warning
69
- end
70
- assert(purger, "did not get purger manager")
71
- add_purge_lister()
72
-
73
- assert_equal($purgemembers.values.sort, @purgetype.instances.sort)
74
-
75
- # and it should now succeed
76
- assert_nothing_raised do
77
- purger[:purge] = true
78
- end
79
- assert(purger.purge?, "purge boolean was not enabled")
80
-
81
- # Okay, now let's try doing some purging, yo
82
- managed = []
83
- unmanned = []
84
- 3.times { managed << mk_purger(true) } # 3 managed
85
- 3.times { unmanned << mk_purger(false) } # 3 unmanaged
86
-
87
- managed.each do |m|
88
- assert(m.managed?, "managed resource was not considered managed")
89
- end
90
- unmanned.each do |u|
91
- assert(! u.managed?, "unmanaged resource was considered managed")
92
- end
93
-
94
- # First make sure we get nothing back when purge is false
95
- genned = nil
96
- purger[:purge] = false
97
- assert_nothing_raised do
98
- genned = purger.generate
99
- end
100
- assert_equal([], genned, "Purged even when purge is false")
101
-
102
- # Now make sure we can purge
103
- purger[:purge] = true
104
- assert_nothing_raised do
105
- genned = purger.generate
106
- end
107
- assert(genned, "Did not get any generated resources")
108
-
109
- genned.each do |res|
110
- assert(res.purging, "did not mark resource for purging")
111
- end
112
- assert(! genned.empty?, "generated resource list was empty")
113
-
114
- # Now make sure the generate method only finds the unmanaged resources
115
- assert_equal(unmanned.collect { |r| r.title }.sort, genned.collect { |r| r.title },
116
- "Did not return correct purge list")
117
-
118
- # Now make sure our metaparams carried over
119
- genned.each do |res|
120
- [:noop, :loglevel].each do |param|
121
- assert_equal(purger[param], res[param], "metaparam %s did not carry over" % param)
122
- end
123
- end
124
- end
125
-
126
62
  # Part of #408.
127
63
  def test_check
128
64
  # First check a non-user
@@ -173,19 +109,5 @@ class TestResources < Test::Unit::TestCase
173
109
  end
174
110
  end
175
111
 
176
- # The other half of #408.
177
- def test_check_is_called
178
- res = Puppet::Type.type(:resources).new :name => :user, :purge => true
179
-
180
- list = nil
181
- assert_nothing_raised { list = res.generate }
182
-
183
- assert(! list.empty?, "did not get any users")
184
-
185
- bad = list.find_all { |u|
186
- %w{root bin nobody}.include?(u[:name]) or (cv = u.retrieve and cv[u.property(:uid)] < 500)
187
- }
188
- assert(bad.empty?, "incorrectly passed users %s" % bad.collect { |u| u[:name]}.join(", "))
189
- end
190
112
  end
191
113