r10k 3.9.0 → 3.10.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 +1 -1
- data/.github/workflows/rspec_tests.yml +1 -1
- data/.github/workflows/stale.yml +19 -0
- data/CHANGELOG.mkd +24 -0
- data/doc/dynamic-environments/configuration.mkd +13 -6
- data/integration/Rakefile +1 -1
- data/integration/tests/user_scenario/basic_workflow/negative/neg_specify_deleted_forge_module.rb +3 -9
- data/integration/tests/user_scenario/basic_workflow/single_env_purge_unmanaged_modules.rb +8 -14
- data/lib/r10k/action/base.rb +10 -0
- data/lib/r10k/action/deploy/display.rb +42 -9
- data/lib/r10k/action/deploy/environment.rb +70 -41
- data/lib/r10k/action/deploy/module.rb +51 -29
- data/lib/r10k/action/puppetfile/check.rb +3 -1
- data/lib/r10k/action/puppetfile/install.rb +20 -23
- data/lib/r10k/action/puppetfile/purge.rb +8 -2
- data/lib/r10k/action/runner.rb +11 -6
- data/lib/r10k/content_synchronizer.rb +83 -0
- data/lib/r10k/deployment.rb +1 -1
- data/lib/r10k/environment/base.rb +21 -1
- data/lib/r10k/environment/git.rb +0 -3
- data/lib/r10k/environment/svn.rb +4 -6
- data/lib/r10k/environment/with_modules.rb +18 -10
- data/lib/r10k/git/cache.rb +1 -1
- data/lib/r10k/initializers.rb +7 -0
- data/lib/r10k/module.rb +1 -1
- data/lib/r10k/module/base.rb +17 -1
- data/lib/r10k/module/forge.rb +29 -19
- data/lib/r10k/module/git.rb +23 -14
- data/lib/r10k/module/local.rb +1 -0
- data/lib/r10k/module/svn.rb +12 -9
- data/lib/r10k/module_loader/puppetfile.rb +195 -0
- data/lib/r10k/module_loader/puppetfile/dsl.rb +37 -0
- data/lib/r10k/puppetfile.rb +111 -202
- data/lib/r10k/settings.rb +3 -0
- data/lib/r10k/source/base.rb +14 -0
- data/lib/r10k/source/git.rb +19 -6
- data/lib/r10k/source/hash.rb +1 -3
- data/lib/r10k/source/svn.rb +4 -2
- data/lib/r10k/util/cleaner.rb +21 -0
- data/lib/r10k/util/purgeable.rb +70 -8
- data/lib/r10k/version.rb +1 -1
- data/locales/r10k.pot +67 -71
- data/spec/fixtures/unit/action/r10k_forge_auth.yaml +4 -0
- data/spec/fixtures/unit/action/r10k_forge_auth_no_url.yaml +3 -0
- data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/managed_subdir_2/ignored_1 +0 -0
- data/spec/fixtures/unit/util/purgeable/managed_two/.hidden/unmanaged_3 +0 -0
- data/spec/r10k-mocks/mock_source.rb +1 -1
- data/spec/shared-examples/puppetfile-action.rb +7 -7
- data/spec/unit/action/deploy/display_spec.rb +32 -6
- data/spec/unit/action/deploy/environment_spec.rb +85 -48
- data/spec/unit/action/deploy/module_spec.rb +163 -31
- data/spec/unit/action/puppetfile/check_spec.rb +2 -2
- data/spec/unit/action/puppetfile/install_spec.rb +31 -10
- data/spec/unit/action/puppetfile/purge_spec.rb +25 -5
- data/spec/unit/action/runner_spec.rb +49 -25
- data/spec/unit/git/cache_spec.rb +14 -0
- data/spec/unit/module/forge_spec.rb +23 -14
- data/spec/unit/module/git_spec.rb +8 -8
- data/spec/unit/module_loader/puppetfile_spec.rb +330 -0
- data/spec/unit/module_spec.rb +22 -5
- data/spec/unit/puppetfile_spec.rb +123 -203
- data/spec/unit/settings_spec.rb +6 -2
- data/spec/unit/util/purgeable_spec.rb +40 -14
- metadata +12 -2
data/lib/r10k/source/base.rb
CHANGED
@@ -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
|
data/lib/r10k/source/git.rb
CHANGED
@@ -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,
|
103
|
-
|
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,
|
107
|
-
|
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
|
data/lib/r10k/source/hash.rb
CHANGED
@@ -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
|
|
data/lib/r10k/source/svn.rb
CHANGED
@@ -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
|
data/lib/r10k/util/purgeable.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
51
|
-
|
52
|
-
|
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
|
-
|
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.
|
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.
|
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-
|
13
|
-
"PO-Revision-Date: 2021-
|
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:
|
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:
|
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:
|
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:
|
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:
|
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/
|
55
|
-
msgid "
|
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:
|
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/
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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/
|
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:
|
358
|
+
#: ../lib/r10k/puppetfile.rb:73
|
351
359
|
msgid "Using Puppetfile '%{puppetfile}'"
|
352
360
|
msgstr ""
|
353
361
|
|
354
|
-
#: ../lib/r10k/puppetfile.rb:
|
362
|
+
#: ../lib/r10k/puppetfile.rb:87
|
355
363
|
msgid "Puppetfile %{path} missing or unreadable"
|
356
364
|
msgstr ""
|
357
365
|
|
358
|
-
#: ../lib/r10k/puppetfile.rb:
|
366
|
+
#: ../lib/r10k/puppetfile.rb:100
|
359
367
|
msgid "Failed to evaluate %{path}"
|
360
368
|
msgstr ""
|
361
369
|
|
362
|
-
#: ../lib/r10k/puppetfile.rb:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
530
|
-
msgid "Not purging %{
|
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:
|
534
|
-
msgid "Not purging %{
|
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:
|
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:
|
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:
|
541
|
+
#: ../lib/r10k/util/purgeable.rb:143
|
546
542
|
msgid "Unable to remove unmanaged path: %{path}"
|
547
543
|
msgstr ""
|
548
544
|
|