bolt 2.34.0 → 2.40.1
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 +1 -1
- data/bolt-modules/boltlib/lib/puppet/datatypes/applyresult.rb +1 -0
- 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/parallelize.rb +56 -0
- 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/lib/bolt/analytics.rb +27 -8
- data/lib/bolt/apply_result.rb +3 -3
- data/lib/bolt/bolt_option_parser.rb +45 -18
- data/lib/bolt/cli.rb +98 -116
- data/lib/bolt/config.rb +184 -80
- data/lib/bolt/config/options.rb +148 -87
- data/lib/bolt/config/transport/base.rb +10 -19
- data/lib/bolt/config/transport/local.rb +1 -7
- data/lib/bolt/config/transport/options.rb +12 -69
- data/lib/bolt/config/transport/ssh.rb +8 -19
- data/lib/bolt/error.rb +24 -0
- data/lib/bolt/executor.rb +92 -18
- data/lib/bolt/inventory.rb +25 -0
- data/lib/bolt/inventory/group.rb +0 -8
- data/lib/bolt/inventory/options.rb +130 -0
- data/lib/bolt/inventory/target.rb +10 -11
- data/lib/bolt/module_installer.rb +21 -13
- data/lib/bolt/module_installer/resolver.rb +1 -1
- data/lib/bolt/outputter.rb +19 -5
- data/lib/bolt/outputter/human.rb +22 -3
- data/lib/bolt/outputter/json.rb +1 -1
- data/lib/bolt/outputter/logger.rb +1 -1
- data/lib/bolt/outputter/rainbow.rb +13 -2
- data/lib/bolt/pal.rb +18 -6
- data/lib/bolt/pal/yaml_plan.rb +7 -0
- data/lib/bolt/plugin.rb +41 -12
- data/lib/bolt/plugin/cache.rb +76 -0
- data/lib/bolt/plugin/module.rb +4 -4
- data/lib/bolt/plugin/puppetdb.rb +1 -1
- data/lib/bolt/project.rb +59 -40
- data/lib/bolt/project_manager.rb +201 -0
- data/lib/bolt/{project_migrator/config.rb → project_manager/config_migrator.rb} +49 -4
- data/lib/bolt/{project_migrator/inventory.rb → project_manager/inventory_migrator.rb} +3 -3
- data/lib/bolt/{project_migrator/base.rb → project_manager/migrator.rb} +2 -2
- data/lib/bolt/{project_migrator/modules.rb → project_manager/module_migrator.rb} +5 -3
- data/lib/bolt/puppetdb/client.rb +11 -2
- data/lib/bolt/puppetdb/config.rb +4 -3
- data/lib/bolt/rerun.rb +1 -5
- data/lib/bolt/shell/bash.rb +8 -2
- data/lib/bolt/shell/powershell.rb +21 -3
- data/lib/bolt/target.rb +4 -0
- data/lib/bolt/task/run.rb +1 -1
- data/lib/bolt/transport/local.rb +13 -0
- data/lib/bolt/transport/orch.rb +0 -5
- data/lib/bolt/transport/orch/connection.rb +10 -3
- data/lib/bolt/transport/ssh/exec_connection.rb +6 -2
- data/lib/bolt/util.rb +36 -7
- data/lib/bolt/validator.rb +227 -0
- data/lib/bolt/version.rb +1 -1
- data/lib/bolt/yarn.rb +23 -0
- data/lib/bolt_server/base_config.rb +3 -1
- data/lib/bolt_server/config.rb +3 -1
- data/lib/bolt_server/plugin.rb +13 -0
- data/lib/bolt_server/plugin/puppet_connect_data.rb +37 -0
- data/lib/bolt_server/schemas/connect-data.json +22 -0
- data/lib/bolt_server/schemas/partials/task.json +2 -2
- data/lib/bolt_server/transport_app.rb +82 -23
- data/lib/bolt_spec/plans/mock_executor.rb +4 -1
- data/libexec/apply_catalog.rb +1 -1
- data/libexec/custom_facts.rb +1 -1
- data/libexec/query_resources.rb +1 -1
- metadata +22 -14
- data/lib/bolt/project_migrator.rb +0 -80
@@ -7,7 +7,9 @@ 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 allowlist
|
10
|
+
ssl-cipher-suites loglevel logfile allowlist
|
11
|
+
projects-dir environments-codedir
|
12
|
+
environmentpath basemodulepath]
|
11
13
|
end
|
12
14
|
|
13
15
|
def env_keys
|
data/lib/bolt_server/config.rb
CHANGED
@@ -7,7 +7,9 @@ require 'bolt/error'
|
|
7
7
|
module BoltServer
|
8
8
|
class Config < BoltServer::BaseConfig
|
9
9
|
def config_keys
|
10
|
-
super + %w[concurrency cache-dir file-server-conn-timeout
|
10
|
+
super + %w[concurrency cache-dir file-server-conn-timeout
|
11
|
+
file-server-uri projects-dir environments-codedir
|
12
|
+
environmentpath basemodulepath]
|
11
13
|
end
|
12
14
|
|
13
15
|
def env_keys
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bolt/error'
|
4
|
+
|
5
|
+
module BoltServer
|
6
|
+
class Plugin
|
7
|
+
class PluginNotSupported < Bolt::Error
|
8
|
+
def initialize(msg, plugin_name)
|
9
|
+
super(msg, 'bolt/plugin-not-supported', { "plugin_name" => plugin_name })
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BoltServer
|
4
|
+
class Plugin
|
5
|
+
class PuppetConnectData
|
6
|
+
def initialize(data, **_opts)
|
7
|
+
@data = data
|
8
|
+
end
|
9
|
+
|
10
|
+
def name
|
11
|
+
'puppet_connect_data'
|
12
|
+
end
|
13
|
+
|
14
|
+
def hooks
|
15
|
+
%i[resolve_reference validate_resolve_reference]
|
16
|
+
end
|
17
|
+
|
18
|
+
def resolve_reference(opts)
|
19
|
+
key = opts['key']
|
20
|
+
|
21
|
+
@data.dig(key, 'value')
|
22
|
+
end
|
23
|
+
|
24
|
+
def validate_resolve_reference(opts)
|
25
|
+
unless opts['key']
|
26
|
+
raise Bolt::ValidationError,
|
27
|
+
"puppet_connect_data plugin requires that 'key' be specified"
|
28
|
+
end
|
29
|
+
|
30
|
+
unless @data.key?(opts['key'])
|
31
|
+
raise Bolt::ValidationError,
|
32
|
+
"puppet_connect_data plugin tried to lookup key '#{opts['key']}' but no value was found"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
"title": "project_inventory_targets connect plugin data",
|
4
|
+
"description": "POST project_inventory_targets connect plugin data",
|
5
|
+
"type": "object",
|
6
|
+
"properties": {
|
7
|
+
"puppet_connect_data": {
|
8
|
+
"type": "object",
|
9
|
+
"patternProperties": {
|
10
|
+
".*": {
|
11
|
+
"type": "object",
|
12
|
+
"properties": {
|
13
|
+
"value": {}
|
14
|
+
},
|
15
|
+
"required": ["value"]
|
16
|
+
}
|
17
|
+
},
|
18
|
+
"additionalProperties": false
|
19
|
+
}
|
20
|
+
},
|
21
|
+
"required": ["puppet_connect_data"]
|
22
|
+
}
|
@@ -64,7 +64,7 @@
|
|
64
64
|
"description": "Environment the task is in",
|
65
65
|
"type": "string"
|
66
66
|
},
|
67
|
-
"
|
67
|
+
"versioned_project": {
|
68
68
|
"description": "Project the task is in",
|
69
69
|
"type": "string"
|
70
70
|
}
|
@@ -77,7 +77,7 @@
|
|
77
77
|
},
|
78
78
|
{
|
79
79
|
"required": [
|
80
|
-
"
|
80
|
+
"versioned_project"
|
81
81
|
]
|
82
82
|
}
|
83
83
|
],
|
@@ -8,6 +8,8 @@ require 'bolt/inventory'
|
|
8
8
|
require 'bolt/project'
|
9
9
|
require 'bolt/target'
|
10
10
|
require 'bolt_server/file_cache'
|
11
|
+
require 'bolt_server/plugin'
|
12
|
+
require 'bolt_server/plugin/puppet_connect_data'
|
11
13
|
require 'bolt/task/puppet_server'
|
12
14
|
require 'json'
|
13
15
|
require 'json-schema'
|
@@ -35,6 +37,7 @@ module BoltServer
|
|
35
37
|
action-upload_file
|
36
38
|
transport-ssh
|
37
39
|
transport-winrm
|
40
|
+
connect-data
|
38
41
|
].freeze
|
39
42
|
|
40
43
|
# PE_BOLTLIB_PATH is intended to function exactly like the BOLTLIB_PATH used
|
@@ -48,6 +51,10 @@ module BoltServer
|
|
48
51
|
# See the `orchestrator.bolt.codedir` tk config setting.
|
49
52
|
DEFAULT_BOLT_CODEDIR = '/opt/puppetlabs/server/data/orchestration-services/code'
|
50
53
|
|
54
|
+
MISSING_VERSIONED_PROJECT_RESPONSE = [
|
55
|
+
400, Bolt::ValidationError.new('`versioned_project` is a required argument').to_json
|
56
|
+
].freeze
|
57
|
+
|
51
58
|
def initialize(config)
|
52
59
|
@config = config
|
53
60
|
@schemas = Hash[REQUEST_SCHEMAS.map do |basename|
|
@@ -231,9 +238,9 @@ module BoltServer
|
|
231
238
|
#
|
232
239
|
# WARNING: THIS FUNCTION SHOULD ONLY BE CALLED INSIDE A SYNCHRONIZED PAL MUTEX
|
233
240
|
def modulepath_from_environment(environment_name)
|
234
|
-
codedir = DEFAULT_BOLT_CODEDIR
|
235
|
-
environmentpath = "#{codedir}/environments"
|
236
|
-
basemodulepath = "#{codedir}/modules:/opt/puppetlabs/puppet/modules"
|
241
|
+
codedir = @config['environments-codedir'] || DEFAULT_BOLT_CODEDIR
|
242
|
+
environmentpath = @config['environmentpath'] || "#{codedir}/environments"
|
243
|
+
basemodulepath = @config['basemodulepath'] || "#{codedir}/modules:/opt/puppetlabs/puppet/modules"
|
237
244
|
modulepath_dirs = nil
|
238
245
|
with_pe_pal_init_settings(codedir, environmentpath, basemodulepath) do
|
239
246
|
environment = Puppet.lookup(:environments).get!(environment_name)
|
@@ -261,13 +268,16 @@ module BoltServer
|
|
261
268
|
end
|
262
269
|
end
|
263
270
|
|
264
|
-
def
|
265
|
-
|
266
|
-
project_dir
|
267
|
-
|
271
|
+
def config_from_project(versioned_project)
|
272
|
+
project_dir = File.join(@config['projects-dir'], versioned_project)
|
273
|
+
raise Bolt::ValidationError, "`versioned_project`: #{project_dir} does not exist" unless Dir.exist?(project_dir)
|
274
|
+
project = Bolt::Project.create_project(project_dir)
|
275
|
+
Bolt::Config.from_project(project, { log: { 'bolt-debug.log' => 'disable' } })
|
276
|
+
end
|
277
|
+
|
278
|
+
def in_bolt_project(versioned_project)
|
268
279
|
@pal_mutex.synchronize do
|
269
|
-
|
270
|
-
bolt_config = Bolt::Config.from_project(project, { log: { 'bolt-debug.log' => 'disable' } })
|
280
|
+
bolt_config = config_from_project(versioned_project)
|
271
281
|
modulepath_object = Bolt::Config::Modulepath.new(
|
272
282
|
bolt_config.modulepath,
|
273
283
|
boltlib_path: [PE_BOLTLIB_PATH, Bolt::Config::Modulepath::BOLTLIB_PATH]
|
@@ -278,8 +288,6 @@ module BoltServer
|
|
278
288
|
config: bolt_config
|
279
289
|
}
|
280
290
|
yield context
|
281
|
-
rescue Bolt::Error => e
|
282
|
-
[400, e.to_json]
|
283
291
|
end
|
284
292
|
end
|
285
293
|
|
@@ -506,13 +514,16 @@ module BoltServer
|
|
506
514
|
|
507
515
|
# Fetches the metadata for a single plan
|
508
516
|
#
|
509
|
-
# @param
|
517
|
+
# @param versioned_project [String] the project to fetch the plan from
|
510
518
|
get '/project_plans/:module_name/:plan_name' do
|
511
|
-
|
519
|
+
return MISSING_VERSIONED_PROJECT_RESPONSE if params['versioned_project'].nil?
|
520
|
+
in_bolt_project(params['versioned_project']) do |context|
|
512
521
|
plan_info = pe_plan_info(context[:pal], params[:module_name], params[:plan_name])
|
513
522
|
plan_info = allowed_helper(plan_info, context[:config].project.plans)
|
514
523
|
[200, plan_info.to_json]
|
515
524
|
end
|
525
|
+
rescue Bolt::Error => e
|
526
|
+
[400, e.to_json]
|
516
527
|
end
|
517
528
|
|
518
529
|
# Fetches the metadata for a single task
|
@@ -530,16 +541,19 @@ module BoltServer
|
|
530
541
|
|
531
542
|
# Fetches the metadata for a single task
|
532
543
|
#
|
533
|
-
# @param
|
544
|
+
# @param bolt_versioned_project [String] the reference to the bolt-project directory to load task metadata from
|
534
545
|
get '/project_tasks/:module_name/:task_name' do
|
535
|
-
|
546
|
+
return MISSING_VERSIONED_PROJECT_RESPONSE if params['versioned_project'].nil?
|
547
|
+
in_bolt_project(params['versioned_project']) do |context|
|
536
548
|
ps_parameters = {
|
537
|
-
'
|
549
|
+
'versioned_project' => params['versioned_project']
|
538
550
|
}
|
539
551
|
task_info = pe_task_info(context[:pal], params[:module_name], params[:task_name], ps_parameters)
|
540
552
|
task_info = allowed_helper(task_info, context[:config].project.tasks)
|
541
553
|
[200, task_info.to_json]
|
542
554
|
end
|
555
|
+
rescue Bolt::Error => e
|
556
|
+
[400, e.to_json]
|
543
557
|
end
|
544
558
|
|
545
559
|
# Fetches the list of plans for an environment, optionally fetching all metadata for each plan
|
@@ -568,9 +582,10 @@ module BoltServer
|
|
568
582
|
|
569
583
|
# Fetches the list of plans for a project
|
570
584
|
#
|
571
|
-
# @param
|
585
|
+
# @param versioned_project [String] the project to fetch the list of plans from
|
572
586
|
get '/project_plans' do
|
573
|
-
|
587
|
+
return MISSING_VERSIONED_PROJECT_RESPONSE if params['versioned_project'].nil?
|
588
|
+
in_bolt_project(params['versioned_project']) do |context|
|
574
589
|
plans_response = plan_list(context[:pal])
|
575
590
|
|
576
591
|
# Dig in context for the allowlist of plans from project object
|
@@ -582,6 +597,8 @@ module BoltServer
|
|
582
597
|
# to bolt-server smaller/simpler.
|
583
598
|
[200, plans_response.to_json]
|
584
599
|
end
|
600
|
+
rescue Bolt::Error => e
|
601
|
+
[400, e.to_json]
|
585
602
|
end
|
586
603
|
|
587
604
|
# Fetches the list of tasks for an environment
|
@@ -601,9 +618,10 @@ module BoltServer
|
|
601
618
|
|
602
619
|
# Fetches the list of tasks for a bolt-project
|
603
620
|
#
|
604
|
-
# @param
|
621
|
+
# @param versioned_project [String] the project to fetch the list of tasks from
|
605
622
|
get '/project_tasks' do
|
606
|
-
|
623
|
+
return MISSING_VERSIONED_PROJECT_RESPONSE if params['versioned_project'].nil?
|
624
|
+
in_bolt_project(params['versioned_project']) do |context|
|
607
625
|
tasks_response = task_list(context[:pal])
|
608
626
|
|
609
627
|
# Dig in context for the allowlist of tasks from project object
|
@@ -615,28 +633,69 @@ module BoltServer
|
|
615
633
|
# to bolt-server smaller/simpler.
|
616
634
|
[200, tasks_response.to_json]
|
617
635
|
end
|
636
|
+
rescue Bolt::Error => e
|
637
|
+
[400, e.to_json]
|
618
638
|
end
|
619
639
|
|
620
640
|
# Implements puppetserver's file_metadatas endpoint for projects.
|
621
641
|
#
|
622
|
-
# @param
|
642
|
+
# @param versioned_project [String] the versioned_project to fetch the file metadatas from
|
623
643
|
get '/project_file_metadatas/:module_name/*' do
|
624
|
-
|
644
|
+
return MISSING_VERSIONED_PROJECT_RESPONSE if params['versioned_project'].nil?
|
645
|
+
in_bolt_project(params['versioned_project']) do |context|
|
625
646
|
file = params[:splat].first
|
626
647
|
metadatas = file_metadatas(context[:pal], params[:module_name], file)
|
627
648
|
[200, metadatas.to_json]
|
628
649
|
end
|
650
|
+
rescue Bolt::Error => e
|
651
|
+
[400, e.to_json]
|
629
652
|
rescue ArgumentError => e
|
630
653
|
[400, e.message]
|
631
654
|
end
|
632
655
|
|
656
|
+
# Returns a list of targets parsed from a Project inventory
|
657
|
+
#
|
658
|
+
# @param versioned_project [String] the versioned_project to compute the inventory from
|
659
|
+
post '/project_inventory_targets' do
|
660
|
+
return MISSING_VERSIONED_PROJECT_RESPONSE if params['versioned_project'].nil?
|
661
|
+
content_type :json
|
662
|
+
body = JSON.parse(request.body.read)
|
663
|
+
error = validate_schema(@schemas["connect-data"], body)
|
664
|
+
return [400, error_result(error).to_json] unless error.nil?
|
665
|
+
in_bolt_project(params['versioned_project']) do |context|
|
666
|
+
if context[:config].inventoryfile &&
|
667
|
+
context[:config].project.inventory_file.to_s !=
|
668
|
+
context[:config].inventoryfile
|
669
|
+
raise Bolt::ValidationError, "Project inventory must be defined in the " \
|
670
|
+
"inventory.yaml file at the root of the project directory"
|
671
|
+
end
|
672
|
+
|
673
|
+
Bolt::Util.validate_file('inventory file', context[:config].project.inventory_file)
|
674
|
+
|
675
|
+
begin
|
676
|
+
connect_plugin = BoltServer::Plugin::PuppetConnectData.new(body['puppet_connect_data'])
|
677
|
+
plugins = Bolt::Plugin.setup(context[:config], context[:pal], load_plugins: false)
|
678
|
+
plugins.add_plugin(connect_plugin)
|
679
|
+
inventory = Bolt::Inventory.from_config(context[:config], plugins)
|
680
|
+
target_list = inventory.get_targets('all').map { |targ| targ.to_h.merge({ 'transport' => targ.transport }) }
|
681
|
+
rescue Bolt::Plugin::PluginError::LoadingDisabled => e
|
682
|
+
msg = "Cannot load plugin #{e.details['plugin_name']}: plugin not supported"
|
683
|
+
raise BoltServer::Plugin::PluginNotSupported.new(msg, e.details['plugin_name'])
|
684
|
+
end
|
685
|
+
|
686
|
+
[200, target_list.to_json]
|
687
|
+
end
|
688
|
+
rescue Bolt::Error => e
|
689
|
+
[500, e.to_json]
|
690
|
+
end
|
691
|
+
|
633
692
|
error 404 do
|
634
693
|
err = Bolt::Error.new("Could not find route #{request.path}",
|
635
694
|
'boltserver/not-found')
|
636
695
|
[404, err.to_json]
|
637
696
|
end
|
638
697
|
|
639
|
-
error
|
698
|
+
error StandardError do
|
640
699
|
e = env['sinatra.error']
|
641
700
|
err = Bolt::Error.new("500: Unknown error: #{e.message}",
|
642
701
|
'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) }
|
@@ -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
|
|
data/libexec/apply_catalog.rb
CHANGED
@@ -74,7 +74,7 @@ begin
|
|
74
74
|
Puppet::ResourceApi::Transport.inject_device(type, transport)
|
75
75
|
|
76
76
|
Puppet[:facts_terminus] = :network_device
|
77
|
-
Puppet[:certname] = conn_info['
|
77
|
+
Puppet[:certname] = conn_info['name']
|
78
78
|
end
|
79
79
|
|
80
80
|
# Ensure custom facts are available for provider suitability tests
|
data/libexec/custom_facts.rb
CHANGED
@@ -51,7 +51,7 @@ Dir.mktmpdir do |puppet_root|
|
|
51
51
|
Puppet::ResourceApi::Transport.inject_device(type, transport)
|
52
52
|
|
53
53
|
Puppet[:facts_terminus] = :network_device
|
54
|
-
Puppet[:certname] = conn_info['
|
54
|
+
Puppet[:certname] = conn_info['name']
|
55
55
|
end
|
56
56
|
|
57
57
|
facts = Puppet::Node::Facts.indirection.find(SecureRandom.uuid, environment: env)
|
data/libexec/query_resources.rb
CHANGED
@@ -59,7 +59,7 @@ Dir.mktmpdir do |puppet_root|
|
|
59
59
|
Puppet::ResourceApi::Transport.inject_device(type, transport)
|
60
60
|
|
61
61
|
Puppet[:facts_terminus] = :network_device
|
62
|
-
Puppet[:certname] = conn_info['
|
62
|
+
Puppet[:certname] = conn_info['name']
|
63
63
|
end
|
64
64
|
|
65
65
|
resources = args['resources'].flat_map do |resource_desc|
|
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.40.1
|
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-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -185,9 +185,6 @@ dependencies:
|
|
185
185
|
- - ">="
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: 6.18.0
|
188
|
-
- - "<"
|
189
|
-
- !ruby/object:Gem::Version
|
190
|
-
version: '6.20'
|
191
188
|
type: :runtime
|
192
189
|
prerelease: false
|
193
190
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -195,9 +192,6 @@ dependencies:
|
|
195
192
|
- - ">="
|
196
193
|
- !ruby/object:Gem::Version
|
197
194
|
version: 6.18.0
|
198
|
-
- - "<"
|
199
|
-
- !ruby/object:Gem::Version
|
200
|
-
version: '6.20'
|
201
195
|
- !ruby/object:Gem::Dependency
|
202
196
|
name: puppetfile-resolver
|
203
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -317,6 +311,9 @@ dependencies:
|
|
317
311
|
- - ">="
|
318
312
|
- !ruby/object:Gem::Version
|
319
313
|
version: '1.14'
|
314
|
+
- - "<"
|
315
|
+
- !ruby/object:Gem::Version
|
316
|
+
version: 2.2.0
|
320
317
|
type: :development
|
321
318
|
prerelease: false
|
322
319
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -324,6 +321,9 @@ dependencies:
|
|
324
321
|
- - ">="
|
325
322
|
- !ruby/object:Gem::Version
|
326
323
|
version: '1.14'
|
324
|
+
- - "<"
|
325
|
+
- !ruby/object:Gem::Version
|
326
|
+
version: 2.2.0
|
327
327
|
- !ruby/object:Gem::Dependency
|
328
328
|
name: octokit
|
329
329
|
requirement: !ruby/object:Gem::Requirement
|
@@ -404,6 +404,7 @@ files:
|
|
404
404
|
- bolt-modules/boltlib/lib/puppet/functions/get_resources.rb
|
405
405
|
- bolt-modules/boltlib/lib/puppet/functions/get_target.rb
|
406
406
|
- bolt-modules/boltlib/lib/puppet/functions/get_targets.rb
|
407
|
+
- bolt-modules/boltlib/lib/puppet/functions/parallelize.rb
|
407
408
|
- bolt-modules/boltlib/lib/puppet/functions/puppetdb_fact.rb
|
408
409
|
- bolt-modules/boltlib/lib/puppet/functions/puppetdb_query.rb
|
409
410
|
- bolt-modules/boltlib/lib/puppet/functions/remove_from_group.rb
|
@@ -468,6 +469,7 @@ files:
|
|
468
469
|
- lib/bolt/inventory.rb
|
469
470
|
- lib/bolt/inventory/group.rb
|
470
471
|
- lib/bolt/inventory/inventory.rb
|
472
|
+
- lib/bolt/inventory/options.rb
|
471
473
|
- lib/bolt/inventory/target.rb
|
472
474
|
- lib/bolt/logger.rb
|
473
475
|
- lib/bolt/module.rb
|
@@ -509,17 +511,18 @@ files:
|
|
509
511
|
- lib/bolt/plan_creator.rb
|
510
512
|
- lib/bolt/plan_result.rb
|
511
513
|
- lib/bolt/plugin.rb
|
514
|
+
- lib/bolt/plugin/cache.rb
|
512
515
|
- lib/bolt/plugin/env_var.rb
|
513
516
|
- lib/bolt/plugin/module.rb
|
514
517
|
- lib/bolt/plugin/prompt.rb
|
515
518
|
- lib/bolt/plugin/puppetdb.rb
|
516
519
|
- lib/bolt/plugin/task.rb
|
517
520
|
- lib/bolt/project.rb
|
518
|
-
- lib/bolt/
|
519
|
-
- lib/bolt/
|
520
|
-
- lib/bolt/
|
521
|
-
- lib/bolt/
|
522
|
-
- lib/bolt/
|
521
|
+
- lib/bolt/project_manager.rb
|
522
|
+
- lib/bolt/project_manager/config_migrator.rb
|
523
|
+
- lib/bolt/project_manager/inventory_migrator.rb
|
524
|
+
- lib/bolt/project_manager/migrator.rb
|
525
|
+
- lib/bolt/project_manager/module_migrator.rb
|
523
526
|
- lib/bolt/puppetdb.rb
|
524
527
|
- lib/bolt/puppetdb/client.rb
|
525
528
|
- lib/bolt/puppetdb/config.rb
|
@@ -554,16 +557,21 @@ files:
|
|
554
557
|
- lib/bolt/transport/winrm/connection.rb
|
555
558
|
- lib/bolt/util.rb
|
556
559
|
- lib/bolt/util/puppet_log_level.rb
|
560
|
+
- lib/bolt/validator.rb
|
557
561
|
- lib/bolt/version.rb
|
562
|
+
- lib/bolt/yarn.rb
|
558
563
|
- lib/bolt_server/acl.rb
|
559
564
|
- lib/bolt_server/base_config.rb
|
560
565
|
- lib/bolt_server/config.rb
|
561
566
|
- lib/bolt_server/file_cache.rb
|
567
|
+
- lib/bolt_server/plugin.rb
|
568
|
+
- lib/bolt_server/plugin/puppet_connect_data.rb
|
562
569
|
- lib/bolt_server/schemas/action-check_node_connections.json
|
563
570
|
- lib/bolt_server/schemas/action-run_command.json
|
564
571
|
- lib/bolt_server/schemas/action-run_script.json
|
565
572
|
- lib/bolt_server/schemas/action-run_task.json
|
566
573
|
- lib/bolt_server/schemas/action-upload_file.json
|
574
|
+
- lib/bolt_server/schemas/connect-data.json
|
567
575
|
- lib/bolt_server/schemas/partials/target-any.json
|
568
576
|
- lib/bolt_server/schemas/partials/target-ssh.json
|
569
577
|
- lib/bolt_server/schemas/partials/target-winrm.json
|
@@ -618,7 +626,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
618
626
|
- !ruby/object:Gem::Version
|
619
627
|
version: '0'
|
620
628
|
requirements: []
|
621
|
-
rubygems_version: 3.0.
|
629
|
+
rubygems_version: 3.0.3
|
622
630
|
signing_key:
|
623
631
|
specification_version: 4
|
624
632
|
summary: Execute commands remotely over SSH and WinRM
|