bolt 2.31.0 → 2.35.0
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 +7 -7
- data/bolt-modules/boltlib/lib/puppet/functions/catch_errors.rb +1 -3
- data/bolt-modules/boltlib/lib/puppet/functions/download_file.rb +17 -6
- data/bolt-modules/boltlib/lib/puppet/functions/facts.rb +6 -0
- data/bolt-modules/boltlib/lib/puppet/functions/parallelize.rb +56 -0
- data/bolt-modules/boltlib/lib/puppet/functions/puppetdb_query.rb +2 -2
- data/bolt-modules/boltlib/lib/puppet/functions/run_command.rb +24 -6
- data/bolt-modules/boltlib/lib/puppet/functions/run_script.rb +27 -8
- data/bolt-modules/boltlib/lib/puppet/functions/run_task.rb +21 -1
- data/bolt-modules/boltlib/lib/puppet/functions/run_task_with.rb +18 -1
- data/bolt-modules/boltlib/lib/puppet/functions/upload_file.rb +24 -6
- 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 +6 -1
- data/lib/bolt/cli.rb +70 -144
- data/lib/bolt/config/options.rb +35 -17
- data/lib/bolt/config/transport/options.rb +1 -1
- data/lib/bolt/error.rb +37 -3
- data/lib/bolt/executor.rb +111 -13
- data/lib/bolt/inventory/group.rb +2 -1
- data/lib/bolt/module_installer.rb +71 -115
- 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 +0 -47
- data/lib/bolt/outputter/human.rb +23 -11
- data/lib/bolt/outputter/json.rb +1 -1
- data/lib/bolt/pal.rb +48 -30
- data/lib/bolt/pal/yaml_plan.rb +11 -2
- data/lib/bolt/pal/yaml_plan/evaluator.rb +23 -1
- data/lib/bolt/pal/yaml_plan/loader.rb +14 -9
- data/lib/bolt/plan_creator.rb +160 -0
- data/lib/bolt/plugin.rb +1 -1
- data/lib/bolt/project.rb +5 -10
- data/lib/bolt/project_migrator/config.rb +2 -1
- data/lib/bolt/project_migrator/inventory.rb +2 -2
- data/lib/bolt/project_migrator/modules.rb +10 -8
- data/lib/bolt/puppetdb/client.rb +3 -2
- data/lib/bolt/puppetdb/config.rb +8 -6
- data/lib/bolt/result.rb +23 -11
- data/lib/bolt/shell/bash.rb +11 -6
- data/lib/bolt/shell/powershell.rb +12 -7
- data/lib/bolt/task/run.rb +1 -1
- data/lib/bolt/transport/base.rb +18 -18
- data/lib/bolt/transport/docker.rb +23 -6
- data/lib/bolt/transport/orch.rb +23 -19
- data/lib/bolt/transport/orch/connection.rb +10 -3
- data/lib/bolt/transport/remote.rb +3 -3
- data/lib/bolt/transport/simple.rb +6 -6
- data/lib/bolt/util.rb +5 -0
- data/lib/bolt/version.rb +1 -1
- data/lib/bolt/yarn.rb +23 -0
- data/lib/bolt_server/file_cache.rb +2 -0
- data/lib/bolt_server/schemas/partials/task.json +17 -2
- data/lib/bolt_server/transport_app.rb +38 -7
- 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 +9 -6
- metadata +25 -8
- data/lib/bolt/puppetfile.rb +0 -149
- data/lib/bolt/puppetfile/module.rb +0 -93
- data/modules/secure_env_vars/plans/init.pp +0 -20
@@ -17,13 +17,20 @@ module Bolt
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def initialize(opts, plan_context, logger)
|
20
|
+
require 'addressable/uri'
|
21
|
+
|
20
22
|
@logger = logger
|
21
23
|
@key = self.class.get_key(opts)
|
22
|
-
|
23
|
-
|
24
|
-
|
24
|
+
client_opts = opts.slice('token-file', 'cacert', 'job-poll-interval', 'job-poll-timeout')
|
25
|
+
|
26
|
+
if opts['service-url']
|
27
|
+
uri = Addressable::URI.parse(opts['service-url'])
|
28
|
+
uri&.port ||= 8143
|
29
|
+
client_opts['service-url'] = uri.to_s
|
25
30
|
end
|
31
|
+
|
26
32
|
client_opts['User-Agent'] = "Bolt/#{VERSION}"
|
33
|
+
|
27
34
|
%w[token-file cacert].each do |f|
|
28
35
|
client_opts[f] = File.expand_path(client_opts[f]) if client_opts[f]
|
29
36
|
end
|
@@ -26,14 +26,14 @@ module Bolt
|
|
26
26
|
end
|
27
27
|
|
28
28
|
# Cannot batch because arugments differ
|
29
|
-
def run_task(target, task, arguments, options = {})
|
29
|
+
def run_task(target, task, arguments, options = {}, position = [])
|
30
30
|
proxy_target = get_proxy(target)
|
31
31
|
transport = @executor.transport(proxy_target.transport)
|
32
|
-
arguments = arguments.merge('_target' => target.to_h.
|
32
|
+
arguments = arguments.merge('_target' => target.to_h.compact)
|
33
33
|
|
34
34
|
remote_task = task.remote_instance
|
35
35
|
|
36
|
-
result = transport.run_task(proxy_target, remote_task, arguments, options)
|
36
|
+
result = transport.run_task(proxy_target, remote_task, arguments, options, position)
|
37
37
|
Bolt::Result.new(target, value: result.value, action: 'task', object: task.name)
|
38
38
|
end
|
39
39
|
end
|
@@ -20,9 +20,9 @@ module Bolt
|
|
20
20
|
false
|
21
21
|
end
|
22
22
|
|
23
|
-
def run_command(target, command, options = {})
|
23
|
+
def run_command(target, command, options = {}, position = [])
|
24
24
|
with_connection(target) do |conn|
|
25
|
-
conn.shell.run_command(command, options)
|
25
|
+
conn.shell.run_command(command, options, position)
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -38,15 +38,15 @@ module Bolt
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
def run_script(target, script, arguments, options = {})
|
41
|
+
def run_script(target, script, arguments, options = {}, position = [])
|
42
42
|
with_connection(target) do |conn|
|
43
|
-
conn.shell.run_script(script, arguments, options)
|
43
|
+
conn.shell.run_script(script, arguments, options, position)
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
def run_task(target, task, arguments, options = {})
|
47
|
+
def run_task(target, task, arguments, options = {}, position = [])
|
48
48
|
with_connection(target) do |conn|
|
49
|
-
conn.shell.run_task(task, arguments, options)
|
49
|
+
conn.shell.run_task(task, arguments, options, position)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
data/lib/bolt/util.rb
CHANGED
@@ -273,6 +273,11 @@ module Bolt
|
|
273
273
|
!!File::ALT_SEPARATOR
|
274
274
|
end
|
275
275
|
|
276
|
+
# Returns true if running in PowerShell.
|
277
|
+
def powershell?
|
278
|
+
!!ENV['PSModulePath']
|
279
|
+
end
|
280
|
+
|
276
281
|
# Accept hash and return hash with top level keys of type "String" converted to symbols.
|
277
282
|
def symbolize_top_level_keys(hsh)
|
278
283
|
hsh.each_with_object({}) { |(k, v), h| k.is_a?(String) ? h[k.to_sym] = v : h[k] = v }
|
data/lib/bolt/version.rb
CHANGED
data/lib/bolt/yarn.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'fiber'
|
4
|
+
|
5
|
+
module Bolt
|
6
|
+
class Yarn
|
7
|
+
attr_reader :fiber, :value, :index
|
8
|
+
|
9
|
+
def initialize(fiber, index)
|
10
|
+
@fiber = fiber
|
11
|
+
@index = index
|
12
|
+
@value = nil
|
13
|
+
end
|
14
|
+
|
15
|
+
def alive?
|
16
|
+
fiber.alive?
|
17
|
+
end
|
18
|
+
|
19
|
+
def resume
|
20
|
+
@value = fiber.resume
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -63,6 +63,7 @@ module BoltServer
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def client
|
66
|
+
# rubocop:disable Naming/VariableNumber
|
66
67
|
@client ||= begin
|
67
68
|
uri = URI(@config['file-server-uri'])
|
68
69
|
https = Net::HTTP.new(uri.host, uri.port)
|
@@ -75,6 +76,7 @@ module BoltServer
|
|
75
76
|
https.open_timeout = @config['file-server-conn-timeout']
|
76
77
|
https
|
77
78
|
end
|
79
|
+
# rubocop:enable Naming/VariableNumber
|
78
80
|
end
|
79
81
|
|
80
82
|
def request_file(path, params, file)
|
@@ -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
|
}
|
@@ -48,6 +48,10 @@ module BoltServer
|
|
48
48
|
# See the `orchestrator.bolt.codedir` tk config setting.
|
49
49
|
DEFAULT_BOLT_CODEDIR = '/opt/puppetlabs/server/data/orchestration-services/code'
|
50
50
|
|
51
|
+
MISSING_PROJECT_REF_RESPONSE = [
|
52
|
+
400, Bolt::ValidationError.new('`project_ref` is a required argument').to_json
|
53
|
+
].freeze
|
54
|
+
|
51
55
|
def initialize(config)
|
52
56
|
@config = config
|
53
57
|
@schemas = Hash[REQUEST_SCHEMAS.map do |basename|
|
@@ -261,13 +265,16 @@ module BoltServer
|
|
261
265
|
end
|
262
266
|
end
|
263
267
|
|
264
|
-
def
|
265
|
-
|
266
|
-
project_dir
|
267
|
-
|
268
|
+
def config_from_project(project_ref)
|
269
|
+
project_dir = File.join(@config['projects-dir'], project_ref)
|
270
|
+
raise Bolt::ValidationError, "`project_ref`: #{project_dir} does not exist" unless Dir.exist?(project_dir)
|
271
|
+
project = Bolt::Project.create_project(project_dir)
|
272
|
+
Bolt::Config.from_project(project, { log: { 'bolt-debug.log' => 'disable' } })
|
273
|
+
end
|
274
|
+
|
275
|
+
def in_bolt_project(project_ref)
|
268
276
|
@pal_mutex.synchronize do
|
269
|
-
|
270
|
-
bolt_config = Bolt::Config.from_project(project, { log: { 'bolt-debug.log' => 'disable' } })
|
277
|
+
bolt_config = config_from_project(project_ref)
|
271
278
|
modulepath_object = Bolt::Config::Modulepath.new(
|
272
279
|
bolt_config.modulepath,
|
273
280
|
boltlib_path: [PE_BOLTLIB_PATH, Bolt::Config::Modulepath::BOLTLIB_PATH]
|
@@ -508,6 +515,7 @@ module BoltServer
|
|
508
515
|
#
|
509
516
|
# @param project_ref [String] the project to fetch the plan from
|
510
517
|
get '/project_plans/:module_name/:plan_name' do
|
518
|
+
return MISSING_PROJECT_REF_RESPONSE if params['project_ref'].nil?
|
511
519
|
in_bolt_project(params['project_ref']) do |context|
|
512
520
|
plan_info = pe_plan_info(context[:pal], params[:module_name], params[:plan_name])
|
513
521
|
plan_info = allowed_helper(plan_info, context[:config].project.plans)
|
@@ -532,6 +540,7 @@ module BoltServer
|
|
532
540
|
#
|
533
541
|
# @param bolt_project_ref [String] the reference to the bolt-project directory to load task metadata from
|
534
542
|
get '/project_tasks/:module_name/:task_name' do
|
543
|
+
return MISSING_PROJECT_REF_RESPONSE if params['project_ref'].nil?
|
535
544
|
in_bolt_project(params['project_ref']) do |context|
|
536
545
|
ps_parameters = {
|
537
546
|
'project' => params['project_ref']
|
@@ -570,6 +579,7 @@ module BoltServer
|
|
570
579
|
#
|
571
580
|
# @param project_ref [String] the project to fetch the list of plans from
|
572
581
|
get '/project_plans' do
|
582
|
+
return MISSING_PROJECT_REF_RESPONSE if params['project_ref'].nil?
|
573
583
|
in_bolt_project(params['project_ref']) do |context|
|
574
584
|
plans_response = plan_list(context[:pal])
|
575
585
|
|
@@ -603,6 +613,7 @@ module BoltServer
|
|
603
613
|
#
|
604
614
|
# @param project_ref [String] the project to fetch the list of tasks from
|
605
615
|
get '/project_tasks' do
|
616
|
+
return MISSING_PROJECT_REF_RESPONSE if params['project_ref'].nil?
|
606
617
|
in_bolt_project(params['project_ref']) do |context|
|
607
618
|
tasks_response = task_list(context[:pal])
|
608
619
|
|
@@ -621,6 +632,7 @@ module BoltServer
|
|
621
632
|
#
|
622
633
|
# @param project_ref [String] the project_ref to fetch the file metadatas from
|
623
634
|
get '/project_file_metadatas/:module_name/*' do
|
635
|
+
return MISSING_PROJECT_REF_RESPONSE if params['project_ref'].nil?
|
624
636
|
in_bolt_project(params['project_ref']) do |context|
|
625
637
|
file = params[:splat].first
|
626
638
|
metadatas = file_metadatas(context[:pal], params[:module_name], file)
|
@@ -630,13 +642,32 @@ module BoltServer
|
|
630
642
|
[400, e.message]
|
631
643
|
end
|
632
644
|
|
645
|
+
# Returns a list of targets parsed from a Project inventory
|
646
|
+
#
|
647
|
+
# @param project_ref [String] the project_ref to compute the inventory from
|
648
|
+
get '/project_inventory_targets' do
|
649
|
+
return MISSING_PROJECT_REF_RESPONSE if params['project_ref'].nil?
|
650
|
+
bolt_config = config_from_project(params['project_ref'])
|
651
|
+
if bolt_config.inventoryfile && bolt_config.project.inventory_file.to_s != bolt_config.inventoryfile
|
652
|
+
raise Bolt::ValidationError, "Project inventory must be defined in the " \
|
653
|
+
"inventory.yaml file at the root of the project directory"
|
654
|
+
end
|
655
|
+
plugins = Bolt::Plugin.setup(bolt_config, nil)
|
656
|
+
inventory = Bolt::Inventory.from_config(bolt_config, plugins)
|
657
|
+
target_list = inventory.get_targets('all').map { |targ| targ.to_h.merge({ 'transport' => targ.transport }) }
|
658
|
+
|
659
|
+
[200, target_list.to_json]
|
660
|
+
rescue Bolt::Error => e
|
661
|
+
[500, e.to_json]
|
662
|
+
end
|
663
|
+
|
633
664
|
error 404 do
|
634
665
|
err = Bolt::Error.new("Could not find route #{request.path}",
|
635
666
|
'boltserver/not-found')
|
636
667
|
[404, err.to_json]
|
637
668
|
end
|
638
669
|
|
639
|
-
error
|
670
|
+
error StandardError do
|
640
671
|
e = env['sinatra.error']
|
641
672
|
err = Bolt::Error.new("500: Unknown error: #{e.message}",
|
642
673
|
'boltserver/server-error')
|
@@ -17,12 +17,13 @@ module BoltSpec
|
|
17
17
|
|
18
18
|
# Nothing on the executor is 'public'
|
19
19
|
class MockExecutor
|
20
|
-
attr_reader :noop, :error_message
|
20
|
+
attr_reader :noop, :error_message, :in_parallel
|
21
21
|
attr_accessor :run_as, :transport_features, :execute_any_plan
|
22
22
|
|
23
23
|
def initialize(modulepath)
|
24
24
|
@noop = false
|
25
25
|
@run_as = nil
|
26
|
+
@in_parallel = false
|
26
27
|
@error_message = nil
|
27
28
|
@allow_apply = false
|
28
29
|
@modulepath = [modulepath].flatten.map { |path| File.absolute_path(path) }
|
@@ -48,7 +49,7 @@ module BoltSpec
|
|
48
49
|
([segments[0]] + segments[2..-1]).join('/')
|
49
50
|
end
|
50
51
|
|
51
|
-
def run_command(targets, command, options = {})
|
52
|
+
def run_command(targets, command, options = {}, _position = [])
|
52
53
|
result = nil
|
53
54
|
if (doub = @command_doubles[command] || @command_doubles[:default])
|
54
55
|
result = doub.process(targets, command, options)
|
@@ -61,7 +62,7 @@ module BoltSpec
|
|
61
62
|
result
|
62
63
|
end
|
63
64
|
|
64
|
-
def run_script(targets, script_path, arguments, options = {})
|
65
|
+
def run_script(targets, script_path, arguments, options = {}, _position = [])
|
65
66
|
script = module_file_id(script_path)
|
66
67
|
result = nil
|
67
68
|
if (doub = @script_doubles[script] || @script_doubles[:default])
|
@@ -76,7 +77,7 @@ module BoltSpec
|
|
76
77
|
result
|
77
78
|
end
|
78
79
|
|
79
|
-
def run_task(targets, task, arguments, options = {})
|
80
|
+
def run_task(targets, task, arguments, options = {}, _position = [])
|
80
81
|
result = nil
|
81
82
|
if (doub = @task_doubles[task.name] || @task_doubles[:default])
|
82
83
|
result = doub.process(targets, task.name, arguments, options)
|
@@ -90,7 +91,7 @@ module BoltSpec
|
|
90
91
|
result
|
91
92
|
end
|
92
93
|
|
93
|
-
def download_file(targets, source, destination, options = {})
|
94
|
+
def download_file(targets, source, destination, options = {}, _position = [])
|
94
95
|
result = nil
|
95
96
|
if (doub = @download_doubles[source] || @download_doubles[:default])
|
96
97
|
result = doub.process(targets, source, destination, options)
|
@@ -103,7 +104,7 @@ module BoltSpec
|
|
103
104
|
result
|
104
105
|
end
|
105
106
|
|
106
|
-
def upload_file(targets, source_path, destination, options = {})
|
107
|
+
def upload_file(targets, source_path, destination, options = {}, _position = [])
|
107
108
|
source = module_file_id(source_path)
|
108
109
|
result = nil
|
109
110
|
if (doub = @upload_doubles[source] || @upload_doubles[:default])
|
@@ -133,6 +134,7 @@ module BoltSpec
|
|
133
134
|
# through to another conditional statement
|
134
135
|
doub = @plan_doubles[plan_name] || @plan_doubles[:default]
|
135
136
|
|
137
|
+
# rubocop:disable Lint/DuplicateBranch
|
136
138
|
# High level:
|
137
139
|
# - If we've explicitly allowed execution of the plan (normally the main plan
|
138
140
|
# passed into BoltSpec::Plan::run_plan()), then execute it
|
@@ -165,6 +167,7 @@ module BoltSpec
|
|
165
167
|
@error_message = "Unexpected call to 'run_plan(#{plan_name}, #{params_str})'"
|
166
168
|
raise UnexpectedInvocation, @error_message
|
167
169
|
end
|
170
|
+
# rubocop:enable Lint/DuplicateBranch
|
168
171
|
result
|
169
172
|
end
|
170
173
|
|
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.35.0
|
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-16 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
|
@@ -398,6 +404,7 @@ files:
|
|
398
404
|
- bolt-modules/boltlib/lib/puppet/functions/get_resources.rb
|
399
405
|
- bolt-modules/boltlib/lib/puppet/functions/get_target.rb
|
400
406
|
- bolt-modules/boltlib/lib/puppet/functions/get_targets.rb
|
407
|
+
- bolt-modules/boltlib/lib/puppet/functions/parallelize.rb
|
401
408
|
- bolt-modules/boltlib/lib/puppet/functions/puppetdb_fact.rb
|
402
409
|
- bolt-modules/boltlib/lib/puppet/functions/puppetdb_query.rb
|
403
410
|
- bolt-modules/boltlib/lib/puppet/functions/remove_from_group.rb
|
@@ -432,6 +439,9 @@ files:
|
|
432
439
|
- bolt-modules/system/lib/puppet/functions/system/env.rb
|
433
440
|
- exe/bolt
|
434
441
|
- guides/inventory.txt
|
442
|
+
- guides/logging.txt
|
443
|
+
- guides/module.txt
|
444
|
+
- guides/modulepath.txt
|
435
445
|
- guides/project.txt
|
436
446
|
- lib/bolt.rb
|
437
447
|
- lib/bolt/analytics.rb
|
@@ -463,6 +473,15 @@ files:
|
|
463
473
|
- lib/bolt/logger.rb
|
464
474
|
- lib/bolt/module.rb
|
465
475
|
- lib/bolt/module_installer.rb
|
476
|
+
- lib/bolt/module_installer/installer.rb
|
477
|
+
- lib/bolt/module_installer/puppetfile.rb
|
478
|
+
- lib/bolt/module_installer/puppetfile/forge_module.rb
|
479
|
+
- lib/bolt/module_installer/puppetfile/git_module.rb
|
480
|
+
- lib/bolt/module_installer/puppetfile/module.rb
|
481
|
+
- lib/bolt/module_installer/resolver.rb
|
482
|
+
- lib/bolt/module_installer/specs.rb
|
483
|
+
- lib/bolt/module_installer/specs/forge_spec.rb
|
484
|
+
- lib/bolt/module_installer/specs/git_spec.rb
|
466
485
|
- lib/bolt/node/errors.rb
|
467
486
|
- lib/bolt/node/output.rb
|
468
487
|
- lib/bolt/outputter.rb
|
@@ -488,6 +507,7 @@ files:
|
|
488
507
|
- lib/bolt/pal/yaml_plan/step/task.rb
|
489
508
|
- lib/bolt/pal/yaml_plan/step/upload.rb
|
490
509
|
- lib/bolt/pal/yaml_plan/transpiler.rb
|
510
|
+
- lib/bolt/plan_creator.rb
|
491
511
|
- lib/bolt/plan_result.rb
|
492
512
|
- lib/bolt/plugin.rb
|
493
513
|
- lib/bolt/plugin/env_var.rb
|
@@ -504,9 +524,6 @@ files:
|
|
504
524
|
- lib/bolt/puppetdb.rb
|
505
525
|
- lib/bolt/puppetdb/client.rb
|
506
526
|
- lib/bolt/puppetdb/config.rb
|
507
|
-
- lib/bolt/puppetfile.rb
|
508
|
-
- lib/bolt/puppetfile/installer.rb
|
509
|
-
- lib/bolt/puppetfile/module.rb
|
510
527
|
- lib/bolt/r10k_log_proxy.rb
|
511
528
|
- lib/bolt/rerun.rb
|
512
529
|
- lib/bolt/resource_instance.rb
|
@@ -539,6 +556,7 @@ files:
|
|
539
556
|
- lib/bolt/util.rb
|
540
557
|
- lib/bolt/util/puppet_log_level.rb
|
541
558
|
- lib/bolt/version.rb
|
559
|
+
- lib/bolt/yarn.rb
|
542
560
|
- lib/bolt_server/acl.rb
|
543
561
|
- lib/bolt_server/base_config.rb
|
544
562
|
- lib/bolt_server/config.rb
|
@@ -583,7 +601,6 @@ files:
|
|
583
601
|
- modules/canary/lib/puppet/functions/canary/skip.rb
|
584
602
|
- modules/canary/plans/init.pp
|
585
603
|
- modules/puppetdb_fact/plans/init.pp
|
586
|
-
- modules/secure_env_vars/plans/init.pp
|
587
604
|
homepage: https://github.com/puppetlabs/bolt
|
588
605
|
licenses:
|
589
606
|
- Apache-2.0
|