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.
- checksums.yaml +4 -4
- data/Puppetfile +7 -7
- data/bolt-modules/boltlib/lib/puppet/functions/run_script.rb +1 -4
- data/bolt-modules/boltlib/lib/puppet/functions/upload_file.rb +1 -4
- data/bolt-modules/file/lib/puppet/functions/file/exists.rb +1 -4
- data/bolt-modules/file/lib/puppet/functions/file/read.rb +1 -4
- data/bolt-modules/file/lib/puppet/functions/file/readable.rb +1 -4
- data/lib/bolt/analytics.rb +4 -21
- data/lib/bolt/application.rb +627 -0
- data/lib/bolt/applicator.rb +7 -6
- data/lib/bolt/apply_inventory.rb +3 -3
- data/lib/bolt/apply_result.rb +2 -2
- data/lib/bolt/bolt_option_parser.rb +27 -3
- data/lib/bolt/catalog.rb +10 -11
- data/lib/bolt/cli.rb +607 -809
- data/lib/bolt/config/modulepath.rb +1 -1
- data/lib/bolt/config/options.rb +32 -13
- data/lib/bolt/config/transport/base.rb +4 -4
- data/lib/bolt/config/transport/docker.rb +2 -2
- data/lib/bolt/config/transport/local.rb +2 -2
- data/lib/bolt/config/transport/lxd.rb +2 -2
- data/lib/bolt/config/transport/orch.rb +2 -2
- data/lib/bolt/config/transport/podman.rb +2 -2
- data/lib/bolt/config/transport/remote.rb +2 -2
- data/lib/bolt/config/transport/ssh.rb +2 -2
- data/lib/bolt/config/transport/winrm.rb +2 -2
- data/lib/bolt/config.rb +5 -5
- data/lib/bolt/container_result.rb +2 -2
- data/lib/bolt/error.rb +1 -1
- data/lib/bolt/executor.rb +17 -14
- data/lib/bolt/fiber_executor.rb +9 -5
- data/lib/bolt/inventory/group.rb +4 -4
- data/lib/bolt/inventory/inventory.rb +64 -41
- data/lib/bolt/inventory/options.rb +1 -1
- data/lib/bolt/inventory/target.rb +1 -1
- data/lib/bolt/inventory.rb +10 -17
- data/lib/bolt/module_installer/installer.rb +2 -2
- data/lib/bolt/module_installer/puppetfile/forge_module.rb +1 -1
- data/lib/bolt/module_installer/puppetfile/git_module.rb +1 -1
- data/lib/bolt/module_installer/puppetfile/module.rb +1 -1
- data/lib/bolt/module_installer/puppetfile.rb +27 -13
- data/lib/bolt/module_installer/resolver.rb +3 -3
- data/lib/bolt/module_installer/specs/forge_spec.rb +1 -1
- data/lib/bolt/module_installer/specs/git_spec.rb +1 -1
- data/lib/bolt/module_installer/specs.rb +3 -3
- data/lib/bolt/module_installer.rb +6 -6
- data/lib/bolt/node/errors.rb +1 -1
- data/lib/bolt/node/output.rb +1 -1
- data/lib/bolt/outputter/human.rb +85 -34
- data/lib/bolt/outputter/json.rb +63 -38
- data/lib/bolt/outputter/logger.rb +1 -1
- data/lib/bolt/outputter/rainbow.rb +1 -1
- data/lib/bolt/outputter.rb +4 -4
- data/lib/bolt/pal/logging.rb +1 -1
- data/lib/bolt/pal/yaml_plan/evaluator.rb +1 -1
- data/lib/bolt/pal/yaml_plan/loader.rb +2 -2
- data/lib/bolt/pal/yaml_plan/step.rb +11 -11
- data/lib/bolt/pal/yaml_plan/transpiler.rb +3 -3
- data/lib/bolt/pal/yaml_plan.rb +2 -2
- data/lib/bolt/pal.rb +11 -11
- data/lib/bolt/plan_creator.rb +88 -29
- data/lib/bolt/plan_future.rb +11 -6
- data/lib/bolt/plan_result.rb +3 -3
- data/lib/bolt/plugin/cache.rb +2 -2
- data/lib/bolt/plugin/module.rb +1 -1
- data/lib/bolt/plugin.rb +18 -24
- data/lib/bolt/project.rb +4 -11
- data/lib/bolt/project_manager/config_migrator.rb +1 -1
- data/lib/bolt/project_manager/inventory_migrator.rb +1 -1
- data/lib/bolt/project_manager/migrator.rb +1 -1
- data/lib/bolt/project_manager/module_migrator.rb +5 -5
- data/lib/bolt/project_manager.rb +23 -4
- data/lib/bolt/puppetdb/config.rb +1 -1
- data/lib/bolt/puppetdb.rb +3 -3
- data/lib/bolt/result.rb +1 -1
- data/lib/bolt/result_set.rb +2 -1
- data/lib/bolt/shell/bash.rb +12 -2
- data/lib/bolt/shell/powershell.rb +9 -2
- data/lib/bolt/shell.rb +2 -2
- data/lib/bolt/target.rb +2 -2
- data/lib/bolt/transport/base.rb +1 -1
- data/lib/bolt/transport/docker/connection.rb +1 -1
- data/lib/bolt/transport/docker.rb +2 -2
- data/lib/bolt/transport/local/connection.rb +19 -3
- data/lib/bolt/transport/local.rb +3 -3
- data/lib/bolt/transport/lxd/connection.rb +1 -1
- data/lib/bolt/transport/lxd.rb +4 -4
- data/lib/bolt/transport/orch/connection.rb +13 -1
- data/lib/bolt/transport/orch.rb +2 -2
- data/lib/bolt/transport/podman/connection.rb +1 -1
- data/lib/bolt/transport/podman.rb +2 -2
- data/lib/bolt/transport/remote.rb +2 -2
- data/lib/bolt/transport/simple.rb +3 -3
- data/lib/bolt/transport/ssh/connection.rb +3 -3
- data/lib/bolt/transport/ssh.rb +5 -5
- data/lib/bolt/transport/winrm/connection.rb +2 -2
- data/lib/bolt/transport/winrm.rb +3 -3
- data/lib/bolt/util.rb +8 -31
- data/lib/bolt/validator.rb +1 -1
- data/lib/bolt/version.rb +1 -1
- data/lib/bolt.rb +1 -1
- data/lib/bolt_server/file_cache.rb +12 -0
- data/lib/bolt_server/schemas/action-apply.json +32 -0
- data/lib/bolt_server/schemas/action-apply_prep.json +19 -0
- data/lib/bolt_server/transport_app.rb +129 -26
- data/lib/bolt_spec/bolt_context.rb +7 -5
- data/lib/bolt_spec/plans/mock_executor.rb +3 -3
- data/lib/bolt_spec/run.rb +1 -1
- data/libexec/bolt_catalog +1 -1
- metadata +7 -5
- 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[:
|
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
|
-
|
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
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
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
|
-
|
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
|