r10k 3.9.0 → 3.10.0

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/.github/pull_request_template.md +1 -1
  3. data/.github/workflows/rspec_tests.yml +1 -1
  4. data/.github/workflows/stale.yml +19 -0
  5. data/CHANGELOG.mkd +24 -0
  6. data/doc/dynamic-environments/configuration.mkd +13 -6
  7. data/integration/Rakefile +1 -1
  8. data/integration/tests/user_scenario/basic_workflow/negative/neg_specify_deleted_forge_module.rb +3 -9
  9. data/integration/tests/user_scenario/basic_workflow/single_env_purge_unmanaged_modules.rb +8 -14
  10. data/lib/r10k/action/base.rb +10 -0
  11. data/lib/r10k/action/deploy/display.rb +42 -9
  12. data/lib/r10k/action/deploy/environment.rb +70 -41
  13. data/lib/r10k/action/deploy/module.rb +51 -29
  14. data/lib/r10k/action/puppetfile/check.rb +3 -1
  15. data/lib/r10k/action/puppetfile/install.rb +20 -23
  16. data/lib/r10k/action/puppetfile/purge.rb +8 -2
  17. data/lib/r10k/action/runner.rb +11 -6
  18. data/lib/r10k/content_synchronizer.rb +83 -0
  19. data/lib/r10k/deployment.rb +1 -1
  20. data/lib/r10k/environment/base.rb +21 -1
  21. data/lib/r10k/environment/git.rb +0 -3
  22. data/lib/r10k/environment/svn.rb +4 -6
  23. data/lib/r10k/environment/with_modules.rb +18 -10
  24. data/lib/r10k/git/cache.rb +1 -1
  25. data/lib/r10k/initializers.rb +7 -0
  26. data/lib/r10k/module.rb +1 -1
  27. data/lib/r10k/module/base.rb +17 -1
  28. data/lib/r10k/module/forge.rb +29 -19
  29. data/lib/r10k/module/git.rb +23 -14
  30. data/lib/r10k/module/local.rb +1 -0
  31. data/lib/r10k/module/svn.rb +12 -9
  32. data/lib/r10k/module_loader/puppetfile.rb +195 -0
  33. data/lib/r10k/module_loader/puppetfile/dsl.rb +37 -0
  34. data/lib/r10k/puppetfile.rb +111 -202
  35. data/lib/r10k/settings.rb +3 -0
  36. data/lib/r10k/source/base.rb +14 -0
  37. data/lib/r10k/source/git.rb +19 -6
  38. data/lib/r10k/source/hash.rb +1 -3
  39. data/lib/r10k/source/svn.rb +4 -2
  40. data/lib/r10k/util/cleaner.rb +21 -0
  41. data/lib/r10k/util/purgeable.rb +70 -8
  42. data/lib/r10k/version.rb +1 -1
  43. data/locales/r10k.pot +67 -71
  44. data/spec/fixtures/unit/action/r10k_forge_auth.yaml +4 -0
  45. data/spec/fixtures/unit/action/r10k_forge_auth_no_url.yaml +3 -0
  46. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/managed_subdir_2/ignored_1 +0 -0
  47. data/spec/fixtures/unit/util/purgeable/managed_two/.hidden/unmanaged_3 +0 -0
  48. data/spec/r10k-mocks/mock_source.rb +1 -1
  49. data/spec/shared-examples/puppetfile-action.rb +7 -7
  50. data/spec/unit/action/deploy/display_spec.rb +32 -6
  51. data/spec/unit/action/deploy/environment_spec.rb +85 -48
  52. data/spec/unit/action/deploy/module_spec.rb +163 -31
  53. data/spec/unit/action/puppetfile/check_spec.rb +2 -2
  54. data/spec/unit/action/puppetfile/install_spec.rb +31 -10
  55. data/spec/unit/action/puppetfile/purge_spec.rb +25 -5
  56. data/spec/unit/action/runner_spec.rb +49 -25
  57. data/spec/unit/git/cache_spec.rb +14 -0
  58. data/spec/unit/module/forge_spec.rb +23 -14
  59. data/spec/unit/module/git_spec.rb +8 -8
  60. data/spec/unit/module_loader/puppetfile_spec.rb +330 -0
  61. data/spec/unit/module_spec.rb +22 -5
  62. data/spec/unit/puppetfile_spec.rb +123 -203
  63. data/spec/unit/settings_spec.rb +6 -2
  64. data/spec/unit/util/purgeable_spec.rb +40 -14
  65. metadata +12 -2
@@ -1,8 +1,12 @@
1
+ require 'r10k/logging'
2
+
1
3
  # This class defines a common interface for source implementations.
2
4
  #
3
5
  # @since 1.3.0
4
6
  class R10K::Source::Base
5
7
 
8
+ include R10K::Logging
9
+
6
10
  # @!attribute [r] basedir
7
11
  # @return [String] The path this source will place environments in
8
12
  attr_reader :basedir
@@ -59,6 +63,16 @@ class R10K::Source::Base
59
63
 
60
64
  end
61
65
 
66
+ # Perform actions to reload environments after the `preload!`. Similar
67
+ # to preload!, and likely to include network queries and rerunning
68
+ # environment generation.
69
+ #
70
+ # @api public
71
+ # @abstract
72
+ # @return [void]
73
+ def reload!
74
+ end
75
+
62
76
  # Enumerate the environments associated with this SVN source.
63
77
  #
64
78
  # @api public
@@ -11,8 +11,6 @@ require 'r10k/environment/name'
11
11
  # @since 1.3.0
12
12
  class R10K::Source::Git < R10K::Source::Base
13
13
 
14
- include R10K::Logging
15
-
16
14
  R10K::Source.register(:git, self)
17
15
  # Register git as the default source
18
16
  R10K::Source.register(nil, self)
@@ -95,16 +93,31 @@ class R10K::Source::Git < R10K::Source::Base
95
93
  end
96
94
  end
97
95
 
96
+ def reload!
97
+ @cache.sync!
98
+ @environments = generate_environments()
99
+ end
100
+
98
101
  def generate_environments
99
102
  envs = []
100
103
  branch_names.each do |bn|
101
104
  if bn.valid?
102
- envs << R10K::Environment::Git.new(bn.name, @basedir, bn.dirname,
103
- {:remote => remote, :ref => bn.name, :puppetfile_name => puppetfile_name })
105
+ envs << R10K::Environment::Git.new(bn.name,
106
+ @basedir,
107
+ bn.dirname,
108
+ {remote: remote,
109
+ ref: bn.name,
110
+ puppetfile_name: puppetfile_name,
111
+ overrides: @options[:overrides]})
104
112
  elsif bn.correct?
105
113
  logger.warn _("Environment %{env_name} contained non-word characters, correcting name to %{corrected_env_name}") % {env_name: bn.name.inspect, corrected_env_name: bn.dirname}
106
- envs << R10K::Environment::Git.new(bn.name, @basedir, bn.dirname,
107
- {:remote => remote, :ref => bn.name, :puppetfile_name => puppetfile_name})
114
+ envs << R10K::Environment::Git.new(bn.name,
115
+ @basedir,
116
+ bn.dirname,
117
+ {remote: remote,
118
+ ref: bn.name,
119
+ puppetfile_name: puppetfile_name,
120
+ overrides: @options[:overrides]})
108
121
  elsif bn.validate?
109
122
  logger.error _("Environment %{env_name} contained non-word characters, ignoring it.") % {env_name: bn.name.inspect}
110
123
  end
@@ -120,8 +120,6 @@
120
120
  #
121
121
  class R10K::Source::Hash < R10K::Source::Base
122
122
 
123
- include R10K::Logging
124
-
125
123
  # @param hash [Hash] A hash to validate.
126
124
  # @return [Boolean] False if the hash is obviously invalid. A true return
127
125
  # means _maybe_ it's valid.
@@ -170,7 +168,7 @@ class R10K::Source::Hash < R10K::Source::Base
170
168
 
171
169
  def environments
172
170
  @environments ||= environments_hash.map do |name, hash|
173
- R10K::Environment.from_hash(name, hash)
171
+ R10K::Environment.from_hash(name, hash.merge({overrides: @options[:overrides]}))
174
172
  end
175
173
  end
176
174
 
@@ -65,6 +65,10 @@ class R10K::Source::SVN < R10K::Source::Base
65
65
  @ignore_branch_prefixes = options[:ignore_branch_prefixes]
66
66
  end
67
67
 
68
+ def reload!
69
+ @environments = generate_environments()
70
+ end
71
+
68
72
  # Enumerate the environments associated with this SVN source.
69
73
  #
70
74
  # @return [Array<R10K::Environment::SVN>] An array of environments created
@@ -103,8 +107,6 @@ class R10K::Source::SVN < R10K::Source::Base
103
107
  @environments.map {|env| env.dirname }
104
108
  end
105
109
 
106
- include R10K::Logging
107
-
108
110
  def filter_branches(branches, ignore_prefixes)
109
111
  filter = Regexp.new("^(#{ignore_prefixes.join('|')})")
110
112
  branches = branches.reject do |branch|
@@ -0,0 +1,21 @@
1
+ require 'r10k/logging'
2
+ require 'r10k/util/purgeable'
3
+
4
+ module R10K
5
+ module Util
6
+ class Cleaner
7
+
8
+ include R10K::Logging
9
+ include R10K::Util::Purgeable
10
+
11
+ attr_reader :managed_directories, :desired_contents, :purge_exclusions
12
+
13
+ def initialize(managed_directories, desired_contents, purge_exclusions = [])
14
+ @managed_directories = managed_directories
15
+ @desired_contents = desired_contents
16
+ @purge_exclusions = purge_exclusions
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -9,6 +9,12 @@ module R10K
9
9
  # {#desired_contents}
10
10
  module Purgeable
11
11
 
12
+ HIDDEN_FILE = /\.[^.]+/
13
+
14
+ FN_MATCH_OPTS = File::FNM_PATHNAME | File::FNM_DOTMATCH
15
+
16
+ # @deprecated
17
+ #
12
18
  # @!method logger
13
19
  # @abstract Including classes must provide a logger method
14
20
  # @return [Log4r::Logger]
@@ -38,23 +44,79 @@ module R10K
38
44
  end
39
45
  end
40
46
 
47
+ # @deprecated Unused helper function
48
+ #
41
49
  # @return [Array<String>] Directory contents that are expected but not present
42
50
  def pending_contents(recurse)
43
51
  desired_contents - current_contents(recurse)
44
52
  end
45
53
 
54
+ def matches?(test, path)
55
+ if test == path
56
+ true
57
+ elsif File.fnmatch?(test, path, FN_MATCH_OPTS)
58
+ true
59
+ else
60
+ false
61
+ end
62
+ end
63
+
64
+ # A method to collect potentially purgeable content without searching into
65
+ # ignored directories when recursively searching.
66
+ #
67
+ # @param dir [String, Pathname] The directory to search for purgeable content
68
+ # @param exclusion_gobs [Array<String>] A list of file paths or File globs
69
+ # to exclude from recursion (These are generated by the classes that
70
+ # mix this module into them and are typically programatically generated)
71
+ # @param allowed_gobs [Array<String>] A list of file paths or File globs to exclude
72
+ # from recursion (These are passed in by the caller of purge! and typically
73
+ # are user supplied configuration values)
74
+ # @param desireds_not_to_recurse_into [Array<String>] A list of file paths not to
75
+ # recurse into. These are programatically generated, these exist to maintain
76
+ # backwards compatibility with previous implementations that used File.globs
77
+ # for "recursion", ie "**/{*,.[^.]*}" which would not recurse into dot directories.
78
+ # @param recurse [Boolean] Whether or not to recurse into child directories that do
79
+ # not match other filters.
80
+ #
81
+ # @return [Array<String>] Contents which may be purged.
82
+ def potentially_purgeable(dir, exclusion_globs, allowed_globs, desireds_not_to_recurse_into, recurse)
83
+ children = Pathname.new(dir).children.reject do |path|
84
+ path = path.to_s
85
+
86
+ if exclusion_match = exclusion_globs.find { |exclusion| matches?(exclusion, path) }
87
+ logger.debug2 _("Not purging %{path} due to internal exclusion match: %{exclusion_match}") % {path: path, exclusion_match: exclusion_match}
88
+ elsif allowlist_match = allowed_globs.find { |allowed| matches?(allowed, path) }
89
+ logger.debug _("Not purging %{path} due to whitelist match: %{allowlist_match}") % {path: path, allowlist_match: allowlist_match}
90
+ else
91
+ desired_match = desireds_not_to_recurse_into.grep(path).first
92
+ end
93
+
94
+ !!exclusion_match || !!allowlist_match || !!desired_match
95
+ end
96
+
97
+ children.flat_map do |child|
98
+ if File.directory?(child) && recurse
99
+ potentially_purgeable(child, exclusion_globs, allowed_globs, desireds_not_to_recurse_into, recurse)
100
+ else
101
+ child.to_s
102
+ end
103
+ end
104
+ end
105
+
46
106
  # @return [Array<String>] Directory contents that are present but not expected
47
107
  def stale_contents(recurse, exclusions, whitelist)
48
- fn_match_opts = File::FNM_PATHNAME | File::FNM_DOTMATCH
108
+ dirs = self.managed_directories
109
+ desireds = self.desired_contents
110
+ hidden_desireds, regular_desireds = desireds.partition do |desired|
111
+ HIDDEN_FILE.match(File.basename(desired))
112
+ end
49
113
 
50
- (current_contents(recurse) - desired_contents).reject do |item|
51
- if exclusion_match = exclusions.find { |ex_item| (ex_item == item) || File.fnmatch?(ex_item, item, fn_match_opts) }
52
- logger.debug2 _("Not purging %{item} due to internal exclusion match: %{exclusion_match}") % {item: item, exclusion_match: exclusion_match}
53
- elsif whitelist_match = whitelist.find { |wl_item| (wl_item == item) || File.fnmatch?(wl_item, item, fn_match_opts) }
54
- logger.debug _("Not purging %{item} due to whitelist match: %{whitelist_match}") % {item: item, whitelist_match: whitelist_match}
55
- end
114
+ initial_purgelist = dirs.flat_map do |dir|
115
+ potentially_purgeable(dir, exclusions, whitelist, hidden_desireds, recurse)
116
+ end
56
117
 
57
- !!exclusion_match || !!whitelist_match
118
+ initial_purgelist.reject do |path|
119
+ regular_desireds.any? { |desired| matches?(desired, path) }
58
120
  end
59
121
  end
60
122
 
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.9.0'
5
+ VERSION = '3.10.0'
6
6
  end
data/locales/r10k.pot CHANGED
@@ -6,11 +6,11 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: r10k 3.4.1-151-g93d38cb\n"
9
+ "Project-Id-Version: r10k 3.9.3-10-gfedc81a\n"
10
10
  "\n"
11
11
  "Report-Msgid-Bugs-To: docs@puppetlabs.com\n"
12
- "POT-Creation-Date: 2021-03-15 17:00+0000\n"
13
- "PO-Revision-Date: 2021-03-15 17:00+0000\n"
12
+ "POT-Creation-Date: 2021-07-07 21:13+0000\n"
13
+ "PO-Revision-Date: 2021-07-07 21:13+0000\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -31,58 +31,38 @@ msgstr ""
31
31
  msgid "Reason: %{write_lock}"
32
32
  msgstr ""
33
33
 
34
- #: ../lib/r10k/action/deploy/environment.rb:57
34
+ #: ../lib/r10k/action/deploy/environment.rb:112
35
35
  msgid "Environment(s) \\'%{environments}\\' cannot be found in any source and will not be deployed."
36
36
  msgstr ""
37
37
 
38
- #: ../lib/r10k/action/deploy/environment.rb:85
38
+ #: ../lib/r10k/action/deploy/environment.rb:145
39
39
  msgid "Environment %{env_dir} does not match environment name filter, skipping"
40
40
  msgstr ""
41
41
 
42
- #: ../lib/r10k/action/deploy/environment.rb:93
42
+ #: ../lib/r10k/action/deploy/environment.rb:153
43
43
  msgid "Deploying environment %{env_path}"
44
44
  msgstr ""
45
45
 
46
- #: ../lib/r10k/action/deploy/environment.rb:96
46
+ #: ../lib/r10k/action/deploy/environment.rb:156
47
47
  msgid "Environment %{env_dir} is now at %{env_signature}"
48
48
  msgstr ""
49
49
 
50
- #: ../lib/r10k/action/deploy/environment.rb:100
50
+ #: ../lib/r10k/action/deploy/environment.rb:160
51
51
  msgid "Environment %{env_dir} is new, updating all modules"
52
52
  msgstr ""
53
53
 
54
- #: ../lib/r10k/action/deploy/environment.rb:143
55
- msgid "Deploying %{origin} content %{path}"
54
+ #: ../lib/r10k/action/deploy/module.rb:81
55
+ msgid "Only updating modules in environment(s) %{opt_env} skipping environment %{env_path}"
56
56
  msgstr ""
57
57
 
58
- #: ../lib/r10k/action/deploy/module.rb:49
59
- msgid "Only updating modules in environment %{opt_env} skipping environment %{env_path}"
60
- msgstr ""
61
-
62
- #: ../lib/r10k/action/deploy/module.rb:51
58
+ #: ../lib/r10k/action/deploy/module.rb:83
63
59
  msgid "Updating modules %{modules} in environment %{env_path}"
64
60
  msgstr ""
65
61
 
66
- #: ../lib/r10k/action/deploy/module.rb:63
67
- msgid "Deploying module %{mod_path}"
68
- msgstr ""
69
-
70
- #: ../lib/r10k/action/deploy/module.rb:70
71
- msgid "Only updating modules %{modules}, skipping module %{mod_name}"
72
- msgstr ""
73
-
74
- #: ../lib/r10k/action/puppetfile/check.rb:14
62
+ #: ../lib/r10k/action/puppetfile/check.rb:16
75
63
  msgid "Syntax OK"
76
64
  msgstr ""
77
65
 
78
- #: ../lib/r10k/action/puppetfile/install.rb:30
79
- msgid "Updating module %{mod_path}"
80
- msgstr ""
81
-
82
- #: ../lib/r10k/action/puppetfile/install.rb:33
83
- msgid "Cannot track control repo branch for content '%{name}' when not part of a 'deploy' action, will use default if available."
84
- msgstr ""
85
-
86
66
  #: ../lib/r10k/action/runner.rb:54 ../lib/r10k/deployment/config.rb:42
87
67
  msgid "Overriding config file setting '%{key}': '%{old_val}' -> '%{new_val}'"
88
68
  msgstr ""
@@ -95,6 +75,18 @@ msgstr ""
95
75
  msgid "No config file explicitly given and no default config file could be found, default settings will be used."
96
76
  msgstr ""
97
77
 
78
+ #: ../lib/r10k/content_synchronizer.rb:27
79
+ msgid "Updating modules with %{pool_size} threads"
80
+ msgstr ""
81
+
82
+ #: ../lib/r10k/content_synchronizer.rb:37
83
+ msgid "Error during concurrent deploy of a module: %{message}"
84
+ msgstr ""
85
+
86
+ #: ../lib/r10k/content_synchronizer.rb:75
87
+ msgid "Module thread %{id} exiting: %{message}"
88
+ msgstr ""
89
+
98
90
  #: ../lib/r10k/deployment.rb:90
99
91
  msgid "Environment collision at %{env_path} between %{source}:%{env_name} and %{osource}:%{oenv_name}"
100
92
  msgstr ""
@@ -103,7 +95,7 @@ msgstr ""
103
95
  msgid "Unable to load sources; the supplied configuration does not define the 'sources' key"
104
96
  msgstr ""
105
97
 
106
- #: ../lib/r10k/environment/base.rb:61 ../lib/r10k/environment/base.rb:77 ../lib/r10k/environment/base.rb:86 ../lib/r10k/source/base.rb:69
98
+ #: ../lib/r10k/environment/base.rb:68 ../lib/r10k/environment/base.rb:84 ../lib/r10k/environment/base.rb:93 ../lib/r10k/source/base.rb:83
107
99
  msgid "%{class} has not implemented method %{method}"
108
100
  msgstr ""
109
101
 
@@ -111,15 +103,15 @@ msgstr ""
111
103
  msgid "Improper configuration value given for strip_component setting in %{src} source. Value must be a string, a /regex/, false, or omitted. Got \"%{val}\" (%{type})"
112
104
  msgstr ""
113
105
 
114
- #: ../lib/r10k/environment/with_modules.rb:60
106
+ #: ../lib/r10k/environment/with_modules.rb:57
115
107
  msgid "Environment and %{src} both define the \"%{name}\" module"
116
108
  msgstr ""
117
109
 
118
- #: ../lib/r10k/environment/with_modules.rb:61
110
+ #: ../lib/r10k/environment/with_modules.rb:58
119
111
  msgid "#{msg_error}. The %{src} definition will be ignored"
120
112
  msgstr ""
121
113
 
122
- #: ../lib/r10k/environment/with_modules.rb:71
114
+ #: ../lib/r10k/environment/with_modules.rb:68
123
115
  msgid "Unexpected value for `module_conflicts` setting in %{env} environment: %{val}"
124
116
  msgstr ""
125
117
 
@@ -327,19 +319,35 @@ msgstr ""
327
319
  msgid "Module %{name} with args %{args} doesn't have an implementation. (Are you using the right arguments?)"
328
320
  msgstr ""
329
321
 
330
- #: ../lib/r10k/module/base.rb:118
322
+ #: ../lib/r10k/module/base.rb:75
323
+ msgid "Deploying module to %{path}"
324
+ msgstr ""
325
+
326
+ #: ../lib/r10k/module/base.rb:78
327
+ msgid "Only updating modules %{modules}, skipping module %{name}"
328
+ msgstr ""
329
+
330
+ #: ../lib/r10k/module/base.rb:134
331
331
  msgid "Module name (%{title}) must match either 'modulename' or 'owner/modulename'"
332
332
  msgstr ""
333
333
 
334
- #: ../lib/r10k/module/forge.rb:81 ../lib/r10k/module/forge.rb:110
334
+ #: ../lib/r10k/module/forge.rb:89
335
+ msgid "The module %{title} does not appear to have any published releases, cannot determine latest version."
336
+ msgstr ""
337
+
338
+ #: ../lib/r10k/module/forge.rb:92 ../lib/r10k/module/forge.rb:121
335
339
  msgid "The module %{title} does not exist on %{url}."
336
340
  msgstr ""
337
341
 
338
- #: ../lib/r10k/module/forge.rb:185
342
+ #: ../lib/r10k/module/forge.rb:196
339
343
  msgid "Forge module names must match 'owner/modulename', instead got #{title}"
340
344
  msgstr ""
341
345
 
342
- #: ../lib/r10k/module/local.rb:34
346
+ #: ../lib/r10k/module/git.rb:66
347
+ msgid "Cannot track control repo branch for content '%{name}' when not part of a git-backed environment, will use default if available."
348
+ msgstr ""
349
+
350
+ #: ../lib/r10k/module/local.rb:35
343
351
  msgid "Module %{title} is a local module, always indicating synced."
344
352
  msgstr ""
345
353
 
@@ -347,39 +355,27 @@ msgstr ""
347
355
  msgid "Could not read metadata.json"
348
356
  msgstr ""
349
357
 
350
- #: ../lib/r10k/puppetfile.rb:57
358
+ #: ../lib/r10k/puppetfile.rb:73
351
359
  msgid "Using Puppetfile '%{puppetfile}'"
352
360
  msgstr ""
353
361
 
354
- #: ../lib/r10k/puppetfile.rb:71
362
+ #: ../lib/r10k/puppetfile.rb:87
355
363
  msgid "Puppetfile %{path} missing or unreadable"
356
364
  msgstr ""
357
365
 
358
- #: ../lib/r10k/puppetfile.rb:84
366
+ #: ../lib/r10k/puppetfile.rb:100
359
367
  msgid "Failed to evaluate %{path}"
360
368
  msgstr ""
361
369
 
362
- #: ../lib/r10k/puppetfile.rb:98
370
+ #: ../lib/r10k/puppetfile.rb:114
363
371
  msgid "Puppetfiles cannot contain duplicate module names."
364
372
  msgstr ""
365
373
 
366
- #: ../lib/r10k/puppetfile.rb:100
374
+ #: ../lib/r10k/puppetfile.rb:116
367
375
  msgid "Remove the duplicates of the following modules: %{dupes}"
368
376
  msgstr ""
369
377
 
370
- #: ../lib/r10k/puppetfile.rb:201
371
- msgid "Updating modules with %{pool_size} threads"
372
- msgstr ""
373
-
374
- #: ../lib/r10k/puppetfile.rb:212
375
- msgid "Error during concurrent deploy of a module: %{message}"
376
- msgstr ""
377
-
378
- #: ../lib/r10k/puppetfile.rb:241
379
- msgid "Module thread %{id} exiting: %{message}"
380
- msgstr ""
381
-
382
- #: ../lib/r10k/puppetfile.rb:300
378
+ #: ../lib/r10k/puppetfile.rb:285
383
379
  msgid "unrecognized declaration '%{method}'"
384
380
  msgstr ""
385
381
 
@@ -462,27 +458,27 @@ msgid ""
462
458
  "Returned: %{data}"
463
459
  msgstr ""
464
460
 
465
- #: ../lib/r10k/source/git.rb:77
461
+ #: ../lib/r10k/source/git.rb:75
466
462
  msgid "Fetching '%{remote}' to determine current branches."
467
463
  msgstr ""
468
464
 
469
- #: ../lib/r10k/source/git.rb:80
465
+ #: ../lib/r10k/source/git.rb:78
470
466
  msgid "Unable to determine current branches for Git source '%{name}' (%{basedir})"
471
467
  msgstr ""
472
468
 
473
- #: ../lib/r10k/source/git.rb:105
469
+ #: ../lib/r10k/source/git.rb:113
474
470
  msgid "Environment %{env_name} contained non-word characters, correcting name to %{corrected_env_name}"
475
471
  msgstr ""
476
472
 
477
- #: ../lib/r10k/source/git.rb:109
473
+ #: ../lib/r10k/source/git.rb:122
478
474
  msgid "Environment %{env_name} contained non-word characters, ignoring it."
479
475
  msgstr ""
480
476
 
481
- #: ../lib/r10k/source/git.rb:128 ../lib/r10k/source/svn.rb:113
477
+ #: ../lib/r10k/source/git.rb:141 ../lib/r10k/source/svn.rb:115
482
478
  msgid "Branch %{branch} filtered out by ignore_branch_prefixes %{ibp}"
483
479
  msgstr ""
484
480
 
485
- #: ../lib/r10k/source/git.rb:139
481
+ #: ../lib/r10k/source/git.rb:152
486
482
  msgid "Branch `%{name}:%{branch}` filtered out by filter_command %{cmd}"
487
483
  msgstr ""
488
484
 
@@ -526,23 +522,23 @@ msgstr ""
526
522
  msgid "pe_license feature is not available, PE only Puppet modules will not be downloadable."
527
523
  msgstr ""
528
524
 
529
- #: ../lib/r10k/util/purgeable.rb:52
530
- msgid "Not purging %{item} due to internal exclusion match: %{exclusion_match}"
525
+ #: ../lib/r10k/util/purgeable.rb:87
526
+ msgid "Not purging %{path} due to internal exclusion match: %{exclusion_match}"
531
527
  msgstr ""
532
528
 
533
- #: ../lib/r10k/util/purgeable.rb:54
534
- msgid "Not purging %{item} due to whitelist match: %{whitelist_match}"
529
+ #: ../lib/r10k/util/purgeable.rb:89
530
+ msgid "Not purging %{path} due to whitelist match: %{allowlist_match}"
535
531
  msgstr ""
536
532
 
537
- #: ../lib/r10k/util/purgeable.rb:71
533
+ #: ../lib/r10k/util/purgeable.rb:133
538
534
  msgid "No unmanaged contents in %{managed_dirs}, nothing to purge"
539
535
  msgstr ""
540
536
 
541
- #: ../lib/r10k/util/purgeable.rb:76
537
+ #: ../lib/r10k/util/purgeable.rb:138
542
538
  msgid "Removing unmanaged path %{path}"
543
539
  msgstr ""
544
540
 
545
- #: ../lib/r10k/util/purgeable.rb:81
541
+ #: ../lib/r10k/util/purgeable.rb:143
546
542
  msgid "Unable to remove unmanaged path: %{path}"
547
543
  msgstr ""
548
544