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
@@ -897,7 +897,7 @@ module Bolt
897
897
  end
898
898
  define('--params PARAMETERS',
899
899
  "Parameters to a task or plan as json, a json file '@<file>', or on stdin '-'.") do |params|
900
- @options[:task_options] = parse_params(params)
900
+ @options[:params] = parse_params(params)
901
901
  end
902
902
  define('-e', '--execute CODE',
903
903
  "Puppet manifest code to apply to the targets.") do |code|
@@ -1042,6 +1042,21 @@ module Bolt
1042
1042
  define('--pp', 'Create a new Puppet language plan.') do |_|
1043
1043
  @options[:puppet] = true
1044
1044
  end
1045
+ define('--script SCRIPT', 'Create a new plan that wraps a script.') do |path|
1046
+ # If the path is a relative, absolute, or not a scripts path, raise an
1047
+ # error. This flag is intended to be used to create shareable plans.
1048
+ #
1049
+ # This also limits valid mounts to files and scripts, which we may want
1050
+ # to expand in the future.
1051
+ if File.exist?(path) || Pathname.new(path).absolute? ||
1052
+ !%w[scripts files].include?(path.split(File::SEPARATOR)[1])
1053
+ raise Bolt::CLIError, "The script must be a detailed Puppet file reference, " \
1054
+ "for example 'mymodule/scripts/myscript.sh'. See http://pup.pt/bolt-scripts for " \
1055
+ "more information on detailed Puppet file references."
1056
+ end
1057
+
1058
+ @options[:plan_script] = path
1059
+ end
1045
1060
 
1046
1061
  separator "\n#{self.class.colorize(:cyan, 'Display options')}"
1047
1062
  define('--filter FILTER', 'Filter tasks and plans by a matching substring.') do |filter|
@@ -1086,8 +1101,7 @@ module Bolt
1086
1101
  @options[:help] = true
1087
1102
  end
1088
1103
  define('--version', 'Display the version.') do |_|
1089
- puts Bolt::VERSION
1090
- raise Bolt::CLIExit
1104
+ @options[:version] = true
1091
1105
  end
1092
1106
  define('--log-level LEVEL',
1093
1107
  "Set the log level for the console. Available options are",
@@ -1130,5 +1144,15 @@ module Bolt
1130
1144
  rescue JSON::ParserError => e
1131
1145
  raise Bolt::CLIError, "Unable to parse --params value as JSON: #{e}"
1132
1146
  end
1147
+
1148
+ def permute(args)
1149
+ super(args)
1150
+ rescue OptionParser::MissingArgument => e
1151
+ raise Bolt::CLIError, "Option '#{e.args.first}' needs a parameter"
1152
+ rescue OptionParser::InvalidArgument => e
1153
+ raise Bolt::CLIError, "Invalid parameter specified for option '#{e.args.first}': #{e.args[1]}"
1154
+ rescue OptionParser::InvalidOption, OptionParser::AmbiguousOption => e
1155
+ raise Bolt::CLIError, "Unknown argument '#{e.args.first}'"
1156
+ end
1133
1157
  end
1134
1158
  end
data/lib/bolt/catalog.rb CHANGED
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bolt/apply_inventory'
4
- require 'bolt/apply_target'
5
- require 'bolt/config'
6
- require 'bolt/error'
7
- require 'bolt/inventory'
8
- require 'bolt/pal'
9
- require 'bolt/puppetdb'
10
- require 'bolt/util'
3
+ require_relative '../bolt/apply_inventory'
4
+ require_relative '../bolt/apply_target'
5
+ require_relative '../bolt/config'
6
+ require_relative '../bolt/error'
7
+ require_relative '../bolt/inventory'
8
+ require_relative '../bolt/pal'
9
+ require_relative '../bolt/puppetdb'
10
+ require_relative '../bolt/util'
11
11
 
12
12
  Bolt::PAL.load_puppet
13
13
 
14
- require 'bolt/catalog/logging'
14
+ require_relative 'catalog/logging'
15
15
 
16
16
  module Bolt
17
17
  class Catalog
@@ -65,8 +65,7 @@ module Bolt
65
65
  puppet_overrides = {
66
66
  bolt_pdb_client: pdb_client,
67
67
  bolt_inventory: inv,
68
- bolt_project: bolt_project,
69
- future: request['future']
68
+ bolt_project: bolt_project
70
69
  }
71
70
 
72
71
  # Facts will be set by the catalog compiler, so we need to ensure