r10k 3.9.0 → 3.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.github/pull_request_template.md +1 -1
  3. data/.github/workflows/stale.yml +19 -0
  4. data/CHANGELOG.mkd +5 -0
  5. data/doc/dynamic-environments/configuration.mkd +6 -6
  6. data/lib/r10k/action/base.rb +8 -1
  7. data/lib/r10k/action/deploy/display.rb +39 -9
  8. data/lib/r10k/action/deploy/environment.rb +63 -40
  9. data/lib/r10k/action/deploy/module.rb +47 -28
  10. data/lib/r10k/action/puppetfile/check.rb +3 -1
  11. data/lib/r10k/action/puppetfile/install.rb +20 -23
  12. data/lib/r10k/action/puppetfile/purge.rb +8 -2
  13. data/lib/r10k/content_synchronizer.rb +83 -0
  14. data/lib/r10k/deployment.rb +1 -1
  15. data/lib/r10k/environment/base.rb +21 -1
  16. data/lib/r10k/environment/git.rb +0 -3
  17. data/lib/r10k/environment/svn.rb +4 -6
  18. data/lib/r10k/environment/with_modules.rb +18 -10
  19. data/lib/r10k/module.rb +1 -1
  20. data/lib/r10k/module/base.rb +17 -1
  21. data/lib/r10k/module/forge.rb +24 -18
  22. data/lib/r10k/module/git.rb +22 -13
  23. data/lib/r10k/module/local.rb +1 -0
  24. data/lib/r10k/module/svn.rb +11 -8
  25. data/lib/r10k/puppetfile.rb +55 -70
  26. data/lib/r10k/source/base.rb +4 -0
  27. data/lib/r10k/source/git.rb +14 -6
  28. data/lib/r10k/source/hash.rb +1 -3
  29. data/lib/r10k/source/svn.rb +0 -2
  30. data/lib/r10k/util/cleaner.rb +21 -0
  31. data/lib/r10k/version.rb +1 -1
  32. data/locales/r10k.pot +51 -59
  33. data/spec/r10k-mocks/mock_source.rb +1 -1
  34. data/spec/shared-examples/puppetfile-action.rb +7 -7
  35. data/spec/unit/action/deploy/display_spec.rb +32 -6
  36. data/spec/unit/action/deploy/environment_spec.rb +76 -48
  37. data/spec/unit/action/deploy/module_spec.rb +139 -31
  38. data/spec/unit/action/puppetfile/check_spec.rb +2 -2
  39. data/spec/unit/action/puppetfile/install_spec.rb +31 -10
  40. data/spec/unit/action/puppetfile/purge_spec.rb +25 -5
  41. data/spec/unit/module/forge_spec.rb +15 -13
  42. data/spec/unit/module/git_spec.rb +8 -0
  43. data/spec/unit/module_spec.rb +5 -5
  44. data/spec/unit/puppetfile_spec.rb +40 -26
  45. data/spec/unit/util/purgeable_spec.rb +2 -8
  46. metadata +5 -2
@@ -8,7 +8,7 @@ class R10K::Module::Git < R10K::Module::Base
8
8
  R10K::Module.register(self)
9
9
 
10
10
  def self.implement?(name, args)
11
- args.is_a?(Hash) && (args.has_key?(:git) || args[:type].to_s == 'git')
11
+ args.has_key?(:git) || args[:type].to_s == 'git'
12
12
  rescue
13
13
  false
14
14
  end
@@ -36,27 +36,35 @@ class R10K::Module::Git < R10K::Module::Base
36
36
  include R10K::Util::Setopts
37
37
 
38
38
  def initialize(title, dirname, opts, environment=nil)
39
+
39
40
  super
40
41
  setopts(opts, {
41
42
  # Standard option interface
42
- :version => :desired_ref,
43
- :source => :remote,
44
- :type => ::R10K::Util::Setopts::Ignore,
43
+ :version => :desired_ref,
44
+ :source => :remote,
45
+ :type => ::R10K::Util::Setopts::Ignore,
45
46
 
46
47
  # Type-specific options
47
- :branch => :desired_ref,
48
- :tag => :desired_ref,
49
- :commit => :desired_ref,
50
- :ref => :desired_ref,
51
- :git => :remote,
48
+ :branch => :desired_ref,
49
+ :tag => :desired_ref,
50
+ :commit => :desired_ref,
51
+ :ref => :desired_ref,
52
+ :git => :remote,
52
53
  :default_branch => :default_ref,
53
54
  :default_branch_override => :default_override_ref,
54
55
  })
55
56
 
57
+ force = @overrides.dig(:modules, :force)
58
+ @force = force == false ? false : true
59
+
56
60
  @desired_ref ||= 'master'
57
61
 
58
- if @desired_ref == :control_branch && @environment && @environment.respond_to?(:ref)
59
- @desired_ref = @environment.ref
62
+ if @desired_ref == :control_branch
63
+ if @environment && @environment.respond_to?(:ref)
64
+ @desired_ref = @environment.ref
65
+ else
66
+ logger.warn _("Cannot track control repo branch for content '%{name}' when not part of a git-backed environment, will use default if available." % {name: name})
67
+ end
60
68
  end
61
69
 
62
70
  @repo = R10K::Git::StatefulRepository.new(@remote, @dirname, @name)
@@ -74,9 +82,10 @@ class R10K::Module::Git < R10K::Module::Base
74
82
  }
75
83
  end
76
84
 
85
+ # @param [Hash] opts Deprecated
77
86
  def sync(opts={})
78
- force = opts && opts.fetch(:force, true)
79
- @repo.sync(version, force)
87
+ force = opts[:force] || @force
88
+ @repo.sync(version, force) if should_sync?
80
89
  end
81
90
 
82
91
  def status
@@ -30,6 +30,7 @@ class R10K::Module::Local < R10K::Module::Base
30
30
  :insync
31
31
  end
32
32
 
33
+ # @param [Hash] opts Deprecated
33
34
  def sync(opts={})
34
35
  logger.debug1 _("Module %{title} is a local module, always indicating synced.") % {title: title}
35
36
  end
@@ -7,7 +7,7 @@ class R10K::Module::SVN < R10K::Module::Base
7
7
  R10K::Module.register(self)
8
8
 
9
9
  def self.implement?(name, args)
10
- args.is_a?(Hash) && (args.has_key?(:svn) || args[:type].to_s == 'svn')
10
+ args.has_key?(:svn) || args[:type].to_s == 'svn'
11
11
  end
12
12
 
13
13
  # @!attribute [r] expected_revision
@@ -69,14 +69,17 @@ class R10K::Module::SVN < R10K::Module::Base
69
69
  end
70
70
  end
71
71
 
72
+ # @param [Hash] opts Deprecated
72
73
  def sync(opts={})
73
- case status
74
- when :absent
75
- install
76
- when :mismatched
77
- reinstall
78
- when :outdated
79
- update
74
+ if should_sync?
75
+ case status
76
+ when :absent
77
+ install
78
+ when :mismatched
79
+ reinstall
80
+ when :outdated
81
+ update
82
+ end
80
83
  end
81
84
  end
82
85
 
@@ -3,6 +3,7 @@ require 'pathname'
3
3
  require 'r10k/module'
4
4
  require 'r10k/util/purgeable'
5
5
  require 'r10k/errors'
6
+ require 'r10k/content_synchronizer'
6
7
 
7
8
  module R10K
8
9
  class Puppetfile
@@ -42,17 +43,32 @@ class Puppetfile
42
43
  # @return [Boolean] Overwrite any locally made changes
43
44
  attr_accessor :force
44
45
 
46
+ # @!attribute [r] overrides
47
+ # @return [Hash] Various settings overridden from normal configs
48
+ attr_reader :overrides
49
+
45
50
  # @param [String] basedir
46
- # @param [String] moduledir The directory to install the modules, default to #{basedir}/modules
47
- # @param [String] puppetfile_path The path to the Puppetfile, default to #{basedir}/Puppetfile
48
- # @param [String] puppetfile_name The name of the Puppetfile, default to 'Puppetfile'
49
- # @param [Boolean] force Shall we overwrite locally made changes?
50
- def initialize(basedir, moduledir = nil, puppetfile_path = nil, puppetfile_name = nil, force = nil )
51
+ # @param [Hash, String, nil] options_or_moduledir The directory to install the modules or a Hash of options.
52
+ # Usage as moduledir is deprecated. Only use as options, defaults to nil
53
+ # @param [String, nil] puppetfile_path Deprecated - The path to the Puppetfile, defaults to nil
54
+ # @param [String, nil] puppetfile_name Deprecated - The name of the Puppetfile, defaults to nil
55
+ # @param [Boolean, nil] force Deprecated - Shall we overwrite locally made changes?
56
+ def initialize(basedir, options_or_moduledir = nil, deprecated_path_arg = nil, deprecated_name_arg = nil, deprecated_force_arg = nil)
51
57
  @basedir = basedir
52
- @force = force || false
53
- @moduledir = moduledir || File.join(basedir, 'modules')
54
- @puppetfile_name = puppetfile_name || 'Puppetfile'
55
- @puppetfile_path = puppetfile_path || File.join(basedir, @puppetfile_name)
58
+ if options_or_moduledir.is_a? Hash
59
+ options = options_or_moduledir
60
+ deprecated_moduledir_arg = nil
61
+ else
62
+ options = {}
63
+ deprecated_moduledir_arg = options_or_moduledir
64
+ end
65
+
66
+ @force = deprecated_force_arg || options.delete(:force) || false
67
+ @moduledir = deprecated_moduledir_arg || options.delete(:moduledir) || File.join(basedir, 'modules')
68
+ @puppetfile_name = deprecated_name_arg || options.delete(:puppetfile_name) || 'Puppetfile'
69
+ @puppetfile_path = deprecated_path_arg || options.delete(:puppetfile_path) || File.join(basedir, @puppetfile_name)
70
+
71
+ @overrides = options.delete(:overrides) || {}
56
72
 
57
73
  logger.info _("Using Puppetfile '%{puppetfile}'") % {puppetfile: @puppetfile_path}
58
74
 
@@ -117,19 +133,30 @@ class Puppetfile
117
133
  end
118
134
 
119
135
  # @param [String] name
120
- # @param [*Object] args
136
+ # @param [Hash, String, Symbol] args Calling with anything but a Hash is
137
+ # deprecated. The DSL will now convert String and Symbol versions to
138
+ # Hashes of the shape
139
+ # { version: <String or Symbol> }
140
+ #
121
141
  def add_module(name, args)
122
- if args.is_a?(Hash) && install_path = args.delete(:install_path)
142
+ if !args.is_a?(Hash)
143
+ args = { version: args }
144
+ end
145
+
146
+ args[:overrides] = @overrides
147
+
148
+ if install_path = args.delete(:install_path)
123
149
  install_path = resolve_install_path(install_path)
124
150
  validate_install_path(install_path, name)
125
151
  else
126
152
  install_path = @moduledir
127
153
  end
128
154
 
129
- if args.is_a?(Hash) && @default_branch_override != nil
155
+ if @default_branch_override != nil
130
156
  args[:default_branch_override] = @default_branch_override
131
157
  end
132
158
 
159
+
133
160
  mod = R10K::Module.new(name, install_path, args, @environment)
134
161
  mod.origin = :puppetfile
135
162
 
@@ -181,70 +208,22 @@ class Puppetfile
181
208
  def accept(visitor)
182
209
  pool_size = self.settings[:pool_size]
183
210
  if pool_size > 1
184
- concurrent_accept(visitor, pool_size)
211
+ R10K::ContentSynchronizer.concurrent_accept(modules, visitor, self, pool_size, logger)
185
212
  else
186
- serial_accept(visitor)
187
- end
188
- end
189
-
190
- private
191
-
192
- def serial_accept(visitor)
193
- visitor.visit(:puppetfile, self) do
194
- modules.each do |mod|
195
- mod.accept(visitor)
196
- end
213
+ R10K::ContentSynchronizer.serial_accept(modules, visitor, self)
197
214
  end
198
215
  end
199
216
 
200
- def concurrent_accept(visitor, pool_size)
201
- logger.debug _("Updating modules with %{pool_size} threads") % {pool_size: pool_size}
202
- mods_queue = modules_queue(visitor)
203
- thread_pool = pool_size.times.map { visitor_thread(visitor, mods_queue) }
204
- thread_exception = nil
205
-
206
- # If any threads raise an exception the deployment is considered a failure.
207
- # In that event clear the queue, wait for other threads to finish their
208
- # current work, then re-raise the first exception caught.
209
- begin
210
- thread_pool.each(&:join)
211
- rescue => e
212
- logger.error _("Error during concurrent deploy of a module: %{message}") % {message: e.message}
213
- mods_queue.clear
214
- thread_exception ||= e
215
- retry
216
- ensure
217
- raise thread_exception unless thread_exception.nil?
217
+ def sync
218
+ pool_size = self.settings[:pool_size]
219
+ if pool_size > 1
220
+ R10K::ContentSynchronizer.concurrent_sync(modules, pool_size, logger)
221
+ else
222
+ R10K::ContentSynchronizer.serial_sync(modules)
218
223
  end
219
224
  end
220
225
 
221
- def modules_queue(visitor)
222
- Queue.new.tap do |queue|
223
- visitor.visit(:puppetfile, self) do
224
- modules_by_cachedir = modules.group_by { |mod| mod.cachedir }
225
- modules_without_vcs_cachedir = modules_by_cachedir.delete(:none) || []
226
-
227
- modules_without_vcs_cachedir.each {|mod| queue << Array(mod) }
228
- modules_by_cachedir.values.each {|mods| queue << mods }
229
- end
230
- end
231
- end
232
- public :modules_queue
233
-
234
- def visitor_thread(visitor, mods_queue)
235
- Thread.new do
236
- begin
237
- while mods = mods_queue.pop(true) do
238
- mods.each {|mod| mod.accept(visitor) }
239
- end
240
- rescue ThreadError => e
241
- logger.debug _("Module thread %{id} exiting: %{message}") % {message: e.message, id: Thread.current.object_id}
242
- Thread.exit
243
- rescue => e
244
- Thread.main.raise(e)
245
- end
246
- end
247
- end
226
+ private
248
227
 
249
228
  def puppetfile_contents
250
229
  File.read(@puppetfile_path)
@@ -285,7 +264,13 @@ class Puppetfile
285
264
  end
286
265
 
287
266
  def mod(name, args = nil)
288
- @librarian.add_module(name, args)
267
+ if args.is_a?(Hash)
268
+ opts = args
269
+ else
270
+ opts = { version: args }
271
+ end
272
+
273
+ @librarian.add_module(name, opts)
289
274
  end
290
275
 
291
276
  def forge(location)
@@ -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
@@ -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)
@@ -99,12 +97,22 @@ class R10K::Source::Git < R10K::Source::Base
99
97
  envs = []
100
98
  branch_names.each do |bn|
101
99
  if bn.valid?
102
- envs << R10K::Environment::Git.new(bn.name, @basedir, bn.dirname,
103
- {:remote => remote, :ref => bn.name, :puppetfile_name => puppetfile_name })
100
+ envs << R10K::Environment::Git.new(bn.name,
101
+ @basedir,
102
+ bn.dirname,
103
+ {remote: remote,
104
+ ref: bn.name,
105
+ puppetfile_name: puppetfile_name,
106
+ overrides: @options[:overrides]})
104
107
  elsif bn.correct?
105
108
  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})
109
+ envs << R10K::Environment::Git.new(bn.name,
110
+ @basedir,
111
+ bn.dirname,
112
+ {remote: remote,
113
+ ref: bn.name,
114
+ puppetfile_name: puppetfile_name,
115
+ overrides: @options[:overrides]})
108
116
  elsif bn.validate?
109
117
  logger.error _("Environment %{env_name} contained non-word characters, ignoring it.") % {env_name: bn.name.inspect}
110
118
  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
 
@@ -103,8 +103,6 @@ class R10K::Source::SVN < R10K::Source::Base
103
103
  @environments.map {|env| env.dirname }
104
104
  end
105
105
 
106
- include R10K::Logging
107
-
108
106
  def filter_branches(branches, ignore_prefixes)
109
107
  filter = Regexp.new("^(#{ignore_prefixes.join('|')})")
110
108
  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
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.9.1'
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.4.1-231-g5574915\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-05-10 23:18+0000\n"
13
+ "PO-Revision-Date: 2021-05-10 23:18+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:109
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:139
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:147
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:150
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:154
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:78
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:80
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:13
79
+ msgid "Updating modules with %{pool_size} threads"
80
+ msgstr ""
81
+
82
+ #: ../lib/r10k/content_synchronizer.rb:24
83
+ msgid "Error during concurrent deploy of a module: %{message}"
84
+ msgstr ""
85
+
86
+ #: ../lib/r10k/content_synchronizer.rb:52
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:65 ../lib/r10k/environment/base.rb:81 ../lib/r10k/environment/base.rb:90 ../lib/r10k/source/base.rb:69
107
99
  msgid "%{class} has not implemented method %{method}"
108
100
  msgstr ""
109
101
 
@@ -327,19 +319,31 @@ 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:88 ../lib/r10k/module/forge.rb:117
335
335
  msgid "The module %{title} does not exist on %{url}."
336
336
  msgstr ""
337
337
 
338
- #: ../lib/r10k/module/forge.rb:185
338
+ #: ../lib/r10k/module/forge.rb:192
339
339
  msgid "Forge module names must match 'owner/modulename', instead got #{title}"
340
340
  msgstr ""
341
341
 
342
- #: ../lib/r10k/module/local.rb:34
342
+ #: ../lib/r10k/module/git.rb:66
343
+ msgid "Cannot track control repo branch for content '%{name}' when not part of a git-backed environment, will use default if available."
344
+ msgstr ""
345
+
346
+ #: ../lib/r10k/module/local.rb:35
343
347
  msgid "Module %{title} is a local module, always indicating synced."
344
348
  msgstr ""
345
349
 
@@ -347,39 +351,27 @@ msgstr ""
347
351
  msgid "Could not read metadata.json"
348
352
  msgstr ""
349
353
 
350
- #: ../lib/r10k/puppetfile.rb:57
354
+ #: ../lib/r10k/puppetfile.rb:73
351
355
  msgid "Using Puppetfile '%{puppetfile}'"
352
356
  msgstr ""
353
357
 
354
- #: ../lib/r10k/puppetfile.rb:71
358
+ #: ../lib/r10k/puppetfile.rb:87
355
359
  msgid "Puppetfile %{path} missing or unreadable"
356
360
  msgstr ""
357
361
 
358
- #: ../lib/r10k/puppetfile.rb:84
362
+ #: ../lib/r10k/puppetfile.rb:100
359
363
  msgid "Failed to evaluate %{path}"
360
364
  msgstr ""
361
365
 
362
- #: ../lib/r10k/puppetfile.rb:98
366
+ #: ../lib/r10k/puppetfile.rb:114
363
367
  msgid "Puppetfiles cannot contain duplicate module names."
364
368
  msgstr ""
365
369
 
366
- #: ../lib/r10k/puppetfile.rb:100
370
+ #: ../lib/r10k/puppetfile.rb:116
367
371
  msgid "Remove the duplicates of the following modules: %{dupes}"
368
372
  msgstr ""
369
373
 
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
374
+ #: ../lib/r10k/puppetfile.rb:276
383
375
  msgid "unrecognized declaration '%{method}'"
384
376
  msgstr ""
385
377
 
@@ -470,19 +462,19 @@ msgstr ""
470
462
  msgid "Unable to determine current branches for Git source '%{name}' (%{basedir})"
471
463
  msgstr ""
472
464
 
473
- #: ../lib/r10k/source/git.rb:105
465
+ #: ../lib/r10k/source/git.rb:110
474
466
  msgid "Environment %{env_name} contained non-word characters, correcting name to %{corrected_env_name}"
475
467
  msgstr ""
476
468
 
477
- #: ../lib/r10k/source/git.rb:109
469
+ #: ../lib/r10k/source/git.rb:119
478
470
  msgid "Environment %{env_name} contained non-word characters, ignoring it."
479
471
  msgstr ""
480
472
 
481
- #: ../lib/r10k/source/git.rb:128 ../lib/r10k/source/svn.rb:113
473
+ #: ../lib/r10k/source/git.rb:138 ../lib/r10k/source/svn.rb:113
482
474
  msgid "Branch %{branch} filtered out by ignore_branch_prefixes %{ibp}"
483
475
  msgstr ""
484
476
 
485
- #: ../lib/r10k/source/git.rb:139
477
+ #: ../lib/r10k/source/git.rb:149
486
478
  msgid "Branch `%{name}:%{branch}` filtered out by filter_command %{cmd}"
487
479
  msgstr ""
488
480