bolt 2.35.0 → 2.40.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.

Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/Puppetfile +1 -1
  3. data/bolt-modules/boltlib/lib/puppet/datatypes/applyresult.rb +1 -0
  4. data/lib/bolt/analytics.rb +27 -8
  5. data/lib/bolt/apply_result.rb +3 -3
  6. data/lib/bolt/bolt_option_parser.rb +45 -18
  7. data/lib/bolt/cli.rb +92 -110
  8. data/lib/bolt/config.rb +184 -80
  9. data/lib/bolt/config/options.rb +144 -83
  10. data/lib/bolt/config/transport/base.rb +10 -19
  11. data/lib/bolt/config/transport/local.rb +1 -7
  12. data/lib/bolt/config/transport/options.rb +11 -68
  13. data/lib/bolt/config/transport/ssh.rb +8 -19
  14. data/lib/bolt/executor.rb +5 -17
  15. data/lib/bolt/inventory.rb +25 -0
  16. data/lib/bolt/inventory/group.rb +0 -8
  17. data/lib/bolt/inventory/options.rb +130 -0
  18. data/lib/bolt/inventory/target.rb +10 -11
  19. data/lib/bolt/module_installer.rb +21 -13
  20. data/lib/bolt/module_installer/resolver.rb +1 -1
  21. data/lib/bolt/outputter.rb +19 -5
  22. data/lib/bolt/outputter/human.rb +20 -1
  23. data/lib/bolt/outputter/json.rb +1 -1
  24. data/lib/bolt/outputter/logger.rb +1 -1
  25. data/lib/bolt/outputter/rainbow.rb +13 -2
  26. data/lib/bolt/plugin.rb +41 -12
  27. data/lib/bolt/plugin/cache.rb +76 -0
  28. data/lib/bolt/plugin/module.rb +4 -4
  29. data/lib/bolt/plugin/puppetdb.rb +1 -1
  30. data/lib/bolt/project.rb +59 -40
  31. data/lib/bolt/project_manager.rb +201 -0
  32. data/lib/bolt/{project_migrator/config.rb → project_manager/config_migrator.rb} +49 -4
  33. data/lib/bolt/{project_migrator/inventory.rb → project_manager/inventory_migrator.rb} +3 -3
  34. data/lib/bolt/{project_migrator/base.rb → project_manager/migrator.rb} +2 -2
  35. data/lib/bolt/{project_migrator/modules.rb → project_manager/module_migrator.rb} +5 -3
  36. data/lib/bolt/puppetdb/client.rb +8 -0
  37. data/lib/bolt/puppetdb/config.rb +1 -2
  38. data/lib/bolt/rerun.rb +1 -5
  39. data/lib/bolt/shell/bash.rb +8 -2
  40. data/lib/bolt/shell/powershell.rb +21 -3
  41. data/lib/bolt/target.rb +4 -0
  42. data/lib/bolt/task/run.rb +1 -1
  43. data/lib/bolt/transport/local.rb +13 -0
  44. data/lib/bolt/transport/ssh/exec_connection.rb +6 -2
  45. data/lib/bolt/util.rb +36 -7
  46. data/lib/bolt/validator.rb +227 -0
  47. data/lib/bolt/version.rb +1 -1
  48. data/lib/bolt_server/base_config.rb +3 -1
  49. data/lib/bolt_server/config.rb +3 -1
  50. data/lib/bolt_server/plugin.rb +13 -0
  51. data/lib/bolt_server/plugin/puppet_connect_data.rb +37 -0
  52. data/lib/bolt_server/schemas/connect-data.json +22 -0
  53. data/lib/bolt_server/schemas/partials/task.json +3 -3
  54. data/lib/bolt_server/transport_app.rb +68 -40
  55. data/libexec/apply_catalog.rb +1 -1
  56. data/libexec/custom_facts.rb +1 -1
  57. data/libexec/query_resources.rb +1 -1
  58. metadata +23 -17
  59. data/lib/bolt/project_migrator.rb +0 -80
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bolt
4
- VERSION = '2.35.0'
4
+ VERSION = '2.40.2'
5
5
  end
@@ -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 projects-dir]
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
@@ -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 file-server-uri projects-dir]
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
+ }
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "input_method": {
39
39
  "type": "string",
40
- "enum": ["stdin", "environment", "powershell"],
40
+ "enum": ["stdin", "environment", "powershell", "both"],
41
41
  "description": "What input method should be used to pass params to the task"
42
42
  }
43
43
  }
@@ -64,7 +64,7 @@
64
64
  "description": "Environment the task is in",
65
65
  "type": "string"
66
66
  },
67
- "project": {
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
- "project"
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,8 +51,8 @@ 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
 
51
- MISSING_PROJECT_REF_RESPONSE = [
52
- 400, Bolt::ValidationError.new('`project_ref` is a required argument').to_json
54
+ MISSING_VERSIONED_PROJECT_RESPONSE = [
55
+ 400, Bolt::ValidationError.new('`versioned_project` is a required argument').to_json
53
56
  ].freeze
54
57
 
55
58
  def initialize(config)
@@ -235,9 +238,9 @@ module BoltServer
235
238
  #
236
239
  # WARNING: THIS FUNCTION SHOULD ONLY BE CALLED INSIDE A SYNCHRONIZED PAL MUTEX
237
240
  def modulepath_from_environment(environment_name)
238
- codedir = DEFAULT_BOLT_CODEDIR
239
- environmentpath = "#{codedir}/environments"
240
- 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"
241
244
  modulepath_dirs = nil
242
245
  with_pe_pal_init_settings(codedir, environmentpath, basemodulepath) do
243
246
  environment = Puppet.lookup(:environments).get!(environment_name)
@@ -265,16 +268,16 @@ module BoltServer
265
268
  end
266
269
  end
267
270
 
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
+ 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)
271
274
  project = Bolt::Project.create_project(project_dir)
272
275
  Bolt::Config.from_project(project, { log: { 'bolt-debug.log' => 'disable' } })
273
276
  end
274
277
 
275
- def in_bolt_project(project_ref)
278
+ def in_bolt_project(versioned_project)
276
279
  @pal_mutex.synchronize do
277
- bolt_config = config_from_project(project_ref)
280
+ bolt_config = config_from_project(versioned_project)
278
281
  modulepath_object = Bolt::Config::Modulepath.new(
279
282
  bolt_config.modulepath,
280
283
  boltlib_path: [PE_BOLTLIB_PATH, Bolt::Config::Modulepath::BOLTLIB_PATH]
@@ -285,8 +288,6 @@ module BoltServer
285
288
  config: bolt_config
286
289
  }
287
290
  yield context
288
- rescue Bolt::Error => e
289
- [400, e.to_json]
290
291
  end
291
292
  end
292
293
 
@@ -513,14 +514,16 @@ module BoltServer
513
514
 
514
515
  # Fetches the metadata for a single plan
515
516
  #
516
- # @param project_ref [String] the project to fetch the plan from
517
+ # @param versioned_project [String] the project to fetch the plan from
517
518
  get '/project_plans/:module_name/:plan_name' do
518
- return MISSING_PROJECT_REF_RESPONSE if params['project_ref'].nil?
519
- in_bolt_project(params['project_ref']) do |context|
519
+ return MISSING_VERSIONED_PROJECT_RESPONSE if params['versioned_project'].nil?
520
+ in_bolt_project(params['versioned_project']) do |context|
520
521
  plan_info = pe_plan_info(context[:pal], params[:module_name], params[:plan_name])
521
522
  plan_info = allowed_helper(plan_info, context[:config].project.plans)
522
523
  [200, plan_info.to_json]
523
524
  end
525
+ rescue Bolt::Error => e
526
+ [400, e.to_json]
524
527
  end
525
528
 
526
529
  # Fetches the metadata for a single task
@@ -538,17 +541,19 @@ module BoltServer
538
541
 
539
542
  # Fetches the metadata for a single task
540
543
  #
541
- # @param bolt_project_ref [String] the reference to the bolt-project directory to load task metadata from
544
+ # @param bolt_versioned_project [String] the reference to the bolt-project directory to load task metadata from
542
545
  get '/project_tasks/:module_name/:task_name' do
543
- return MISSING_PROJECT_REF_RESPONSE if params['project_ref'].nil?
544
- in_bolt_project(params['project_ref']) do |context|
546
+ return MISSING_VERSIONED_PROJECT_RESPONSE if params['versioned_project'].nil?
547
+ in_bolt_project(params['versioned_project']) do |context|
545
548
  ps_parameters = {
546
- 'project' => params['project_ref']
549
+ 'versioned_project' => params['versioned_project']
547
550
  }
548
551
  task_info = pe_task_info(context[:pal], params[:module_name], params[:task_name], ps_parameters)
549
552
  task_info = allowed_helper(task_info, context[:config].project.tasks)
550
553
  [200, task_info.to_json]
551
554
  end
555
+ rescue Bolt::Error => e
556
+ [400, e.to_json]
552
557
  end
553
558
 
554
559
  # Fetches the list of plans for an environment, optionally fetching all metadata for each plan
@@ -577,10 +582,10 @@ module BoltServer
577
582
 
578
583
  # Fetches the list of plans for a project
579
584
  #
580
- # @param project_ref [String] the project to fetch the list of plans from
585
+ # @param versioned_project [String] the project to fetch the list of plans from
581
586
  get '/project_plans' do
582
- return MISSING_PROJECT_REF_RESPONSE if params['project_ref'].nil?
583
- in_bolt_project(params['project_ref']) do |context|
587
+ return MISSING_VERSIONED_PROJECT_RESPONSE if params['versioned_project'].nil?
588
+ in_bolt_project(params['versioned_project']) do |context|
584
589
  plans_response = plan_list(context[:pal])
585
590
 
586
591
  # Dig in context for the allowlist of plans from project object
@@ -592,6 +597,8 @@ module BoltServer
592
597
  # to bolt-server smaller/simpler.
593
598
  [200, plans_response.to_json]
594
599
  end
600
+ rescue Bolt::Error => e
601
+ [400, e.to_json]
595
602
  end
596
603
 
597
604
  # Fetches the list of tasks for an environment
@@ -611,10 +618,10 @@ module BoltServer
611
618
 
612
619
  # Fetches the list of tasks for a bolt-project
613
620
  #
614
- # @param project_ref [String] the project to fetch the list of tasks from
621
+ # @param versioned_project [String] the project to fetch the list of tasks from
615
622
  get '/project_tasks' do
616
- return MISSING_PROJECT_REF_RESPONSE if params['project_ref'].nil?
617
- in_bolt_project(params['project_ref']) do |context|
623
+ return MISSING_VERSIONED_PROJECT_RESPONSE if params['versioned_project'].nil?
624
+ in_bolt_project(params['versioned_project']) do |context|
618
625
  tasks_response = task_list(context[:pal])
619
626
 
620
627
  # Dig in context for the allowlist of tasks from project object
@@ -626,37 +633,58 @@ module BoltServer
626
633
  # to bolt-server smaller/simpler.
627
634
  [200, tasks_response.to_json]
628
635
  end
636
+ rescue Bolt::Error => e
637
+ [400, e.to_json]
629
638
  end
630
639
 
631
640
  # Implements puppetserver's file_metadatas endpoint for projects.
632
641
  #
633
- # @param project_ref [String] the project_ref to fetch the file metadatas from
642
+ # @param versioned_project [String] the versioned_project to fetch the file metadatas from
634
643
  get '/project_file_metadatas/:module_name/*' do
635
- return MISSING_PROJECT_REF_RESPONSE if params['project_ref'].nil?
636
- in_bolt_project(params['project_ref']) do |context|
644
+ return MISSING_VERSIONED_PROJECT_RESPONSE if params['versioned_project'].nil?
645
+ in_bolt_project(params['versioned_project']) do |context|
637
646
  file = params[:splat].first
638
647
  metadatas = file_metadatas(context[:pal], params[:module_name], file)
639
648
  [200, metadatas.to_json]
640
649
  end
650
+ rescue Bolt::Error => e
651
+ [400, e.to_json]
641
652
  rescue ArgumentError => e
642
653
  [400, e.message]
643
654
  end
644
655
 
645
656
  # Returns a list of targets parsed from a Project inventory
646
657
  #
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
+ # @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
658
672
 
659
- [200, target_list.to_json]
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
660
688
  rescue Bolt::Error => e
661
689
  [500, e.to_json]
662
690
  end
@@ -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['uri']
77
+ Puppet[:certname] = conn_info['name']
78
78
  end
79
79
 
80
80
  # Ensure custom facts are available for provider suitability tests
@@ -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['uri']
54
+ Puppet[:certname] = conn_info['name']
55
55
  end
56
56
 
57
57
  facts = Puppet::Node::Facts.indirection.find(SecureRandom.uuid, environment: env)
@@ -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['uri']
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.35.0
4
+ version: 2.40.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-16 00:00:00.000000000 Z
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,23 +192,20 @@ 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
204
198
  requirements:
205
- - - "~>"
199
+ - - '='
206
200
  - !ruby/object:Gem::Version
207
- version: '0.4'
201
+ version: 0.4.0
208
202
  type: :runtime
209
203
  prerelease: false
210
204
  version_requirements: !ruby/object:Gem::Requirement
211
205
  requirements:
212
- - - "~>"
206
+ - - '='
213
207
  - !ruby/object:Gem::Version
214
- version: '0.4'
208
+ version: 0.4.0
215
209
  - !ruby/object:Gem::Dependency
216
210
  name: puppet-resource_api
217
211
  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
@@ -469,6 +469,7 @@ files:
469
469
  - lib/bolt/inventory.rb
470
470
  - lib/bolt/inventory/group.rb
471
471
  - lib/bolt/inventory/inventory.rb
472
+ - lib/bolt/inventory/options.rb
472
473
  - lib/bolt/inventory/target.rb
473
474
  - lib/bolt/logger.rb
474
475
  - lib/bolt/module.rb
@@ -510,17 +511,18 @@ files:
510
511
  - lib/bolt/plan_creator.rb
511
512
  - lib/bolt/plan_result.rb
512
513
  - lib/bolt/plugin.rb
514
+ - lib/bolt/plugin/cache.rb
513
515
  - lib/bolt/plugin/env_var.rb
514
516
  - lib/bolt/plugin/module.rb
515
517
  - lib/bolt/plugin/prompt.rb
516
518
  - lib/bolt/plugin/puppetdb.rb
517
519
  - lib/bolt/plugin/task.rb
518
520
  - lib/bolt/project.rb
519
- - lib/bolt/project_migrator.rb
520
- - lib/bolt/project_migrator/base.rb
521
- - lib/bolt/project_migrator/config.rb
522
- - lib/bolt/project_migrator/inventory.rb
523
- - lib/bolt/project_migrator/modules.rb
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
524
526
  - lib/bolt/puppetdb.rb
525
527
  - lib/bolt/puppetdb/client.rb
526
528
  - lib/bolt/puppetdb/config.rb
@@ -555,17 +557,21 @@ files:
555
557
  - lib/bolt/transport/winrm/connection.rb
556
558
  - lib/bolt/util.rb
557
559
  - lib/bolt/util/puppet_log_level.rb
560
+ - lib/bolt/validator.rb
558
561
  - lib/bolt/version.rb
559
562
  - lib/bolt/yarn.rb
560
563
  - lib/bolt_server/acl.rb
561
564
  - lib/bolt_server/base_config.rb
562
565
  - lib/bolt_server/config.rb
563
566
  - lib/bolt_server/file_cache.rb
567
+ - lib/bolt_server/plugin.rb
568
+ - lib/bolt_server/plugin/puppet_connect_data.rb
564
569
  - lib/bolt_server/schemas/action-check_node_connections.json
565
570
  - lib/bolt_server/schemas/action-run_command.json
566
571
  - lib/bolt_server/schemas/action-run_script.json
567
572
  - lib/bolt_server/schemas/action-run_task.json
568
573
  - lib/bolt_server/schemas/action-upload_file.json
574
+ - lib/bolt_server/schemas/connect-data.json
569
575
  - lib/bolt_server/schemas/partials/target-any.json
570
576
  - lib/bolt_server/schemas/partials/target-ssh.json
571
577
  - lib/bolt_server/schemas/partials/target-winrm.json