r10k 3.14.1 → 5.0.1

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 (246) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +17 -0
  3. data/.github/workflows/docker.yml +9 -4
  4. data/.github/workflows/release.yml +3 -2
  5. data/.github/workflows/rspec_tests.yml +8 -10
  6. data/CHANGELOG.mkd +100 -0
  7. data/CODEOWNERS +1 -2
  8. data/Gemfile +2 -2
  9. data/README.mkd +18 -19
  10. data/doc/common-patterns.mkd +1 -2
  11. data/doc/dynamic-environments/configuration.mkd +91 -12
  12. data/doc/dynamic-environments/usage.mkd +4 -0
  13. data/doc/dynamic-environments/workflow-guide.mkd +3 -3
  14. data/doc/faq.mkd +1 -1
  15. data/doc/puppetfile.mkd +9 -3
  16. data/integration/Gemfile +3 -4
  17. data/integration/Rakefile +58 -23
  18. data/integration/files/pre-suite/git_config.pp.erb +1 -1
  19. data/integration/pre-suite/00_pe_install.rb +3 -0
  20. data/integration/pre-suite/10_git_config.rb +1 -3
  21. data/integration/tests/Puppetfile/HTTP_PROXY_affects_git_source.rb +5 -4
  22. data/integration/tests/basic_functionality/negative/negative_bad_proxy.rb +1 -1
  23. data/integration/tests/basic_functionality/proxy_specified_in_configuration.rb +2 -2
  24. data/integration/tests/basic_functionality/proxy_with_puppetfile.rb +2 -2
  25. data/integration/tests/basic_functionality/rugged_git_provider_with_ssh.rb +3 -3
  26. data/integration/tests/basic_functionality/rugged_git_provider_without_ssh.rb +3 -3
  27. data/integration/tests/command_line/deploy_env_without_mod_update.rb +0 -3
  28. data/integration/tests/command_line/negative/neg_deploy_env_with_module_update.rb +0 -3
  29. data/integration/tests/git_source/HTTP_proxy_and_git_source.rb +5 -10
  30. data/integration/tests/git_source/git_source_git.rb +1 -4
  31. data/integration/tests/git_source/git_source_repeated_remote.rb +2 -5
  32. data/integration/tests/git_source/git_source_submodule.rb +1 -1
  33. data/integration/tests/git_source/negative/neg_git_unauthorized_ssh.rb +1 -1
  34. data/integration/tests/purging/content_not_purged_at_root.rb +2 -5
  35. data/integration/tests/purging/default_purging.rb +0 -3
  36. data/integration/tests/purging/{does_not_purge_files_on_white_list.rb → does_not_purge_files_on_allowlist.rb} +2 -5
  37. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module.rb +1 -4
  38. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module_static.rb +1 -4
  39. data/integration/tests/user_scenario/basic_workflow/multi_source_custom_forge_git_module.rb +1 -4
  40. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_forge_module.rb +0 -3
  41. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module.rb +1 -1
  42. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module_ref.rb +1 -1
  43. data/integration/tests/user_scenario/basic_workflow/negative/neg_disk_full.rb +1 -1
  44. data/integration/tests/user_scenario/basic_workflow/negative/neg_duplicate_module_names.rb +0 -3
  45. data/integration/tests/user_scenario/basic_workflow/negative/neg_inaccessible_forge.rb +3 -2
  46. data/integration/tests/user_scenario/basic_workflow/negative/neg_specify_deleted_forge_module.rb +1 -5
  47. data/integration/tests/user_scenario/basic_workflow/single_env_10000_files.rb +1 -1
  48. data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_git_module.rb +1 -4
  49. data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_module.rb +0 -3
  50. data/integration/tests/user_scenario/basic_workflow/single_env_large_files.rb +1 -1
  51. data/integration/tests/user_scenario/basic_workflow/single_env_module_already_installed.rb +0 -3
  52. data/integration/tests/user_scenario/basic_workflow/single_env_purge_unmanaged_modules.rb +0 -3
  53. data/integration/tests/user_scenario/basic_workflow/single_env_switch_forge_git_module.rb +1 -4
  54. data/integration/tests/user_scenario/basic_workflow/single_env_upgrade_forge_mod_revert_change.rb +0 -3
  55. data/integration/tests/user_scenario/complex_workflow/multi_env_add_change_remove.rb +0 -3
  56. data/lib/r10k/action/deploy/environment.rb +2 -19
  57. data/lib/r10k/action/deploy/module.rb +1 -0
  58. data/lib/r10k/action/puppetfile/check.rb +7 -0
  59. data/lib/r10k/action/puppetfile/install.rb +3 -1
  60. data/lib/r10k/cli/deploy.rb +15 -1
  61. data/lib/r10k/cli/puppetfile.rb +1 -0
  62. data/lib/r10k/content_synchronizer.rb +7 -2
  63. data/lib/r10k/environment/with_modules.rb +24 -1
  64. data/lib/r10k/environment.rb +0 -1
  65. data/lib/r10k/git/rugged/bare_repository.rb +5 -4
  66. data/lib/r10k/git/rugged/thin_repository.rb +7 -0
  67. data/lib/r10k/git/rugged/working_repository.rb +13 -7
  68. data/lib/r10k/git/shellgit/thin_repository.rb +5 -1
  69. data/lib/r10k/git/shellgit/working_repository.rb +5 -4
  70. data/lib/r10k/git/stateful_repository.rb +4 -4
  71. data/lib/r10k/module/base.rb +3 -3
  72. data/lib/r10k/module/git.rb +19 -5
  73. data/lib/r10k/module_loader/puppetfile/dsl.rb +4 -0
  74. data/lib/r10k/module_loader/puppetfile.rb +22 -14
  75. data/lib/r10k/puppetfile.rb +1 -1
  76. data/lib/r10k/settings/container.rb +1 -0
  77. data/lib/r10k/settings.rb +6 -7
  78. data/lib/r10k/tarball.rb +1 -1
  79. data/lib/r10k/version.rb +1 -1
  80. data/locales/r10k.pot +34 -82
  81. data/r10k.gemspec +8 -18
  82. metadata +40 -213
  83. data/.github/workflows/stale.yml +0 -21
  84. data/.travis.yml +0 -42
  85. data/docker/.gitignore +0 -1
  86. data/docker/.rspec +0 -4
  87. data/docker/Gemfile +0 -11
  88. data/docker/Makefile +0 -92
  89. data/docker/README.md +0 -28
  90. data/docker/docker-compose.yml +0 -18
  91. data/docker/r10k/Dockerfile +0 -68
  92. data/docker/r10k/adduser.sh +0 -13
  93. data/docker/r10k/docker-entrypoint.d/10-analytics.sh +0 -30
  94. data/docker/r10k/docker-entrypoint.sh +0 -10
  95. data/docker/r10k/release.Dockerfile +0 -55
  96. data/docker/spec/dockerfile_spec.rb +0 -37
  97. data/docker/spec/fixtures/Puppetfile +0 -2
  98. data/integration/tests/basic_functionality/install_pe_only_module_with_puppetfile.rb +0 -83
  99. data/integration/tests/basic_functionality/proxy_with_pe_only_module.rb +0 -128
  100. data/integration/tests/purging/invalid_whitelist_types.rb +0 -63
  101. data/integration/tests/user_scenario/basic_workflow/negative/neg_module_specified_at_deleted_release.rb +0 -49
  102. data/integration/tests/user_scenario/basic_workflow/single_env_module_last_release_deleted.rb +0 -68
  103. data/lib/r10k/environment/bare.rb +0 -13
  104. data/spec/fixtures/empty/.empty +0 -0
  105. data/spec/fixtures/integration/git/puppet-boolean-bare.tar +0 -0
  106. data/spec/fixtures/module/forge/bad_module/metadata.json +0 -1
  107. data/spec/fixtures/module/forge/eight_hundred/Modulefile +0 -8
  108. data/spec/fixtures/module/forge/eight_hundred/metadata.json +0 -19
  109. data/spec/fixtures/tarball/tarball.tar.gz +0 -0
  110. data/spec/fixtures/unit/action/r10k.yaml +0 -5
  111. data/spec/fixtures/unit/action/r10k_cachedir.yaml +0 -2
  112. data/spec/fixtures/unit/action/r10k_creds.yaml +0 -9
  113. data/spec/fixtures/unit/action/r10k_forge_auth.yaml +0 -4
  114. data/spec/fixtures/unit/action/r10k_forge_auth_no_url.yaml +0 -3
  115. data/spec/fixtures/unit/action/r10k_generate_types.yaml +0 -3
  116. data/spec/fixtures/unit/action/r10k_logging.yaml +0 -12
  117. data/spec/fixtures/unit/action/r10k_puppet_path.yaml +0 -3
  118. data/spec/fixtures/unit/puppetfile/argument-error/Puppetfile +0 -1
  119. data/spec/fixtures/unit/puppetfile/default-branch-override/Puppetfile +0 -5
  120. data/spec/fixtures/unit/puppetfile/duplicate-module-error/Puppetfile +0 -10
  121. data/spec/fixtures/unit/puppetfile/forge-override/Puppetfile +0 -8
  122. data/spec/fixtures/unit/puppetfile/invalid-syntax/Puppetfile +0 -1
  123. data/spec/fixtures/unit/puppetfile/load-error/Puppetfile +0 -1
  124. data/spec/fixtures/unit/puppetfile/name-error/Puppetfile +0 -1
  125. data/spec/fixtures/unit/puppetfile/valid-forge-with-version/Puppetfile +0 -1
  126. data/spec/fixtures/unit/puppetfile/valid-forge-without-version/Puppetfile +0 -1
  127. data/spec/fixtures/unit/puppetfile/various-modules/Puppetfile +0 -10
  128. data/spec/fixtures/unit/puppetfile/various-modules/Puppetfile.new +0 -10
  129. data/spec/fixtures/unit/util/purgeable/managed_one/expected_1 +0 -0
  130. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/managed_symlink_file +0 -1
  131. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/subdir_allowlisted_2/ignored_1 +0 -0
  132. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/subdir_expected_1 +0 -0
  133. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/subdir_unmanaged_1 +0 -0
  134. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/unmanaged_symlink_dir +0 -1
  135. data/spec/fixtures/unit/util/purgeable/managed_one/managed_symlink_dir +0 -1
  136. data/spec/fixtures/unit/util/purgeable/managed_one/unmanaged_1 +0 -0
  137. data/spec/fixtures/unit/util/purgeable/managed_one/unmanaged_symlink_file +0 -1
  138. data/spec/fixtures/unit/util/purgeable/managed_two/.hidden/unmanaged_3 +0 -0
  139. data/spec/fixtures/unit/util/purgeable/managed_two/expected_2 +0 -0
  140. data/spec/fixtures/unit/util/purgeable/managed_two/unmanaged_2 +0 -0
  141. data/spec/fixtures/unit/util/subprocess/runner/no-execute.sh +0 -3
  142. data/spec/integration/git/rugged/bare_repository_spec.rb +0 -13
  143. data/spec/integration/git/rugged/cache_spec.rb +0 -33
  144. data/spec/integration/git/rugged/thin_repository_spec.rb +0 -14
  145. data/spec/integration/git/rugged/working_repository_spec.rb +0 -48
  146. data/spec/integration/git/shellgit/bare_repository_spec.rb +0 -13
  147. data/spec/integration/git/shellgit/thin_repository_spec.rb +0 -14
  148. data/spec/integration/git/shellgit/working_repository_spec.rb +0 -13
  149. data/spec/integration/git/stateful_repository_spec.rb +0 -159
  150. data/spec/integration/util/purageable_spec.rb +0 -41
  151. data/spec/matchers/exit_with.rb +0 -28
  152. data/spec/matchers/match_realpath.rb +0 -18
  153. data/spec/r10k-mocks/mock_config.rb +0 -33
  154. data/spec/r10k-mocks/mock_env.rb +0 -18
  155. data/spec/r10k-mocks/mock_source.rb +0 -17
  156. data/spec/r10k-mocks.rb +0 -3
  157. data/spec/shared-contexts/git-fixtures.rb +0 -55
  158. data/spec/shared-contexts/tarball.rb +0 -32
  159. data/spec/shared-examples/deploy-actions.rb +0 -69
  160. data/spec/shared-examples/git/bare_repository.rb +0 -132
  161. data/spec/shared-examples/git/thin_repository.rb +0 -26
  162. data/spec/shared-examples/git/working_repository.rb +0 -207
  163. data/spec/shared-examples/git-repository.rb +0 -38
  164. data/spec/shared-examples/puppetfile-action.rb +0 -39
  165. data/spec/shared-examples/settings/ancestry.rb +0 -44
  166. data/spec/shared-examples/subprocess-runner.rb +0 -89
  167. data/spec/spec_helper.rb +0 -41
  168. data/spec/unit/action/cri_runner_spec.rb +0 -72
  169. data/spec/unit/action/deploy/deploy_helpers_spec.rb +0 -38
  170. data/spec/unit/action/deploy/display_spec.rb +0 -61
  171. data/spec/unit/action/deploy/environment_spec.rb +0 -640
  172. data/spec/unit/action/deploy/module_spec.rb +0 -476
  173. data/spec/unit/action/puppetfile/check_spec.rb +0 -53
  174. data/spec/unit/action/puppetfile/cri_runner_spec.rb +0 -47
  175. data/spec/unit/action/puppetfile/install_spec.rb +0 -112
  176. data/spec/unit/action/puppetfile/purge_spec.rb +0 -60
  177. data/spec/unit/action/runner_spec.rb +0 -407
  178. data/spec/unit/action/visitor_spec.rb +0 -39
  179. data/spec/unit/cli_spec.rb +0 -9
  180. data/spec/unit/deployment/config_spec.rb +0 -33
  181. data/spec/unit/deployment_spec.rb +0 -162
  182. data/spec/unit/environment/bare_spec.rb +0 -13
  183. data/spec/unit/environment/base_spec.rb +0 -122
  184. data/spec/unit/environment/git_spec.rb +0 -114
  185. data/spec/unit/environment/name_spec.rb +0 -181
  186. data/spec/unit/environment/plain_spec.rb +0 -8
  187. data/spec/unit/environment/svn_spec.rb +0 -146
  188. data/spec/unit/environment/tarball_spec.rb +0 -45
  189. data/spec/unit/environment/with_modules_spec.rb +0 -75
  190. data/spec/unit/errors/formatting_spec.rb +0 -84
  191. data/spec/unit/feature_spec.rb +0 -50
  192. data/spec/unit/forge/module_release_spec.rb +0 -213
  193. data/spec/unit/git/alternates_spec.rb +0 -116
  194. data/spec/unit/git/cache_spec.rb +0 -66
  195. data/spec/unit/git/rugged/cache_spec.rb +0 -48
  196. data/spec/unit/git/rugged/credentials_spec.rb +0 -215
  197. data/spec/unit/git/shellgit/cache_spec.rb +0 -27
  198. data/spec/unit/git/stateful_repository_spec.rb +0 -45
  199. data/spec/unit/git_spec.rb +0 -102
  200. data/spec/unit/initializers_spec.rb +0 -68
  201. data/spec/unit/instance_cache_spec.rb +0 -78
  202. data/spec/unit/keyed_factory_spec.rb +0 -51
  203. data/spec/unit/logging/terminaloutputter_spec.rb +0 -53
  204. data/spec/unit/logging_spec.rb +0 -68
  205. data/spec/unit/module/base_spec.rb +0 -118
  206. data/spec/unit/module/forge_spec.rb +0 -271
  207. data/spec/unit/module/git_spec.rb +0 -387
  208. data/spec/unit/module/metadata_file_spec.rb +0 -68
  209. data/spec/unit/module/svn_spec.rb +0 -208
  210. data/spec/unit/module/tarball_spec.rb +0 -70
  211. data/spec/unit/module_loader/puppetfile_spec.rb +0 -421
  212. data/spec/unit/module_spec.rb +0 -114
  213. data/spec/unit/puppetfile_spec.rb +0 -304
  214. data/spec/unit/settings/collection_spec.rb +0 -123
  215. data/spec/unit/settings/container_spec.rb +0 -92
  216. data/spec/unit/settings/definition_spec.rb +0 -79
  217. data/spec/unit/settings/enum_definition_spec.rb +0 -20
  218. data/spec/unit/settings/inheritance_spec.rb +0 -38
  219. data/spec/unit/settings/list_spec.rb +0 -88
  220. data/spec/unit/settings/loader_spec.rb +0 -110
  221. data/spec/unit/settings/uri_definition_spec.rb +0 -23
  222. data/spec/unit/settings_spec.rb +0 -303
  223. data/spec/unit/source/base_spec.rb +0 -31
  224. data/spec/unit/source/exec_spec.rb +0 -81
  225. data/spec/unit/source/git_spec.rb +0 -233
  226. data/spec/unit/source/hash_spec.rb +0 -54
  227. data/spec/unit/source/svn_spec.rb +0 -196
  228. data/spec/unit/source/yaml_spec.rb +0 -42
  229. data/spec/unit/source_spec.rb +0 -10
  230. data/spec/unit/svn/remote_spec.rb +0 -21
  231. data/spec/unit/svn/working_dir_spec.rb +0 -56
  232. data/spec/unit/tarball_spec.rb +0 -57
  233. data/spec/unit/util/attempt_spec.rb +0 -82
  234. data/spec/unit/util/cacheable_spec.rb +0 -23
  235. data/spec/unit/util/commands_spec.rb +0 -61
  236. data/spec/unit/util/downloader_spec.rb +0 -98
  237. data/spec/unit/util/exec_env_spec.rb +0 -56
  238. data/spec/unit/util/purgeable_spec.rb +0 -267
  239. data/spec/unit/util/setopts_spec.rb +0 -83
  240. data/spec/unit/util/subprocess/result_spec.rb +0 -36
  241. data/spec/unit/util/subprocess/runner/posix_spec.rb +0 -7
  242. data/spec/unit/util/subprocess/runner/pump_spec.rb +0 -79
  243. data/spec/unit/util/subprocess/runner/windows_spec.rb +0 -7
  244. data/spec/unit/util/subprocess/subprocess_error_spec.rb +0 -26
  245. data/spec/unit/util/subprocess_spec.rb +0 -65
  246. data/spec/unit/util/symbolize_keys_spec.rb +0 -67
@@ -1,89 +0,0 @@
1
- shared_examples_for "a subprocess runner" do |fixture_root|
2
-
3
- describe "running 'echo test'" do
4
- subject { described_class.new(%w[echo test]) }
5
-
6
- it "sets the exit code to 0" do
7
- result = subject.run
8
- expect(result.exit_code).to eq 0
9
- end
10
-
11
- it "returns the contents of stdout" do
12
- result = subject.run
13
- expect(result.stdout).to eq 'test'
14
- end
15
-
16
- it "indicates the command succeeded" do
17
- result = subject.run
18
- expect(result).to be_success
19
- expect(result).to_not be_failed
20
- end
21
- end
22
-
23
- describe "running a command with a large amount of output" do
24
- subject do
25
- described_class.new(['ruby', '-e', 'blob = "buffalo!" * (2 << 16); puts blob'])
26
- end
27
-
28
- it "does not hang" do
29
- Timeout.timeout(5) do
30
- subject.run
31
- end
32
- end
33
- end
34
-
35
- describe "running 'ls' or 'dir' with a different working directory" do
36
- subject do
37
- if R10K::Util::Platform.windows?
38
- described_class.new(%w[cmd /c dir]).tap do |o|
39
- o.cwd = fixture_root
40
- end
41
- else
42
- described_class.new(%w[ls]).tap do |o|
43
- o.cwd = fixture_root
44
- end
45
- end
46
- end
47
-
48
- it "returns the contents of the given working directory" do
49
- result = subject.run
50
- expect(result.stdout).to match('no-execute.sh')
51
- end
52
- end
53
-
54
- describe "running 'false'" do
55
- subject { described_class.new(%w[false]) }
56
-
57
- it "sets the exit code to 1", unless: R10K::Util::Platform.windows? do
58
- result = subject.run
59
- expect(result.exit_code).to eq 1
60
- end
61
-
62
- it "indicates the command failed" do
63
- result = subject.run
64
- expect(result).to_not be_success
65
- expect(result).to be_failed
66
- end
67
- end
68
-
69
- describe "running '/this/command/will/not/exist'" do
70
- subject { described_class.new(%w[/this/command/will/not/exist]) }
71
-
72
- it "indicates the command failed" do
73
- result = subject.run
74
- expect(result).to_not be_success
75
- expect(result).to be_failed
76
- end
77
- end
78
-
79
- describe "running a non-executable file", :unless => R10K::Util::Platform.windows? do
80
- let(:fixture_file) { File.join(fixture_root, 'no-execute.sh') }
81
- subject { described_class.new([fixture_file]) }
82
-
83
- it "indicates the command failed" do
84
- result = subject.run
85
- expect(result).to_not be_success
86
- expect(result).to be_failed
87
- end
88
- end
89
- end
data/spec/spec_helper.rb DELETED
@@ -1,41 +0,0 @@
1
- PROJECT_ROOT = File.expand_path('..', File.dirname(__FILE__))
2
-
3
- if ENV['COVERAGE']
4
- require 'simplecov'
5
- SimpleCov.start do
6
- libdir = File.join(PROJECT_ROOT, 'lib')
7
- add_filter do |src|
8
- !src.filename.match(%r[\A#{libdir}])
9
- end
10
-
11
- %w[Deployment Source Environment Module Git SVN Action Util].each do |group|
12
- add_group group, "lib/r10k/#{group.downcase}"
13
- end
14
- end
15
- end
16
-
17
- require 'r10k'
18
-
19
- Dir.glob(File.expand_path('spec/shared-examples/**/*.rb', PROJECT_ROOT)).each { |file| require file }
20
-
21
- require 'shared-contexts/git-fixtures'
22
- require 'shared-contexts/tarball'
23
- require 'matchers/exit_with'
24
- require 'matchers/match_realpath'
25
- require 'r10k-mocks'
26
-
27
- # Add a negated version of the change matcher.
28
- RSpec::Matchers.define_negated_matcher :not_change, :change
29
-
30
- RSpec.configure do |config|
31
- config.before(:all) do
32
- Log4r::Logger.global.level = Log4r::OFF
33
- end
34
- end
35
-
36
- shared_context 'fail on execution' do
37
- before do
38
- allow_any_instance_of(described_class).to receive(:execute).and_raise "Tests should never invoke system calls"
39
- allow_any_instance_of(R10K::Util::Subprocess).to receive(:execute).and_raise "Tests should never invoke system calls"
40
- end
41
- end
@@ -1,72 +0,0 @@
1
- require 'spec_helper'
2
- require 'r10k/action/base'
3
- require 'r10k/action/cri_runner'
4
-
5
- describe R10K::Action::CriRunner do
6
-
7
- let(:action_class) do
8
- Class.new do
9
- attr_reader :opts
10
- attr_reader :argv
11
-
12
- def initialize(opts, argv, settings = {})
13
- @opts = opts
14
- @argv = argv
15
- @settings = {}
16
- end
17
-
18
- def call
19
- @opts[:runok]
20
- end
21
- end
22
- end
23
-
24
- subject(:cri_runner) { described_class.wrap(action_class) }
25
-
26
- let(:opts) { {:value => :yep} }
27
- let(:argv) { %w[value yes] }
28
-
29
- describe "handling options" do
30
- it "adapts the :verbose flag to :loglevel" do
31
- input = {:value => :yep, :verbose => 'DEBUG'}
32
- output = {:value => :yep, :loglevel => 'DEBUG'}
33
- expect(cri_runner.handle_opts(input)).to eq(output)
34
- end
35
- end
36
-
37
- describe "handling arguments" do
38
- it "sets the arguments as-is" do
39
- expect(cri_runner.handle_argv(%w[one two])).to eq(%w[one two])
40
- end
41
- end
42
-
43
- describe "proxying invocations to .new" do
44
- it "returns itself" do
45
- expect(cri_runner.new(opts, argv, :cri_cmd)).to eql cri_runner
46
- end
47
-
48
- it "handles options" do
49
- expect(cri_runner).to receive(:handle_opts)
50
- cri_runner.new({:value => :yep, :verbose => 'DEBUG'}, argv, :cri_cmd)
51
- end
52
-
53
- it "handles arguments" do
54
- expect(cri_runner).to receive(:handle_argv)
55
- cri_runner.new({:value => :yep, :verbose => 'DEBUG'}, argv, :cri_cmd)
56
- end
57
- end
58
-
59
- describe "calling" do
60
- it "exits with a return value of 0 if the action returned true" do
61
- expect {
62
- cri_runner.new({:runok => true}, []).call
63
- }.to exit_with(0)
64
- end
65
-
66
- it "exits with a return value of 1 if the action returned false" do
67
- expect {
68
- cri_runner.new({:runok => false}, []).call
69
- }.to exit_with(1)
70
- end
71
- end
72
- end
@@ -1,38 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'r10k/logging'
4
- require 'r10k/action/deploy/deploy_helpers'
5
-
6
- describe R10K::Action::Deploy::DeployHelpers do
7
- subject do
8
- Object.new.tap do |o|
9
- o.extend(R10K::Logging)
10
- o.extend(described_class)
11
- end
12
- end
13
-
14
- describe "checking for a config file" do
15
- it "logs a warning and exits when no config file was set" do
16
- logger = subject.logger
17
-
18
- expect(logger).to receive(:fatal).with("No configuration file given, no config file found in current directory, and no global config present")
19
-
20
- expect {
21
- subject.expect_config!
22
- }.to exit_with(8)
23
- end
24
- end
25
-
26
- describe "checking the write lock setting" do
27
- it "logs a warning and exits when the write lock is set" do
28
- logger = subject.logger
29
-
30
- expect(logger).to receive(:fatal).with("Making changes to deployed environments has been administratively disabled.")
31
- expect(logger).to receive(:fatal).with("Reason: r10k is sleepy and wants to take a nap")
32
-
33
- expect {
34
- subject.check_write_lock!(deploy: {write_lock: "r10k is sleepy and wants to take a nap"})
35
- }.to exit_with(16)
36
- end
37
- end
38
- end
@@ -1,61 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'r10k/action/deploy/display'
4
-
5
- describe R10K::Action::Deploy::Display do
6
- describe "initializing" do
7
- it "accepts a puppetfile option" do
8
- described_class.new({puppetfile: true}, [], {})
9
- end
10
-
11
- it "accepts a modules option" do
12
- described_class.new({modules: true}, [], {})
13
- end
14
-
15
- it "accepts a detail option" do
16
- described_class.new({detail: true}, [], {})
17
- end
18
-
19
- it "accepts a format option" do
20
- described_class.new({format: "json"}, [], {})
21
- end
22
-
23
- it "accepts a fetch option" do
24
- described_class.new({fetch: true}, [], {})
25
- end
26
- end
27
-
28
- subject { described_class.new({config: "/some/nonexistent/path"}, [], {}) }
29
-
30
- before do
31
- allow(subject).to receive(:puts)
32
- end
33
-
34
- it_behaves_like "a deploy action that requires a config file"
35
-
36
- describe "collecting info" do
37
- subject { described_class.new({config: "/some/nonexistent/path", format: 'json', puppetfile: true, detail: true}, ['first'], {}) }
38
-
39
- let(:mock_config) do
40
- R10K::Deployment::MockConfig.new(
41
- :sources => {
42
- :control => {
43
- :type => :mock,
44
- :basedir => '/some/nonexistent/path/control',
45
- :environments => %w[first second third env-that/will-be-corrected],
46
- :prefix => 'PREFIX'
47
- }
48
- }
49
- )
50
- end
51
-
52
- let(:deployment) { R10K::Deployment.new(mock_config) }
53
-
54
- it "gathers environment info" do
55
- source_info = subject.send(:source_info, deployment.sources.first, ['first'])
56
- expect(source_info[:name]).to eq(:control)
57
- expect(source_info[:environments].length).to eq(1)
58
- expect(source_info[:environments][0][:name]).to eq('first')
59
- end
60
- end
61
- end