bolt 2.29.0 → 2.33.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bolt might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Puppetfile +15 -14
- data/bolt-modules/boltlib/lib/puppet/functions/download_file.rb +1 -1
- data/bolt-modules/boltlib/lib/puppet/functions/facts.rb +6 -0
- data/bolt-modules/boltlib/lib/puppet/functions/puppetdb_query.rb +2 -2
- data/bolt-modules/boltlib/lib/puppet/functions/run_command.rb +1 -1
- data/bolt-modules/boltlib/lib/puppet/functions/run_script.rb +1 -1
- data/bolt-modules/boltlib/lib/puppet/functions/run_task.rb +1 -1
- data/bolt-modules/boltlib/lib/puppet/functions/run_task_with.rb +1 -1
- data/bolt-modules/boltlib/lib/puppet/functions/upload_file.rb +1 -1
- data/bolt-modules/boltlib/lib/puppet/functions/write_file.rb +2 -2
- data/bolt-modules/out/lib/puppet/functions/out/message.rb +44 -1
- data/bolt-modules/prompt/lib/puppet/functions/prompt.rb +3 -0
- data/guides/logging.txt +18 -0
- data/guides/module.txt +19 -0
- data/guides/modulepath.txt +25 -0
- data/lib/bolt/bolt_option_parser.rb +48 -9
- data/lib/bolt/catalog.rb +1 -1
- data/lib/bolt/cli.rb +154 -116
- data/lib/bolt/config.rb +13 -1
- data/lib/bolt/config/modulepath.rb +30 -0
- data/lib/bolt/config/options.rb +32 -13
- data/lib/bolt/config/transport/options.rb +2 -2
- data/lib/bolt/error.rb +4 -0
- data/lib/bolt/executor.rb +13 -13
- data/lib/bolt/inventory.rb +10 -9
- data/lib/bolt/module_installer.rb +198 -0
- data/lib/bolt/{puppetfile → module_installer}/installer.rb +3 -2
- data/lib/bolt/module_installer/puppetfile.rb +117 -0
- data/lib/bolt/module_installer/puppetfile/forge_module.rb +54 -0
- data/lib/bolt/module_installer/puppetfile/git_module.rb +37 -0
- data/lib/bolt/module_installer/puppetfile/module.rb +26 -0
- data/lib/bolt/module_installer/resolver.rb +76 -0
- data/lib/bolt/module_installer/specs.rb +93 -0
- data/lib/bolt/module_installer/specs/forge_spec.rb +85 -0
- data/lib/bolt/module_installer/specs/git_spec.rb +179 -0
- data/lib/bolt/outputter.rb +2 -45
- data/lib/bolt/outputter/human.rb +78 -18
- data/lib/bolt/outputter/json.rb +22 -7
- data/lib/bolt/outputter/logger.rb +2 -2
- data/lib/bolt/pal.rb +55 -45
- data/lib/bolt/pal/yaml_plan.rb +4 -2
- data/lib/bolt/pal/yaml_plan/evaluator.rb +23 -1
- data/lib/bolt/pal/yaml_plan/loader.rb +14 -9
- data/lib/bolt/plugin.rb +1 -1
- data/lib/bolt/plugin/module.rb +1 -1
- data/lib/bolt/project.rb +32 -21
- data/lib/bolt/project_migrator.rb +80 -0
- data/lib/bolt/project_migrator/base.rb +39 -0
- data/lib/bolt/project_migrator/config.rb +67 -0
- data/lib/bolt/project_migrator/inventory.rb +67 -0
- data/lib/bolt/project_migrator/modules.rb +200 -0
- data/lib/bolt/result.rb +23 -11
- data/lib/bolt/shell/bash.rb +15 -9
- data/lib/bolt/shell/powershell.rb +11 -6
- data/lib/bolt/transport/base.rb +18 -18
- data/lib/bolt/transport/docker.rb +23 -6
- data/lib/bolt/transport/orch.rb +23 -14
- data/lib/bolt/transport/remote.rb +2 -2
- data/lib/bolt/transport/simple.rb +6 -6
- data/lib/bolt/transport/ssh/connection.rb +1 -1
- data/lib/bolt/util.rb +22 -0
- data/lib/bolt/version.rb +1 -1
- data/lib/bolt_server/acl.rb +2 -2
- data/lib/bolt_server/base_config.rb +3 -3
- data/lib/bolt_server/schemas/partials/task.json +17 -2
- data/lib/bolt_server/transport_app.rb +92 -12
- data/lib/bolt_spec/bolt_context.rb +4 -2
- data/lib/bolt_spec/plans.rb +1 -1
- data/lib/bolt_spec/plans/action_stubs/command_stub.rb +1 -1
- data/lib/bolt_spec/plans/action_stubs/script_stub.rb +1 -1
- data/lib/bolt_spec/plans/mock_executor.rb +6 -6
- data/lib/bolt_spec/run.rb +1 -1
- metadata +29 -10
- data/lib/bolt/project_migrate.rb +0 -138
- data/lib/bolt/puppetfile.rb +0 -160
- data/lib/bolt/puppetfile/module.rb +0 -89
- data/lib/bolt_server/pe/pal.rb +0 -67
- data/modules/secure_env_vars/plans/init.pp +0 -20
@@ -30,7 +30,7 @@ module Bolt
|
|
30
30
|
@transport_logger = transport_logger
|
31
31
|
@logger.trace("Initializing ssh connection to #{@target.safe_name}")
|
32
32
|
|
33
|
-
if target.options['private-key']
|
33
|
+
if target.options['private-key'].instance_of?(String)
|
34
34
|
begin
|
35
35
|
Bolt::Util.validate_file('ssh key', target.options['private-key'])
|
36
36
|
rescue Bolt::FileError => e
|
data/lib/bolt/util.rb
CHANGED
@@ -299,6 +299,28 @@ module Bolt
|
|
299
299
|
raise Bolt::ValidationError, "path must be a String, received #{path.class} #{path}" unless path.is_a?(String)
|
300
300
|
path.split(%r{[/\\]}).last
|
301
301
|
end
|
302
|
+
|
303
|
+
# Prompts yes or no, returning true for yes and false for no.
|
304
|
+
#
|
305
|
+
def prompt_yes_no(prompt, outputter)
|
306
|
+
choices = {
|
307
|
+
'y' => true,
|
308
|
+
'yes' => true,
|
309
|
+
'n' => false,
|
310
|
+
'no' => false
|
311
|
+
}
|
312
|
+
|
313
|
+
loop do
|
314
|
+
outputter.print_prompt("#{prompt} ([y]es/[n]o) ")
|
315
|
+
response = $stdin.gets.to_s.downcase.chomp
|
316
|
+
|
317
|
+
if choices.key?(response)
|
318
|
+
return choices[response]
|
319
|
+
else
|
320
|
+
outputter.print_prompt_error("Invalid response, must pick [y]es or [n]o")
|
321
|
+
end
|
322
|
+
end
|
323
|
+
end
|
302
324
|
end
|
303
325
|
end
|
304
326
|
end
|
data/lib/bolt/version.rb
CHANGED
data/lib/bolt_server/acl.rb
CHANGED
@@ -7,7 +7,7 @@ module BoltServer
|
|
7
7
|
class BaseConfig
|
8
8
|
def config_keys
|
9
9
|
%w[host port ssl-cert ssl-key ssl-ca-cert
|
10
|
-
ssl-cipher-suites loglevel logfile
|
10
|
+
ssl-cipher-suites loglevel logfile allowlist projects-dir]
|
11
11
|
end
|
12
12
|
|
13
13
|
def env_keys
|
@@ -98,8 +98,8 @@ module BoltServer
|
|
98
98
|
raise Bolt::ValidationError, "Configured 'ssl-cipher-suites' must be an array of cipher suite names"
|
99
99
|
end
|
100
100
|
|
101
|
-
unless @data['
|
102
|
-
raise Bolt::ValidationError, "Configured '
|
101
|
+
unless @data['allowlist'].nil? || @data['allowlist'].is_a?(Array)
|
102
|
+
raise Bolt::ValidationError, "Configured 'allowlist' must be an array of names"
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
@@ -63,9 +63,24 @@
|
|
63
63
|
"environment": {
|
64
64
|
"description": "Environment the task is in",
|
65
65
|
"type": "string"
|
66
|
+
},
|
67
|
+
"project": {
|
68
|
+
"description": "Project the task is in",
|
69
|
+
"type": "string"
|
66
70
|
}
|
67
71
|
},
|
68
|
-
"
|
72
|
+
"oneOf": [
|
73
|
+
{
|
74
|
+
"required": [
|
75
|
+
"environment"
|
76
|
+
]
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"required": [
|
80
|
+
"project"
|
81
|
+
]
|
82
|
+
}
|
83
|
+
],
|
69
84
|
"additionalProperties": true
|
70
85
|
}
|
71
86
|
},
|
@@ -90,5 +105,5 @@
|
|
90
105
|
}
|
91
106
|
},
|
92
107
|
"required": ["name", "files"],
|
93
|
-
"additionalProperties":
|
108
|
+
"additionalProperties": true
|
94
109
|
}
|
@@ -14,7 +14,9 @@ require 'json-schema'
|
|
14
14
|
|
15
15
|
# These are only needed for the `/plans` endpoint.
|
16
16
|
require 'puppet'
|
17
|
-
|
17
|
+
|
18
|
+
# Needed by the `/project_file_metadatas` endpoint
|
19
|
+
require 'puppet/file_serving/fileset'
|
18
20
|
|
19
21
|
module BoltServer
|
20
22
|
class TransportApp < Sinatra::Base
|
@@ -35,6 +37,17 @@ module BoltServer
|
|
35
37
|
transport-winrm
|
36
38
|
].freeze
|
37
39
|
|
40
|
+
# PE_BOLTLIB_PATH is intended to function exactly like the BOLTLIB_PATH used
|
41
|
+
# in Bolt::PAL. Paths and variable names are similar to what exists in
|
42
|
+
# Bolt::PAL, but with a 'PE' prefix.
|
43
|
+
PE_BOLTLIB_PATH = '/opt/puppetlabs/server/apps/bolt-server/pe-bolt-modules'
|
44
|
+
|
45
|
+
# For now at least, we maintain an entirely separate codedir from
|
46
|
+
# puppetserver by default, so that filesync can work properly. If filesync
|
47
|
+
# is not used, this can instead match the usual puppetserver codedir.
|
48
|
+
# See the `orchestrator.bolt.codedir` tk config setting.
|
49
|
+
DEFAULT_BOLT_CODEDIR = '/opt/puppetlabs/server/data/orchestration-services/code'
|
50
|
+
|
38
51
|
def initialize(config)
|
39
52
|
@config = config
|
40
53
|
@schemas = Hash[REQUEST_SCHEMAS.map do |basename|
|
@@ -191,10 +204,52 @@ module BoltServer
|
|
191
204
|
[@executor.run_script(target, file_location, body['arguments'])]
|
192
205
|
end
|
193
206
|
|
207
|
+
# This function is nearly identical to Bolt::Pal's `with_puppet_settings` with the
|
208
|
+
# one difference that we set the codedir to point to actual code, rather than the
|
209
|
+
# tmpdir. We only use this funtion inside the Modulepath initializer so that Puppet
|
210
|
+
# is correctly configured to pull environment configuration correctly. If we don't
|
211
|
+
# set codedir in this way: when we try to load and interpolate the modulepath it
|
212
|
+
# won't correctly load.
|
213
|
+
#
|
214
|
+
# WARNING: THIS FUNCTION SHOULD ONLY BE CALLED INSIDE A SYNCHRONIZED PAL MUTEX
|
215
|
+
def with_pe_pal_init_settings(codedir, environmentpath, basemodulepath)
|
216
|
+
Dir.mktmpdir('pe-bolt') do |dir|
|
217
|
+
cli = []
|
218
|
+
Puppet::Settings::REQUIRED_APP_SETTINGS.each do |setting|
|
219
|
+
dir = setting == :codedir ? codedir : dir
|
220
|
+
cli << "--#{setting}" << dir
|
221
|
+
end
|
222
|
+
cli << "--environmentpath" << environmentpath
|
223
|
+
cli << "--basemodulepath" << basemodulepath
|
224
|
+
Puppet.settings.send(:clear_everything_for_tests)
|
225
|
+
Puppet.initialize_settings(cli)
|
226
|
+
yield
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
# Use puppet to identify the modulepath from an environment.
|
231
|
+
#
|
232
|
+
# WARNING: THIS FUNCTION SHOULD ONLY BE CALLED INSIDE A SYNCHRONIZED PAL MUTEX
|
233
|
+
def modulepath_from_environment(environment_name)
|
234
|
+
codedir = DEFAULT_BOLT_CODEDIR
|
235
|
+
environmentpath = "#{codedir}/environments"
|
236
|
+
basemodulepath = "#{codedir}/modules:/opt/puppetlabs/puppet/modules"
|
237
|
+
modulepath_dirs = nil
|
238
|
+
with_pe_pal_init_settings(codedir, environmentpath, basemodulepath) do
|
239
|
+
environment = Puppet.lookup(:environments).get!(environment_name)
|
240
|
+
modulepath_dirs = environment.modulepath
|
241
|
+
end
|
242
|
+
modulepath_dirs
|
243
|
+
end
|
244
|
+
|
194
245
|
def in_pe_pal_env(environment)
|
195
246
|
return [400, '`environment` is a required argument'] if environment.nil?
|
196
247
|
@pal_mutex.synchronize do
|
197
|
-
|
248
|
+
modulepath_obj = Bolt::Config::Modulepath.new(
|
249
|
+
modulepath_from_environment(environment),
|
250
|
+
boltlib_path: [PE_BOLTLIB_PATH, Bolt::Config::Modulepath::BOLTLIB_PATH]
|
251
|
+
)
|
252
|
+
pal = Bolt::PAL.new(modulepath_obj, nil, nil)
|
198
253
|
yield pal
|
199
254
|
rescue Puppet::Environments::EnvironmentNotFound
|
200
255
|
[400, {
|
@@ -213,16 +268,11 @@ module BoltServer
|
|
213
268
|
@pal_mutex.synchronize do
|
214
269
|
project = Bolt::Project.create_project(project_dir)
|
215
270
|
bolt_config = Bolt::Config.from_project(project, { log: { 'bolt-debug.log' => 'disable' } })
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
Bolt::PAL::MODULES_PATH
|
222
|
-
]
|
223
|
-
# CODEREVIEW: I *think* this is the only thing we need to make different between bolt's PAL. Is it acceptable
|
224
|
-
# to hack this? Modulepath is currently a readable attribute, could we make it writeable?
|
225
|
-
pal.instance_variable_set(:@modulepath, module_path)
|
271
|
+
modulepath_object = Bolt::Config::Modulepath.new(
|
272
|
+
bolt_config.modulepath,
|
273
|
+
boltlib_path: [PE_BOLTLIB_PATH, Bolt::Config::Modulepath::BOLTLIB_PATH]
|
274
|
+
)
|
275
|
+
pal = Bolt::PAL.new(modulepath_object, nil, nil, nil, nil, nil, bolt_config.project)
|
226
276
|
context = {
|
227
277
|
pal: pal,
|
228
278
|
config: bolt_config
|
@@ -307,6 +357,23 @@ module BoltServer
|
|
307
357
|
plans.map { |plan_name| { 'name' => plan_name } }
|
308
358
|
end
|
309
359
|
|
360
|
+
def file_metadatas(pal, module_name, file)
|
361
|
+
pal.in_bolt_compiler do
|
362
|
+
mod = Puppet.lookup(:current_environment).module(module_name)
|
363
|
+
raise ArgumentError, "`module_name`: #{module_name} does not exist" unless mod
|
364
|
+
abs_file_path = mod.file(file)
|
365
|
+
raise ArgumentError, "`file`: #{file} does not exist inside the module's 'files' directory" unless abs_file_path
|
366
|
+
fileset = Puppet::FileServing::Fileset.new(abs_file_path, 'recurse' => 'yes')
|
367
|
+
Puppet::FileServing::Fileset.merge(fileset).collect do |relative_file_path, base_path|
|
368
|
+
metadata = Puppet::FileServing::Metadata.new(base_path, relative_path: relative_file_path)
|
369
|
+
metadata.checksum_type = 'sha256'
|
370
|
+
metadata.links = 'follow'
|
371
|
+
metadata.collect
|
372
|
+
metadata.to_data_hash
|
373
|
+
end
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
310
377
|
get '/' do
|
311
378
|
200
|
312
379
|
end
|
@@ -550,6 +617,19 @@ module BoltServer
|
|
550
617
|
end
|
551
618
|
end
|
552
619
|
|
620
|
+
# Implements puppetserver's file_metadatas endpoint for projects.
|
621
|
+
#
|
622
|
+
# @param project_ref [String] the project_ref to fetch the file metadatas from
|
623
|
+
get '/project_file_metadatas/:module_name/*' do
|
624
|
+
in_bolt_project(params['project_ref']) do |context|
|
625
|
+
file = params[:splat].first
|
626
|
+
metadatas = file_metadatas(context[:pal], params[:module_name], file)
|
627
|
+
[200, metadatas.to_json]
|
628
|
+
end
|
629
|
+
rescue ArgumentError => e
|
630
|
+
[400, e.message]
|
631
|
+
end
|
632
|
+
|
553
633
|
error 404 do
|
554
634
|
err = Bolt::Error.new("Could not find route #{request.path}",
|
555
635
|
'boltserver/not-found')
|
@@ -105,7 +105,7 @@ module BoltSpec
|
|
105
105
|
|
106
106
|
# Set the things
|
107
107
|
Puppet[:tasks] = true
|
108
|
-
RSpec.configuration.module_path = [modulepath, Bolt::
|
108
|
+
RSpec.configuration.module_path = [modulepath, Bolt::Config::Modulepath::BOLTLIB_PATH].join(File::PATH_SEPARATOR)
|
109
109
|
opts = {
|
110
110
|
bolt_executor: executor,
|
111
111
|
bolt_inventory: inventory,
|
@@ -153,7 +153,9 @@ module BoltSpec
|
|
153
153
|
end
|
154
154
|
|
155
155
|
def pal
|
156
|
-
@pal ||= Bolt::PAL.new(config.modulepath,
|
156
|
+
@pal ||= Bolt::PAL.new(Bolt::Config::Modulepath.new(config.modulepath),
|
157
|
+
config.hiera_config,
|
158
|
+
config.project.resource_types)
|
157
159
|
end
|
158
160
|
|
159
161
|
BoltSpec::Plans::MOCKED_ACTIONS.each do |action|
|
data/lib/bolt_spec/plans.rb
CHANGED
@@ -40,7 +40,7 @@ module BoltSpec
|
|
40
40
|
|
41
41
|
def module_file_id(file)
|
42
42
|
modpath = @modulepath.select { |path| file =~ /^#{path}/ }
|
43
|
-
raise "Could not identify
|
43
|
+
raise "Could not identify modulepath containing #{file}: #{modpath}" unless modpath.size == 1
|
44
44
|
|
45
45
|
path = Pathname.new(file)
|
46
46
|
relative = path.relative_path_from(Pathname.new(modpath.first))
|
@@ -48,7 +48,7 @@ module BoltSpec
|
|
48
48
|
([segments[0]] + segments[2..-1]).join('/')
|
49
49
|
end
|
50
50
|
|
51
|
-
def run_command(targets, command, options = {})
|
51
|
+
def run_command(targets, command, options = {}, _position = [])
|
52
52
|
result = nil
|
53
53
|
if (doub = @command_doubles[command] || @command_doubles[:default])
|
54
54
|
result = doub.process(targets, command, options)
|
@@ -61,7 +61,7 @@ module BoltSpec
|
|
61
61
|
result
|
62
62
|
end
|
63
63
|
|
64
|
-
def run_script(targets, script_path, arguments, options = {})
|
64
|
+
def run_script(targets, script_path, arguments, options = {}, _position = [])
|
65
65
|
script = module_file_id(script_path)
|
66
66
|
result = nil
|
67
67
|
if (doub = @script_doubles[script] || @script_doubles[:default])
|
@@ -76,7 +76,7 @@ module BoltSpec
|
|
76
76
|
result
|
77
77
|
end
|
78
78
|
|
79
|
-
def run_task(targets, task, arguments, options = {})
|
79
|
+
def run_task(targets, task, arguments, options = {}, _position = [])
|
80
80
|
result = nil
|
81
81
|
if (doub = @task_doubles[task.name] || @task_doubles[:default])
|
82
82
|
result = doub.process(targets, task.name, arguments, options)
|
@@ -90,7 +90,7 @@ module BoltSpec
|
|
90
90
|
result
|
91
91
|
end
|
92
92
|
|
93
|
-
def download_file(targets, source, destination, options = {})
|
93
|
+
def download_file(targets, source, destination, options = {}, _position = [])
|
94
94
|
result = nil
|
95
95
|
if (doub = @download_doubles[source] || @download_doubles[:default])
|
96
96
|
result = doub.process(targets, source, destination, options)
|
@@ -103,7 +103,7 @@ module BoltSpec
|
|
103
103
|
result
|
104
104
|
end
|
105
105
|
|
106
|
-
def upload_file(targets, source_path, destination, options = {})
|
106
|
+
def upload_file(targets, source_path, destination, options = {}, _position = [])
|
107
107
|
source = module_file_id(source_path)
|
108
108
|
result = nil
|
109
109
|
if (doub = @upload_doubles[source] || @upload_doubles[:default])
|
data/lib/bolt_spec/run.rb
CHANGED
@@ -179,7 +179,7 @@ module BoltSpec
|
|
179
179
|
end
|
180
180
|
|
181
181
|
def pal
|
182
|
-
@pal ||= Bolt::PAL.new(config.modulepath,
|
182
|
+
@pal ||= Bolt::PAL.new(Bolt::Config::Modulepath.new(config.modulepath),
|
183
183
|
config.hiera_config,
|
184
184
|
config.project.resource_types,
|
185
185
|
config.compile_concurrency)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bolt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.33.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -182,16 +182,22 @@ dependencies:
|
|
182
182
|
name: puppet
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
|
-
- -
|
185
|
+
- - ">="
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: 6.18.0
|
188
|
+
- - "<"
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: '6.20'
|
188
191
|
type: :runtime
|
189
192
|
prerelease: false
|
190
193
|
version_requirements: !ruby/object:Gem::Requirement
|
191
194
|
requirements:
|
192
|
-
- -
|
195
|
+
- - ">="
|
193
196
|
- !ruby/object:Gem::Version
|
194
197
|
version: 6.18.0
|
198
|
+
- - "<"
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '6.20'
|
195
201
|
- !ruby/object:Gem::Dependency
|
196
202
|
name: puppetfile-resolver
|
197
203
|
requirement: !ruby/object:Gem::Requirement
|
@@ -432,6 +438,9 @@ files:
|
|
432
438
|
- bolt-modules/system/lib/puppet/functions/system/env.rb
|
433
439
|
- exe/bolt
|
434
440
|
- guides/inventory.txt
|
441
|
+
- guides/logging.txt
|
442
|
+
- guides/module.txt
|
443
|
+
- guides/modulepath.txt
|
435
444
|
- guides/project.txt
|
436
445
|
- lib/bolt.rb
|
437
446
|
- lib/bolt/analytics.rb
|
@@ -444,6 +453,7 @@ files:
|
|
444
453
|
- lib/bolt/catalog/logging.rb
|
445
454
|
- lib/bolt/cli.rb
|
446
455
|
- lib/bolt/config.rb
|
456
|
+
- lib/bolt/config/modulepath.rb
|
447
457
|
- lib/bolt/config/options.rb
|
448
458
|
- lib/bolt/config/transport/base.rb
|
449
459
|
- lib/bolt/config/transport/docker.rb
|
@@ -461,6 +471,16 @@ files:
|
|
461
471
|
- lib/bolt/inventory/target.rb
|
462
472
|
- lib/bolt/logger.rb
|
463
473
|
- lib/bolt/module.rb
|
474
|
+
- lib/bolt/module_installer.rb
|
475
|
+
- lib/bolt/module_installer/installer.rb
|
476
|
+
- lib/bolt/module_installer/puppetfile.rb
|
477
|
+
- lib/bolt/module_installer/puppetfile/forge_module.rb
|
478
|
+
- lib/bolt/module_installer/puppetfile/git_module.rb
|
479
|
+
- lib/bolt/module_installer/puppetfile/module.rb
|
480
|
+
- lib/bolt/module_installer/resolver.rb
|
481
|
+
- lib/bolt/module_installer/specs.rb
|
482
|
+
- lib/bolt/module_installer/specs/forge_spec.rb
|
483
|
+
- lib/bolt/module_installer/specs/git_spec.rb
|
464
484
|
- lib/bolt/node/errors.rb
|
465
485
|
- lib/bolt/node/output.rb
|
466
486
|
- lib/bolt/outputter.rb
|
@@ -494,13 +514,14 @@ files:
|
|
494
514
|
- lib/bolt/plugin/puppetdb.rb
|
495
515
|
- lib/bolt/plugin/task.rb
|
496
516
|
- lib/bolt/project.rb
|
497
|
-
- lib/bolt/
|
517
|
+
- lib/bolt/project_migrator.rb
|
518
|
+
- lib/bolt/project_migrator/base.rb
|
519
|
+
- lib/bolt/project_migrator/config.rb
|
520
|
+
- lib/bolt/project_migrator/inventory.rb
|
521
|
+
- lib/bolt/project_migrator/modules.rb
|
498
522
|
- lib/bolt/puppetdb.rb
|
499
523
|
- lib/bolt/puppetdb/client.rb
|
500
524
|
- lib/bolt/puppetdb/config.rb
|
501
|
-
- lib/bolt/puppetfile.rb
|
502
|
-
- lib/bolt/puppetfile/installer.rb
|
503
|
-
- lib/bolt/puppetfile/module.rb
|
504
525
|
- lib/bolt/r10k_log_proxy.rb
|
505
526
|
- lib/bolt/rerun.rb
|
506
527
|
- lib/bolt/resource_instance.rb
|
@@ -537,7 +558,6 @@ files:
|
|
537
558
|
- lib/bolt_server/base_config.rb
|
538
559
|
- lib/bolt_server/config.rb
|
539
560
|
- lib/bolt_server/file_cache.rb
|
540
|
-
- lib/bolt_server/pe/pal.rb
|
541
561
|
- lib/bolt_server/schemas/action-check_node_connections.json
|
542
562
|
- lib/bolt_server/schemas/action-run_command.json
|
543
563
|
- lib/bolt_server/schemas/action-run_script.json
|
@@ -578,7 +598,6 @@ files:
|
|
578
598
|
- modules/canary/lib/puppet/functions/canary/skip.rb
|
579
599
|
- modules/canary/plans/init.pp
|
580
600
|
- modules/puppetdb_fact/plans/init.pp
|
581
|
-
- modules/secure_env_vars/plans/init.pp
|
582
601
|
homepage: https://github.com/puppetlabs/bolt
|
583
602
|
licenses:
|
584
603
|
- Apache-2.0
|