r10k 3.6.0 → 3.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docker.yml +4 -1
  3. data/.github/workflows/release.yml +3 -2
  4. data/.github/workflows/rspec_tests.yml +81 -0
  5. data/.github/workflows/stale.yml +19 -0
  6. data/.travis.yml +8 -1
  7. data/CHANGELOG.mkd +33 -0
  8. data/CODEOWNERS +2 -2
  9. data/README.mkd +2 -2
  10. data/doc/common-patterns.mkd +1 -0
  11. data/doc/dynamic-environments/configuration.mkd +123 -42
  12. data/doc/dynamic-environments/usage.mkd +12 -11
  13. data/doc/puppetfile.mkd +23 -3
  14. data/docker/Gemfile +1 -1
  15. data/docker/Makefile +4 -3
  16. data/docker/docker-compose.yml +18 -0
  17. data/docker/r10k/Dockerfile +1 -1
  18. data/docker/r10k/docker-entrypoint.sh +0 -1
  19. data/docker/r10k/release.Dockerfile +1 -1
  20. data/docker/spec/dockerfile_spec.rb +26 -32
  21. data/integration/tests/git_source/git_source_repeated_remote.rb +2 -2
  22. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module.rb +2 -1
  23. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module_static.rb +2 -1
  24. data/integration/tests/user_scenario/basic_workflow/multi_source_custom_forge_git_module.rb +1 -1
  25. data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_git_module.rb +2 -1
  26. data/integration/tests/user_scenario/complex_workflow/multi_env_add_change_remove.rb +1 -1
  27. data/integration/tests/user_scenario/complex_workflow/multi_env_remove_re-add.rb +1 -1
  28. data/integration/tests/user_scenario/complex_workflow/multi_env_unamanaged.rb +1 -1
  29. data/lib/r10k/action/base.rb +10 -0
  30. data/lib/r10k/action/deploy/display.rb +49 -10
  31. data/lib/r10k/action/deploy/environment.rb +102 -51
  32. data/lib/r10k/action/deploy/module.rb +55 -30
  33. data/lib/r10k/action/puppetfile/check.rb +3 -1
  34. data/lib/r10k/action/puppetfile/install.rb +20 -23
  35. data/lib/r10k/action/puppetfile/purge.rb +8 -2
  36. data/lib/r10k/action/runner.rb +34 -0
  37. data/lib/r10k/cli/deploy.rb +14 -7
  38. data/lib/r10k/cli/puppetfile.rb +5 -5
  39. data/lib/r10k/content_synchronizer.rb +83 -0
  40. data/lib/r10k/deployment.rb +1 -1
  41. data/lib/r10k/environment/base.rb +30 -3
  42. data/lib/r10k/environment/git.rb +17 -5
  43. data/lib/r10k/environment/name.rb +22 -4
  44. data/lib/r10k/environment/svn.rb +11 -4
  45. data/lib/r10k/environment/with_modules.rb +46 -30
  46. data/lib/r10k/git.rb +1 -0
  47. data/lib/r10k/git/cache.rb +11 -1
  48. data/lib/r10k/git/rugged/credentials.rb +39 -2
  49. data/lib/r10k/initializers.rb +2 -0
  50. data/lib/r10k/module.rb +1 -1
  51. data/lib/r10k/module/base.rb +17 -1
  52. data/lib/r10k/module/forge.rb +29 -11
  53. data/lib/r10k/module/git.rb +50 -27
  54. data/lib/r10k/module/local.rb +2 -1
  55. data/lib/r10k/module/svn.rb +24 -18
  56. data/lib/r10k/puppetfile.rb +66 -83
  57. data/lib/r10k/settings.rb +29 -2
  58. data/lib/r10k/source/base.rb +9 -0
  59. data/lib/r10k/source/git.rb +18 -7
  60. data/lib/r10k/source/hash.rb +5 -5
  61. data/lib/r10k/source/svn.rb +5 -3
  62. data/lib/r10k/util/cleaner.rb +21 -0
  63. data/lib/r10k/util/setopts.rb +33 -12
  64. data/lib/r10k/version.rb +1 -1
  65. data/locales/r10k.pot +98 -82
  66. data/r10k.gemspec +1 -1
  67. data/spec/fixtures/unit/action/r10k_creds.yaml +9 -0
  68. data/spec/r10k-mocks/mock_source.rb +1 -1
  69. data/spec/shared-examples/puppetfile-action.rb +7 -7
  70. data/spec/shared-examples/subprocess-runner.rb +11 -5
  71. data/spec/unit/action/deploy/display_spec.rb +35 -5
  72. data/spec/unit/action/deploy/environment_spec.rb +207 -37
  73. data/spec/unit/action/deploy/module_spec.rb +173 -26
  74. data/spec/unit/action/puppetfile/check_spec.rb +2 -2
  75. data/spec/unit/action/puppetfile/install_spec.rb +31 -10
  76. data/spec/unit/action/puppetfile/purge_spec.rb +25 -5
  77. data/spec/unit/action/runner_spec.rb +48 -1
  78. data/spec/unit/environment/git_spec.rb +19 -2
  79. data/spec/unit/environment/name_spec.rb +28 -0
  80. data/spec/unit/environment/svn_spec.rb +12 -0
  81. data/spec/unit/environment/with_modules_spec.rb +74 -0
  82. data/spec/unit/git/cache_spec.rb +10 -0
  83. data/spec/unit/git/rugged/credentials_spec.rb +79 -2
  84. data/spec/unit/git_spec.rb +3 -3
  85. data/spec/unit/module/forge_spec.rb +21 -13
  86. data/spec/unit/module/git_spec.rb +64 -1
  87. data/spec/unit/module_spec.rb +60 -10
  88. data/spec/unit/puppetfile_spec.rb +63 -60
  89. data/spec/unit/settings_spec.rb +12 -0
  90. data/spec/unit/source/git_spec.rb +15 -3
  91. data/spec/unit/util/purgeable_spec.rb +2 -8
  92. data/spec/unit/util/setopts_spec.rb +25 -1
  93. metadata +11 -11
  94. data/azure-pipelines.yml +0 -87
data/lib/r10k/settings.rb CHANGED
@@ -12,6 +12,8 @@ module R10K
12
12
  class << self
13
13
  # Path to puppet executable
14
14
  attr_accessor :puppet_path
15
+ # Path to puppet.conf
16
+ attr_accessor :puppet_conf
15
17
  end
16
18
 
17
19
  def self.git_settings
@@ -35,6 +37,11 @@ module R10K
35
37
  Only used by the 'rugged' Git provider.",
36
38
  }),
37
39
 
40
+ Definition.new(:oauth_token, {
41
+ :desc => "The path to a token file for Git OAuth remotes.
42
+ Only used by the 'rugged' Git provider."
43
+ }),
44
+
38
45
  URIDefinition.new(:proxy, {
39
46
  :desc => "An optional proxy server to use when interacting with Git sources via HTTP(S).",
40
47
  :default => :inherit,
@@ -52,11 +59,17 @@ module R10K
52
59
  :default => :inherit,
53
60
  }),
54
61
 
62
+ Definition.new(:oauth_token, {
63
+ :desc => "The path to a token file for Git OAuth remotes.
64
+ Only used by the 'rugged' Git provider.",
65
+ :default => :inherit
66
+ }),
67
+
55
68
  URIDefinition.new(:proxy, {
56
69
  :desc => "An optional proxy server to use when interacting with Git sources via HTTP(S).",
57
70
  :default => :inherit,
58
71
  }),
59
-
72
+
60
73
  Definition.new(:ignore_branch_prefixes, {
61
74
  :desc => "Array of strings used to prefix branch names that will not be deployed as environments.",
62
75
  }),
@@ -109,11 +122,16 @@ module R10K
109
122
  end,
110
123
  }),
111
124
 
112
- Definition.new(:purge_whitelist, {
125
+ Definition.new(:purge_allowlist, {
113
126
  :desc => "A list of filename patterns to be excluded from any purge operations. Patterns are matched relative to the root of each deployed environment, if you want a pattern to match recursively you need to use the '**' glob in your pattern. Basic shell style globs are supported.",
114
127
  :default => [],
115
128
  }),
116
129
 
130
+ Definition.new(:purge_whitelist, {
131
+ :desc => "Deprecated; please use purge_allowlist instead. This setting will be removed in a future version.",
132
+ :default => [],
133
+ }),
134
+
117
135
  Definition.new(:generate_types, {
118
136
  :desc => "Controls whether to generate puppet types after deploying an environment. Defaults to false.",
119
137
  :default => false,
@@ -131,6 +149,15 @@ module R10K
131
149
  end
132
150
  end
133
151
  }),
152
+ Definition.new(:puppet_conf, {
153
+ :desc => "Path to puppet.conf. Defaults to /etc/puppetlabs/puppet/puppet.conf.",
154
+ :default => '/etc/puppetlabs/puppet/puppet.conf',
155
+ :validate => lambda do |value|
156
+ unless File.readable? value
157
+ raise ArgumentError, "The specified puppet.conf #{value} is not readable"
158
+ end
159
+ end
160
+ }),
134
161
  ])
135
162
  end
136
163
 
@@ -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
@@ -31,10 +35,15 @@ class R10K::Source::Base
31
35
  # @option options [Boolean, String] :prefix If a String this becomes the prefix.
32
36
  # If true, will use the source name as the prefix. All sources should respect this option.
33
37
  # Defaults to false for no environment prefix.
38
+ # @option options [String] :strip_component If a string, this value will be
39
+ # removed from the beginning of each generated environment's name, if
40
+ # present. If the string is contained within two "/" characters, it will
41
+ # be treated as a regular expression.
34
42
  def initialize(name, basedir, options = {})
35
43
  @name = name
36
44
  @basedir = Pathname.new(basedir).cleanpath.to_s
37
45
  @prefix = options.delete(:prefix)
46
+ @strip_component = options.delete(:strip_component)
38
47
  @puppetfile_name = options.delete(:puppetfile_name)
39
48
  @options = options
40
49
  end
@@ -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
@@ -145,7 +153,10 @@ class R10K::Source::Git < R10K::Source::Base
145
153
  private
146
154
 
147
155
  def branch_names
148
- opts = {:prefix => @prefix, :invalid => @invalid_branches, :source => @name}
156
+ opts = {prefix: @prefix,
157
+ invalid: @invalid_branches,
158
+ source: @name,
159
+ strip_component: @strip_component}
149
160
  branches = @cache.branches
150
161
  if @ignore_branch_prefixes && !@ignore_branch_prefixes.empty?
151
162
  branches = filter_branches_by_regexp(branches, @ignore_branch_prefixes)
@@ -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.
@@ -152,8 +150,10 @@ class R10K::Source::Hash < R10K::Source::Base
152
150
  R10K::Util::SymbolizeKeys.symbolize_keys!(opts)
153
151
  memo.merge({
154
152
  name => opts.merge({
155
- :basedir => @basedir,
156
- :dirname => R10K::Environment::Name.new(name, {prefix: @prefix, source: @name}).dirname
153
+ basedir: @basedir,
154
+ dirname: R10K::Environment::Name.new(name, {prefix: @prefix,
155
+ source: @name,
156
+ strip_component: @strip_component}).dirname
157
157
  })
158
158
  })
159
159
  end
@@ -168,7 +168,7 @@ class R10K::Source::Hash < R10K::Source::Base
168
168
 
169
169
  def environments
170
170
  @environments ||= environments_hash.map do |name, hash|
171
- R10K::Environment.from_hash(name, hash)
171
+ R10K::Environment.from_hash(name, hash.merge({overrides: @options[:overrides]}))
172
172
  end
173
173
  end
174
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|
@@ -121,7 +119,11 @@ class R10K::Source::SVN < R10K::Source::Base
121
119
 
122
120
  def names_and_paths
123
121
  branches = []
124
- opts = {:prefix => @prefix, :correct => false, :validate => false, :source => @name}
122
+ opts = {prefix: @prefix,
123
+ correct: false,
124
+ validate: false,
125
+ source: @name,
126
+ strip_component: @strip_component}
125
127
  branches << [R10K::Environment::Name.new('production', opts), "#{@remote}/trunk"]
126
128
  additional_branch_names = @svn_remote.branches
127
129
  if @ignore_branch_prefixes && !@ignore_branch_prefixes.empty?
@@ -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
@@ -7,6 +7,10 @@ module R10K
7
7
  # supports Ruby 1.8.7+ we cannot use that functionality.
8
8
  module Setopts
9
9
 
10
+ class Ignore; end
11
+
12
+ include R10K::Logging
13
+
10
14
  private
11
15
 
12
16
  # @param opts [Hash]
@@ -31,22 +35,39 @@ module R10K
31
35
  # setopts(opts, allowed)
32
36
  # @trace # => nil
33
37
  #
34
- def setopts(opts, allowed)
38
+ def setopts(opts, allowed, raise_on_unhandled: true)
39
+ processed_vars = {}
35
40
  opts.each_pair do |key, value|
36
41
  if allowed.key?(key)
37
- rhs = allowed[key]
38
- case rhs
39
- when NilClass, FalseClass
40
- # Ignore nil options
41
- when :self, TrueClass
42
- # tr here is because instance variables cannot have hyphens in their names.
43
- instance_variable_set("@#{key}".tr('-','_').to_sym, value)
44
- else
45
- # tr here same as previous
46
- instance_variable_set("@#{rhs}".tr('-','_').to_sym, value)
42
+ # Ignore nil options and explicit ignore param
43
+ next unless rhs = allowed[key]
44
+ next if rhs == ::R10K::Util::Setopts::Ignore
45
+
46
+ var = case rhs
47
+ when :self, TrueClass
48
+ # tr here is because instance variables cannot have hyphens in their names.
49
+ "@#{key}".tr('-','_').to_sym
50
+ else
51
+ # tr here same as previous
52
+ "@#{rhs}".tr('-','_').to_sym
53
+ end
54
+
55
+ if processed_vars.include?(var)
56
+ # This should be a raise, but that would be a behavior change and
57
+ # should happen on a SemVer boundry.
58
+ logger.warn _("%{class_name} parameters '%{a}' and '%{b}' conflict. Specify one or the other, but not both" \
59
+ % {class_name: self.class.name, a: processed_vars[var], b: key})
47
60
  end
61
+
62
+ instance_variable_set(var, value)
63
+ processed_vars[var] = key
48
64
  else
49
- raise ArgumentError, _("%{class_name} cannot handle option '%{key}'") % {class_name: self.class.name, key: key}
65
+ err_str = _("%{class_name} cannot handle option '%{key}'") % {class_name: self.class.name, key: key}
66
+ if raise_on_unhandled
67
+ raise ArgumentError, err_str
68
+ else
69
+ logger.warn(err_str)
70
+ end
50
71
  end
51
72
  end
52
73
  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.6.0'
5
+ VERSION = '3.9.2'
6
6
  end
data/locales/r10k.pot CHANGED
@@ -1,16 +1,16 @@
1
1
  # SOME DESCRIPTIVE TITLE.
2
- # Copyright (C) 2020 Puppet, Inc.
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>, 2020.
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-57-g2eb088a\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: 2020-07-22 16:41+0000\n"
13
- "PO-Revision-Date: 2020-07-22 16:41+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,68 +31,60 @@ 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}"
62
+ #: ../lib/r10k/action/puppetfile/check.rb:16
63
+ msgid "Syntax OK"
72
64
  msgstr ""
73
65
 
74
- #: ../lib/r10k/action/puppetfile/check.rb:14
75
- msgid "Syntax OK"
66
+ #: ../lib/r10k/action/runner.rb:54 ../lib/r10k/deployment/config.rb:42
67
+ msgid "Overriding config file setting '%{key}': '%{old_val}' -> '%{new_val}'"
76
68
  msgstr ""
77
69
 
78
- #: ../lib/r10k/action/puppetfile/install.rb:30
79
- msgid "Updating module %{mod_path}"
70
+ #: ../lib/r10k/action/runner.rb:91
71
+ msgid "Reading configuration from %{config_path}"
80
72
  msgstr ""
81
73
 
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."
74
+ #: ../lib/r10k/action/runner.rb:94
75
+ msgid "No config file explicitly given and no default config file could be found, default settings will be used."
84
76
  msgstr ""
85
77
 
86
- #: ../lib/r10k/action/runner.rb:53 ../lib/r10k/deployment/config.rb:42
87
- msgid "Overriding config file setting '%{key}': '%{old_val}' -> '%{new_val}'"
78
+ #: ../lib/r10k/content_synchronizer.rb:13
79
+ msgid "Updating modules with %{pool_size} threads"
88
80
  msgstr ""
89
81
 
90
- #: ../lib/r10k/action/runner.rb:86
91
- msgid "Reading configuration from %{config_path}"
82
+ #: ../lib/r10k/content_synchronizer.rb:24
83
+ msgid "Error during concurrent deploy of a module: %{message}"
92
84
  msgstr ""
93
85
 
94
- #: ../lib/r10k/action/runner.rb:89
95
- msgid "No config file explicitly given and no default config file could be found, default settings will be used."
86
+ #: ../lib/r10k/content_synchronizer.rb:52
87
+ msgid "Module thread %{id} exiting: %{message}"
96
88
  msgstr ""
97
89
 
98
90
  #: ../lib/r10k/deployment.rb:90
@@ -103,16 +95,24 @@ 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:64
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
 
110
- #: ../lib/r10k/environment/with_modules.rb:104
111
- msgid "Puppetfile cannot contain module names defined by environment %{name}"
102
+ #: ../lib/r10k/environment/name.rb:78
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:106
115
- msgid "Remove the conflicting definitions of the following modules: %{conflicts}"
106
+ #: ../lib/r10k/environment/with_modules.rb:60
107
+ msgid "Environment and %{src} both define the \"%{name}\" module"
108
+ msgstr ""
109
+
110
+ #: ../lib/r10k/environment/with_modules.rb:61
111
+ msgid "#{msg_error}. The %{src} definition will be ignored"
112
+ msgstr ""
113
+
114
+ #: ../lib/r10k/environment/with_modules.rb:71
115
+ msgid "Unexpected value for `module_conflicts` setting in %{env} environment: %{val}"
116
116
  msgstr ""
117
117
 
118
118
  #: ../lib/r10k/feature.rb:27
@@ -187,11 +187,11 @@ msgstr ""
187
187
  msgid "Cannot write %{file}; parent directory does not exist"
188
188
  msgstr ""
189
189
 
190
- #: ../lib/r10k/git/cache.rb:55
190
+ #: ../lib/r10k/git/cache.rb:65
191
191
  msgid "%{class}#path is deprecated; use #git_dir"
192
192
  msgstr ""
193
193
 
194
- #: ../lib/r10k/git/cache.rb:84
194
+ #: ../lib/r10k/git/cache.rb:94
195
195
  msgid "Creating new git cache for %{remote}"
196
196
  msgstr ""
197
197
 
@@ -227,15 +227,31 @@ msgstr ""
227
227
  msgid "Unable to use SSH key auth for %{url}: private key %{private_key} is missing or unreadable"
228
228
  msgstr ""
229
229
 
230
- #: ../lib/r10k/git/rugged/credentials.rb:80
230
+ #: ../lib/r10k/git/rugged/credentials.rb:84
231
+ msgid "Using OAuth token from stdin for URL %{url}"
232
+ msgstr ""
233
+
234
+ #: ../lib/r10k/git/rugged/credentials.rb:87
235
+ msgid "Using OAuth token from %{token_path} for URL %{url}"
236
+ msgstr ""
237
+
238
+ #: ../lib/r10k/git/rugged/credentials.rb:89
239
+ msgid "%{path} is missing or unreadable, cannot load OAuth token"
240
+ msgstr ""
241
+
242
+ #: ../lib/r10k/git/rugged/credentials.rb:93
243
+ msgid "Supplied OAuth token contains invalid characters."
244
+ msgstr ""
245
+
246
+ #: ../lib/r10k/git/rugged/credentials.rb:117
231
247
  msgid "URL %{url} includes the username %{username}, using that user for authentication."
232
248
  msgstr ""
233
249
 
234
- #: ../lib/r10k/git/rugged/credentials.rb:83
250
+ #: ../lib/r10k/git/rugged/credentials.rb:120
235
251
  msgid "URL %{url} did not specify a user, using %{user} from configuration"
236
252
  msgstr ""
237
253
 
238
- #: ../lib/r10k/git/rugged/credentials.rb:86
254
+ #: ../lib/r10k/git/rugged/credentials.rb:123
239
255
  msgid "URL %{url} did not specify a user, using current user %{user}"
240
256
  msgstr ""
241
257
 
@@ -255,31 +271,31 @@ msgstr ""
255
271
  msgid "Found local modifications in %{file_path}"
256
272
  msgstr ""
257
273
 
258
- #: ../lib/r10k/git/stateful_repository.rb:40
274
+ #: ../lib/r10k/git/stateful_repository.rb:44
259
275
  msgid "Unable to sync repo to unresolvable ref '%{ref}'"
260
276
  msgstr ""
261
277
 
262
- #: ../lib/r10k/git/stateful_repository.rb:47
278
+ #: ../lib/r10k/git/stateful_repository.rb:51
263
279
  msgid "Cloning %{repo_path} and checking out %{ref}"
264
280
  msgstr ""
265
281
 
266
- #: ../lib/r10k/git/stateful_repository.rb:50
282
+ #: ../lib/r10k/git/stateful_repository.rb:54
267
283
  msgid "Replacing %{repo_path} and checking out %{ref}"
268
284
  msgstr ""
269
285
 
270
- #: ../lib/r10k/git/stateful_repository.rb:54 ../lib/r10k/git/stateful_repository.rb:59
286
+ #: ../lib/r10k/git/stateful_repository.rb:58 ../lib/r10k/git/stateful_repository.rb:63
271
287
  msgid "Updating %{repo_path} to %{ref}"
272
288
  msgstr ""
273
289
 
274
- #: ../lib/r10k/git/stateful_repository.rb:58
290
+ #: ../lib/r10k/git/stateful_repository.rb:62
275
291
  msgid "Overwriting local modifications to %{repo_path}"
276
292
  msgstr ""
277
293
 
278
- #: ../lib/r10k/git/stateful_repository.rb:62
294
+ #: ../lib/r10k/git/stateful_repository.rb:66
279
295
  msgid "Skipping %{repo_path} due to local modifications"
280
296
  msgstr ""
281
297
 
282
- #: ../lib/r10k/git/stateful_repository.rb:65
298
+ #: ../lib/r10k/git/stateful_repository.rb:69
283
299
  msgid "%{repo_path} is already at Git ref %{ref}"
284
300
  msgstr ""
285
301
 
@@ -303,23 +319,31 @@ msgstr ""
303
319
  msgid "Module %{name} with args %{args} doesn't have an implementation. (Are you using the right arguments?)"
304
320
  msgstr ""
305
321
 
306
- #: ../lib/r10k/module/base.rb:110
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
307
331
  msgid "Module name (%{title}) must match either 'modulename' or 'owner/modulename'"
308
332
  msgstr ""
309
333
 
310
- #: ../lib/r10k/module/forge.rb:70 ../lib/r10k/module/forge.rb:99
334
+ #: ../lib/r10k/module/forge.rb:88 ../lib/r10k/module/forge.rb:117
311
335
  msgid "The module %{title} does not exist on %{url}."
312
336
  msgstr ""
313
337
 
314
- #: ../lib/r10k/module/forge.rb:174
315
- msgid "Forge module names must match 'owner/modulename'"
338
+ #: ../lib/r10k/module/forge.rb:192
339
+ msgid "Forge module names must match 'owner/modulename', instead got #{title}"
316
340
  msgstr ""
317
341
 
318
- #: ../lib/r10k/module/git.rb:97
319
- msgid "Unhandled options %{unhandled} specified for %{class}"
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."
320
344
  msgstr ""
321
345
 
322
- #: ../lib/r10k/module/local.rb:34
346
+ #: ../lib/r10k/module/local.rb:35
323
347
  msgid "Module %{title} is a local module, always indicating synced."
324
348
  msgstr ""
325
349
 
@@ -327,39 +351,27 @@ msgstr ""
327
351
  msgid "Could not read metadata.json"
328
352
  msgstr ""
329
353
 
330
- #: ../lib/r10k/puppetfile.rb:57
354
+ #: ../lib/r10k/puppetfile.rb:73
331
355
  msgid "Using Puppetfile '%{puppetfile}'"
332
356
  msgstr ""
333
357
 
334
- #: ../lib/r10k/puppetfile.rb:71
358
+ #: ../lib/r10k/puppetfile.rb:87
335
359
  msgid "Puppetfile %{path} missing or unreadable"
336
360
  msgstr ""
337
361
 
338
- #: ../lib/r10k/puppetfile.rb:84
362
+ #: ../lib/r10k/puppetfile.rb:100
339
363
  msgid "Failed to evaluate %{path}"
340
364
  msgstr ""
341
365
 
342
- #: ../lib/r10k/puppetfile.rb:98
366
+ #: ../lib/r10k/puppetfile.rb:114
343
367
  msgid "Puppetfiles cannot contain duplicate module names."
344
368
  msgstr ""
345
369
 
346
- #: ../lib/r10k/puppetfile.rb:100
370
+ #: ../lib/r10k/puppetfile.rb:116
347
371
  msgid "Remove the duplicates of the following modules: %{dupes}"
348
372
  msgstr ""
349
373
 
350
- #: ../lib/r10k/puppetfile.rb:192
351
- msgid "Updating modules with %{pool_size} threads"
352
- msgstr ""
353
-
354
- #: ../lib/r10k/puppetfile.rb:203
355
- msgid "Error during concurrent deploy of a module: %{message}"
356
- msgstr ""
357
-
358
- #: ../lib/r10k/puppetfile.rb:225
359
- msgid "Module thread %{id} exiting: %{message}"
360
- msgstr ""
361
-
362
- #: ../lib/r10k/puppetfile.rb:282
374
+ #: ../lib/r10k/puppetfile.rb:276
363
375
  msgid "unrecognized declaration '%{method}'"
364
376
  msgstr ""
365
377
 
@@ -450,19 +462,19 @@ msgstr ""
450
462
  msgid "Unable to determine current branches for Git source '%{name}' (%{basedir})"
451
463
  msgstr ""
452
464
 
453
- #: ../lib/r10k/source/git.rb:105
465
+ #: ../lib/r10k/source/git.rb:110
454
466
  msgid "Environment %{env_name} contained non-word characters, correcting name to %{corrected_env_name}"
455
467
  msgstr ""
456
468
 
457
- #: ../lib/r10k/source/git.rb:109
469
+ #: ../lib/r10k/source/git.rb:119
458
470
  msgid "Environment %{env_name} contained non-word characters, ignoring it."
459
471
  msgstr ""
460
472
 
461
- #: ../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
462
474
  msgid "Branch %{branch} filtered out by ignore_branch_prefixes %{ibp}"
463
475
  msgstr ""
464
476
 
465
- #: ../lib/r10k/source/git.rb:139
477
+ #: ../lib/r10k/source/git.rb:149
466
478
  msgid "Branch `%{name}:%{branch}` filtered out by filter_command %{cmd}"
467
479
  msgstr ""
468
480
 
@@ -526,7 +538,11 @@ msgstr ""
526
538
  msgid "Unable to remove unmanaged path: %{path}"
527
539
  msgstr ""
528
540
 
529
- #: ../lib/r10k/util/setopts.rb:49
541
+ #: ../lib/r10k/util/setopts.rb:58
542
+ msgid "%{class_name} parameters '%{a}' and '%{b}' conflict. Specify one or the other, but not both"
543
+ msgstr ""
544
+
545
+ #: ../lib/r10k/util/setopts.rb:65
530
546
  msgid "%{class_name} cannot handle option '%{key}'"
531
547
  msgstr ""
532
548