bolt 3.15.0 → 3.18.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.

Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/Puppetfile +7 -7
  3. data/bolt-modules/boltlib/lib/puppet/functions/run_script.rb +1 -4
  4. data/bolt-modules/boltlib/lib/puppet/functions/upload_file.rb +1 -4
  5. data/bolt-modules/file/lib/puppet/functions/file/exists.rb +1 -4
  6. data/bolt-modules/file/lib/puppet/functions/file/read.rb +1 -4
  7. data/bolt-modules/file/lib/puppet/functions/file/readable.rb +1 -4
  8. data/lib/bolt/analytics.rb +4 -21
  9. data/lib/bolt/application.rb +627 -0
  10. data/lib/bolt/applicator.rb +7 -6
  11. data/lib/bolt/apply_inventory.rb +3 -3
  12. data/lib/bolt/apply_result.rb +2 -2
  13. data/lib/bolt/bolt_option_parser.rb +27 -3
  14. data/lib/bolt/catalog.rb +10 -11
  15. data/lib/bolt/cli.rb +607 -809
  16. data/lib/bolt/config/modulepath.rb +1 -1
  17. data/lib/bolt/config/options.rb +32 -13
  18. data/lib/bolt/config/transport/base.rb +4 -4
  19. data/lib/bolt/config/transport/docker.rb +2 -2
  20. data/lib/bolt/config/transport/local.rb +2 -2
  21. data/lib/bolt/config/transport/lxd.rb +2 -2
  22. data/lib/bolt/config/transport/orch.rb +2 -2
  23. data/lib/bolt/config/transport/podman.rb +2 -2
  24. data/lib/bolt/config/transport/remote.rb +2 -2
  25. data/lib/bolt/config/transport/ssh.rb +2 -2
  26. data/lib/bolt/config/transport/winrm.rb +2 -2
  27. data/lib/bolt/config.rb +5 -5
  28. data/lib/bolt/container_result.rb +2 -2
  29. data/lib/bolt/error.rb +1 -1
  30. data/lib/bolt/executor.rb +17 -14
  31. data/lib/bolt/fiber_executor.rb +9 -5
  32. data/lib/bolt/inventory/group.rb +4 -4
  33. data/lib/bolt/inventory/inventory.rb +64 -41
  34. data/lib/bolt/inventory/options.rb +1 -1
  35. data/lib/bolt/inventory/target.rb +1 -1
  36. data/lib/bolt/inventory.rb +10 -17
  37. data/lib/bolt/module_installer/installer.rb +2 -2
  38. data/lib/bolt/module_installer/puppetfile/forge_module.rb +1 -1
  39. data/lib/bolt/module_installer/puppetfile/git_module.rb +1 -1
  40. data/lib/bolt/module_installer/puppetfile/module.rb +1 -1
  41. data/lib/bolt/module_installer/puppetfile.rb +27 -13
  42. data/lib/bolt/module_installer/resolver.rb +3 -3
  43. data/lib/bolt/module_installer/specs/forge_spec.rb +1 -1
  44. data/lib/bolt/module_installer/specs/git_spec.rb +1 -1
  45. data/lib/bolt/module_installer/specs.rb +3 -3
  46. data/lib/bolt/module_installer.rb +6 -6
  47. data/lib/bolt/node/errors.rb +1 -1
  48. data/lib/bolt/node/output.rb +1 -1
  49. data/lib/bolt/outputter/human.rb +85 -34
  50. data/lib/bolt/outputter/json.rb +63 -38
  51. data/lib/bolt/outputter/logger.rb +1 -1
  52. data/lib/bolt/outputter/rainbow.rb +1 -1
  53. data/lib/bolt/outputter.rb +4 -4
  54. data/lib/bolt/pal/logging.rb +1 -1
  55. data/lib/bolt/pal/yaml_plan/evaluator.rb +1 -1
  56. data/lib/bolt/pal/yaml_plan/loader.rb +2 -2
  57. data/lib/bolt/pal/yaml_plan/step.rb +11 -11
  58. data/lib/bolt/pal/yaml_plan/transpiler.rb +3 -3
  59. data/lib/bolt/pal/yaml_plan.rb +2 -2
  60. data/lib/bolt/pal.rb +11 -11
  61. data/lib/bolt/plan_creator.rb +88 -29
  62. data/lib/bolt/plan_future.rb +11 -6
  63. data/lib/bolt/plan_result.rb +3 -3
  64. data/lib/bolt/plugin/cache.rb +2 -2
  65. data/lib/bolt/plugin/module.rb +1 -1
  66. data/lib/bolt/plugin.rb +18 -24
  67. data/lib/bolt/project.rb +4 -11
  68. data/lib/bolt/project_manager/config_migrator.rb +1 -1
  69. data/lib/bolt/project_manager/inventory_migrator.rb +1 -1
  70. data/lib/bolt/project_manager/migrator.rb +1 -1
  71. data/lib/bolt/project_manager/module_migrator.rb +5 -5
  72. data/lib/bolt/project_manager.rb +23 -4
  73. data/lib/bolt/puppetdb/config.rb +1 -1
  74. data/lib/bolt/puppetdb.rb +3 -3
  75. data/lib/bolt/result.rb +1 -1
  76. data/lib/bolt/result_set.rb +2 -1
  77. data/lib/bolt/shell/bash.rb +12 -2
  78. data/lib/bolt/shell/powershell.rb +9 -2
  79. data/lib/bolt/shell.rb +2 -2
  80. data/lib/bolt/target.rb +2 -2
  81. data/lib/bolt/transport/base.rb +1 -1
  82. data/lib/bolt/transport/docker/connection.rb +1 -1
  83. data/lib/bolt/transport/docker.rb +2 -2
  84. data/lib/bolt/transport/local/connection.rb +19 -3
  85. data/lib/bolt/transport/local.rb +3 -3
  86. data/lib/bolt/transport/lxd/connection.rb +1 -1
  87. data/lib/bolt/transport/lxd.rb +4 -4
  88. data/lib/bolt/transport/orch/connection.rb +13 -1
  89. data/lib/bolt/transport/orch.rb +2 -2
  90. data/lib/bolt/transport/podman/connection.rb +1 -1
  91. data/lib/bolt/transport/podman.rb +2 -2
  92. data/lib/bolt/transport/remote.rb +2 -2
  93. data/lib/bolt/transport/simple.rb +3 -3
  94. data/lib/bolt/transport/ssh/connection.rb +3 -3
  95. data/lib/bolt/transport/ssh.rb +5 -5
  96. data/lib/bolt/transport/winrm/connection.rb +2 -2
  97. data/lib/bolt/transport/winrm.rb +3 -3
  98. data/lib/bolt/util.rb +8 -31
  99. data/lib/bolt/validator.rb +1 -1
  100. data/lib/bolt/version.rb +1 -1
  101. data/lib/bolt.rb +1 -1
  102. data/lib/bolt_server/file_cache.rb +12 -0
  103. data/lib/bolt_server/schemas/action-apply.json +32 -0
  104. data/lib/bolt_server/schemas/action-apply_prep.json +19 -0
  105. data/lib/bolt_server/transport_app.rb +129 -26
  106. data/lib/bolt_spec/bolt_context.rb +7 -5
  107. data/lib/bolt_spec/plans/mock_executor.rb +3 -3
  108. data/lib/bolt_spec/run.rb +1 -1
  109. data/libexec/bolt_catalog +1 -1
  110. metadata +7 -5
  111. data/lib/bolt/secret.rb +0 -37
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53659858c8aae545c73cd8ef74ce2fda41c024d0040cf2c1dc935985d28d53e3
4
- data.tar.gz: 59909ae1b57566430f66f472e453ab16341ca530b2ac3b1036a4deefd269564e
3
+ metadata.gz: 1da7c437e5ea72a7f457ee51a06dbe434c85099ac2313491fffc63caa19b5acb
4
+ data.tar.gz: 5c081782bc847bf233e21a40094ffb0878e3bf0bf2da9ffd4ab527f1239d587e
5
5
  SHA512:
6
- metadata.gz: 6e76fe56e10409ce22d1a849adf3bbbce19c838dfbb6cb3bb8461f7a642c150a9a17beac13a08f4273ebcbf781ee0d63dd3db6b7a034a2f15d9f300a94a8a16d
7
- data.tar.gz: c109c02ee6fb38a0ffae8abc57709d60952c8a158edb45774344ae44df3a3d6689385924eddaefea40ed437ab7d73455d8aebf2a59c81ff7c7bce5651abdde68
6
+ metadata.gz: f1cf5097a426a55de0e69f62cb266b15a91521991ad777d8b21ce81653b828bc279d6111fc0d02fb2f289dc53170db0d13bc99580fcd73fab4ce67ac64751795
7
+ data.tar.gz: 0fef7a9159cc63e167a9014d25a4a1937194adcbcf35492f5286d1c0c88b9202436b1fe64ea92770895350c795900e3ed701a108bfb1814570386c6411079f00
data/Puppetfile CHANGED
@@ -5,8 +5,8 @@ forge "http://forge.puppetlabs.com"
5
5
  moduledir File.join(File.dirname(__FILE__), 'modules')
6
6
 
7
7
  # Core modules used by 'apply'
8
- mod 'puppetlabs-service', '2.0.0'
9
- mod 'puppetlabs-puppet_agent', '4.8.0'
8
+ mod 'puppetlabs-service', '2.1.0'
9
+ mod 'puppetlabs-puppet_agent', '4.9.0'
10
10
  mod 'puppetlabs-facts', '1.4.0'
11
11
 
12
12
  # Core types and providers for Puppet 6
@@ -22,20 +22,20 @@ mod 'puppetlabs-yumrepo_core', '1.0.7'
22
22
  mod 'puppetlabs-zone_core', '1.0.3'
23
23
 
24
24
  # Useful additional modules
25
- mod 'puppetlabs-package', '2.0.0'
25
+ mod 'puppetlabs-package', '2.1.0'
26
26
  mod 'puppetlabs-powershell_task_helper', '0.1.0'
27
- mod 'puppetlabs-puppet_conf', '1.1.0'
27
+ mod 'puppetlabs-puppet_conf', '1.2.0'
28
28
  mod 'puppetlabs-python_task_helper', '0.5.0'
29
- mod 'puppetlabs-reboot', '4.0.2'
29
+ mod 'puppetlabs-reboot', '4.1.0'
30
30
  mod 'puppetlabs-ruby_task_helper', '0.6.0'
31
31
  mod 'puppetlabs-ruby_plugin_helper', '0.2.0'
32
- mod 'puppetlabs-stdlib', '7.1.0'
32
+ mod 'puppetlabs-stdlib', '8.0.0'
33
33
 
34
34
  # Plugin modules
35
35
  mod 'puppetlabs-aws_inventory', '0.7.0'
36
36
  mod 'puppetlabs-azure_inventory', '0.5.0'
37
37
  mod 'puppetlabs-gcloud_inventory', '0.3.0'
38
- mod 'puppetlabs-http_request', '0.3.0'
38
+ mod 'puppetlabs-http_request', '0.3.1'
39
39
  mod 'puppetlabs-pkcs7', '0.1.2'
40
40
  mod 'puppetlabs-secure_env_vars', '0.2.0'
41
41
  mod 'puppetlabs-terraform', '0.6.1'
@@ -108,11 +108,8 @@ Puppet::Functions.create_function(:run_script, Puppet::Functions::InternalFuncti
108
108
  # Send Analytics Report
109
109
  executor.report_function_call(self.class.name)
110
110
 
111
- future = executor&.future || {}
112
- fallback = future.fetch('file_paths', false)
113
-
114
111
  # Find the file path if it exists, otherwise return nil
115
- found = Bolt::Util.find_file_from_scope(script, scope, fallback)
112
+ found = Bolt::Util.find_file_from_scope(script, scope)
116
113
  unless found && Puppet::FileSystem.exist?(found)
117
114
  raise Puppet::ParseErrorWithIssue.from_issue_and_stack(
118
115
  Puppet::Pops::Issues::NO_SUCH_FILE_OR_DIRECTORY, file: script
@@ -70,11 +70,8 @@ Puppet::Functions.create_function(:upload_file, Puppet::Functions::InternalFunct
70
70
  # Send Analytics Report
71
71
  executor.report_function_call(self.class.name)
72
72
 
73
- future = executor&.future || {}
74
- fallback = future.fetch('file_paths', false)
75
-
76
73
  # Find the file path if it exists, otherwise return nil
77
- found = Bolt::Util.find_file_from_scope(source, scope, fallback)
74
+ found = Bolt::Util.find_file_from_scope(source, scope)
78
75
  unless found && Puppet::FileSystem.exist?(found)
79
76
  raise Puppet::ParseErrorWithIssue.from_issue_and_stack(
80
77
  Puppet::Pops::Issues::NO_SUCH_FILE_OR_DIRECTORY, file: source
@@ -21,11 +21,8 @@ Puppet::Functions.create_function(:'file::exists', Puppet::Functions::InternalFu
21
21
  executor = Puppet.lookup(:bolt_executor) {}
22
22
  executor&.report_function_call(self.class.name)
23
23
 
24
- future = executor&.future || Puppet.lookup(:future) { {} }
25
- fallback = future.fetch('file_paths', false)
26
-
27
24
  # Find the file path if it exists, otherwise return nil
28
- found = Bolt::Util.find_file_from_scope(filename, scope, fallback)
25
+ found = Bolt::Util.find_file_from_scope(filename, scope)
29
26
  found ? Puppet::FileSystem.exist?(found) : false
30
27
  end
31
28
  end
@@ -20,11 +20,8 @@ Puppet::Functions.create_function(:'file::read', Puppet::Functions::InternalFunc
20
20
  executor = Puppet.lookup(:bolt_executor) {}
21
21
  executor&.report_function_call(self.class.name)
22
22
 
23
- future = executor&.future || Puppet.lookup(:future) { {} }
24
- fallback = future.fetch('file_paths', false)
25
-
26
23
  # Find the file path if it exists, otherwise return nil
27
- found = Bolt::Util.find_file_from_scope(filename, scope, fallback)
24
+ found = Bolt::Util.find_file_from_scope(filename, scope)
28
25
  unless found && Puppet::FileSystem.exist?(found)
29
26
  raise Puppet::ParseErrorWithIssue.from_issue_and_stack(
30
27
  Puppet::Pops::Issues::NO_SUCH_FILE_OR_DIRECTORY, file: filename
@@ -21,11 +21,8 @@ Puppet::Functions.create_function(:'file::readable', Puppet::Functions::Internal
21
21
  executor = Puppet.lookup(:bolt_executor) {}
22
22
  executor&.report_function_call(self.class.name)
23
23
 
24
- future = executor&.future || Puppet.lookup(:future) { {} }
25
- fallback = future.fetch('file_paths', false)
26
-
27
24
  # Find the file path if it exists, otherwise return nil
28
- found = Bolt::Util.find_file_from_scope(filename, scope, fallback)
25
+ found = Bolt::Util.find_file_from_scope(filename, scope)
29
26
  found ? File.readable?(found) : false
30
27
  end
31
28
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bolt/util'
4
- require 'bolt/version'
3
+ require_relative '../bolt/util'
4
+ require_relative '../bolt/version'
5
5
  require 'find'
6
6
  require 'json'
7
7
  require 'logging'
@@ -30,7 +30,6 @@ module Bolt
30
30
  }.freeze
31
31
 
32
32
  def self.build_client(enabled = true)
33
- logger = Bolt::Logger.logger(self)
34
33
  begin
35
34
  config_file = config_path
36
35
  config = enabled ? load_config(config_file) : {}
@@ -39,7 +38,7 @@ module Bolt
39
38
  end
40
39
 
41
40
  if !enabled || config['disabled'] || ENV['BOLT_DISABLE_ANALYTICS']
42
- logger.debug "Analytics opt-out is set, analytics will be disabled"
41
+ Bolt::Logger.debug "Analytics opt-out is set, analytics will be disabled"
43
42
  NoopClient.new
44
43
  else
45
44
  unless config.key?('user-id')
@@ -50,7 +49,7 @@ module Bolt
50
49
  Client.new(config['user-id'])
51
50
  end
52
51
  rescue StandardError => e
53
- logger.debug "Failed to initialize analytics client, analytics will be disabled: #{e}"
52
+ Bolt::Logger.debug "Failed to initialize analytics client, analytics will be disabled: #{e}"
54
53
  NoopClient.new
55
54
  end
56
55
 
@@ -139,18 +138,6 @@ module Bolt
139
138
  end
140
139
  end
141
140
 
142
- def plan_counts(plans_path)
143
- pp_count, yaml_count = if File.exist?(plans_path)
144
- %w[pp yaml].map do |extension|
145
- Find.find(plans_path.to_s).grep(/.*\.#{extension}/).length
146
- end
147
- else
148
- [0, 0]
149
- end
150
-
151
- { puppet_plan_count: pp_count, yaml_plan_count: yaml_count }
152
- end
153
-
154
141
  def event(category, action, label: nil, value: nil, **kwargs)
155
142
  custom_dimensions = Bolt::Util.walk_keys(kwargs) do |k|
156
143
  CUSTOM_DIMENSIONS[k] || raise("Unknown analytics key '#{k}'")
@@ -236,10 +223,6 @@ module Bolt
236
223
 
237
224
  def report_bundled_content(mode, name); end
238
225
 
239
- def plan_counts(_)
240
- {}
241
- end
242
-
243
226
  def event(category, action, **_kwargs)
244
227
  @logger.trace "Skipping submission of '#{category} #{action}' event because analytics is disabled"
245
228
  end