r10k 3.5.0 → 3.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/pull_request_template.md +4 -1
- data/.github/workflows/docker.yml +25 -1
- data/.github/workflows/rspec_tests.yml +81 -0
- data/.travis.yml +14 -11
- data/CHANGELOG.mkd +42 -6
- data/CODEOWNERS +1 -1
- data/Gemfile +1 -1
- data/README.mkd +13 -4
- data/azure-pipelines.yml +2 -1
- data/doc/dynamic-environments/configuration.mkd +60 -3
- data/doc/dynamic-environments/usage.mkd +5 -4
- data/doc/faq.mkd +6 -1
- data/doc/puppetfile.mkd +2 -0
- data/docker/Makefile +16 -2
- data/docker/r10k/Dockerfile +17 -6
- data/docker/r10k/release.Dockerfile +23 -4
- data/integration/tests/git_source/git_source_repeated_remote.rb +68 -0
- data/integration/tests/user_scenario/complex_workflow/multi_env_add_change_remove.rb +1 -1
- data/integration/tests/user_scenario/complex_workflow/multi_env_remove_re-add.rb +1 -1
- data/integration/tests/user_scenario/complex_workflow/multi_env_unamanaged.rb +1 -1
- data/lib/r10k/action/deploy/environment.rb +3 -0
- data/lib/r10k/action/deploy/module.rb +4 -1
- data/lib/r10k/action/runner.rb +34 -0
- data/lib/r10k/cli/deploy.rb +9 -4
- data/lib/r10k/cli/puppetfile.rb +5 -5
- data/lib/r10k/environment/base.rb +8 -1
- data/lib/r10k/environment/with_modules.rb +27 -19
- data/lib/r10k/forge/module_release.rb +2 -2
- data/lib/r10k/git.rb +1 -0
- data/lib/r10k/git/cache.rb +12 -4
- data/lib/r10k/git/rugged/credentials.rb +32 -2
- data/lib/r10k/git/stateful_repository.rb +4 -0
- data/lib/r10k/initializers.rb +2 -0
- data/lib/r10k/module/base.rb +8 -0
- data/lib/r10k/module/forge.rb +1 -1
- data/lib/r10k/module/git.rb +20 -3
- data/lib/r10k/puppetfile.rb +30 -12
- data/lib/r10k/settings.rb +24 -2
- data/lib/r10k/source/git.rb +22 -2
- data/lib/r10k/version.rb +1 -1
- data/locales/r10k.pot +60 -36
- data/spec/fixtures/unit/action/r10k_creds.yaml +9 -0
- data/spec/shared-examples/subprocess-runner.rb +11 -5
- data/spec/unit/action/deploy/environment_spec.rb +43 -2
- data/spec/unit/action/deploy/module_spec.rb +40 -1
- data/spec/unit/action/puppetfile/install_spec.rb +1 -0
- data/spec/unit/action/runner_spec.rb +48 -1
- data/spec/unit/environment/git_spec.rb +3 -2
- data/spec/unit/environment/with_modules_spec.rb +74 -0
- data/spec/unit/forge/module_release_spec.rb +14 -10
- data/spec/unit/git/cache_spec.rb +10 -0
- data/spec/unit/git/rugged/credentials_spec.rb +69 -2
- data/spec/unit/git_spec.rb +3 -3
- data/spec/unit/module/git_spec.rb +55 -0
- data/spec/unit/puppetfile_spec.rb +61 -7
- data/spec/unit/settings_spec.rb +12 -0
- data/spec/unit/source/git_spec.rb +49 -1
- metadata +6 -2
data/lib/r10k/source/git.rb
CHANGED
@@ -41,6 +41,10 @@ class R10K::Source::Git < R10K::Source::Base
|
|
41
41
|
# that will be deployed as environments.
|
42
42
|
attr_reader :ignore_branch_prefixes
|
43
43
|
|
44
|
+
# @!attribute [r] filter_command
|
45
|
+
# @return [String] Command to run to filter branches
|
46
|
+
attr_reader :filter_command
|
47
|
+
|
44
48
|
# Initialize the given source.
|
45
49
|
#
|
46
50
|
# @param name [String] The identifier for this source.
|
@@ -61,6 +65,7 @@ class R10K::Source::Git < R10K::Source::Base
|
|
61
65
|
@remote = options[:remote]
|
62
66
|
@invalid_branches = (options[:invalid_branches] || 'correct_and_warn')
|
63
67
|
@ignore_branch_prefixes = options[:ignore_branch_prefixes]
|
68
|
+
@filter_command = options[:filter_command]
|
64
69
|
|
65
70
|
@cache = R10K::Git.cache.generate(@remote)
|
66
71
|
end
|
@@ -115,7 +120,7 @@ class R10K::Source::Git < R10K::Source::Base
|
|
115
120
|
environments.map {|env| env.dirname }
|
116
121
|
end
|
117
122
|
|
118
|
-
def
|
123
|
+
def filter_branches_by_regexp(branches, ignore_prefixes)
|
119
124
|
filter = Regexp.new("^#{Regexp.union(ignore_prefixes)}")
|
120
125
|
branches = branches.reject do |branch|
|
121
126
|
result = filter.match(branch)
|
@@ -127,14 +132,29 @@ class R10K::Source::Git < R10K::Source::Base
|
|
127
132
|
branches
|
128
133
|
end
|
129
134
|
|
135
|
+
def filter_branches_by_command(branches, command)
|
136
|
+
branches.select do |branch|
|
137
|
+
result = system({'GIT_DIR' => @cache.git_dir.to_s, 'R10K_BRANCH' => branch, 'R10K_NAME' => @name.to_s}, command)
|
138
|
+
unless result
|
139
|
+
logger.warn _("Branch `%{name}:%{branch}` filtered out by filter_command %{cmd}") % {name: @name, branch: branch, cmd: command}
|
140
|
+
end
|
141
|
+
result
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
130
145
|
private
|
131
146
|
|
132
147
|
def branch_names
|
133
148
|
opts = {:prefix => @prefix, :invalid => @invalid_branches, :source => @name}
|
134
149
|
branches = @cache.branches
|
135
150
|
if @ignore_branch_prefixes && !@ignore_branch_prefixes.empty?
|
136
|
-
branches =
|
151
|
+
branches = filter_branches_by_regexp(branches, @ignore_branch_prefixes)
|
152
|
+
end
|
153
|
+
|
154
|
+
if @filter_command && !@filter_command.empty?
|
155
|
+
branches = filter_branches_by_command(branches, @filter_command)
|
137
156
|
end
|
157
|
+
|
138
158
|
branches.map do |branch|
|
139
159
|
R10K::Environment::Name.new(branch, opts)
|
140
160
|
end
|
data/lib/r10k/version.rb
CHANGED
@@ -2,5 +2,5 @@ module R10K
|
|
2
2
|
# When updating to a new major (X) or minor (Y) version, include `#major` or
|
3
3
|
# `#minor` (respectively) in your commit message to trigger the appropriate
|
4
4
|
# release. Otherwise, a new patch (Z) version will be released.
|
5
|
-
VERSION = '3.
|
5
|
+
VERSION = '3.8.0'
|
6
6
|
end
|
data/locales/r10k.pot
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
# SOME DESCRIPTIVE TITLE.
|
2
|
-
# Copyright (C)
|
2
|
+
# Copyright (C) 2021 Puppet, Inc.
|
3
3
|
# This file is distributed under the same license as the r10k package.
|
4
|
-
# FIRST AUTHOR <EMAIL@ADDRESS>,
|
4
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
|
5
5
|
#
|
6
6
|
#, fuzzy
|
7
7
|
msgid ""
|
8
8
|
msgstr ""
|
9
|
-
"Project-Id-Version: r10k 3.4.1-
|
9
|
+
"Project-Id-Version: r10k 3.4.1-133-g2007a86\n"
|
10
10
|
"\n"
|
11
11
|
"Report-Msgid-Bugs-To: docs@puppetlabs.com\n"
|
12
|
-
"POT-Creation-Date:
|
13
|
-
"PO-Revision-Date:
|
12
|
+
"POT-Creation-Date: 2021-02-12 02:00+0000\n"
|
13
|
+
"PO-Revision-Date: 2021-02-12 02:00+0000\n"
|
14
14
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
15
15
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
16
16
|
"Language: \n"
|
@@ -83,15 +83,15 @@ msgstr ""
|
|
83
83
|
msgid "Cannot track control repo branch for content '%{name}' when not part of a 'deploy' action, will use default if available."
|
84
84
|
msgstr ""
|
85
85
|
|
86
|
-
#: ../lib/r10k/action/runner.rb:
|
86
|
+
#: ../lib/r10k/action/runner.rb:54 ../lib/r10k/deployment/config.rb:42
|
87
87
|
msgid "Overriding config file setting '%{key}': '%{old_val}' -> '%{new_val}'"
|
88
88
|
msgstr ""
|
89
89
|
|
90
|
-
#: ../lib/r10k/action/runner.rb:
|
90
|
+
#: ../lib/r10k/action/runner.rb:91
|
91
91
|
msgid "Reading configuration from %{config_path}"
|
92
92
|
msgstr ""
|
93
93
|
|
94
|
-
#: ../lib/r10k/action/runner.rb:
|
94
|
+
#: ../lib/r10k/action/runner.rb:94
|
95
95
|
msgid "No config file explicitly given and no default config file could be found, default settings will be used."
|
96
96
|
msgstr ""
|
97
97
|
|
@@ -107,12 +107,16 @@ msgstr ""
|
|
107
107
|
msgid "%{class} has not implemented method %{method}"
|
108
108
|
msgstr ""
|
109
109
|
|
110
|
-
#: ../lib/r10k/environment/with_modules.rb:
|
111
|
-
msgid "
|
110
|
+
#: ../lib/r10k/environment/with_modules.rb:60
|
111
|
+
msgid "Environment and %{src} both define the \"%{name}\" module"
|
112
112
|
msgstr ""
|
113
113
|
|
114
|
-
#: ../lib/r10k/environment/with_modules.rb:
|
115
|
-
msgid "
|
114
|
+
#: ../lib/r10k/environment/with_modules.rb:61
|
115
|
+
msgid "#{msg_error}. The %{src} definition will be ignored"
|
116
|
+
msgstr ""
|
117
|
+
|
118
|
+
#: ../lib/r10k/environment/with_modules.rb:71
|
119
|
+
msgid "Unexpected value for `module_conflicts` setting in %{env} environment: %{val}"
|
116
120
|
msgstr ""
|
117
121
|
|
118
122
|
#: ../lib/r10k/feature.rb:27
|
@@ -187,11 +191,11 @@ msgstr ""
|
|
187
191
|
msgid "Cannot write %{file}; parent directory does not exist"
|
188
192
|
msgstr ""
|
189
193
|
|
190
|
-
#: ../lib/r10k/git/cache.rb:
|
194
|
+
#: ../lib/r10k/git/cache.rb:65
|
191
195
|
msgid "%{class}#path is deprecated; use #git_dir"
|
192
196
|
msgstr ""
|
193
197
|
|
194
|
-
#: ../lib/r10k/git/cache.rb:
|
198
|
+
#: ../lib/r10k/git/cache.rb:94
|
195
199
|
msgid "Creating new git cache for %{remote}"
|
196
200
|
msgstr ""
|
197
201
|
|
@@ -227,15 +231,31 @@ msgstr ""
|
|
227
231
|
msgid "Unable to use SSH key auth for %{url}: private key %{private_key} is missing or unreadable"
|
228
232
|
msgstr ""
|
229
233
|
|
230
|
-
#: ../lib/r10k/git/rugged/credentials.rb:
|
234
|
+
#: ../lib/r10k/git/rugged/credentials.rb:72
|
235
|
+
msgid "Using OAuth token from stdin for URL %{url}"
|
236
|
+
msgstr ""
|
237
|
+
|
238
|
+
#: ../lib/r10k/git/rugged/credentials.rb:75
|
239
|
+
msgid "Using OAuth token from %{token_path} for URL %{url}"
|
240
|
+
msgstr ""
|
241
|
+
|
242
|
+
#: ../lib/r10k/git/rugged/credentials.rb:77
|
243
|
+
msgid "%{path} is missing or unreadable, cannot load OAuth token"
|
244
|
+
msgstr ""
|
245
|
+
|
246
|
+
#: ../lib/r10k/git/rugged/credentials.rb:81
|
247
|
+
msgid "Supplied OAuth token contains invalid characters."
|
248
|
+
msgstr ""
|
249
|
+
|
250
|
+
#: ../lib/r10k/git/rugged/credentials.rb:110
|
231
251
|
msgid "URL %{url} includes the username %{username}, using that user for authentication."
|
232
252
|
msgstr ""
|
233
253
|
|
234
|
-
#: ../lib/r10k/git/rugged/credentials.rb:
|
254
|
+
#: ../lib/r10k/git/rugged/credentials.rb:113
|
235
255
|
msgid "URL %{url} did not specify a user, using %{user} from configuration"
|
236
256
|
msgstr ""
|
237
257
|
|
238
|
-
#: ../lib/r10k/git/rugged/credentials.rb:
|
258
|
+
#: ../lib/r10k/git/rugged/credentials.rb:116
|
239
259
|
msgid "URL %{url} did not specify a user, using current user %{user}"
|
240
260
|
msgstr ""
|
241
261
|
|
@@ -255,31 +275,31 @@ msgstr ""
|
|
255
275
|
msgid "Found local modifications in %{file_path}"
|
256
276
|
msgstr ""
|
257
277
|
|
258
|
-
#: ../lib/r10k/git/stateful_repository.rb:
|
278
|
+
#: ../lib/r10k/git/stateful_repository.rb:44
|
259
279
|
msgid "Unable to sync repo to unresolvable ref '%{ref}'"
|
260
280
|
msgstr ""
|
261
281
|
|
262
|
-
#: ../lib/r10k/git/stateful_repository.rb:
|
282
|
+
#: ../lib/r10k/git/stateful_repository.rb:51
|
263
283
|
msgid "Cloning %{repo_path} and checking out %{ref}"
|
264
284
|
msgstr ""
|
265
285
|
|
266
|
-
#: ../lib/r10k/git/stateful_repository.rb:
|
286
|
+
#: ../lib/r10k/git/stateful_repository.rb:54
|
267
287
|
msgid "Replacing %{repo_path} and checking out %{ref}"
|
268
288
|
msgstr ""
|
269
289
|
|
270
|
-
#: ../lib/r10k/git/stateful_repository.rb:
|
290
|
+
#: ../lib/r10k/git/stateful_repository.rb:58 ../lib/r10k/git/stateful_repository.rb:63
|
271
291
|
msgid "Updating %{repo_path} to %{ref}"
|
272
292
|
msgstr ""
|
273
293
|
|
274
|
-
#: ../lib/r10k/git/stateful_repository.rb:
|
294
|
+
#: ../lib/r10k/git/stateful_repository.rb:62
|
275
295
|
msgid "Overwriting local modifications to %{repo_path}"
|
276
296
|
msgstr ""
|
277
297
|
|
278
|
-
#: ../lib/r10k/git/stateful_repository.rb:
|
298
|
+
#: ../lib/r10k/git/stateful_repository.rb:66
|
279
299
|
msgid "Skipping %{repo_path} due to local modifications"
|
280
300
|
msgstr ""
|
281
301
|
|
282
|
-
#: ../lib/r10k/git/stateful_repository.rb:
|
302
|
+
#: ../lib/r10k/git/stateful_repository.rb:69
|
283
303
|
msgid "%{repo_path} is already at Git ref %{ref}"
|
284
304
|
msgstr ""
|
285
305
|
|
@@ -303,7 +323,7 @@ msgstr ""
|
|
303
323
|
msgid "Module %{name} with args %{args} doesn't have an implementation. (Are you using the right arguments?)"
|
304
324
|
msgstr ""
|
305
325
|
|
306
|
-
#: ../lib/r10k/module/base.rb:
|
326
|
+
#: ../lib/r10k/module/base.rb:118
|
307
327
|
msgid "Module name (%{title}) must match either 'modulename' or 'owner/modulename'"
|
308
328
|
msgstr ""
|
309
329
|
|
@@ -312,10 +332,10 @@ msgid "The module %{title} does not exist on %{url}."
|
|
312
332
|
msgstr ""
|
313
333
|
|
314
334
|
#: ../lib/r10k/module/forge.rb:174
|
315
|
-
msgid "Forge module names must match 'owner/modulename'"
|
335
|
+
msgid "Forge module names must match 'owner/modulename', instead got #{title}"
|
316
336
|
msgstr ""
|
317
337
|
|
318
|
-
#: ../lib/r10k/module/git.rb:
|
338
|
+
#: ../lib/r10k/module/git.rb:113
|
319
339
|
msgid "Unhandled options %{unhandled} specified for %{class}"
|
320
340
|
msgstr ""
|
321
341
|
|
@@ -347,19 +367,19 @@ msgstr ""
|
|
347
367
|
msgid "Remove the duplicates of the following modules: %{dupes}"
|
348
368
|
msgstr ""
|
349
369
|
|
350
|
-
#: ../lib/r10k/puppetfile.rb:
|
370
|
+
#: ../lib/r10k/puppetfile.rb:201
|
351
371
|
msgid "Updating modules with %{pool_size} threads"
|
352
372
|
msgstr ""
|
353
373
|
|
354
|
-
#: ../lib/r10k/puppetfile.rb:
|
374
|
+
#: ../lib/r10k/puppetfile.rb:212
|
355
375
|
msgid "Error during concurrent deploy of a module: %{message}"
|
356
376
|
msgstr ""
|
357
377
|
|
358
|
-
#: ../lib/r10k/puppetfile.rb:
|
378
|
+
#: ../lib/r10k/puppetfile.rb:241
|
359
379
|
msgid "Module thread %{id} exiting: %{message}"
|
360
380
|
msgstr ""
|
361
381
|
|
362
|
-
#: ../lib/r10k/puppetfile.rb:
|
382
|
+
#: ../lib/r10k/puppetfile.rb:300
|
363
383
|
msgid "unrecognized declaration '%{method}'"
|
364
384
|
msgstr ""
|
365
385
|
|
@@ -442,26 +462,30 @@ msgid ""
|
|
442
462
|
"Returned: %{data}"
|
443
463
|
msgstr ""
|
444
464
|
|
445
|
-
#: ../lib/r10k/source/git.rb:
|
465
|
+
#: ../lib/r10k/source/git.rb:77
|
446
466
|
msgid "Fetching '%{remote}' to determine current branches."
|
447
467
|
msgstr ""
|
448
468
|
|
449
|
-
#: ../lib/r10k/source/git.rb:
|
469
|
+
#: ../lib/r10k/source/git.rb:80
|
450
470
|
msgid "Unable to determine current branches for Git source '%{name}' (%{basedir})"
|
451
471
|
msgstr ""
|
452
472
|
|
453
|
-
#: ../lib/r10k/source/git.rb:
|
473
|
+
#: ../lib/r10k/source/git.rb:105
|
454
474
|
msgid "Environment %{env_name} contained non-word characters, correcting name to %{corrected_env_name}"
|
455
475
|
msgstr ""
|
456
476
|
|
457
|
-
#: ../lib/r10k/source/git.rb:
|
477
|
+
#: ../lib/r10k/source/git.rb:109
|
458
478
|
msgid "Environment %{env_name} contained non-word characters, ignoring it."
|
459
479
|
msgstr ""
|
460
480
|
|
461
|
-
#: ../lib/r10k/source/git.rb:
|
481
|
+
#: ../lib/r10k/source/git.rb:128 ../lib/r10k/source/svn.rb:113
|
462
482
|
msgid "Branch %{branch} filtered out by ignore_branch_prefixes %{ibp}"
|
463
483
|
msgstr ""
|
464
484
|
|
485
|
+
#: ../lib/r10k/source/git.rb:139
|
486
|
+
msgid "Branch `%{name}:%{branch}` filtered out by filter_command %{cmd}"
|
487
|
+
msgstr ""
|
488
|
+
|
465
489
|
#: ../lib/r10k/source/yaml.rb:10
|
466
490
|
msgid "Couldn't open environments file %{file}: %{err}"
|
467
491
|
msgstr ""
|
@@ -0,0 +1,9 @@
|
|
1
|
+
---
|
2
|
+
git:
|
3
|
+
private_key: '/global/config/private/key'
|
4
|
+
oauth_token: '/global/config/oauth/token'
|
5
|
+
repositories:
|
6
|
+
- remote: 'git@myfakegitserver.com:user/repo.git'
|
7
|
+
private_key: '/config/private/key'
|
8
|
+
- remote: 'https://myfakegitserver.com/user/repo.git'
|
9
|
+
oauth_token: '/config/oauth/token'
|
@@ -32,23 +32,29 @@ shared_examples_for "a subprocess runner" do |fixture_root|
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
describe "running 'ls' with a different working directory" do
|
35
|
+
describe "running 'ls' or 'dir' with a different working directory" do
|
36
36
|
subject do
|
37
|
-
|
38
|
-
|
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
|
39
45
|
end
|
40
46
|
end
|
41
47
|
|
42
48
|
it "returns the contents of the given working directory" do
|
43
49
|
result = subject.run
|
44
|
-
expect(result.stdout).to
|
50
|
+
expect(result.stdout).to match('no-execute.sh')
|
45
51
|
end
|
46
52
|
end
|
47
53
|
|
48
54
|
describe "running 'false'" do
|
49
55
|
subject { described_class.new(%w[false]) }
|
50
56
|
|
51
|
-
it "sets the exit code to 1" do
|
57
|
+
it "sets the exit code to 1", unless: R10K::Util::Platform.windows? do
|
52
58
|
result = subject.run
|
53
59
|
expect(result.exit_code).to eq 1
|
54
60
|
end
|
@@ -27,8 +27,6 @@ describe R10K::Action::Deploy::Environment do
|
|
27
27
|
described_class.new({:'no-force' => true}, [])
|
28
28
|
end
|
29
29
|
|
30
|
-
it "normalizes environment names in the arg vector"
|
31
|
-
|
32
30
|
it 'can accept a generate-types option' do
|
33
31
|
described_class.new({ 'generate-types': true }, [])
|
34
32
|
end
|
@@ -36,6 +34,14 @@ describe R10K::Action::Deploy::Environment do
|
|
36
34
|
it 'can accept a puppet-path option' do
|
37
35
|
described_class.new({ 'puppet-path': '/nonexistent' }, [])
|
38
36
|
end
|
37
|
+
|
38
|
+
it 'can accept a private-key option' do
|
39
|
+
described_class.new({ 'private-key': '/nonexistent' }, [])
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'can accept a token option' do
|
43
|
+
described_class.new({ 'oauth-token': '/nonexistent' }, [])
|
44
|
+
end
|
39
45
|
end
|
40
46
|
|
41
47
|
describe "when called" do
|
@@ -162,6 +168,13 @@ describe R10K::Action::Deploy::Environment do
|
|
162
168
|
end
|
163
169
|
end
|
164
170
|
|
171
|
+
describe 'extracting credentials' do
|
172
|
+
let(:deployment) do
|
173
|
+
R10K::Deployment.new(mock_config)
|
174
|
+
end
|
175
|
+
|
176
|
+
end
|
177
|
+
|
165
178
|
describe "purge_levels" do
|
166
179
|
let(:settings) { { deploy: { purge_levels: purge_levels } } }
|
167
180
|
|
@@ -219,6 +232,7 @@ describe R10K::Action::Deploy::Environment do
|
|
219
232
|
end
|
220
233
|
end
|
221
234
|
end
|
235
|
+
|
222
236
|
describe "generate-types" do
|
223
237
|
let(:deployment) do
|
224
238
|
R10K::Deployment.new(
|
@@ -331,6 +345,33 @@ describe R10K::Action::Deploy::Environment do
|
|
331
345
|
expect(subject.instance_variable_get(:@puppet_path)).to eq('/nonexistent')
|
332
346
|
end
|
333
347
|
end
|
348
|
+
|
349
|
+
describe 'with puppet-conf' do
|
350
|
+
|
351
|
+
subject { described_class.new({ config: '/some/nonexistent/path', 'puppet-conf': '/nonexistent' }, []) }
|
352
|
+
|
353
|
+
it 'sets puppet_conf' do
|
354
|
+
expect(subject.instance_variable_get(:@puppet_conf)).to eq('/nonexistent')
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
358
|
+
describe 'with private-key' do
|
359
|
+
|
360
|
+
subject { described_class.new({ config: '/some/nonexistent/path', 'private-key': '/nonexistent' }, []) }
|
361
|
+
|
362
|
+
it 'sets private_key' do
|
363
|
+
expect(subject.instance_variable_get(:@private_key)).to eq('/nonexistent')
|
364
|
+
end
|
365
|
+
end
|
366
|
+
|
367
|
+
describe 'with oauth-token' do
|
368
|
+
|
369
|
+
subject { described_class.new({ config: '/some/nonexistent/path', 'oauth-token': '/nonexistent' }, []) }
|
370
|
+
|
371
|
+
it 'sets oauth_token' do
|
372
|
+
expect(subject.instance_variable_get(:@oauth_token)).to eq('/nonexistent')
|
373
|
+
end
|
374
|
+
end
|
334
375
|
end
|
335
376
|
|
336
377
|
describe "write_environment_info!" do
|
@@ -26,9 +26,21 @@ describe R10K::Action::Deploy::Module do
|
|
26
26
|
described_class.new({ 'puppet-path': '/nonexistent' }, [])
|
27
27
|
end
|
28
28
|
|
29
|
+
it 'can accept a puppet-conf option' do
|
30
|
+
described_class.new({ 'puppet-conf': '/nonexistent' }, [])
|
31
|
+
end
|
32
|
+
|
29
33
|
it 'can accept a cachedir option' do
|
30
34
|
described_class.new({ cachedir: '/nonexistent' }, [])
|
31
35
|
end
|
36
|
+
|
37
|
+
it 'can accept a private-key option' do
|
38
|
+
described_class.new({ 'private-key': '/nonexistent' }, [])
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'can accept a token option' do
|
42
|
+
described_class.new({ 'oauth-token': '/nonexistent' }, [])
|
43
|
+
end
|
32
44
|
end
|
33
45
|
|
34
46
|
describe "with no-force" do
|
@@ -128,12 +140,39 @@ describe R10K::Action::Deploy::Module do
|
|
128
140
|
end
|
129
141
|
end
|
130
142
|
|
143
|
+
describe 'with puppet-conf' do
|
144
|
+
|
145
|
+
subject { described_class.new({ config: '/some/nonexistent/path', 'puppet-conf': '/nonexistent' }, []) }
|
146
|
+
|
147
|
+
it 'sets puppet_conf' do
|
148
|
+
expect(subject.instance_variable_get(:@puppet_conf)).to eq('/nonexistent')
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
131
152
|
describe 'with cachedir' do
|
132
153
|
|
133
154
|
subject { described_class.new({ config: '/some/nonexistent/path', cachedir: '/nonexistent' }, []) }
|
134
155
|
|
135
|
-
it 'sets
|
156
|
+
it 'sets cachedir' do
|
136
157
|
expect(subject.instance_variable_get(:@cachedir)).to eq('/nonexistent')
|
137
158
|
end
|
138
159
|
end
|
160
|
+
|
161
|
+
describe 'with private-key' do
|
162
|
+
|
163
|
+
subject { described_class.new({ config: '/some/nonexistent/path', 'private-key': '/nonexistent' }, []) }
|
164
|
+
|
165
|
+
it 'sets private_key' do
|
166
|
+
expect(subject.instance_variable_get(:@private_key)).to eq('/nonexistent')
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
describe 'with oauth-token' do
|
171
|
+
|
172
|
+
subject { described_class.new({ config: '/some/nonexistent/path', 'oauth-token': '/nonexistent' }, []) }
|
173
|
+
|
174
|
+
it 'sets token_path' do
|
175
|
+
expect(subject.instance_variable_get(:@oauth_token)).to eq('/nonexistent')
|
176
|
+
end
|
177
|
+
end
|
139
178
|
end
|