puppet 7.28.0-universal-darwin → 7.29.1-universal-darwin

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1258) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +51 -55
  3. data/ext/project_data.yaml +4 -4
  4. data/lib/puppet/pops/evaluator/literal_evaluator.rb +16 -3
  5. data/lib/puppet/pops/issues.rb +4 -0
  6. data/lib/puppet/pops/validation/checker4_0.rb +13 -0
  7. data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
  8. data/lib/puppet/util/windows/registry.rb +39 -4
  9. data/lib/puppet/version.rb +1 -1
  10. data/man/man5/puppet.conf.5 +2 -2
  11. data/man/man8/puppet-agent.8 +1 -1
  12. data/man/man8/puppet-apply.8 +1 -1
  13. data/man/man8/puppet-catalog.8 +1 -1
  14. data/man/man8/puppet-config.8 +1 -1
  15. data/man/man8/puppet-describe.8 +1 -1
  16. data/man/man8/puppet-device.8 +1 -1
  17. data/man/man8/puppet-doc.8 +1 -1
  18. data/man/man8/puppet-epp.8 +1 -1
  19. data/man/man8/puppet-facts.8 +1 -1
  20. data/man/man8/puppet-filebucket.8 +1 -1
  21. data/man/man8/puppet-generate.8 +1 -1
  22. data/man/man8/puppet-help.8 +1 -1
  23. data/man/man8/puppet-lookup.8 +1 -1
  24. data/man/man8/puppet-module.8 +1 -1
  25. data/man/man8/puppet-node.8 +1 -1
  26. data/man/man8/puppet-parser.8 +1 -1
  27. data/man/man8/puppet-plugin.8 +1 -1
  28. data/man/man8/puppet-report.8 +1 -1
  29. data/man/man8/puppet-resource.8 +1 -1
  30. data/man/man8/puppet-script.8 +1 -1
  31. data/man/man8/puppet-ssl.8 +1 -1
  32. data/man/man8/puppet.8 +2 -2
  33. metadata +3 -2453
  34. data/spec/fixtures/faulty_face/puppet/face/syntax.rb +0 -8
  35. data/spec/fixtures/hiera.yaml +0 -9
  36. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  37. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  38. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +0 -2
  39. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +0 -25
  40. data/spec/fixtures/integration/application/module/environments/direnv/modules/nginx/README +0 -3
  41. data/spec/fixtures/integration/application/module/environments/direnv/modules/nginx/manifests/init.pp +0 -17
  42. data/spec/fixtures/integration/application/module/environments/direnv/modules/nginx/metadata.json +0 -20
  43. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  44. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  45. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  46. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  47. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  48. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  49. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  50. data/spec/fixtures/integration/node/environment/sitedir/00_a.pp +0 -2
  51. data/spec/fixtures/integration/node/environment/sitedir/01_b.pp +0 -6
  52. data/spec/fixtures/integration/node/environment/sitedir/03_empty.pp +0 -0
  53. data/spec/fixtures/integration/node/environment/sitedir/04_include.pp +0 -2
  54. data/spec/fixtures/integration/node/environment/sitedir2/00_a.pp +0 -2
  55. data/spec/fixtures/integration/node/environment/sitedir2/02_folder/01_b.pp +0 -6
  56. data/spec/fixtures/integration/node/environment/sitedir2/03_c.pp +0 -1
  57. data/spec/fixtures/integration/node/environment/sitedir2/04_include.pp +0 -2
  58. data/spec/fixtures/java.tgz +0 -0
  59. data/spec/fixtures/manifests/site.pp +0 -0
  60. data/spec/fixtures/module.tar.gz +0 -0
  61. data/spec/fixtures/releases/jamtur01-apache/Modulefile +0 -2
  62. data/spec/fixtures/releases/jamtur01-apache/files/httpd +0 -24
  63. data/spec/fixtures/releases/jamtur01-apache/files/test.vhost +0 -18
  64. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +0 -21
  65. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/type/a2mod.rb +0 -12
  66. data/spec/fixtures/releases/jamtur01-apache/manifests/dev.pp +0 -5
  67. data/spec/fixtures/releases/jamtur01-apache/manifests/init.pp +0 -34
  68. data/spec/fixtures/releases/jamtur01-apache/manifests/params.pp +0 -17
  69. data/spec/fixtures/releases/jamtur01-apache/manifests/php.pp +0 -5
  70. data/spec/fixtures/releases/jamtur01-apache/manifests/ssl.pp +0 -15
  71. data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +0 -15
  72. data/spec/fixtures/releases/jamtur01-apache/metadata.json +0 -1
  73. data/spec/fixtures/releases/jamtur01-apache/templates/vhost-default.conf.erb +0 -20
  74. data/spec/fixtures/releases/jamtur01-apache/tests/apache.pp +0 -1
  75. data/spec/fixtures/releases/jamtur01-apache/tests/dev.pp +0 -1
  76. data/spec/fixtures/releases/jamtur01-apache/tests/init.pp +0 -1
  77. data/spec/fixtures/releases/jamtur01-apache/tests/php.pp +0 -1
  78. data/spec/fixtures/releases/jamtur01-apache/tests/ssl.pp +0 -1
  79. data/spec/fixtures/releases/jamtur01-apache/tests/vhost.pp +0 -2
  80. data/spec/fixtures/ssl/127.0.0.1-key.pem +0 -117
  81. data/spec/fixtures/ssl/127.0.0.1.pem +0 -69
  82. data/spec/fixtures/ssl/bad-basic-constraints.pem +0 -81
  83. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +0 -81
  84. data/spec/fixtures/ssl/ca.pem +0 -81
  85. data/spec/fixtures/ssl/crl.pem +0 -40
  86. data/spec/fixtures/ssl/ec-key-openssl.pem +0 -8
  87. data/spec/fixtures/ssl/ec-key-pk8.pem +0 -5
  88. data/spec/fixtures/ssl/ec-key.pem +0 -18
  89. data/spec/fixtures/ssl/ec.pem +0 -49
  90. data/spec/fixtures/ssl/encrypted-ec-key.pem +0 -21
  91. data/spec/fixtures/ssl/encrypted-key.pem +0 -120
  92. data/spec/fixtures/ssl/intermediate-agent-crl.pem +0 -40
  93. data/spec/fixtures/ssl/intermediate-agent.pem +0 -81
  94. data/spec/fixtures/ssl/intermediate-crl.pem +0 -46
  95. data/spec/fixtures/ssl/intermediate.pem +0 -81
  96. data/spec/fixtures/ssl/netlock-arany-utf8.pem +0 -23
  97. data/spec/fixtures/ssl/oid-key.pem +0 -117
  98. data/spec/fixtures/ssl/oid.pem +0 -69
  99. data/spec/fixtures/ssl/pluto-key.pem +0 -117
  100. data/spec/fixtures/ssl/pluto.pem +0 -66
  101. data/spec/fixtures/ssl/request-key.pem +0 -117
  102. data/spec/fixtures/ssl/request.pem +0 -60
  103. data/spec/fixtures/ssl/revoked-key.pem +0 -117
  104. data/spec/fixtures/ssl/revoked.pem +0 -66
  105. data/spec/fixtures/ssl/signed-key.pem +0 -117
  106. data/spec/fixtures/ssl/signed.pem +0 -66
  107. data/spec/fixtures/ssl/tampered-cert.pem +0 -66
  108. data/spec/fixtures/ssl/tampered-csr.pem +0 -60
  109. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  110. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +0 -117
  111. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +0 -69
  112. data/spec/fixtures/ssl/unknown-ca-key.pem +0 -117
  113. data/spec/fixtures/ssl/unknown-ca.pem +0 -81
  114. data/spec/fixtures/stdlib.tgz +0 -0
  115. data/spec/fixtures/unit/application/environments/production/data/common.yaml +0 -24
  116. data/spec/fixtures/unit/application/environments/production/environment.conf +0 -1
  117. data/spec/fixtures/unit/application/environments/production/manifests/site.pp +0 -1
  118. data/spec/fixtures/unit/application/environments/puppet_func_provider/environment.conf +0 -1
  119. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/environment/data.pp +0 -10
  120. data/spec/fixtures/unit/application/environments/puppet_func_provider/manifests/site.pp +0 -1
  121. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +0 -3
  122. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +0 -2
  123. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +0 -5
  124. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +0 -5
  125. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +0 -3
  126. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +0 -2
  127. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +0 -5
  128. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +0 -5
  129. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +0 -2
  130. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +0 -2
  131. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +0 -1
  132. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +0 -2
  133. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +0 -5
  134. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +0 -9
  135. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +0 -3
  136. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +0 -2
  137. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +0 -3
  138. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +0 -2
  139. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +0 -3
  140. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +0 -3
  141. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +0 -2
  142. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +0 -2
  143. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +0 -22
  144. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +0 -5
  145. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +0 -48
  146. data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +0 -2
  147. data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +0 -1
  148. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +0 -30
  149. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +0 -13
  150. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +0 -9
  151. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/common.yaml +0 -4
  152. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/specific.yaml +0 -4
  153. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +0 -2
  154. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/hiera.yaml +0 -7
  155. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +0 -1
  156. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +0 -3
  157. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +0 -2
  158. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +0 -3
  159. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server1.yaml +0 -1
  160. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server2.yaml +0 -1
  161. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +0 -2
  162. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +0 -2
  163. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +0 -20
  164. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +0 -5
  165. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +0 -9
  166. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/common.yaml +0 -4
  167. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/specific.yaml +0 -4
  168. data/spec/fixtures/unit/data_providers/environments/hiera_modules/environment.conf +0 -2
  169. data/spec/fixtures/unit/data_providers/environments/hiera_modules/hiera.yaml +0 -7
  170. data/spec/fixtures/unit/data_providers/environments/hiera_modules/manifests/site.pp +0 -1
  171. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/data/common.yaml +0 -6
  172. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/hiera.yaml +0 -5
  173. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/manifests/init.pp +0 -2
  174. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/metadata.json +0 -9
  175. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +0 -4
  176. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/hiera.yaml +0 -5
  177. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/manifests/init.pp +0 -3
  178. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/metadata.json +0 -9
  179. data/spec/fixtures/unit/data_providers/environments/production/environment.conf +0 -2
  180. data/spec/fixtures/unit/data_providers/environments/production/lib/puppet/functions/environment/data.rb +0 -9
  181. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -9
  182. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/manifests/init.pp +0 -10
  183. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/metadata.json +0 -9
  184. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/functions/data.pp +0 -6
  185. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/manifests/init.pp +0 -9
  186. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/metadata.json +0 -9
  187. data/spec/fixtures/unit/forge/bacula-releases.json +0 -128
  188. data/spec/fixtures/unit/forge/bacula.json +0 -76
  189. data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
  190. data/spec/fixtures/unit/functions/hiera/hiera/backend/hieraspec_backend.rb +0 -22
  191. data/spec/fixtures/unit/functions/lookup/data/common.yaml +0 -19
  192. data/spec/fixtures/unit/functions/lookup/hiera/backend/custom_backend.rb +0 -18
  193. data/spec/fixtures/unit/functions/lookup/hiera/backend/other_backend.rb +0 -7
  194. data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +0 -19
  195. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/environment.conf +0 -2
  196. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/lib/puppet/functions/environment/data.rb +0 -13
  197. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -9
  198. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/manifests/init.pp +0 -8
  199. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/metadata.json +0 -9
  200. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +0 -7
  201. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/manifests/init.pp +0 -2
  202. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/metadata.json +0 -9
  203. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -9
  204. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/manifests/init.pp +0 -2
  205. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/metadata.json +0 -9
  206. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/data/empty.json +0 -0
  207. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/hiera.yaml +0 -5
  208. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/manifests/init.pp +0 -2
  209. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/metadata.json +0 -9
  210. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/data/empty_key.json +0 -1
  211. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/hiera.yaml +0 -5
  212. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/manifests/init.pp +0 -2
  213. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/metadata.json +0 -9
  214. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/data/empty_key.yaml +0 -1
  215. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/hiera.yaml +0 -5
  216. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/manifests/init.pp +0 -2
  217. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/metadata.json +0 -9
  218. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/data/empty.yaml +0 -2
  219. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/hiera.yaml +0 -5
  220. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/manifests/init.pp +0 -2
  221. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/metadata.json +0 -9
  222. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/data/first.json +0 -4
  223. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/hiera.yaml +0 -8
  224. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/manifests/init.pp +0 -5
  225. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/metadata.json +0 -9
  226. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +0 -9
  227. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/manifests/init.pp +0 -3
  228. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/metadata.json +0 -9
  229. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/no_provider/manifests/init.pp +0 -2
  230. data/spec/fixtures/unit/indirector/data_binding/hiera/global.yaml +0 -10
  231. data/spec/fixtures/unit/indirector/data_binding/hiera/invalid.yaml +0 -1
  232. data/spec/fixtures/unit/indirector/hiera/global.yaml +0 -10
  233. data/spec/fixtures/unit/indirector/hiera/invalid.yaml +0 -1
  234. data/spec/fixtures/unit/module/trailing-comma.json +0 -24
  235. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/init.pp +0 -3
  236. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/wrongdefine.pp +0 -3
  237. data/spec/fixtures/unit/parser/lexer/aliastest.pp +0 -16
  238. data/spec/fixtures/unit/parser/lexer/append.pp +0 -11
  239. data/spec/fixtures/unit/parser/lexer/argumentdefaults.pp +0 -14
  240. data/spec/fixtures/unit/parser/lexer/arithmetic_expression.pp +0 -8
  241. data/spec/fixtures/unit/parser/lexer/arraytrailingcomma.pp +0 -3
  242. data/spec/fixtures/unit/parser/lexer/casestatement.pp +0 -65
  243. data/spec/fixtures/unit/parser/lexer/classheirarchy.pp +0 -15
  244. data/spec/fixtures/unit/parser/lexer/classincludes.pp +0 -17
  245. data/spec/fixtures/unit/parser/lexer/classpathtest.pp +0 -11
  246. data/spec/fixtures/unit/parser/lexer/collection.pp +0 -10
  247. data/spec/fixtures/unit/parser/lexer/collection_override.pp +0 -8
  248. data/spec/fixtures/unit/parser/lexer/collection_within_virtual_definitions.pp +0 -20
  249. data/spec/fixtures/unit/parser/lexer/componentmetaparams.pp +0 -11
  250. data/spec/fixtures/unit/parser/lexer/componentrequire.pp +0 -8
  251. data/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp +0 -23
  252. data/spec/fixtures/unit/parser/lexer/defineoverrides.pp +0 -17
  253. data/spec/fixtures/unit/parser/lexer/emptyclass.pp +0 -9
  254. data/spec/fixtures/unit/parser/lexer/emptyexec.pp +0 -3
  255. data/spec/fixtures/unit/parser/lexer/emptyifelse.pp +0 -9
  256. data/spec/fixtures/unit/parser/lexer/falsevalues.pp +0 -3
  257. data/spec/fixtures/unit/parser/lexer/filecreate.pp +0 -11
  258. data/spec/fixtures/unit/parser/lexer/fqdefinition.pp +0 -5
  259. data/spec/fixtures/unit/parser/lexer/fqparents.pp +0 -11
  260. data/spec/fixtures/unit/parser/lexer/funccomma.pp +0 -5
  261. data/spec/fixtures/unit/parser/lexer/hash.pp +0 -33
  262. data/spec/fixtures/unit/parser/lexer/ifexpression.pp +0 -12
  263. data/spec/fixtures/unit/parser/lexer/implicititeration.pp +0 -15
  264. data/spec/fixtures/unit/parser/lexer/multilinecomments.pp +0 -10
  265. data/spec/fixtures/unit/parser/lexer/multipleclass.pp +0 -9
  266. data/spec/fixtures/unit/parser/lexer/multipleinstances.pp +0 -7
  267. data/spec/fixtures/unit/parser/lexer/multisubs.pp +0 -13
  268. data/spec/fixtures/unit/parser/lexer/namevartest.pp +0 -9
  269. data/spec/fixtures/unit/parser/lexer/scopetest.pp +0 -13
  270. data/spec/fixtures/unit/parser/lexer/selectorvalues.pp +0 -49
  271. data/spec/fixtures/unit/parser/lexer/simpledefaults.pp +0 -5
  272. data/spec/fixtures/unit/parser/lexer/simpleselector.pp +0 -38
  273. data/spec/fixtures/unit/parser/lexer/singleary.pp +0 -19
  274. data/spec/fixtures/unit/parser/lexer/singlequote.pp +0 -11
  275. data/spec/fixtures/unit/parser/lexer/singleselector.pp +0 -22
  276. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -11
  277. data/spec/fixtures/unit/parser/lexer/tag.pp +0 -9
  278. data/spec/fixtures/unit/parser/lexer/tagged.pp +0 -35
  279. data/spec/fixtures/unit/parser/lexer/virtualresources.pp +0 -14
  280. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +0 -10
  281. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/lib/puppet/bindings/confdirtest.rb +0 -10
  282. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet/bindings/awesome2/default.rb +0 -20
  283. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +0 -18
  284. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/lib/puppet/bindings/bad/default.rb +0 -5
  285. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/lib/puppet/bindings/good/default.rb +0 -6
  286. data/spec/fixtures/unit/pops/binder/config/binder_config/nolayer/binder_config.yaml +0 -6
  287. data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +0 -9
  288. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/functions/usee_puppet.pp +0 -3
  289. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/callee.rb +0 -5
  290. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/usee_ruby.rb +0 -6
  291. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/type/usee_type.rb +0 -5
  292. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +0 -8
  293. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +0 -1
  294. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee2/lib/puppet/functions/usee2/callee.rb +0 -5
  295. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet.pp +0 -5
  296. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet_init.pp +0 -5
  297. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_ruby.pp +0 -5
  298. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller.rb +0 -5
  299. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller2.rb +0 -5
  300. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet.rb +0 -5
  301. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet_init.rb +0 -5
  302. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_ruby.rb +0 -5
  303. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +0 -87
  304. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/metadata.json +0 -10
  305. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +0 -1
  306. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +0 -1
  307. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load.rb +0 -11
  308. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
  309. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
  310. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
  311. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
  312. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee.rb +0 -8
  313. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee_ws.rb +0 -8
  314. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/func_with_syntax_error.rb +0 -9
  315. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
  316. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/metadata.json +0 -9
  317. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcalled.pp +0 -3
  318. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller.pp +0 -3
  319. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller4.pp +0 -3
  320. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/caller.rb +0 -5
  321. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/caller_ws.rb +0 -12
  322. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/callingpuppet.rb +0 -5
  323. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/metadata.json +0 -9
  324. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/functions/hello.pp +0 -3
  325. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/manifests/init.pp +0 -3
  326. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/metadata.json +0 -10
  327. data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +0 -10
  328. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/hello.pp +0 -3
  329. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/subspace/hello.pp +0 -3
  330. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/modulea/rb_func_a.rb +0 -5
  331. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/rb_func_a.rb +0 -5
  332. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/manifests/init.pp +0 -3
  333. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/metadata.json +0 -10
  334. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/lib/puppet/functions/moduleb/rb_func_b.rb +0 -6
  335. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/manifests/init.pp +0 -3
  336. data/spec/fixtures/unit/pops/parser/lexer/aliastest.pp +0 -16
  337. data/spec/fixtures/unit/pops/parser/lexer/append.pp +0 -11
  338. data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +0 -14
  339. data/spec/fixtures/unit/pops/parser/lexer/arithmetic_expression.pp +0 -8
  340. data/spec/fixtures/unit/pops/parser/lexer/arraytrailingcomma.pp +0 -3
  341. data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +0 -65
  342. data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +0 -15
  343. data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +0 -17
  344. data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +0 -11
  345. data/spec/fixtures/unit/pops/parser/lexer/collection.pp +0 -10
  346. data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +0 -8
  347. data/spec/fixtures/unit/pops/parser/lexer/collection_within_virtual_definitions.pp +0 -20
  348. data/spec/fixtures/unit/pops/parser/lexer/componentmetaparams.pp +0 -11
  349. data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +0 -8
  350. data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +0 -23
  351. data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +0 -17
  352. data/spec/fixtures/unit/pops/parser/lexer/emptyclass.pp +0 -9
  353. data/spec/fixtures/unit/pops/parser/lexer/emptyexec.pp +0 -3
  354. data/spec/fixtures/unit/pops/parser/lexer/emptyifelse.pp +0 -9
  355. data/spec/fixtures/unit/pops/parser/lexer/falsevalues.pp +0 -3
  356. data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +0 -11
  357. data/spec/fixtures/unit/pops/parser/lexer/fqdefinition.pp +0 -5
  358. data/spec/fixtures/unit/pops/parser/lexer/fqparents.pp +0 -11
  359. data/spec/fixtures/unit/pops/parser/lexer/funccomma.pp +0 -5
  360. data/spec/fixtures/unit/pops/parser/lexer/hash.pp +0 -33
  361. data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +0 -12
  362. data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +0 -15
  363. data/spec/fixtures/unit/pops/parser/lexer/multilinecomments.pp +0 -10
  364. data/spec/fixtures/unit/pops/parser/lexer/multipleclass.pp +0 -9
  365. data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +0 -7
  366. data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +0 -13
  367. data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +0 -9
  368. data/spec/fixtures/unit/pops/parser/lexer/scopetest.pp +0 -13
  369. data/spec/fixtures/unit/pops/parser/lexer/selectorvalues.pp +0 -49
  370. data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +0 -5
  371. data/spec/fixtures/unit/pops/parser/lexer/simpleselector.pp +0 -38
  372. data/spec/fixtures/unit/pops/parser/lexer/singleary.pp +0 -19
  373. data/spec/fixtures/unit/pops/parser/lexer/singlequote.pp +0 -11
  374. data/spec/fixtures/unit/pops/parser/lexer/singleselector.pp +0 -22
  375. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -11
  376. data/spec/fixtures/unit/pops/parser/lexer/tag.pp +0 -9
  377. data/spec/fixtures/unit/pops/parser/lexer/tagged.pp +0 -35
  378. data/spec/fixtures/unit/pops/parser/lexer/virtualresources.pp +0 -14
  379. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_input.out +0 -1
  380. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_output.out +0 -1
  381. data/spec/fixtures/unit/provider/cron/crontab/single_line.yaml +0 -272
  382. data/spec/fixtures/unit/provider/cron/crontab/vixie_header.txt +0 -3
  383. data/spec/fixtures/unit/provider/cron/parsed/managed +0 -6
  384. data/spec/fixtures/unit/provider/cron/parsed/simple +0 -9
  385. data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +0 -19
  386. data/spec/fixtures/unit/provider/package/gem/gem-list-single-package +0 -4
  387. data/spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning +0 -14
  388. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.detail +0 -19
  389. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.list +0 -10
  390. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.query +0 -1
  391. data/spec/fixtures/unit/provider/package/openbsd/pkginfo_flavors.list +0 -2
  392. data/spec/fixtures/unit/provider/package/pkg/dummy_implicit_version +0 -3
  393. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris10 +0 -1
  394. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.certificate_warning +0 -2
  395. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.installed +0 -1
  396. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.known +0 -1
  397. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.installed +0 -1
  398. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.known +0 -1
  399. data/spec/fixtures/unit/provider/package/pkg/incomplete +0 -1
  400. data/spec/fixtures/unit/provider/package/pkg/solaris11 +0 -2
  401. data/spec/fixtures/unit/provider/package/pkg/unknown_status +0 -12
  402. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +0 -7
  403. data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +0 -1
  404. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +0 -5
  405. data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +0 -30
  406. data/spec/fixtures/unit/provider/package/sun/dummy.server +0 -12
  407. data/spec/fixtures/unit/provider/package/sun/simple +0 -24
  408. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +0 -187
  409. data/spec/fixtures/unit/provider/package/yum/yum-check-update-multiline.txt +0 -201
  410. data/spec/fixtures/unit/provider/package/yum/yum-check-update-obsoletes.txt +0 -195
  411. data/spec/fixtures/unit/provider/package/yum/yum-check-update-plugin-output.txt +0 -36
  412. data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +0 -184
  413. data/spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt +0 -13
  414. data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +0 -9
  415. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-SLES11sp1.out +0 -369
  416. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-empty.out +0 -3
  417. data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +0 -13
  418. data/spec/fixtures/unit/provider/parsedfile/aliases.txt +0 -2
  419. data/spec/fixtures/unit/provider/parsedfile/simple.txt +0 -7
  420. data/spec/fixtures/unit/provider/service/base/ps_ef.mixed_encoding +0 -3
  421. data/spec/fixtures/unit/provider/service/gentoo/rc_update_show +0 -30
  422. data/spec/fixtures/unit/provider/service/openbsd/rcctl_getall +0 -6
  423. data/spec/fixtures/unit/provider/service/openrc/rcservice_list +0 -8
  424. data/spec/fixtures/unit/provider/service/openrc/rcstatus +0 -43
  425. data/spec/fixtures/unit/provider/service/smf/svcs_fmri.out +0 -6
  426. data/spec/fixtures/unit/provider/service/smf/svcs_instances.out +0 -4
  427. data/spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out +0 -13
  428. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +0 -16
  429. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  430. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -36
  431. data/spec/fixtures/unit/reports/tagmail/tagmail_email.conf +0 -2
  432. data/spec/fixtures/unit/reports/tagmail/tagmail_failers.conf +0 -3
  433. data/spec/fixtures/unit/reports/tagmail/tagmail_passers.conf +0 -30
  434. data/spec/fixtures/unit/ssl/certificate/old-style-cert-exts.pem +0 -33
  435. data/spec/fixtures/unit/ssl/certificate_request/old-style-cert-request.pem +0 -28
  436. data/spec/fixtures/unit/type/user/authorized_keys +0 -6
  437. data/spec/fixtures/unit/util/filetype/aixtab_output +0 -44
  438. data/spec/fixtures/unit/util/filetype/suntab_output +0 -9
  439. data/spec/fixtures/unit/util/monkey_patches/x509.pem +0 -32
  440. data/spec/fixtures/unit/util/rdoc/basic.pp +0 -16
  441. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +0 -104
  442. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +0 -108
  443. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +0 -108
  444. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +0 -104
  445. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +0 -100
  446. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +0 -104
  447. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +0 -104
  448. data/spec/fixtures/yaml/report2.6.x.yaml +0 -190
  449. data/spec/fixtures/yaml/test.local.yaml +0 -16
  450. data/spec/integration/agent/logging_spec.rb +0 -179
  451. data/spec/integration/application/agent_spec.rb +0 -1012
  452. data/spec/integration/application/apply_spec.rb +0 -773
  453. data/spec/integration/application/doc_spec.rb +0 -24
  454. data/spec/integration/application/filebucket_spec.rb +0 -255
  455. data/spec/integration/application/help_spec.rb +0 -44
  456. data/spec/integration/application/lookup_spec.rb +0 -275
  457. data/spec/integration/application/module_spec.rb +0 -230
  458. data/spec/integration/application/plugin_spec.rb +0 -145
  459. data/spec/integration/application/resource_spec.rb +0 -68
  460. data/spec/integration/application/ssl_spec.rb +0 -20
  461. data/spec/integration/configurer_spec.rb +0 -164
  462. data/spec/integration/data_binding_spec.rb +0 -278
  463. data/spec/integration/defaults_spec.rb +0 -279
  464. data/spec/integration/directory_environments_spec.rb +0 -67
  465. data/spec/integration/environments/default_manifest_spec.rb +0 -215
  466. data/spec/integration/environments/setting_hooks_spec.rb +0 -27
  467. data/spec/integration/environments/settings_interpolation_spec.rb +0 -106
  468. data/spec/integration/environments/settings_spec.rb +0 -128
  469. data/spec/integration/http/client_spec.rb +0 -229
  470. data/spec/integration/indirector/catalog/compiler_spec.rb +0 -75
  471. data/spec/integration/indirector/direct_file_server_spec.rb +0 -90
  472. data/spec/integration/indirector/facts/facter_spec.rb +0 -168
  473. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -106
  474. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -75
  475. data/spec/integration/l10n/compiler_spec.rb +0 -37
  476. data/spec/integration/network/formats_spec.rb +0 -90
  477. data/spec/integration/network/http/api/indirected_routes_spec.rb +0 -60
  478. data/spec/integration/network/http_pool_spec.rb +0 -275
  479. data/spec/integration/node/environment_spec.rb +0 -170
  480. data/spec/integration/node/facts_spec.rb +0 -40
  481. data/spec/integration/node_spec.rb +0 -77
  482. data/spec/integration/parser/catalog_spec.rb +0 -68
  483. data/spec/integration/parser/class_spec.rb +0 -33
  484. data/spec/integration/parser/collection_spec.rb +0 -362
  485. data/spec/integration/parser/compiler_spec.rb +0 -1210
  486. data/spec/integration/parser/conditionals_spec.rb +0 -92
  487. data/spec/integration/parser/dynamic_scoping_spec.rb +0 -66
  488. data/spec/integration/parser/environment_spec.rb +0 -47
  489. data/spec/integration/parser/node_spec.rb +0 -163
  490. data/spec/integration/parser/parameter_defaults_spec.rb +0 -358
  491. data/spec/integration/parser/pcore_resource_spec.rb +0 -243
  492. data/spec/integration/parser/resource_expressions_spec.rb +0 -222
  493. data/spec/integration/parser/scope_spec.rb +0 -728
  494. data/spec/integration/parser/script_compiler_spec.rb +0 -113
  495. data/spec/integration/parser/undef_param_spec.rb +0 -95
  496. data/spec/integration/provider/file/windows_spec.rb +0 -162
  497. data/spec/integration/resource/catalog_spec.rb +0 -47
  498. data/spec/integration/resource/type_collection_spec.rb +0 -88
  499. data/spec/integration/transaction/report_spec.rb +0 -706
  500. data/spec/integration/transaction_spec.rb +0 -553
  501. data/spec/integration/type/exec_spec.rb +0 -114
  502. data/spec/integration/type/file_spec.rb +0 -2012
  503. data/spec/integration/type/notify_spec.rb +0 -46
  504. data/spec/integration/type/package_spec.rb +0 -200
  505. data/spec/integration/type/tidy_spec.rb +0 -45
  506. data/spec/integration/type_spec.rb +0 -30
  507. data/spec/integration/util/autoload_spec.rb +0 -104
  508. data/spec/integration/util/execution_spec.rb +0 -104
  509. data/spec/integration/util/rdoc/parser_spec.rb +0 -171
  510. data/spec/integration/util/settings_spec.rb +0 -115
  511. data/spec/integration/util/windows/adsi_spec.rb +0 -207
  512. data/spec/integration/util/windows/monkey_patches/process_spec.rb +0 -231
  513. data/spec/integration/util/windows/principal_spec.rb +0 -279
  514. data/spec/integration/util/windows/process_spec.rb +0 -96
  515. data/spec/integration/util/windows/registry_spec.rb +0 -334
  516. data/spec/integration/util/windows/security_spec.rb +0 -1010
  517. data/spec/integration/util/windows/user_spec.rb +0 -226
  518. data/spec/integration/util_spec.rb +0 -104
  519. data/spec/lib/matchers/containment_matchers.rb +0 -52
  520. data/spec/lib/matchers/include_in_order.rb +0 -20
  521. data/spec/lib/matchers/include_in_order_spec.rb +0 -30
  522. data/spec/lib/matchers/json.rb +0 -132
  523. data/spec/lib/matchers/match_tokens2.rb +0 -74
  524. data/spec/lib/matchers/relationship_graph_matchers.rb +0 -48
  525. data/spec/lib/matchers/resource.rb +0 -74
  526. data/spec/lib/puppet/certificate_factory.rb +0 -218
  527. data/spec/lib/puppet/face/1.0.0/huzzah.rb +0 -8
  528. data/spec/lib/puppet/face/basetest.rb +0 -51
  529. data/spec/lib/puppet/face/huzzah/obsolete.rb +0 -6
  530. data/spec/lib/puppet/face/huzzah.rb +0 -8
  531. data/spec/lib/puppet/face/version_matching.rb +0 -12
  532. data/spec/lib/puppet/indirector/indirector_testing/json.rb +0 -6
  533. data/spec/lib/puppet/indirector/indirector_testing/memory.rb +0 -7
  534. data/spec/lib/puppet/indirector/indirector_testing/msgpack.rb +0 -6
  535. data/spec/lib/puppet/indirector_proxy.rb +0 -34
  536. data/spec/lib/puppet/indirector_testing.rb +0 -31
  537. data/spec/lib/puppet/test_ca.rb +0 -164
  538. data/spec/lib/puppet_spec/character_encoding.rb +0 -12
  539. data/spec/lib/puppet_spec/compiler.rb +0 -112
  540. data/spec/lib/puppet_spec/files.rb +0 -107
  541. data/spec/lib/puppet_spec/fixtures.rb +0 -52
  542. data/spec/lib/puppet_spec/handler.rb +0 -53
  543. data/spec/lib/puppet_spec/https.rb +0 -95
  544. data/spec/lib/puppet_spec/language.rb +0 -75
  545. data/spec/lib/puppet_spec/matchers.rb +0 -68
  546. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +0 -56
  547. data/spec/lib/puppet_spec/module_tool/stub_source.rb +0 -136
  548. data/spec/lib/puppet_spec/modules.rb +0 -82
  549. data/spec/lib/puppet_spec/network.rb +0 -109
  550. data/spec/lib/puppet_spec/pops.rb +0 -29
  551. data/spec/lib/puppet_spec/puppetserver.rb +0 -180
  552. data/spec/lib/puppet_spec/scope.rb +0 -13
  553. data/spec/lib/puppet_spec/settings.rb +0 -39
  554. data/spec/lib/puppet_spec/ssl.rb +0 -265
  555. data/spec/lib/puppet_spec/unindent.rb +0 -5
  556. data/spec/lib/puppet_spec/verbose.rb +0 -9
  557. data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -21
  558. data/spec/shared_behaviours/an_indirector_face.rb +0 -6
  559. data/spec/shared_behaviours/documentation_on_faces.rb +0 -261
  560. data/spec/shared_behaviours/file_server_terminus.rb +0 -38
  561. data/spec/shared_behaviours/file_serving.rb +0 -73
  562. data/spec/shared_behaviours/hiera_indirections.rb +0 -98
  563. data/spec/shared_behaviours/iterative_functions.rb +0 -68
  564. data/spec/shared_behaviours/memory_terminus.rb +0 -28
  565. data/spec/shared_behaviours/path_parameters.rb +0 -160
  566. data/spec/shared_behaviours/store_configs_terminus.rb +0 -21
  567. data/spec/shared_behaviours/things_that_declare_options.rb +0 -262
  568. data/spec/shared_contexts/checksum.rb +0 -65
  569. data/spec/shared_contexts/digests.rb +0 -100
  570. data/spec/shared_contexts/https.rb +0 -29
  571. data/spec/shared_contexts/l10n.rb +0 -32
  572. data/spec/shared_contexts/provider.rb +0 -16
  573. data/spec/shared_contexts/types_setup.rb +0 -204
  574. data/spec/shared_examples/rhel_package_provider.rb +0 -398
  575. data/spec/spec_helper.rb +0 -240
  576. data/spec/unit/agent/disabler_spec.rb +0 -63
  577. data/spec/unit/agent/locker_spec.rb +0 -99
  578. data/spec/unit/agent_spec.rb +0 -423
  579. data/spec/unit/application/agent_spec.rb +0 -640
  580. data/spec/unit/application/apply_spec.rb +0 -559
  581. data/spec/unit/application/config_spec.rb +0 -232
  582. data/spec/unit/application/describe_spec.rb +0 -135
  583. data/spec/unit/application/device_spec.rb +0 -616
  584. data/spec/unit/application/doc_spec.rb +0 -333
  585. data/spec/unit/application/face_base_spec.rb +0 -454
  586. data/spec/unit/application/facts_spec.rb +0 -139
  587. data/spec/unit/application/filebucket_spec.rb +0 -319
  588. data/spec/unit/application/indirection_base_spec.rb +0 -50
  589. data/spec/unit/application/lookup_spec.rb +0 -691
  590. data/spec/unit/application/resource_spec.rb +0 -220
  591. data/spec/unit/application/ssl_spec.rb +0 -507
  592. data/spec/unit/application_spec.rb +0 -730
  593. data/spec/unit/certificate_factory_spec.rb +0 -170
  594. data/spec/unit/concurrent/lock_spec.rb +0 -29
  595. data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
  596. data/spec/unit/configurer/downloader_spec.rb +0 -252
  597. data/spec/unit/configurer/fact_handler_spec.rb +0 -147
  598. data/spec/unit/configurer/plugin_handler_spec.rb +0 -152
  599. data/spec/unit/configurer_spec.rb +0 -1488
  600. data/spec/unit/confine/exists_spec.rb +0 -82
  601. data/spec/unit/confine/false_spec.rb +0 -78
  602. data/spec/unit/confine/feature_spec.rb +0 -59
  603. data/spec/unit/confine/true_spec.rb +0 -78
  604. data/spec/unit/confine/variable_spec.rb +0 -105
  605. data/spec/unit/confine_collection_spec.rb +0 -132
  606. data/spec/unit/confine_spec.rb +0 -99
  607. data/spec/unit/confiner_spec.rb +0 -61
  608. data/spec/unit/context/trusted_information_spec.rb +0 -213
  609. data/spec/unit/context_spec.rb +0 -217
  610. data/spec/unit/daemon_spec.rb +0 -193
  611. data/spec/unit/data_binding_spec.rb +0 -11
  612. data/spec/unit/data_providers/function_data_provider_spec.rb +0 -122
  613. data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -360
  614. data/spec/unit/datatypes_spec.rb +0 -352
  615. data/spec/unit/defaults_spec.rb +0 -174
  616. data/spec/unit/environments_spec.rb +0 -1186
  617. data/spec/unit/etc_spec.rb +0 -465
  618. data/spec/unit/external/pson_spec.rb +0 -60
  619. data/spec/unit/face/config_spec.rb +0 -402
  620. data/spec/unit/face/epp_face_spec.rb +0 -385
  621. data/spec/unit/face/facts_spec.rb +0 -78
  622. data/spec/unit/face/generate_spec.rb +0 -293
  623. data/spec/unit/face/help_spec.rb +0 -208
  624. data/spec/unit/face/module/install_spec.rb +0 -40
  625. data/spec/unit/face/module/list_spec.rb +0 -256
  626. data/spec/unit/face/module/uninstall_spec.rb +0 -45
  627. data/spec/unit/face/module/upgrade_spec.rb +0 -26
  628. data/spec/unit/face/node_spec.rb +0 -129
  629. data/spec/unit/face/parser_spec.rb +0 -310
  630. data/spec/unit/face/plugin_spec.rb +0 -158
  631. data/spec/unit/face_spec.rb +0 -1
  632. data/spec/unit/facter_impl_spec.rb +0 -31
  633. data/spec/unit/file_bucket/dipper_spec.rb +0 -405
  634. data/spec/unit/file_bucket/file_spec.rb +0 -58
  635. data/spec/unit/file_serving/base_spec.rb +0 -164
  636. data/spec/unit/file_serving/configuration/parser_spec.rb +0 -206
  637. data/spec/unit/file_serving/configuration_spec.rb +0 -240
  638. data/spec/unit/file_serving/content_spec.rb +0 -98
  639. data/spec/unit/file_serving/fileset_spec.rb +0 -417
  640. data/spec/unit/file_serving/http_metadata_spec.rb +0 -109
  641. data/spec/unit/file_serving/metadata_spec.rb +0 -551
  642. data/spec/unit/file_serving/mount/file_spec.rb +0 -188
  643. data/spec/unit/file_serving/mount/locales_spec.rb +0 -72
  644. data/spec/unit/file_serving/mount/modules_spec.rb +0 -69
  645. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -72
  646. data/spec/unit/file_serving/mount/plugins_spec.rb +0 -72
  647. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  648. data/spec/unit/file_serving/mount/tasks_spec.rb +0 -71
  649. data/spec/unit/file_serving/mount_spec.rb +0 -30
  650. data/spec/unit/file_serving/terminus_helper_spec.rb +0 -114
  651. data/spec/unit/file_serving/terminus_selector_spec.rb +0 -84
  652. data/spec/unit/file_system/path_pattern_spec.rb +0 -153
  653. data/spec/unit/file_system/uniquefile_spec.rb +0 -245
  654. data/spec/unit/file_system_spec.rb +0 -1198
  655. data/spec/unit/forge/errors_spec.rb +0 -80
  656. data/spec/unit/forge/forge_spec.rb +0 -69
  657. data/spec/unit/forge/module_release_spec.rb +0 -331
  658. data/spec/unit/forge/repository_spec.rb +0 -154
  659. data/spec/unit/forge_spec.rb +0 -210
  660. data/spec/unit/functions/abs_spec.rb +0 -70
  661. data/spec/unit/functions/all_spec.rb +0 -97
  662. data/spec/unit/functions/annotate_spec.rb +0 -175
  663. data/spec/unit/functions/any_spec.rb +0 -109
  664. data/spec/unit/functions/assert_type_spec.rb +0 -97
  665. data/spec/unit/functions/binary_file_spec.rb +0 -46
  666. data/spec/unit/functions/break_spec.rb +0 -207
  667. data/spec/unit/functions/call_spec.rb +0 -131
  668. data/spec/unit/functions/camelcase_spec.rb +0 -34
  669. data/spec/unit/functions/capitalize_spec.rb +0 -34
  670. data/spec/unit/functions/ceiling_spec.rb +0 -65
  671. data/spec/unit/functions/chomp_spec.rb +0 -46
  672. data/spec/unit/functions/chop_spec.rb +0 -38
  673. data/spec/unit/functions/compare_spec.rb +0 -147
  674. data/spec/unit/functions/contain_spec.rb +0 -297
  675. data/spec/unit/functions/convert_to_spec.rb +0 -25
  676. data/spec/unit/functions/defined_spec.rb +0 -288
  677. data/spec/unit/functions/dig_spec.rb +0 -58
  678. data/spec/unit/functions/downcase_spec.rb +0 -34
  679. data/spec/unit/functions/each_spec.rb +0 -107
  680. data/spec/unit/functions/empty_spec.rb +0 -87
  681. data/spec/unit/functions/epp_spec.rb +0 -172
  682. data/spec/unit/functions/filter_spec.rb +0 -145
  683. data/spec/unit/functions/find_file_spec.rb +0 -69
  684. data/spec/unit/functions/find_template_spec.rb +0 -69
  685. data/spec/unit/functions/flatten_spec.rb +0 -31
  686. data/spec/unit/functions/floor_spec.rb +0 -65
  687. data/spec/unit/functions/get_spec.rb +0 -135
  688. data/spec/unit/functions/getvar_spec.rb +0 -121
  689. data/spec/unit/functions/group_by_spec.rb +0 -40
  690. data/spec/unit/functions/hiera_spec.rb +0 -495
  691. data/spec/unit/functions/include_spec.rb +0 -186
  692. data/spec/unit/functions/index_spec.rb +0 -184
  693. data/spec/unit/functions/inline_epp_spec.rb +0 -114
  694. data/spec/unit/functions/join_spec.rb +0 -33
  695. data/spec/unit/functions/keys_spec.rb +0 -31
  696. data/spec/unit/functions/length_spec.rb +0 -50
  697. data/spec/unit/functions/lest_spec.rb +0 -34
  698. data/spec/unit/functions/logging_spec.rb +0 -62
  699. data/spec/unit/functions/lookup_fixture_spec.rb +0 -687
  700. data/spec/unit/functions/lookup_spec.rb +0 -3425
  701. data/spec/unit/functions/lstrip_spec.rb +0 -30
  702. data/spec/unit/functions/map_spec.rb +0 -163
  703. data/spec/unit/functions/match_spec.rb +0 -74
  704. data/spec/unit/functions/max_spec.rb +0 -129
  705. data/spec/unit/functions/min_spec.rb +0 -129
  706. data/spec/unit/functions/module_directory_spec.rb +0 -43
  707. data/spec/unit/functions/new_spec.rb +0 -776
  708. data/spec/unit/functions/next_spec.rb +0 -93
  709. data/spec/unit/functions/partition_spec.rb +0 -40
  710. data/spec/unit/functions/reduce_spec.rb +0 -85
  711. data/spec/unit/functions/regsubst_spec.rb +0 -114
  712. data/spec/unit/functions/require_spec.rb +0 -82
  713. data/spec/unit/functions/return_spec.rb +0 -105
  714. data/spec/unit/functions/reverse_each_spec.rb +0 -108
  715. data/spec/unit/functions/round_spec.rb +0 -41
  716. data/spec/unit/functions/rstrip_spec.rb +0 -30
  717. data/spec/unit/functions/scanf_spec.rb +0 -32
  718. data/spec/unit/functions/shared.rb +0 -94
  719. data/spec/unit/functions/size_spec.rb +0 -50
  720. data/spec/unit/functions/slice_spec.rb +0 -136
  721. data/spec/unit/functions/sort_spec.rb +0 -79
  722. data/spec/unit/functions/split_spec.rb +0 -59
  723. data/spec/unit/functions/step_spec.rb +0 -113
  724. data/spec/unit/functions/strftime_spec.rb +0 -152
  725. data/spec/unit/functions/strip_spec.rb +0 -30
  726. data/spec/unit/functions/then_spec.rb +0 -40
  727. data/spec/unit/functions/tree_each_spec.rb +0 -493
  728. data/spec/unit/functions/type_spec.rb +0 -35
  729. data/spec/unit/functions/unique_spec.rb +0 -111
  730. data/spec/unit/functions/unwrap_spec.rb +0 -37
  731. data/spec/unit/functions/upcase_spec.rb +0 -34
  732. data/spec/unit/functions/values_spec.rb +0 -30
  733. data/spec/unit/functions/versioncmp_spec.rb +0 -70
  734. data/spec/unit/functions/with_spec.rb +0 -31
  735. data/spec/unit/functions4_spec.rb +0 -1046
  736. data/spec/unit/gettext/config_spec.rb +0 -156
  737. data/spec/unit/gettext/module_loading_spec.rb +0 -53
  738. data/spec/unit/graph/key_spec.rb +0 -41
  739. data/spec/unit/graph/rb_tree_map_spec.rb +0 -570
  740. data/spec/unit/graph/relationship_graph_spec.rb +0 -401
  741. data/spec/unit/graph/sequential_prioritizer_spec.rb +0 -32
  742. data/spec/unit/graph/simple_graph_spec.rb +0 -759
  743. data/spec/unit/hiera/scope_spec.rb +0 -100
  744. data/spec/unit/hiera_puppet_spec.rb +0 -159
  745. data/spec/unit/http/client_spec.rb +0 -937
  746. data/spec/unit/http/dns_spec.rb +0 -281
  747. data/spec/unit/http/external_client_spec.rb +0 -201
  748. data/spec/unit/http/factory_spec.rb +0 -160
  749. data/spec/unit/http/pool_entry_spec.rb +0 -49
  750. data/spec/unit/http/pool_spec.rb +0 -401
  751. data/spec/unit/http/proxy_spec.rb +0 -347
  752. data/spec/unit/http/resolver_spec.rb +0 -133
  753. data/spec/unit/http/response_spec.rb +0 -75
  754. data/spec/unit/http/service/ca_spec.rb +0 -198
  755. data/spec/unit/http/service/compiler_spec.rb +0 -744
  756. data/spec/unit/http/service/file_server_spec.rb +0 -307
  757. data/spec/unit/http/service/puppetserver_spec.rb +0 -112
  758. data/spec/unit/http/service/report_spec.rb +0 -117
  759. data/spec/unit/http/service_spec.rb +0 -143
  760. data/spec/unit/http/session_spec.rb +0 -309
  761. data/spec/unit/http/site_spec.rb +0 -96
  762. data/spec/unit/indirector/catalog/compiler_spec.rb +0 -1237
  763. data/spec/unit/indirector/catalog/json_spec.rb +0 -66
  764. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -11
  765. data/spec/unit/indirector/catalog/rest_spec.rb +0 -91
  766. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -16
  767. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -23
  768. data/spec/unit/indirector/data_binding/hiera_spec.rb +0 -19
  769. data/spec/unit/indirector/data_binding/none_spec.rb +0 -28
  770. data/spec/unit/indirector/direct_file_server_spec.rb +0 -87
  771. data/spec/unit/indirector/envelope_spec.rb +0 -32
  772. data/spec/unit/indirector/exec_spec.rb +0 -63
  773. data/spec/unit/indirector/face_spec.rb +0 -82
  774. data/spec/unit/indirector/facts/facter_spec.rb +0 -290
  775. data/spec/unit/indirector/facts/json_spec.rb +0 -255
  776. data/spec/unit/indirector/facts/network_device_spec.rb +0 -77
  777. data/spec/unit/indirector/facts/rest_spec.rb +0 -99
  778. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -16
  779. data/spec/unit/indirector/facts/yaml_spec.rb +0 -255
  780. data/spec/unit/indirector/file_bucket_file/file_spec.rb +0 -426
  781. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -89
  782. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +0 -46
  783. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -13
  784. data/spec/unit/indirector/file_content/file_spec.rb +0 -13
  785. data/spec/unit/indirector/file_content/rest_spec.rb +0 -60
  786. data/spec/unit/indirector/file_content/selector_spec.rb +0 -9
  787. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -13
  788. data/spec/unit/indirector/file_metadata/file_spec.rb +0 -57
  789. data/spec/unit/indirector/file_metadata/http_spec.rb +0 -194
  790. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -116
  791. data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -10
  792. data/spec/unit/indirector/file_server_spec.rb +0 -288
  793. data/spec/unit/indirector/hiera_spec.rb +0 -17
  794. data/spec/unit/indirector/indirection_spec.rb +0 -916
  795. data/spec/unit/indirector/json_spec.rb +0 -200
  796. data/spec/unit/indirector/memory_spec.rb +0 -26
  797. data/spec/unit/indirector/msgpack_spec.rb +0 -199
  798. data/spec/unit/indirector/node/exec_spec.rb +0 -107
  799. data/spec/unit/indirector/node/json_spec.rb +0 -33
  800. data/spec/unit/indirector/node/memory_spec.rb +0 -16
  801. data/spec/unit/indirector/node/msgpack_spec.rb +0 -23
  802. data/spec/unit/indirector/node/plain_spec.rb +0 -34
  803. data/spec/unit/indirector/node/rest_spec.rb +0 -66
  804. data/spec/unit/indirector/node/store_configs_spec.rb +0 -16
  805. data/spec/unit/indirector/node/yaml_spec.rb +0 -23
  806. data/spec/unit/indirector/none_spec.rb +0 -33
  807. data/spec/unit/indirector/plain_spec.rb +0 -26
  808. data/spec/unit/indirector/report/json_spec.rb +0 -72
  809. data/spec/unit/indirector/report/msgpack_spec.rb +0 -27
  810. data/spec/unit/indirector/report/processor_spec.rb +0 -99
  811. data/spec/unit/indirector/report/rest_spec.rb +0 -84
  812. data/spec/unit/indirector/report/yaml_spec.rb +0 -91
  813. data/spec/unit/indirector/request_spec.rb +0 -295
  814. data/spec/unit/indirector/resource/ral_spec.rb +0 -89
  815. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -20
  816. data/spec/unit/indirector/rest_spec.rb +0 -149
  817. data/spec/unit/indirector/terminus_spec.rb +0 -264
  818. data/spec/unit/indirector/yaml_spec.rb +0 -188
  819. data/spec/unit/indirector_spec.rb +0 -148
  820. data/spec/unit/info_service_spec.rb +0 -575
  821. data/spec/unit/interface/action_builder_spec.rb +0 -216
  822. data/spec/unit/interface/action_manager_spec.rb +0 -254
  823. data/spec/unit/interface/action_spec.rb +0 -670
  824. data/spec/unit/interface/documentation_spec.rb +0 -32
  825. data/spec/unit/interface/face_collection_spec.rb +0 -219
  826. data/spec/unit/interface/option_builder_spec.rb +0 -86
  827. data/spec/unit/interface/option_spec.rb +0 -156
  828. data/spec/unit/interface_spec.rb +0 -305
  829. data/spec/unit/module_spec.rb +0 -989
  830. data/spec/unit/module_tool/application_spec.rb +0 -25
  831. data/spec/unit/module_tool/applications/checksummer_spec.rb +0 -115
  832. data/spec/unit/module_tool/applications/installer_spec.rb +0 -473
  833. data/spec/unit/module_tool/applications/uninstaller_spec.rb +0 -181
  834. data/spec/unit/module_tool/applications/unpacker_spec.rb +0 -75
  835. data/spec/unit/module_tool/applications/upgrader_spec.rb +0 -337
  836. data/spec/unit/module_tool/install_directory_spec.rb +0 -70
  837. data/spec/unit/module_tool/installed_modules_spec.rb +0 -49
  838. data/spec/unit/module_tool/metadata_spec.rb +0 -330
  839. data/spec/unit/module_tool/tar/gnu_spec.rb +0 -23
  840. data/spec/unit/module_tool/tar/mini_spec.rb +0 -109
  841. data/spec/unit/module_tool/tar_spec.rb +0 -36
  842. data/spec/unit/module_tool_spec.rb +0 -304
  843. data/spec/unit/network/authconfig_spec.rb +0 -8
  844. data/spec/unit/network/authorization_spec.rb +0 -8
  845. data/spec/unit/network/format_handler_spec.rb +0 -93
  846. data/spec/unit/network/format_spec.rb +0 -205
  847. data/spec/unit/network/format_support_spec.rb +0 -199
  848. data/spec/unit/network/formats_spec.rb +0 -584
  849. data/spec/unit/network/http/api/indirected_routes_spec.rb +0 -425
  850. data/spec/unit/network/http/api/master_spec.rb +0 -38
  851. data/spec/unit/network/http/api/server/v3/environments_spec.rb +0 -51
  852. data/spec/unit/network/http/api/server/v3_spec.rb +0 -78
  853. data/spec/unit/network/http/api_spec.rb +0 -109
  854. data/spec/unit/network/http/connection_spec.rb +0 -636
  855. data/spec/unit/network/http/error_spec.rb +0 -30
  856. data/spec/unit/network/http/handler_spec.rb +0 -164
  857. data/spec/unit/network/http/request_spec.rb +0 -108
  858. data/spec/unit/network/http/response_spec.rb +0 -106
  859. data/spec/unit/network/http/route_spec.rb +0 -90
  860. data/spec/unit/network/http_pool_spec.rb +0 -145
  861. data/spec/unit/network/uri_spec.rb +0 -47
  862. data/spec/unit/node/environment_spec.rb +0 -612
  863. data/spec/unit/node/facts_spec.rb +0 -225
  864. data/spec/unit/node_spec.rb +0 -434
  865. data/spec/unit/other/selinux_spec.rb +0 -27
  866. data/spec/unit/parameter/boolean_spec.rb +0 -35
  867. data/spec/unit/parameter/package_options_spec.rb +0 -43
  868. data/spec/unit/parameter/path_spec.rb +0 -23
  869. data/spec/unit/parameter/value_collection_spec.rb +0 -160
  870. data/spec/unit/parameter/value_spec.rb +0 -82
  871. data/spec/unit/parameter_spec.rb +0 -272
  872. data/spec/unit/parser/ast/block_expression_spec.rb +0 -66
  873. data/spec/unit/parser/ast/leaf_spec.rb +0 -136
  874. data/spec/unit/parser/compiler_spec.rb +0 -1020
  875. data/spec/unit/parser/files_spec.rb +0 -101
  876. data/spec/unit/parser/functions/create_resources_spec.rb +0 -326
  877. data/spec/unit/parser/functions/digest_spec.rb +0 -26
  878. data/spec/unit/parser/functions/fail_spec.rb +0 -23
  879. data/spec/unit/parser/functions/file_spec.rb +0 -99
  880. data/spec/unit/parser/functions/fqdn_rand_spec.rb +0 -87
  881. data/spec/unit/parser/functions/generate_spec.rb +0 -124
  882. data/spec/unit/parser/functions/hiera_array_spec.rb +0 -12
  883. data/spec/unit/parser/functions/hiera_hash_spec.rb +0 -12
  884. data/spec/unit/parser/functions/hiera_include_spec.rb +0 -12
  885. data/spec/unit/parser/functions/hiera_spec.rb +0 -12
  886. data/spec/unit/parser/functions/inline_template_spec.rb +0 -36
  887. data/spec/unit/parser/functions/lookup_spec.rb +0 -14
  888. data/spec/unit/parser/functions/realize_spec.rb +0 -70
  889. data/spec/unit/parser/functions/regsubst_spec.rb +0 -19
  890. data/spec/unit/parser/functions/scanf_spec.rb +0 -25
  891. data/spec/unit/parser/functions/shellquote_spec.rb +0 -66
  892. data/spec/unit/parser/functions/split_spec.rb +0 -13
  893. data/spec/unit/parser/functions/sprintf_spec.rb +0 -68
  894. data/spec/unit/parser/functions/tag_spec.rb +0 -30
  895. data/spec/unit/parser/functions/tagged_spec.rb +0 -36
  896. data/spec/unit/parser/functions/template_spec.rb +0 -93
  897. data/spec/unit/parser/functions/versioncmp_spec.rb +0 -28
  898. data/spec/unit/parser/functions_spec.rb +0 -156
  899. data/spec/unit/parser/relationship_spec.rb +0 -74
  900. data/spec/unit/parser/resource/param_spec.rb +0 -32
  901. data/spec/unit/parser/resource_spec.rb +0 -657
  902. data/spec/unit/parser/scope_spec.rb +0 -694
  903. data/spec/unit/parser/templatewrapper_spec.rb +0 -111
  904. data/spec/unit/parser/type_loader_spec.rb +0 -202
  905. data/spec/unit/plan_spec.rb +0 -65
  906. data/spec/unit/pops/adaptable_spec.rb +0 -139
  907. data/spec/unit/pops/benchmark_spec.rb +0 -123
  908. data/spec/unit/pops/containment_spec.rb +0 -0
  909. data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -560
  910. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -309
  911. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -101
  912. data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -108
  913. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -267
  914. data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -189
  915. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -46
  916. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +0 -1634
  917. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +0 -75
  918. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +0 -63
  919. data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +0 -43
  920. data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -89
  921. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -181
  922. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -43
  923. data/spec/unit/pops/evaluator/variables_spec.rb +0 -88
  924. data/spec/unit/pops/factory_rspec_helper.rb +0 -65
  925. data/spec/unit/pops/factory_spec.rb +0 -309
  926. data/spec/unit/pops/issues_spec.rb +0 -210
  927. data/spec/unit/pops/label_provider_spec.rb +0 -46
  928. data/spec/unit/pops/loaders/dependency_loader_spec.rb +0 -122
  929. data/spec/unit/pops/loaders/environment_loader_spec.rb +0 -172
  930. data/spec/unit/pops/loaders/loader_paths_spec.rb +0 -43
  931. data/spec/unit/pops/loaders/loader_spec.rb +0 -516
  932. data/spec/unit/pops/loaders/loaders_spec.rb +0 -863
  933. data/spec/unit/pops/loaders/module_loaders_spec.rb +0 -268
  934. data/spec/unit/pops/loaders/static_loader_spec.rb +0 -85
  935. data/spec/unit/pops/lookup/context_spec.rb +0 -333
  936. data/spec/unit/pops/lookup/interpolation_spec.rb +0 -377
  937. data/spec/unit/pops/lookup/lookup_spec.rb +0 -375
  938. data/spec/unit/pops/merge_strategy_spec.rb +0 -17
  939. data/spec/unit/pops/migration_spec.rb +0 -51
  940. data/spec/unit/pops/model/model_spec.rb +0 -41
  941. data/spec/unit/pops/model/pn_transformer_spec.rb +0 -56
  942. data/spec/unit/pops/parser/epp_parser_spec.rb +0 -115
  943. data/spec/unit/pops/parser/evaluating_parser_spec.rb +0 -89
  944. data/spec/unit/pops/parser/lexer2_spec.rb +0 -942
  945. data/spec/unit/pops/parser/locator_spec.rb +0 -86
  946. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -380
  947. data/spec/unit/pops/parser/parse_calls_spec.rb +0 -171
  948. data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -184
  949. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -247
  950. data/spec/unit/pops/parser/parse_functions_spec.rb +0 -19
  951. data/spec/unit/pops/parser/parse_heredoc_spec.rb +0 -276
  952. data/spec/unit/pops/parser/parse_lambda_spec.rb +0 -19
  953. data/spec/unit/pops/parser/parse_plan_spec.rb +0 -47
  954. data/spec/unit/pops/parser/parse_resource_spec.rb +0 -328
  955. data/spec/unit/pops/parser/parser_rspec_helper.rb +0 -17
  956. data/spec/unit/pops/parser/parser_spec.rb +0 -211
  957. data/spec/unit/pops/parser/parsing_typed_parameters_spec.rb +0 -65
  958. data/spec/unit/pops/parser/pn_parser_spec.rb +0 -100
  959. data/spec/unit/pops/pn_spec.rb +0 -147
  960. data/spec/unit/pops/puppet_stack_spec.rb +0 -108
  961. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -37
  962. data/spec/unit/pops/serialization/packer_spec.rb +0 -162
  963. data/spec/unit/pops/serialization/serialization_spec.rb +0 -458
  964. data/spec/unit/pops/serialization/to_from_hr_spec.rb +0 -637
  965. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -162
  966. data/spec/unit/pops/time/timespan_spec.rb +0 -121
  967. data/spec/unit/pops/time/timestamp_spec.rb +0 -13
  968. data/spec/unit/pops/types/class_loader_spec.rb +0 -10
  969. data/spec/unit/pops/types/deferred_spec.rb +0 -87
  970. data/spec/unit/pops/types/error_spec.rb +0 -207
  971. data/spec/unit/pops/types/iterable_spec.rb +0 -262
  972. data/spec/unit/pops/types/p_binary_type_spec.rb +0 -243
  973. data/spec/unit/pops/types/p_init_type_spec.rb +0 -383
  974. data/spec/unit/pops/types/p_object_type_spec.rb +0 -1730
  975. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -340
  976. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -191
  977. data/spec/unit/pops/types/p_timespan_type_spec.rb +0 -323
  978. data/spec/unit/pops/types/p_timestamp_type_spec.rb +0 -391
  979. data/spec/unit/pops/types/p_type_set_type_spec.rb +0 -549
  980. data/spec/unit/pops/types/p_uri_type_spec.rb +0 -191
  981. data/spec/unit/pops/types/recursion_guard_spec.rb +0 -93
  982. data/spec/unit/pops/types/ruby_generator_spec.rb +0 -874
  983. data/spec/unit/pops/types/string_converter_spec.rb +0 -1202
  984. data/spec/unit/pops/types/task_spec.rb +0 -411
  985. data/spec/unit/pops/types/type_acceptor_spec.rb +0 -106
  986. data/spec/unit/pops/types/type_asserter_spec.rb +0 -43
  987. data/spec/unit/pops/types/type_calculator_spec.rb +0 -2504
  988. data/spec/unit/pops/types/type_factory_spec.rb +0 -322
  989. data/spec/unit/pops/types/type_formatter_spec.rb +0 -427
  990. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -424
  991. data/spec/unit/pops/types/type_parser_spec.rb +0 -445
  992. data/spec/unit/pops/types/types_spec.rb +0 -755
  993. data/spec/unit/pops/utils_spec.rb +0 -70
  994. data/spec/unit/pops/validation_spec.rb +0 -66
  995. data/spec/unit/pops/validator/validator_spec.rb +0 -1030
  996. data/spec/unit/pops/visitor_spec.rb +0 -93
  997. data/spec/unit/property/boolean_spec.rb +0 -24
  998. data/spec/unit/property/ensure_spec.rb +0 -11
  999. data/spec/unit/property/keyvalue_spec.rb +0 -259
  1000. data/spec/unit/property/list_spec.rb +0 -172
  1001. data/spec/unit/property/ordered_list_spec.rb +0 -59
  1002. data/spec/unit/property_spec.rb +0 -563
  1003. data/spec/unit/provider/README.markdown +0 -4
  1004. data/spec/unit/provider/aix_object_spec.rb +0 -821
  1005. data/spec/unit/provider/command_spec.rb +0 -62
  1006. data/spec/unit/provider/exec/posix_spec.rb +0 -232
  1007. data/spec/unit/provider/exec/shell_spec.rb +0 -53
  1008. data/spec/unit/provider/exec/windows_spec.rb +0 -105
  1009. data/spec/unit/provider/exec_spec.rb +0 -244
  1010. data/spec/unit/provider/file/posix_spec.rb +0 -230
  1011. data/spec/unit/provider/file/windows_spec.rb +0 -152
  1012. data/spec/unit/provider/group/aix_spec.rb +0 -91
  1013. data/spec/unit/provider/group/directoryservice_spec.rb +0 -33
  1014. data/spec/unit/provider/group/groupadd_spec.rb +0 -284
  1015. data/spec/unit/provider/group/ldap_spec.rb +0 -98
  1016. data/spec/unit/provider/group/pw_spec.rb +0 -78
  1017. data/spec/unit/provider/group/windows_adsi_spec.rb +0 -398
  1018. data/spec/unit/provider/ldap_spec.rb +0 -242
  1019. data/spec/unit/provider/nameservice/directoryservice_spec.rb +0 -157
  1020. data/spec/unit/provider/nameservice_spec.rb +0 -398
  1021. data/spec/unit/provider/package/aix_spec.rb +0 -158
  1022. data/spec/unit/provider/package/appdmg_spec.rb +0 -42
  1023. data/spec/unit/provider/package/apt_spec.rb +0 -302
  1024. data/spec/unit/provider/package/aptitude_spec.rb +0 -46
  1025. data/spec/unit/provider/package/aptrpm_spec.rb +0 -42
  1026. data/spec/unit/provider/package/base_spec.rb +0 -19
  1027. data/spec/unit/provider/package/dnf_spec.rb +0 -62
  1028. data/spec/unit/provider/package/dnfmodule_spec.rb +0 -276
  1029. data/spec/unit/provider/package/dpkg_spec.rb +0 -444
  1030. data/spec/unit/provider/package/freebsd_spec.rb +0 -51
  1031. data/spec/unit/provider/package/gem_spec.rb +0 -487
  1032. data/spec/unit/provider/package/hpux_spec.rb +0 -48
  1033. data/spec/unit/provider/package/macports_spec.rb +0 -142
  1034. data/spec/unit/provider/package/nim_spec.rb +0 -267
  1035. data/spec/unit/provider/package/openbsd_spec.rb +0 -417
  1036. data/spec/unit/provider/package/opkg_spec.rb +0 -180
  1037. data/spec/unit/provider/package/pacman_spec.rb +0 -438
  1038. data/spec/unit/provider/package/pip2_spec.rb +0 -38
  1039. data/spec/unit/provider/package/pip3_spec.rb +0 -38
  1040. data/spec/unit/provider/package/pip_spec.rb +0 -504
  1041. data/spec/unit/provider/package/pkg_spec.rb +0 -473
  1042. data/spec/unit/provider/package/pkgdmg_spec.rb +0 -166
  1043. data/spec/unit/provider/package/pkgin_spec.rb +0 -185
  1044. data/spec/unit/provider/package/pkgng_spec.rb +0 -228
  1045. data/spec/unit/provider/package/pkgutil_spec.rb +0 -231
  1046. data/spec/unit/provider/package/portage_spec.rb +0 -226
  1047. data/spec/unit/provider/package/puppet_gem_spec.rb +0 -130
  1048. data/spec/unit/provider/package/puppetserver_gem_spec.rb +0 -139
  1049. data/spec/unit/provider/package/rpm_spec.rb +0 -674
  1050. data/spec/unit/provider/package/sun_spec.rb +0 -112
  1051. data/spec/unit/provider/package/tdnf_spec.rb +0 -15
  1052. data/spec/unit/provider/package/up2date_spec.rb +0 -22
  1053. data/spec/unit/provider/package/urpmi_spec.rb +0 -84
  1054. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -114
  1055. data/spec/unit/provider/package/windows/msi_package_spec.rb +0 -111
  1056. data/spec/unit/provider/package/windows/package_spec.rb +0 -180
  1057. data/spec/unit/provider/package/windows_spec.rb +0 -272
  1058. data/spec/unit/provider/package/yum_spec.rb +0 -512
  1059. data/spec/unit/provider/package/zypper_spec.rb +0 -327
  1060. data/spec/unit/provider/package_targetable_spec.rb +0 -60
  1061. data/spec/unit/provider/parsedfile_spec.rb +0 -263
  1062. data/spec/unit/provider/service/base_spec.rb +0 -109
  1063. data/spec/unit/provider/service/bsd_spec.rb +0 -127
  1064. data/spec/unit/provider/service/daemontools_spec.rb +0 -190
  1065. data/spec/unit/provider/service/debian_spec.rb +0 -158
  1066. data/spec/unit/provider/service/freebsd_spec.rb +0 -92
  1067. data/spec/unit/provider/service/gentoo_spec.rb +0 -250
  1068. data/spec/unit/provider/service/init_spec.rb +0 -316
  1069. data/spec/unit/provider/service/launchd_spec.rb +0 -425
  1070. data/spec/unit/provider/service/openbsd_spec.rb +0 -196
  1071. data/spec/unit/provider/service/openrc_spec.rb +0 -231
  1072. data/spec/unit/provider/service/openwrt_spec.rb +0 -101
  1073. data/spec/unit/provider/service/rcng_spec.rb +0 -40
  1074. data/spec/unit/provider/service/redhat_spec.rb +0 -190
  1075. data/spec/unit/provider/service/runit_spec.rb +0 -164
  1076. data/spec/unit/provider/service/smf_spec.rb +0 -526
  1077. data/spec/unit/provider/service/src_spec.rb +0 -186
  1078. data/spec/unit/provider/service/systemd_spec.rb +0 -578
  1079. data/spec/unit/provider/service/upstart_spec.rb +0 -681
  1080. data/spec/unit/provider/service/windows_spec.rb +0 -475
  1081. data/spec/unit/provider/user/aix_spec.rb +0 -320
  1082. data/spec/unit/provider/user/directoryservice_spec.rb +0 -1256
  1083. data/spec/unit/provider/user/hpux_spec.rb +0 -72
  1084. data/spec/unit/provider/user/ldap_spec.rb +0 -286
  1085. data/spec/unit/provider/user/openbsd_spec.rb +0 -76
  1086. data/spec/unit/provider/user/pw_spec.rb +0 -252
  1087. data/spec/unit/provider/user/user_role_add_spec.rb +0 -374
  1088. data/spec/unit/provider/user/useradd_spec.rb +0 -849
  1089. data/spec/unit/provider/user/windows_adsi_spec.rb +0 -407
  1090. data/spec/unit/provider_spec.rb +0 -904
  1091. data/spec/unit/puppet_pal_2pec.rb +0 -1033
  1092. data/spec/unit/puppet_pal_catalog_spec.rb +0 -962
  1093. data/spec/unit/puppet_pal_spec.rb +0 -3
  1094. data/spec/unit/puppet_spec.rb +0 -127
  1095. data/spec/unit/relationship_spec.rb +0 -202
  1096. data/spec/unit/reports/http_spec.rb +0 -119
  1097. data/spec/unit/reports/store_spec.rb +0 -67
  1098. data/spec/unit/reports_spec.rb +0 -68
  1099. data/spec/unit/resource/catalog_spec.rb +0 -1151
  1100. data/spec/unit/resource/status_spec.rb +0 -216
  1101. data/spec/unit/resource/type_collection_spec.rb +0 -332
  1102. data/spec/unit/resource/type_spec.rb +0 -876
  1103. data/spec/unit/resource_spec.rb +0 -1189
  1104. data/spec/unit/scheduler/job_spec.rb +0 -78
  1105. data/spec/unit/scheduler/scheduler_spec.rb +0 -115
  1106. data/spec/unit/scheduler/splay_job_spec.rb +0 -34
  1107. data/spec/unit/settings/array_setting_spec.rb +0 -39
  1108. data/spec/unit/settings/autosign_setting_spec.rb +0 -104
  1109. data/spec/unit/settings/certificate_revocation_setting_spec.rb +0 -37
  1110. data/spec/unit/settings/config_file_spec.rb +0 -147
  1111. data/spec/unit/settings/directory_setting_spec.rb +0 -27
  1112. data/spec/unit/settings/duration_setting_spec.rb +0 -48
  1113. data/spec/unit/settings/enum_setting_spec.rb +0 -27
  1114. data/spec/unit/settings/environment_conf_spec.rb +0 -133
  1115. data/spec/unit/settings/file_setting_spec.rb +0 -344
  1116. data/spec/unit/settings/http_extra_headers_spec.rb +0 -62
  1117. data/spec/unit/settings/ini_file_spec.rb +0 -550
  1118. data/spec/unit/settings/integer_setting_spec.rb +0 -42
  1119. data/spec/unit/settings/path_setting_spec.rb +0 -29
  1120. data/spec/unit/settings/port_setting_spec.rb +0 -31
  1121. data/spec/unit/settings/priority_setting_spec.rb +0 -65
  1122. data/spec/unit/settings/server_list_setting_spec.rb +0 -21
  1123. data/spec/unit/settings/string_setting_spec.rb +0 -74
  1124. data/spec/unit/settings/terminus_setting_spec.rb +0 -27
  1125. data/spec/unit/settings/value_translator_spec.rb +0 -75
  1126. data/spec/unit/settings_spec.rb +0 -2343
  1127. data/spec/unit/ssl/base_spec.rb +0 -125
  1128. data/spec/unit/ssl/certificate_request_attributes_spec.rb +0 -80
  1129. data/spec/unit/ssl/certificate_request_spec.rb +0 -369
  1130. data/spec/unit/ssl/certificate_signer_spec.rb +0 -17
  1131. data/spec/unit/ssl/certificate_spec.rb +0 -183
  1132. data/spec/unit/ssl/digest_spec.rb +0 -34
  1133. data/spec/unit/ssl/oids_spec.rb +0 -73
  1134. data/spec/unit/ssl/ssl_provider_spec.rb +0 -632
  1135. data/spec/unit/ssl/state_machine_spec.rb +0 -982
  1136. data/spec/unit/ssl/verifier_spec.rb +0 -102
  1137. data/spec/unit/task_spec.rb +0 -345
  1138. data/spec/unit/test/test_helper_spec.rb +0 -17
  1139. data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -534
  1140. data/spec/unit/transaction/event_manager_spec.rb +0 -365
  1141. data/spec/unit/transaction/event_spec.rb +0 -198
  1142. data/spec/unit/transaction/persistence_spec.rb +0 -276
  1143. data/spec/unit/transaction/report_spec.rb +0 -740
  1144. data/spec/unit/transaction/resource_harness_spec.rb +0 -625
  1145. data/spec/unit/transaction_spec.rb +0 -1037
  1146. data/spec/unit/type/README.markdown +0 -4
  1147. data/spec/unit/type/component_spec.rb +0 -52
  1148. data/spec/unit/type/exec_spec.rb +0 -945
  1149. data/spec/unit/type/file/checksum_spec.rb +0 -104
  1150. data/spec/unit/type/file/checksum_value_spec.rb +0 -285
  1151. data/spec/unit/type/file/content_spec.rb +0 -440
  1152. data/spec/unit/type/file/ctime_spec.rb +0 -33
  1153. data/spec/unit/type/file/ensure_spec.rb +0 -121
  1154. data/spec/unit/type/file/group_spec.rb +0 -65
  1155. data/spec/unit/type/file/mode_spec.rb +0 -220
  1156. data/spec/unit/type/file/mtime_spec.rb +0 -33
  1157. data/spec/unit/type/file/owner_spec.rb +0 -63
  1158. data/spec/unit/type/file/selinux_spec.rb +0 -86
  1159. data/spec/unit/type/file/source_spec.rb +0 -730
  1160. data/spec/unit/type/file/type_spec.rb +0 -18
  1161. data/spec/unit/type/file_spec.rb +0 -1746
  1162. data/spec/unit/type/filebucket_spec.rb +0 -104
  1163. data/spec/unit/type/group_spec.rb +0 -105
  1164. data/spec/unit/type/noop_metaparam_spec.rb +0 -37
  1165. data/spec/unit/type/package/package_settings_spec.rb +0 -156
  1166. data/spec/unit/type/package_spec.rb +0 -396
  1167. data/spec/unit/type/resources_spec.rb +0 -362
  1168. data/spec/unit/type/schedule_spec.rb +0 -621
  1169. data/spec/unit/type/service_spec.rb +0 -458
  1170. data/spec/unit/type/stage_spec.rb +0 -7
  1171. data/spec/unit/type/tidy_spec.rb +0 -493
  1172. data/spec/unit/type/user_spec.rb +0 -553
  1173. data/spec/unit/type/whit_spec.rb +0 -9
  1174. data/spec/unit/type_spec.rb +0 -1473
  1175. data/spec/unit/util/at_fork_spec.rb +0 -150
  1176. data/spec/unit/util/autoload_spec.rb +0 -330
  1177. data/spec/unit/util/backups_spec.rb +0 -130
  1178. data/spec/unit/util/character_encoding_spec.rb +0 -186
  1179. data/spec/unit/util/checksums_spec.rb +0 -223
  1180. data/spec/unit/util/colors_spec.rb +0 -44
  1181. data/spec/unit/util/command_line_spec.rb +0 -200
  1182. data/spec/unit/util/command_line_utils/puppet_option_parser_spec.rb +0 -129
  1183. data/spec/unit/util/constant_inflector_spec.rb +0 -55
  1184. data/spec/unit/util/diff_spec.rb +0 -46
  1185. data/spec/unit/util/docs_spec.rb +0 -100
  1186. data/spec/unit/util/errors_spec.rb +0 -36
  1187. data/spec/unit/util/execution_spec.rb +0 -943
  1188. data/spec/unit/util/execution_stub_spec.rb +0 -38
  1189. data/spec/unit/util/feature_spec.rb +0 -129
  1190. data/spec/unit/util/filetype_spec.rb +0 -223
  1191. data/spec/unit/util/inifile_spec.rb +0 -510
  1192. data/spec/unit/util/json_lockfile_spec.rb +0 -48
  1193. data/spec/unit/util/json_spec.rb +0 -126
  1194. data/spec/unit/util/ldap/connection_spec.rb +0 -162
  1195. data/spec/unit/util/ldap/generator_spec.rb +0 -49
  1196. data/spec/unit/util/ldap/manager_spec.rb +0 -612
  1197. data/spec/unit/util/lockfile_spec.rb +0 -117
  1198. data/spec/unit/util/log/destinations_spec.rb +0 -258
  1199. data/spec/unit/util/log_spec.rb +0 -479
  1200. data/spec/unit/util/logging_spec.rb +0 -618
  1201. data/spec/unit/util/metric_spec.rb +0 -89
  1202. data/spec/unit/util/monkey_patches_spec.rb +0 -137
  1203. data/spec/unit/util/multi_match_spec.rb +0 -38
  1204. data/spec/unit/util/network_device/config_spec.rb +0 -91
  1205. data/spec/unit/util/network_device/transport/base_spec.rb +0 -40
  1206. data/spec/unit/util/network_device_spec.rb +0 -43
  1207. data/spec/unit/util/package/version/debian_spec.rb +0 -83
  1208. data/spec/unit/util/package/version/pip_spec.rb +0 -464
  1209. data/spec/unit/util/package/version/range_spec.rb +0 -175
  1210. data/spec/unit/util/package/version/rpm_spec.rb +0 -121
  1211. data/spec/unit/util/package_spec.rb +0 -19
  1212. data/spec/unit/util/pidlock_spec.rb +0 -333
  1213. data/spec/unit/util/plist_spec.rb +0 -168
  1214. data/spec/unit/util/posix_spec.rb +0 -630
  1215. data/spec/unit/util/profiler/aggregate_spec.rb +0 -55
  1216. data/spec/unit/util/profiler/around_profiler_spec.rb +0 -61
  1217. data/spec/unit/util/profiler/logging_spec.rb +0 -70
  1218. data/spec/unit/util/profiler/object_counts_spec.rb +0 -13
  1219. data/spec/unit/util/profiler/wall_clock_spec.rb +0 -13
  1220. data/spec/unit/util/profiler_spec.rb +0 -47
  1221. data/spec/unit/util/rdoc_spec.rb +0 -55
  1222. data/spec/unit/util/reference_spec.rb +0 -38
  1223. data/spec/unit/util/resource_template_spec.rb +0 -57
  1224. data/spec/unit/util/retry_action_spec.rb +0 -84
  1225. data/spec/unit/util/rpm_compare_spec.rb +0 -196
  1226. data/spec/unit/util/rubygems_spec.rb +0 -47
  1227. data/spec/unit/util/run_mode_spec.rb +0 -217
  1228. data/spec/unit/util/selinux_spec.rb +0 -422
  1229. data/spec/unit/util/skip_tags_spec.rb +0 -14
  1230. data/spec/unit/util/splayer_spec.rb +0 -44
  1231. data/spec/unit/util/storage_spec.rb +0 -330
  1232. data/spec/unit/util/suidmanager_spec.rb +0 -278
  1233. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -180
  1234. data/spec/unit/util/tag_set_spec.rb +0 -52
  1235. data/spec/unit/util/tagging_spec.rb +0 -246
  1236. data/spec/unit/util/terminal_spec.rb +0 -41
  1237. data/spec/unit/util/user_attr_spec.rb +0 -45
  1238. data/spec/unit/util/warnings_spec.rb +0 -45
  1239. data/spec/unit/util/watched_file_spec.rb +0 -52
  1240. data/spec/unit/util/watcher/periodic_watcher_spec.rb +0 -52
  1241. data/spec/unit/util/watcher_spec.rb +0 -86
  1242. data/spec/unit/util/windows/access_control_entry_spec.rb +0 -66
  1243. data/spec/unit/util/windows/access_control_list_spec.rb +0 -132
  1244. data/spec/unit/util/windows/adsi_spec.rb +0 -704
  1245. data/spec/unit/util/windows/api_types_spec.rb +0 -184
  1246. data/spec/unit/util/windows/eventlog_spec.rb +0 -120
  1247. data/spec/unit/util/windows/file_spec.rb +0 -88
  1248. data/spec/unit/util/windows/root_certs_spec.rb +0 -16
  1249. data/spec/unit/util/windows/security_descriptor_spec.rb +0 -115
  1250. data/spec/unit/util/windows/service_spec.rb +0 -677
  1251. data/spec/unit/util/windows/sid_spec.rb +0 -338
  1252. data/spec/unit/util/windows/string_spec.rb +0 -55
  1253. data/spec/unit/util/windows_spec.rb +0 -23
  1254. data/spec/unit/util/yaml_spec.rb +0 -171
  1255. data/spec/unit/util_spec.rb +0 -954
  1256. data/spec/unit/version_spec.rb +0 -61
  1257. data/spec/unit/x509/cert_provider_spec.rb +0 -614
  1258. data/spec/unit/x509/pem_store_spec.rb +0 -160
@@ -1,982 +0,0 @@
1
- require 'spec_helper'
2
- require 'puppet_spec/files'
3
-
4
- require 'puppet/ssl'
5
-
6
- describe Puppet::SSL::StateMachine, unless: Puppet::Util::Platform.jruby? do
7
- include PuppetSpec::Files
8
-
9
- let(:privatekeydir) { tmpdir('privatekeydir') }
10
- let(:certdir) { tmpdir('certdir') }
11
- let(:requestdir) { tmpdir('requestdir') }
12
- let(:machine) { described_class.new }
13
- let(:cert_provider) { Puppet::X509::CertProvider.new(privatekeydir: privatekeydir, certdir: certdir, requestdir: requestdir) }
14
- let(:ssl_provider) { Puppet::SSL::SSLProvider.new }
15
- let(:machine) { described_class.new(cert_provider: cert_provider, ssl_provider: ssl_provider) }
16
-
17
- let(:cacert_pem) { cacert.to_pem }
18
- let(:cacert) { cert_fixture('ca.pem') }
19
- let(:cacerts) { [cacert, cert_fixture('intermediate.pem')] }
20
-
21
- let(:crl_pem) { crl.to_pem }
22
- let(:crl) { crl_fixture('crl.pem') }
23
- let(:crls) { [crl, crl_fixture('intermediate-crl.pem')] }
24
- let(:private_key) { key_fixture('signed-key.pem') }
25
- let(:client_cert) { cert_fixture('signed.pem') }
26
-
27
- let(:refused_message) { %r{Connection refused|No connection could be made because the target machine actively refused it} }
28
-
29
- before(:each) do
30
- Puppet[:daemonize] = false
31
- Puppet[:ssl_lockfile] = tmpfile('ssllock')
32
- allow(Kernel).to receive(:sleep)
33
- end
34
-
35
- def expected_digest(name, content)
36
- OpenSSL::Digest.new(name).hexdigest(content)
37
- end
38
-
39
- def to_fingerprint(digest)
40
- digest.scan(/../).join(':').upcase
41
- end
42
-
43
- context 'when passing keyword arguments' do
44
- it "accepts digest" do
45
- expect(described_class.new(digest: 'SHA512').digest).to eq('SHA512')
46
- end
47
-
48
- it "accepts ca_fingerprint" do
49
- expect(described_class.new(ca_fingerprint: 'CAFE').ca_fingerprint).to eq('CAFE')
50
- end
51
- end
52
-
53
- context 'when ensuring CA certs and CRLs' do
54
- it 'returns an SSLContext with the loaded CA certs and CRLs' do
55
- allow(cert_provider).to receive(:load_cacerts).and_return(cacerts)
56
- allow(cert_provider).to receive(:load_crls).and_return(crls)
57
-
58
- ssl_context = machine.ensure_ca_certificates
59
-
60
- expect(ssl_context[:cacerts]).to eq(cacerts)
61
- expect(ssl_context[:crls]).to eq(crls)
62
- expect(ssl_context[:verify_peer]).to eq(true)
63
- end
64
-
65
- context 'when exceptions occur' do
66
- it 'raises in onetime mode' do
67
- stub_request(:get, %r{puppet-ca/v1/certificate/ca})
68
- .to_raise(Errno::ECONNREFUSED)
69
-
70
- machine = described_class.new(cert_provider: cert_provider, ssl_provider: ssl_provider, onetime: true)
71
- expect {
72
- machine.ensure_ca_certificates
73
- }.to raise_error(Puppet::Error, refused_message)
74
- end
75
-
76
- it 'retries CA cert download' do
77
- # allow cert to be saved to disk
78
- FileUtils.mkdir_p(Puppet[:certdir])
79
- allow(cert_provider).to receive(:load_crls).and_return(crls)
80
-
81
- req = stub_request(:get, %r{puppet-ca/v1/certificate/ca})
82
- .to_raise(Errno::ECONNREFUSED).then
83
- .to_return(status: 200, body: cacert_pem)
84
-
85
- machine.ensure_ca_certificates
86
-
87
- expect(req).to have_been_made.twice
88
- expect(@logs).to include(an_object_having_attributes(message: refused_message))
89
- end
90
-
91
- it 'retries CRL download' do
92
- # allow crl to be saved to disk
93
- FileUtils.mkdir_p(Puppet[:ssldir])
94
- allow(cert_provider).to receive(:load_cacerts).and_return(cacerts)
95
-
96
- req = stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca})
97
- .to_raise(Errno::ECONNREFUSED).then
98
- .to_return(status: 200, body: crl_pem)
99
-
100
- machine.ensure_ca_certificates
101
-
102
- expect(req).to have_been_made.twice
103
- expect(@logs).to include(an_object_having_attributes(message: refused_message))
104
- end
105
- end
106
- end
107
-
108
- context 'when ensuring a client cert' do
109
- it 'returns an SSLContext with the loaded CA certs, CRLs, private key and client cert' do
110
- allow(cert_provider).to receive(:load_cacerts).and_return(cacerts)
111
- allow(cert_provider).to receive(:load_crls).and_return(crls)
112
- allow(cert_provider).to receive(:load_private_key).and_return(private_key)
113
- allow(cert_provider).to receive(:load_client_cert).and_return(client_cert)
114
-
115
- ssl_context = machine.ensure_client_certificate
116
-
117
- expect(ssl_context[:cacerts]).to eq(cacerts)
118
- expect(ssl_context[:crls]).to eq(crls)
119
- expect(ssl_context[:verify_peer]).to eq(true)
120
- expect(ssl_context[:private_key]).to eq(private_key)
121
- expect(ssl_context[:client_cert]).to eq(client_cert)
122
- end
123
-
124
- it 'uses the specified digest to log the cert chain fingerprints' do
125
- allow(cert_provider).to receive(:load_cacerts).and_return(cacerts)
126
- allow(cert_provider).to receive(:load_crls).and_return(crls)
127
- allow(cert_provider).to receive(:load_private_key).and_return(private_key)
128
- allow(cert_provider).to receive(:load_client_cert).and_return(client_cert)
129
-
130
- Puppet[:log_level] = :debug
131
- machine = described_class.new(cert_provider: cert_provider, digest: 'SHA512')
132
- machine.ensure_client_certificate
133
-
134
- expect(@logs).to include(
135
- an_object_having_attributes(message: /Verified CA certificate 'CN=Test CA' fingerprint \(SHA512\)/),
136
- an_object_having_attributes(message: /Verified CA certificate 'CN=Test CA Subauthority' fingerprint \(SHA512\)/),
137
- an_object_having_attributes(message: /Verified client certificate 'CN=signed' fingerprint \(SHA512\)/)
138
- )
139
- end
140
-
141
- context 'when exceptions occur' do
142
- before :each do
143
- allow(cert_provider).to receive(:load_cacerts).and_return(cacerts)
144
- allow(cert_provider).to receive(:load_crls).and_return(crls)
145
- end
146
-
147
- it 'retries CSR submission' do
148
- allow(cert_provider).to receive(:load_private_key).and_return(private_key)
149
- allow($stdout).to receive(:puts).with(/Couldn't fetch certificate from CA server; you might still need to sign this agent's certificate/)
150
-
151
- stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}})
152
- .to_return(status: 200, body: client_cert.to_pem)
153
- # first request raises, second succeeds
154
- req = stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}})
155
- .to_raise(Errno::ECONNREFUSED).then
156
- .to_return(status: 200)
157
-
158
- machine.ensure_client_certificate
159
-
160
- expect(req).to have_been_made.twice
161
- expect(@logs).to include(an_object_having_attributes(message: refused_message))
162
- end
163
-
164
- it 'retries client cert download' do
165
- allow(cert_provider).to receive(:load_private_key).and_return(private_key)
166
-
167
- # first request raises, second succeeds
168
- req = stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}})
169
- .to_raise(Errno::ECONNREFUSED).then
170
- .to_return(status: 200, body: client_cert.to_pem)
171
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).to_return(status: 200)
172
-
173
- machine.ensure_client_certificate
174
-
175
- expect(req).to have_been_made.twice
176
- expect(@logs).to include(an_object_having_attributes(message: refused_message))
177
- end
178
-
179
- it 'retries when client cert and private key are mismatched' do
180
- allow(cert_provider).to receive(:load_private_key).and_return(private_key)
181
-
182
- # return mismatched cert the first time, correct cert second time
183
- req = stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}})
184
- .to_return(status: 200, body: cert_fixture('pluto.pem').to_pem)
185
- .to_return(status: 200, body: client_cert.to_pem)
186
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).to_return(status: 200)
187
-
188
- machine.ensure_client_certificate
189
-
190
- expect(req).to have_been_made.twice
191
- expect(@logs).to include(an_object_having_attributes(message: %r{The certificate for 'CN=pluto' does not match its private key}))
192
- end
193
-
194
- it 'raises in onetime mode' do
195
- stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}})
196
- .to_raise(Errno::ECONNREFUSED)
197
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}})
198
- .to_return(status: 200)
199
-
200
- machine = described_class.new(cert_provider: cert_provider, ssl_provider: ssl_provider, onetime: true)
201
- expect {
202
- machine.ensure_client_certificate
203
- }.to raise_error(Puppet::Error, refused_message)
204
- end
205
- end
206
- end
207
-
208
- context 'when locking' do
209
- let(:lockfile) { Puppet::Util::Pidlock.new(Puppet[:ssl_lockfile]) }
210
- let(:machine) { described_class.new(cert_provider: cert_provider, ssl_provider: ssl_provider, lockfile: lockfile) }
211
-
212
- # lockfile is deleted before `ensure_ca_certificates` returns, so
213
- # verify lockfile contents while state machine is running
214
- def expect_lockfile_to_contain(pid)
215
- allow(cert_provider).to receive(:load_cacerts) do
216
- expect(File.read(Puppet[:ssl_lockfile])).to eq(pid.to_s)
217
- end.and_return(cacerts)
218
- allow(cert_provider).to receive(:load_crls).and_return(crls)
219
- end
220
-
221
- it 'locks the file prior to running the state machine and unlocks when done' do
222
- expect(lockfile).to receive(:lock).and_call_original.ordered
223
- expect(cert_provider).to receive(:load_cacerts).and_return(cacerts).ordered
224
- expect(cert_provider).to receive(:load_crls).and_return(crls).ordered
225
- expect(lockfile).to receive(:unlock).ordered
226
-
227
- machine.ensure_ca_certificates
228
- end
229
-
230
- it 'deletes the lockfile when finished' do
231
- allow(cert_provider).to receive(:load_cacerts).and_return(cacerts)
232
- allow(cert_provider).to receive(:load_crls).and_return(crls)
233
-
234
- machine = described_class.new(cert_provider: cert_provider, ssl_provider: ssl_provider)
235
- machine.ensure_ca_certificates
236
-
237
- expect(File).to_not be_exist(Puppet[:ssl_lockfile])
238
- end
239
-
240
- it 'acquires an empty lockfile' do
241
- Puppet::FileSystem.touch(Puppet[:ssl_lockfile])
242
-
243
- expect_lockfile_to_contain(Process.pid)
244
-
245
- machine = described_class.new(cert_provider: cert_provider, ssl_provider: ssl_provider)
246
- machine.ensure_ca_certificates
247
- end
248
-
249
- it 'acquires its own lockfile' do
250
- File.write(Puppet[:ssl_lockfile], Process.pid.to_s)
251
-
252
- expect_lockfile_to_contain(Process.pid)
253
-
254
- machine = described_class.new(cert_provider: cert_provider, ssl_provider: ssl_provider)
255
- machine.ensure_ca_certificates
256
- end
257
-
258
- it 'overwrites a stale lockfile' do
259
- # 2**31 - 1 chosen to not conflict with existing pid
260
- File.write(Puppet[:ssl_lockfile], "2147483647")
261
-
262
- expect_lockfile_to_contain(Process.pid)
263
-
264
- machine = described_class.new(cert_provider: cert_provider, ssl_provider: ssl_provider)
265
- machine.ensure_ca_certificates
266
- end
267
-
268
- context 'and another puppet process is running' do
269
- let(:now) { Time.now }
270
- let(:future) { now + (5 * 60)} # 5 mins in the future
271
-
272
- before :each do
273
- allow(lockfile).to receive(:lock).and_return(false)
274
- end
275
-
276
- it 'raises a puppet exception' do
277
- expect {
278
- machine.ensure_ca_certificates
279
- }.to raise_error(Puppet::Error, /Another puppet instance is already running and the waitforlock setting is set to 0; exiting/)
280
- end
281
-
282
- it 'sleeps and retries successfully' do
283
- machine = described_class.new(lockfile: lockfile, cert_provider: cert_provider, waitforlock: 1, maxwaitforlock: 10)
284
- allow(cert_provider).to receive(:load_cacerts).and_return(cacerts)
285
- allow(cert_provider).to receive(:load_crls).and_return(crls)
286
- allow(Time).to receive(:now).and_return(now, future)
287
-
288
- expect(Kernel).to receive(:sleep).with(1)
289
- expect(Puppet).to receive(:info).with("Another puppet instance is already running; waiting for it to finish")
290
- expect(Puppet).to receive(:info).with("Will try again in 1 seconds.")
291
-
292
- allow(lockfile).to receive(:lock).and_return(false, true)
293
-
294
- expect(machine.ensure_ca_certificates).to be_an_instance_of(Puppet::SSL::SSLContext)
295
- end
296
-
297
- it 'sleeps and retries unsuccessfully until the deadline is exceeded' do
298
- machine = described_class.new(lockfile: lockfile, waitforlock: 1, maxwaitforlock: 10)
299
- allow(Time).to receive(:now).and_return(now, future)
300
-
301
- expect(Kernel).to receive(:sleep).with(1)
302
- expect(Puppet).to receive(:info).with("Another puppet instance is already running; waiting for it to finish")
303
- expect(Puppet).to receive(:info).with("Will try again in 1 seconds.")
304
-
305
- allow(lockfile).to receive(:lock).and_return(false)
306
- expect {
307
- machine.ensure_ca_certificates
308
- }.to raise_error(Puppet::Error, /Another puppet instance is already running and the maxwaitforlock timeout has been exceeded; exiting/)
309
- end
310
-
311
- it 'defaults the waitlock deadline to 60 seconds' do
312
- allow(Time).to receive(:now).and_return(now)
313
-
314
- machine = described_class.new
315
- expect(machine.waitlock_deadline).to eq(now.to_i + 60)
316
- end
317
- end
318
- end
319
-
320
- context 'NeedCACerts' do
321
- let(:state) { Puppet::SSL::StateMachine::NeedCACerts.new(machine) }
322
-
323
- before :each do
324
- Puppet[:localcacert] = tmpfile('needcacerts')
325
- end
326
-
327
- it 'transitions to NeedCRLs state' do
328
- allow(cert_provider).to receive(:load_cacerts).and_return(cacerts)
329
-
330
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::NeedCRLs)
331
- end
332
-
333
- it 'loads existing CA certs' do
334
- allow(cert_provider).to receive(:load_cacerts).and_return(cacerts)
335
-
336
- st = state.next_state
337
- expect(st.ssl_context[:cacerts]).to eq(cacerts)
338
- end
339
-
340
- it 'fetches and saves CA certs' do
341
- allow(cert_provider).to receive(:load_cacerts).and_return(nil)
342
- stub_request(:get, %r{puppet-ca/v1/certificate/ca}).to_return(status: 200, body: cacert_pem)
343
-
344
- st = state.next_state
345
- expect(st.ssl_context[:cacerts].map(&:to_pem)).to eq([cacert_pem])
346
- expect(File).to be_exist(Puppet[:localcacert])
347
- end
348
-
349
- it "does not verify the server's cert if there are no local CA certs" do
350
- allow(cert_provider).to receive(:load_cacerts).and_return(nil)
351
- stub_request(:get, %r{puppet-ca/v1/certificate/ca}).to_return(status: 200, body: cacert_pem)
352
- allow(cert_provider).to receive(:save_cacerts)
353
-
354
- receive_count = 0
355
- allow_any_instance_of(Net::HTTP).to receive(:verify_mode=).with(OpenSSL::SSL::VERIFY_NONE) { receive_count += 1 }
356
-
357
- state.next_state
358
-
359
- expect(receive_count).to eq(2)
360
- end
361
-
362
- it 'returns an Error if the server returns 404' do
363
- stub_request(:get, %r{puppet-ca/v1/certificate/ca}).to_return(status: 404)
364
-
365
- st = state.next_state
366
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
367
- expect(st.message).to eq("CA certificate is missing from the server")
368
- end
369
-
370
- it 'returns an Error if there is a different exception' do
371
- stub_request(:get, %r{puppet-ca/v1/certificate/ca}).to_return(status: [500, 'Internal Server Error'])
372
-
373
- st = state.next_state
374
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
375
- expect(st.message).to eq("Could not download CA certificate: Internal Server Error")
376
- end
377
-
378
- it 'returns an Error if CA certs are invalid' do
379
- allow(cert_provider).to receive(:load_cacerts).and_return(nil)
380
- stub_request(:get, %r{puppet-ca/v1/certificate/ca}).to_return(status: 200, body: '')
381
-
382
- st = state.next_state
383
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
384
- expect(st.error).to be_an_instance_of(OpenSSL::X509::CertificateError)
385
- end
386
-
387
- it 'does not save invalid CA certs' do
388
- stub_request(:get, %r{puppet-ca/v1/certificate/ca}).to_return(status: 200, body: <<~END)
389
- -----BEGIN CERTIFICATE-----
390
- MIIBpDCCAQ2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAfMR0wGwYDVQQDDBRUZXN0
391
- END
392
-
393
- state.next_state rescue OpenSSL::X509::CertificateError
394
-
395
- expect(File).to_not exist(Puppet[:localcacert])
396
- end
397
-
398
- context 'when verifying CA cert bundle' do
399
- before :each do
400
- allow(cert_provider).to receive(:load_cacerts).and_return(nil)
401
- stub_request(:get, %r{puppet-ca/v1/certificate/ca}).to_return(status: 200, body: cacert_pem)
402
- allow(cert_provider).to receive(:save_cacerts)
403
- end
404
-
405
- it 'verifies CA cert bundle if a ca_fingerprint is given case-insensitively' do
406
- Puppet[:log_level] = :info
407
-
408
- digest = expected_digest('SHA256', cacert_pem)
409
- fingerprint = to_fingerprint(digest)
410
- machine = described_class.new(digest: 'SHA256', ca_fingerprint: digest.downcase)
411
- state = Puppet::SSL::StateMachine::NeedCACerts.new(machine)
412
- state.next_state
413
-
414
- expect(@logs).to include(an_object_having_attributes(message: "Verified CA bundle with digest (SHA256) #{fingerprint}"))
415
- end
416
-
417
- it 'verifies CA cert bundle using non-default fingerprint' do
418
- Puppet[:log_level] = :info
419
-
420
- digest = expected_digest('SHA512', cacert_pem)
421
- machine = described_class.new(digest: 'SHA512', ca_fingerprint: digest)
422
- state = Puppet::SSL::StateMachine::NeedCACerts.new(machine)
423
- state.next_state
424
-
425
- expect(@logs).to include(an_object_having_attributes(message: "Verified CA bundle with digest (SHA512) #{to_fingerprint(digest)}"))
426
- end
427
-
428
- it 'returns an error if verification fails' do
429
- machine = described_class.new(digest: 'SHA256', ca_fingerprint: 'wrong!')
430
- state = Puppet::SSL::StateMachine::NeedCACerts.new(machine)
431
-
432
- fingerprint = to_fingerprint(expected_digest('SHA256', cacert_pem))
433
- st = state.next_state
434
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
435
- expect(st.message).to eq("CA bundle with digest (SHA256) #{fingerprint} did not match expected digest WR:ON:G!")
436
- end
437
- end
438
- end
439
-
440
- context 'NeedCRLs' do
441
- let(:ssl_context) { Puppet::SSL::SSLContext.new(cacerts: cacerts)}
442
- let(:state) { Puppet::SSL::StateMachine::NeedCRLs.new(machine, ssl_context) }
443
-
444
- before :each do
445
- Puppet[:hostcrl] = tmpfile('needcrls')
446
- end
447
-
448
- it 'transitions to NeedKey state' do
449
- allow(cert_provider).to receive(:load_crls).and_return(crls)
450
-
451
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::NeedKey)
452
- end
453
-
454
- it 'loads existing CRLs' do
455
- allow(cert_provider).to receive(:load_crls).and_return(crls)
456
-
457
- st = state.next_state
458
- expect(st.ssl_context[:crls]).to eq(crls)
459
- end
460
-
461
- it 'fetches and saves CRLs' do
462
- allow(cert_provider).to receive(:load_crls).and_return(nil)
463
- stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 200, body: crl_pem)
464
-
465
- st = state.next_state
466
- expect(st.ssl_context[:crls].map(&:to_pem)).to eq([crl_pem])
467
- expect(File).to be_exist(Puppet[:hostcrl])
468
- end
469
-
470
- it "verifies the server's certificate when fetching the CRL" do
471
- allow(cert_provider).to receive(:load_crls).and_return(nil)
472
- stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 200, body: crl_pem)
473
- allow(cert_provider).to receive(:save_crls)
474
-
475
- receive_count = 0
476
- allow_any_instance_of(Net::HTTP).to receive(:verify_mode=).with(OpenSSL::SSL::VERIFY_PEER) { receive_count += 1 }
477
-
478
- state.next_state
479
-
480
- expect(receive_count).to eq(2)
481
- end
482
-
483
- it 'returns an Error if the server returns 404' do
484
- stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 404)
485
-
486
- st = state.next_state
487
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
488
- expect(st.message).to eq("CRL is missing from the server")
489
- end
490
-
491
- it 'returns an Error if there is a different exception' do
492
- stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: [500, 'Internal Server Error'])
493
-
494
- st = state.next_state
495
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
496
- expect(st.message).to eq("Could not download CRLs: Internal Server Error")
497
- end
498
-
499
- it 'returns an Error if CRLs are invalid' do
500
- allow(cert_provider).to receive(:load_crls).and_return(nil)
501
- stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 200, body: '')
502
-
503
- st = state.next_state
504
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
505
- expect(st.error).to be_an_instance_of(OpenSSL::X509::CRLError)
506
- end
507
-
508
- it 'does not save invalid CRLs' do
509
- stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 200, body: <<~END)
510
- -----BEGIN X509 CRL-----
511
- MIIBCjB1AgEBMA0GCSqGSIb3DQEBCwUAMBIxEDAOBgNVBAMMB1Rlc3QgQ0EXDTcw
512
- END
513
-
514
- state.next_state rescue OpenSSL::X509::CRLError
515
-
516
- expect(File).to_not exist(Puppet[:hostcrl])
517
- end
518
-
519
- it 'skips CRL download when revocation is disabled' do
520
- Puppet[:certificate_revocation] = false
521
-
522
- expect(cert_provider).not_to receive(:load_crls)
523
-
524
- state.next_state
525
-
526
- expect(File).to_not exist(Puppet[:hostcrl])
527
- end
528
-
529
- it 'skips CRL refresh by default' do
530
- allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_crls).and_return(crls)
531
-
532
- state.next_state
533
- end
534
-
535
- it 'skips CRL refresh if it has not expired' do
536
- Puppet[:crl_refresh_interval] = '1y'
537
- Puppet::FileSystem.touch(Puppet[:hostcrl], mtime: Time.now)
538
-
539
- allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_crls).and_return(crls)
540
-
541
- state.next_state
542
- end
543
-
544
- context 'when refreshing a CRL' do
545
- before :each do
546
- Puppet[:crl_refresh_interval] = '1s'
547
- allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_crls).and_return(crls)
548
-
549
- yesterday = Time.now - (24 * 60 * 60)
550
- allow_any_instance_of(Puppet::X509::CertProvider).to receive(:crl_last_update).and_return(yesterday)
551
- end
552
-
553
- let(:new_crl_bundle) do
554
- # add intermediate crl to the bundle
555
- int_crl = crl_fixture('intermediate-crl.pem')
556
- [crl, int_crl].map(&:to_pem)
557
- end
558
-
559
- it 'uses the local crl if it has not been modified' do
560
- stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 304)
561
-
562
- expect(state.next_state.ssl_context.crls).to eq(crls)
563
- end
564
-
565
- it 'uses the local crl if refreshing fails in HTTP layer' do
566
- stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 503)
567
-
568
- expect(state.next_state.ssl_context.crls).to eq(crls)
569
- end
570
-
571
- it 'uses the local crl if refreshing fails in TCP layer' do
572
- stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_raise(Errno::ECONNREFUSED)
573
-
574
- expect(state.next_state.ssl_context.crls).to eq(crls)
575
- end
576
-
577
- it 'uses the updated crl for the future requests' do
578
- stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 200, body: new_crl_bundle.join)
579
-
580
- expect(state.next_state.ssl_context.crls.map(&:to_pem)).to eq(new_crl_bundle)
581
- end
582
-
583
- it 'updates the `last_update` time' do
584
- stub_request(:get, %r{puppet-ca/v1/certificate_revocation_list/ca}).to_return(status: 200, body: new_crl_bundle.join)
585
-
586
- expect_any_instance_of(Puppet::X509::CertProvider).to receive(:crl_last_update=).with(be_within(60).of(Time.now))
587
-
588
- state.next_state
589
- end
590
- end
591
- end
592
-
593
- context 'when ensuring a client cert' do
594
- context 'in state NeedKey' do
595
- let(:ssl_context) { Puppet::SSL::SSLContext.new(cacerts: cacerts, crls: crls)}
596
- let(:state) { Puppet::SSL::StateMachine::NeedKey.new(machine, ssl_context) }
597
-
598
- it 'loads an existing private key and passes it to the next state' do
599
- allow(cert_provider).to receive(:load_private_key).and_return(private_key)
600
-
601
- st = state.next_state
602
- expect(st).to be_instance_of(Puppet::SSL::StateMachine::NeedSubmitCSR)
603
- expect(st.private_key).to eq(private_key)
604
- end
605
-
606
- it 'loads a matching private key and cert' do
607
- allow(cert_provider).to receive(:load_private_key).and_return(private_key)
608
- allow(cert_provider).to receive(:load_client_cert).and_return(client_cert)
609
-
610
- st = state.next_state
611
- expect(st).to be_instance_of(Puppet::SSL::StateMachine::Done)
612
- end
613
-
614
- it 'raises if the client cert is mismatched' do
615
- allow(cert_provider).to receive(:load_private_key).and_return(private_key)
616
- allow(cert_provider).to receive(:load_client_cert).and_return(cert_fixture('tampered-cert.pem'))
617
-
618
- ssl_context = Puppet::SSL::SSLContext.new(cacerts: [cacert], crls: [crl])
619
- state = Puppet::SSL::StateMachine::NeedKey.new(machine, ssl_context)
620
- expect {
621
- state.next_state
622
- }.to raise_error(Puppet::SSL::SSLError, %r{The certificate for 'CN=signed' does not match its private key})
623
- end
624
-
625
- it 'generates a new RSA private key, saves it and passes it to the next state' do
626
- allow(cert_provider).to receive(:load_private_key).and_return(nil)
627
- expect(cert_provider).to receive(:save_private_key)
628
-
629
- st = state.next_state
630
- expect(st).to be_instance_of(Puppet::SSL::StateMachine::NeedSubmitCSR)
631
- expect(st.private_key).to be_instance_of(OpenSSL::PKey::RSA)
632
- expect(st.private_key).to be_private
633
- end
634
-
635
- it 'generates a new EC private key, saves it and passes it to the next state' do
636
- Puppet[:key_type] = 'ec'
637
- allow(cert_provider).to receive(:load_private_key).and_return(nil)
638
- expect(cert_provider).to receive(:save_private_key)
639
-
640
- st = state.next_state
641
- expect(st).to be_instance_of(Puppet::SSL::StateMachine::NeedSubmitCSR)
642
- expect(st.private_key).to be_instance_of(OpenSSL::PKey::EC)
643
- expect(st.private_key).to be_private
644
- expect(st.private_key.group.curve_name).to eq('prime256v1')
645
- end
646
-
647
- it 'generates a new EC private key with curve `secp384r1`, saves it and passes it to the next state' do
648
- Puppet[:key_type] = 'ec'
649
- Puppet[:named_curve] = 'secp384r1'
650
- allow(cert_provider).to receive(:load_private_key).and_return(nil)
651
- expect(cert_provider).to receive(:save_private_key)
652
-
653
- st = state.next_state
654
- expect(st).to be_instance_of(Puppet::SSL::StateMachine::NeedSubmitCSR)
655
- expect(st.private_key).to be_instance_of(OpenSSL::PKey::EC)
656
- expect(st.private_key).to be_private
657
- expect(st.private_key.group.curve_name).to eq('secp384r1')
658
- end
659
-
660
- it 'raises if the named curve is unsupported' do
661
- Puppet[:key_type] = 'ec'
662
- Puppet[:named_curve] = 'infiniteloop'
663
- allow(cert_provider).to receive(:load_private_key).and_return(nil)
664
-
665
- expect {
666
- state.next_state
667
- }.to raise_error(OpenSSL::PKey::ECError, /(invalid|unknown) curve name/)
668
- end
669
-
670
- it 'raises an error if it fails to load the key' do
671
- allow(cert_provider).to receive(:load_private_key).and_raise(OpenSSL::PKey::RSAError)
672
-
673
- expect {
674
- state.next_state
675
- }.to raise_error(OpenSSL::PKey::RSAError)
676
- end
677
- end
678
-
679
- context 'in state NeedSubmitCSR' do
680
- let(:ssl_context) { Puppet::SSL::SSLContext.new(cacerts: cacerts, crls: crls)}
681
- let(:state) { Puppet::SSL::StateMachine::NeedSubmitCSR.new(machine, ssl_context, private_key) }
682
-
683
- def write_csr_attributes(data)
684
- file_containing('state_machine_csr', YAML.dump(data))
685
- end
686
-
687
- before :each do
688
- allow(cert_provider).to receive(:save_request)
689
- end
690
-
691
- it 'submits the CSR and transitions to NeedCert' do
692
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).to_return(status: 200)
693
-
694
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::NeedCert)
695
- end
696
-
697
- it 'saves the CSR and transitions to NeedCert' do
698
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).to_return(status: 200)
699
-
700
- expect(cert_provider).to receive(:save_request).with(Puppet[:certname], instance_of(OpenSSL::X509::Request))
701
-
702
- state.next_state
703
- end
704
-
705
- it 'includes DNS alt names' do
706
- Puppet[:dns_alt_names] = "one,IP:192.168.0.1,DNS:two.com"
707
-
708
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).with do |request|
709
- csr = Puppet::SSL::CertificateRequest.from_instance(OpenSSL::X509::Request.new(request.body))
710
- expect(
711
- csr.subject_alt_names
712
- ).to contain_exactly('DNS:one', 'IP Address:192.168.0.1', 'DNS:two.com', "DNS:#{Puppet[:certname]}")
713
- end.to_return(status: 200)
714
-
715
- state.next_state
716
- end
717
-
718
- it 'includes CSR attributes' do
719
- Puppet[:csr_attributes] = write_csr_attributes(
720
- 'custom_attributes' => {
721
- '1.3.6.1.4.1.34380.1.2.1' => 'CSR specific info',
722
- '1.3.6.1.4.1.34380.1.2.2' => 'more CSR specific info'
723
- }
724
- )
725
-
726
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).with do |request|
727
- csr = Puppet::SSL::CertificateRequest.from_instance(OpenSSL::X509::Request.new(request.body))
728
- expect(
729
- csr.custom_attributes
730
- ).to contain_exactly(
731
- {'oid' => '1.3.6.1.4.1.34380.1.2.1', 'value' => 'CSR specific info'},
732
- {'oid' => '1.3.6.1.4.1.34380.1.2.2', 'value' => 'more CSR specific info'}
733
- )
734
- end.to_return(status: 200)
735
-
736
- state.next_state
737
- end
738
-
739
- it 'includes CSR extension requests' do
740
- Puppet[:csr_attributes] = write_csr_attributes(
741
- {
742
- 'extension_requests' => {
743
- '1.3.6.1.4.1.34380.1.1.31415' => 'pi',
744
- '1.3.6.1.4.1.34380.1.1.2718' => 'e',
745
- }
746
- }
747
- )
748
-
749
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).with do |request|
750
- csr = Puppet::SSL::CertificateRequest.from_instance(OpenSSL::X509::Request.new(request.body))
751
- expect(
752
- csr.request_extensions
753
- ).to contain_exactly(
754
- {'oid' => '1.3.6.1.4.1.34380.1.1.31415', 'value' => 'pi'},
755
- {'oid' => '1.3.6.1.4.1.34380.1.1.2718', 'value' => 'e'}
756
- )
757
- end.to_return(status: 200)
758
-
759
- state.next_state
760
- end
761
-
762
- it 'transitions to NeedCert if the server has a requested certificate' do
763
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).to_return(status: 400, body: "#{Puppet[:certname]} already has a requested certificate")
764
-
765
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::NeedCert)
766
- end
767
-
768
- it 'transitions to NeedCert if the server has a signed certificate' do
769
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).to_return(status: 400, body: "#{Puppet[:certname]} already has a signed certificate")
770
-
771
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::NeedCert)
772
- end
773
-
774
- it 'transitions to NeedCert if the server has a revoked certificate' do
775
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).to_return(status: 400, body: "#{Puppet[:certname]} already has a revoked certificate")
776
-
777
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::NeedCert)
778
- end
779
-
780
- it 'raises if the server errors' do
781
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).to_return(status: 500)
782
-
783
- st = state.next_state
784
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
785
- expect(st.message).to eq("Failed to submit the CSR, HTTP response was 500")
786
- end
787
-
788
- it "verifies the server's certificate when submitting the CSR" do
789
- stub_request(:put, %r{puppet-ca/v1/certificate_request/#{Puppet[:certname]}}).to_return(status: 200)
790
-
791
- receive_count = 0
792
- allow_any_instance_of(Net::HTTP).to receive(:verify_mode=).with(OpenSSL::SSL::VERIFY_PEER) { receive_count += 1 }
793
-
794
- state.next_state
795
-
796
- expect(receive_count).to eq(2)
797
- end
798
- end
799
-
800
- context 'in state NeedCert' do
801
- let(:ca_chain) { [cert_fixture('ca.pem'), cert_fixture('intermediate.pem')] }
802
- let(:crl_chain) { [crl_fixture('crl.pem'), crl_fixture('intermediate-crl.pem')] }
803
- let(:ssl_context) { Puppet::SSL::SSLContext.new(cacerts: ca_chain, crls: crl_chain)}
804
- let(:state) { Puppet::SSL::StateMachine::NeedCert.new(machine, ssl_context, private_key) }
805
-
806
- it 'transitions to Done if the cert is signed and matches our private key' do
807
- allow(cert_provider).to receive(:save_client_cert)
808
- allow(cert_provider).to receive(:save_request)
809
-
810
- stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}}).to_return(status: 200, body: client_cert.to_pem)
811
-
812
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::Done)
813
- end
814
-
815
- it "prints a message if the cert isn't signed yet" do
816
- stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}}).to_return(status: 404)
817
-
818
- expect {
819
- state.next_state
820
- }.to output(/Couldn't fetch certificate from CA server; you might still need to sign this agent's certificate \(#{Puppet[:certname]}\)/).to_stdout
821
- end
822
-
823
- it 'transitions to Error if the cert does not match our private key' do
824
- wrong_cert = cert_fixture('127.0.0.1.pem')
825
- stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}}).to_return(status: 200, body: wrong_cert.to_pem)
826
-
827
- st = state.next_state
828
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
829
- expect(st.message).to eq("The certificate for 'CN=127.0.0.1' does not match its private key")
830
- end
831
-
832
- it 'transitions to Wait if the server returns non-200' do
833
- stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}}).to_return(status: 404)
834
-
835
- allow($stdout).to receive(:puts).with(/Couldn't fetch certificate from CA server; you might still need to sign this agent's certificate/)
836
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::Wait)
837
- end
838
-
839
- it "verifies the server's certificate when getting the client cert" do
840
- stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}}).to_return(status: 200, body: client_cert.to_pem)
841
- allow(cert_provider).to receive(:save_client_cert)
842
- allow(cert_provider).to receive(:save_request)
843
-
844
- receive_count = 0
845
- allow_any_instance_of(Net::HTTP).to receive(:verify_mode=).with(OpenSSL::SSL::VERIFY_PEER) { receive_count += 1 }
846
-
847
- state.next_state
848
-
849
- expect(receive_count).to eq(2)
850
- end
851
-
852
- it 'does not save an invalid client cert' do
853
- stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}}).to_return(status: 200, body: <<~END)
854
- -----BEGIN CERTIFICATE-----
855
- MIIBpDCCAQ2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAfMR0wGwYDVQQDDBRUZXN0
856
- END
857
-
858
- st = state.next_state
859
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
860
- expect(st.message).to match(/Failed to parse certificate:/)
861
- expect(File).to_not exist(Puppet[:hostcert])
862
- end
863
-
864
- it 'does not save a mismatched client cert' do
865
- wrong_cert = cert_fixture('127.0.0.1.pem').to_pem
866
- stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}}).to_return(status: 200, body: wrong_cert)
867
-
868
- st = state.next_state
869
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
870
- expect(st.message).to eq("The certificate for 'CN=127.0.0.1' does not match its private key")
871
- expect(File).to_not exist(Puppet[:hostcert])
872
- end
873
-
874
- it 'does not save a revoked client cert' do
875
- revoked_cert = cert_fixture('revoked.pem').to_pem
876
- stub_request(:get, %r{puppet-ca/v1/certificate/#{Puppet[:certname]}}).to_return(status: 200, body: revoked_cert)
877
-
878
- st = state.next_state
879
- expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
880
- expect(st.message).to eq("Certificate 'CN=revoked' is revoked")
881
- expect(File).to_not exist(Puppet[:hostcert])
882
- end
883
- end
884
-
885
- context 'in state Wait' do
886
- let(:ssl_context) { Puppet::SSL::SSLContext.new(cacerts: cacerts, crls: crls)}
887
-
888
- it 'exits with 1 if waitforcert is 0' do
889
- machine = described_class.new(waitforcert: 0)
890
-
891
- expect {
892
- expect {
893
- Puppet::SSL::StateMachine::Wait.new(machine).next_state
894
- }.to exit_with(1)
895
- }.to output(/Exiting now because the waitforcert setting is set to 0./).to_stdout
896
- end
897
-
898
- it 'sleeps and transitions to NeedLock' do
899
- machine = described_class.new(waitforcert: 15)
900
-
901
- state = Puppet::SSL::StateMachine::Wait.new(machine)
902
- expect(Kernel).to receive(:sleep).with(15)
903
-
904
- expect(Puppet).to receive(:info).with(/Will try again in 15 seconds./)
905
-
906
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::NeedLock)
907
- end
908
-
909
- it 'sleeps and transitions to NeedLock when maxwaitforcert is set' do
910
- machine = described_class.new(waitforcert: 15, maxwaitforcert: 30)
911
-
912
- state = Puppet::SSL::StateMachine::Wait.new(machine)
913
- expect(Kernel).to receive(:sleep).with(15)
914
-
915
- expect(Puppet).to receive(:info).with(/Will try again in 15 seconds./)
916
-
917
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::NeedLock)
918
- end
919
-
920
- it 'waits indefinitely by default' do
921
- machine = described_class.new
922
- expect(machine.wait_deadline).to eq(Float::INFINITY)
923
- end
924
-
925
- it 'exits with 1 if maxwaitforcert is exceeded' do
926
- machine = described_class.new(maxwaitforcert: 1)
927
-
928
- # 5 minutes in the future
929
- future = Time.now + (5 * 60)
930
- allow(Time).to receive(:now).and_return(future)
931
-
932
- expect {
933
- expect {
934
- Puppet::SSL::StateMachine::Wait.new(machine).next_state
935
- }.to exit_with(1)
936
- }.to output(/Couldn't fetch certificate from CA server; you might still need to sign this agent's certificate \(.*\). Exiting now because the maxwaitforcert timeout has been exceeded./).to_stdout
937
- end
938
-
939
- it 'closes the pool before sleeping' do
940
- machine = described_class.new(waitforcert: 15)
941
-
942
- state = Puppet::SSL::StateMachine::Wait.new(machine)
943
- expect(Puppet.runtime[:http].pool).to receive(:close).and_call_original
944
- expect(Kernel).to receive(:sleep).with(15).ordered
945
-
946
- state.next_state
947
- end
948
-
949
- it 'releases the lock while sleeping' do
950
- lockfile = Puppet::Util::Pidlock.new(Puppet[:ssl_lockfile])
951
- machine = described_class.new(lockfile: lockfile)
952
- state = Puppet::SSL::StateMachine::Wait.new(machine)
953
-
954
- # pidlock should be unlocked while sleeping
955
- allow(Kernel).to receive(:sleep) do
956
- expect(lockfile).to_not be_locked
957
- end
958
-
959
- # lock before running the state
960
- lockfile.lock
961
- state.next_state
962
- end
963
- end
964
-
965
- context 'in state NeedLock' do
966
- let(:ssl_context) { Puppet::SSL::SSLContext.new(cacerts: []) }
967
- let(:lockfile) { Puppet::Util::Pidlock.new(Puppet[:ssl_lockfile]) }
968
- let(:machine) { described_class.new(lockfile: lockfile) }
969
- let(:state) { Puppet::SSL::StateMachine::NeedLock.new(machine) }
970
-
971
- it 'acquires the lock and transitions to NeedCACerts' do
972
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::NeedCACerts)
973
- expect(lockfile).to be_locked
974
- end
975
-
976
- it 'transitions to LockFailure if it fails to acquire the lock' do
977
- expect(lockfile).to receive(:lock).and_return(false)
978
- expect(state.next_state).to be_an_instance_of(Puppet::SSL::StateMachine::LockFailure)
979
- end
980
- end
981
- end
982
- end