bolt 2.6.0 → 2.11.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 +4 -3
- data/bolt-modules/boltlib/lib/puppet/datatypes/applyresult.rb +2 -0
- data/bolt-modules/boltlib/lib/puppet/datatypes/resourceinstance.rb +27 -0
- data/bolt-modules/boltlib/lib/puppet/datatypes/result.rb +2 -0
- data/bolt-modules/boltlib/lib/puppet/datatypes/resultset.rb +2 -0
- data/bolt-modules/boltlib/lib/puppet/datatypes/target.rb +4 -3
- data/bolt-modules/boltlib/lib/puppet/functions/run_plan.rb +1 -1
- data/bolt-modules/boltlib/lib/puppet/functions/run_task_with.rb +192 -0
- data/bolt-modules/boltlib/lib/puppet/functions/set_resources.rb +122 -0
- data/bolt-modules/boltlib/types/planresult.pp +12 -1
- data/bolt-modules/file/lib/puppet/functions/file/exists.rb +3 -1
- data/bolt-modules/file/lib/puppet/functions/file/join.rb +1 -1
- data/bolt-modules/file/lib/puppet/functions/file/read.rb +2 -1
- data/bolt-modules/file/lib/puppet/functions/file/readable.rb +3 -1
- data/bolt-modules/file/lib/puppet/functions/file/write.rb +3 -1
- data/bolt-modules/prompt/lib/puppet/functions/prompt.rb +43 -0
- data/lib/bolt/analytics.rb +1 -1
- data/lib/bolt/applicator.rb +3 -2
- data/lib/bolt/apply_inventory.rb +1 -1
- data/lib/bolt/apply_result.rb +1 -1
- data/lib/bolt/apply_target.rb +11 -2
- data/lib/bolt/bolt_option_parser.rb +27 -7
- data/lib/bolt/catalog.rb +32 -3
- data/lib/bolt/cli.rb +52 -22
- data/lib/bolt/config.rb +51 -27
- data/lib/bolt/config/transport/base.rb +3 -3
- data/lib/bolt/config/transport/docker.rb +7 -1
- data/lib/bolt/config/transport/local.rb +9 -1
- data/lib/bolt/config/transport/orch.rb +4 -2
- data/lib/bolt/config/transport/remote.rb +2 -0
- data/lib/bolt/config/transport/ssh.rb +81 -3
- data/lib/bolt/config/transport/winrm.rb +6 -1
- data/lib/bolt/executor.rb +38 -0
- data/lib/bolt/inventory.rb +2 -1
- data/lib/bolt/inventory/group.rb +1 -0
- data/lib/bolt/inventory/inventory.rb +9 -0
- data/lib/bolt/inventory/target.rb +17 -1
- data/lib/bolt/node/output.rb +1 -1
- data/lib/bolt/outputter/human.rb +5 -4
- data/lib/bolt/outputter/json.rb +1 -1
- data/lib/bolt/pal.rb +32 -14
- data/lib/bolt/pal/yaml_plan.rb +1 -0
- data/lib/bolt/plugin.rb +14 -8
- data/lib/bolt/plugin/env_var.rb +2 -1
- data/lib/bolt/plugin/module.rb +40 -7
- data/lib/bolt/plugin/prompt.rb +1 -1
- data/lib/bolt/plugin/puppetdb.rb +5 -2
- data/lib/bolt/project.rb +135 -0
- data/lib/bolt/puppetdb/config.rb +16 -28
- data/lib/bolt/rerun.rb +1 -1
- data/lib/bolt/resource_instance.rb +126 -0
- data/lib/bolt/result.rb +46 -23
- data/lib/bolt/result_set.rb +2 -5
- data/lib/bolt/secret.rb +20 -4
- data/lib/bolt/shell/bash.rb +27 -14
- data/lib/bolt/shell/bash/tmpdir.rb +1 -1
- data/lib/bolt/shell/powershell.rb +43 -15
- data/lib/bolt/shell/powershell/snippets.rb +1 -1
- data/lib/bolt/target.rb +18 -2
- data/lib/bolt/transport/base.rb +24 -8
- data/lib/bolt/transport/docker.rb +3 -3
- data/lib/bolt/transport/docker/connection.rb +11 -7
- data/lib/bolt/transport/local/connection.rb +13 -7
- data/lib/bolt/transport/orch.rb +5 -1
- data/lib/bolt/transport/ssh.rb +6 -2
- data/lib/bolt/transport/ssh/connection.rb +26 -1
- data/lib/bolt/transport/ssh/exec_connection.rb +110 -0
- data/lib/bolt/transport/winrm/connection.rb +10 -2
- data/lib/bolt/version.rb +1 -1
- data/lib/bolt_server/pe/pal.rb +1 -38
- data/lib/bolt_server/transport_app.rb +7 -7
- data/lib/bolt_spec/bolt_context.rb +3 -6
- data/lib/bolt_spec/plans.rb +78 -8
- data/lib/bolt_spec/plans/action_stubs.rb +37 -7
- data/lib/bolt_spec/plans/action_stubs/plan_stub.rb +55 -0
- data/lib/bolt_spec/plans/mock_executor.rb +62 -2
- data/lib/bolt_spec/run.rb +10 -13
- metadata +26 -7
- data/lib/bolt/boltdir.rb +0 -54
- data/lib/bolt/plugin/pkcs7.rb +0 -104
- data/lib/bolt/secret/base.rb +0 -41
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'bolt/plan_result'
|
3
4
|
require 'bolt/result'
|
4
5
|
require 'bolt/util'
|
5
6
|
|
@@ -23,8 +24,8 @@ module BoltSpec
|
|
23
24
|
@stubs.each { |s| s.assert_called(object) }
|
24
25
|
end
|
25
26
|
|
26
|
-
def add_stub
|
27
|
-
stub = Plans.const_get(@action_stub).new
|
27
|
+
def add_stub(inventory = nil)
|
28
|
+
stub = Plans.const_get(@action_stub).new(false, inventory)
|
28
29
|
@stubs.unshift stub
|
29
30
|
stub
|
30
31
|
end
|
@@ -33,7 +34,7 @@ module BoltSpec
|
|
33
34
|
class ActionStub
|
34
35
|
attr_reader :invocation
|
35
36
|
|
36
|
-
def initialize(expect = false)
|
37
|
+
def initialize(expect = false, inventory = nil)
|
37
38
|
@calls = 0
|
38
39
|
@expect = expect
|
39
40
|
@expected_calls = nil
|
@@ -41,6 +42,7 @@ module BoltSpec
|
|
41
42
|
@invocation = {}
|
42
43
|
# return value
|
43
44
|
@data = { default: {} }
|
45
|
+
@inventory = inventory
|
44
46
|
end
|
45
47
|
|
46
48
|
def assert_called(object)
|
@@ -55,7 +57,16 @@ module BoltSpec
|
|
55
57
|
end
|
56
58
|
message = "Expected #{object} to be called #{times} times"
|
57
59
|
message += " with targets #{@invocation[:targets]}" if @invocation[:targets]
|
58
|
-
|
60
|
+
if parameters
|
61
|
+
# Print the parameters hash by converting it to JSON and then re-parsing.
|
62
|
+
# This prevents issues in Bolt data types, such as Targets, from generating
|
63
|
+
# gigantic, unreadable, data when converted to string by interpolation.
|
64
|
+
# Targets exhibit this behavior because they have a reference to @inventory.
|
65
|
+
# When the target is converted into a string, it converts the full Inventory
|
66
|
+
# into a string recursively.
|
67
|
+
parameters_str = JSON.parse(parameters.to_json)
|
68
|
+
message += " with parameters #{parameters_str}"
|
69
|
+
end
|
59
70
|
raise message
|
60
71
|
end
|
61
72
|
end
|
@@ -71,6 +82,14 @@ module BoltSpec
|
|
71
82
|
# Used to create a valid Bolt::Result object from result data.
|
72
83
|
def default_for(target)
|
73
84
|
case @data[:default]
|
85
|
+
when Bolt::PlanFailure
|
86
|
+
# Bolt::PlanFailure needs to be declared before Bolt::Error because
|
87
|
+
# Bolt::PlanFailure is an instance of Bolt::Error, so it can match both
|
88
|
+
# in this case we need to treat Bolt::PlanFailure's in a different way
|
89
|
+
#
|
90
|
+
# raise Bolt::PlanFailure errors so that the PAL can catch them and wrap
|
91
|
+
# them into Bolt::PlanResult's for us.
|
92
|
+
raise @data[:default]
|
74
93
|
when Bolt::Error
|
75
94
|
Bolt::Result.from_exception(target, @data[:default])
|
76
95
|
when Hash
|
@@ -87,6 +106,13 @@ module BoltSpec
|
|
87
106
|
result_set
|
88
107
|
end
|
89
108
|
|
109
|
+
def check_plan_result(plan_result, plan_clj)
|
110
|
+
unless plan_result.is_a?(Bolt::PlanResult)
|
111
|
+
raise "Return block for #{plan_clj.closure_name} did not return a Bolt::PlanResult"
|
112
|
+
end
|
113
|
+
plan_result
|
114
|
+
end
|
115
|
+
|
90
116
|
# Below here are the intended 'public' methods of the stub
|
91
117
|
|
92
118
|
# Restricts the stub to only match invocations with
|
@@ -127,7 +153,10 @@ module BoltSpec
|
|
127
153
|
def return_for_targets(data)
|
128
154
|
data.each_with_object(@data) do |(target, result), hsh|
|
129
155
|
raise "Mocked results must be hashes: #{target}: #{result}" unless result.is_a? Hash
|
130
|
-
|
156
|
+
# set the inventory from the BoltSpec::Plans, otherwise if we try to convert
|
157
|
+
# this target to a string, it will fail to string conversion because the
|
158
|
+
# inventory is nil
|
159
|
+
hsh[target] = result_for(Bolt::Target.new(target, @inventory), Bolt::Util.walk_keys(result, &:to_sym))
|
131
160
|
end
|
132
161
|
raise "Cannot set return values and return block." if @return_block
|
133
162
|
@data_set = true
|
@@ -143,10 +172,10 @@ module BoltSpec
|
|
143
172
|
end
|
144
173
|
|
145
174
|
# Set a default error result for all targets.
|
146
|
-
def error_with(data)
|
175
|
+
def error_with(data, clazz = Bolt::Error)
|
147
176
|
data = Bolt::Util.walk_keys(data, &:to_s)
|
148
177
|
if data['msg'] && data['kind'] && (data.keys - %w[msg kind details issue_code]).empty?
|
149
|
-
@data[:default] =
|
178
|
+
@data[:default] = clazz.new(data['msg'], data['kind'], data['details'], data['issue_code'])
|
150
179
|
else
|
151
180
|
STDERR.puts "In the future 'error_with()' may require msg and kind, and " \
|
152
181
|
"optionally accept only details and issue_code."
|
@@ -160,6 +189,7 @@ module BoltSpec
|
|
160
189
|
end
|
161
190
|
|
162
191
|
require_relative 'action_stubs/command_stub'
|
192
|
+
require_relative 'action_stubs/plan_stub'
|
163
193
|
require_relative 'action_stubs/script_stub'
|
164
194
|
require_relative 'action_stubs/task_stub'
|
165
195
|
require_relative 'action_stubs/upload_stub'
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BoltSpec
|
4
|
+
module Plans
|
5
|
+
class PlanStub < ActionStub
|
6
|
+
def matches(_scope, _plan, params)
|
7
|
+
targets = params.fetch('nodes', params.fetch('targets', nil))
|
8
|
+
if @invocation[:targets] && Set.new(@invocation[:targets]) != Set.new(targets)
|
9
|
+
return false
|
10
|
+
end
|
11
|
+
|
12
|
+
if @invocation[:params] && params != @invocation[:params]
|
13
|
+
return false
|
14
|
+
end
|
15
|
+
|
16
|
+
true
|
17
|
+
end
|
18
|
+
|
19
|
+
def call(_scope, plan, params)
|
20
|
+
@calls += 1
|
21
|
+
if @return_block
|
22
|
+
check_plan_result(@return_block.call(plan: plan, params: params), plan)
|
23
|
+
else
|
24
|
+
default_for(nil)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def parameters
|
29
|
+
@invocation[:params]
|
30
|
+
end
|
31
|
+
|
32
|
+
# Allow any data.
|
33
|
+
def result_for(_target, data)
|
34
|
+
Bolt::PlanResult.new(Bolt::Util.walk_keys(data, &:to_s), 'success')
|
35
|
+
end
|
36
|
+
|
37
|
+
# Public methods
|
38
|
+
|
39
|
+
# Restricts the stub to only match invocations with certain parameters.
|
40
|
+
# All parameters must match exactly.
|
41
|
+
def with_params(params)
|
42
|
+
@invocation[:params] = params
|
43
|
+
self
|
44
|
+
end
|
45
|
+
|
46
|
+
def return_for_targets(_data)
|
47
|
+
raise "return_for_targets is not implemented for plan spec tests (allow_plan, expect_plan, allow_any_plan, etc)"
|
48
|
+
end
|
49
|
+
|
50
|
+
def error_with(data, clazz = Bolt::PlanFailure)
|
51
|
+
super(data, clazz)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'bolt_spec/plans/action_stubs'
|
4
4
|
require 'bolt_spec/plans/publish_stub'
|
5
5
|
require 'bolt/error'
|
6
|
+
require 'bolt/executor'
|
6
7
|
require 'bolt/result_set'
|
7
8
|
require 'bolt/result'
|
8
9
|
require 'pathname'
|
@@ -10,14 +11,14 @@ require 'set'
|
|
10
11
|
|
11
12
|
module BoltSpec
|
12
13
|
module Plans
|
13
|
-
MOCKED_ACTIONS = %i[command script task upload].freeze
|
14
|
+
MOCKED_ACTIONS = %i[command plan script task upload].freeze
|
14
15
|
|
15
16
|
class UnexpectedInvocation < ArgumentError; end
|
16
17
|
|
17
18
|
# Nothing on the executor is 'public'
|
18
19
|
class MockExecutor
|
19
20
|
attr_reader :noop, :error_message
|
20
|
-
attr_accessor :run_as, :transport_features
|
21
|
+
attr_accessor :run_as, :transport_features, :execute_any_plan
|
21
22
|
|
22
23
|
def initialize(modulepath)
|
23
24
|
@noop = false
|
@@ -28,6 +29,13 @@ module BoltSpec
|
|
28
29
|
MOCKED_ACTIONS.each { |action| instance_variable_set(:"@#{action}_doubles", {}) }
|
29
30
|
@stub_out_message = nil
|
30
31
|
@transport_features = ['puppet-agent']
|
32
|
+
@executor_real = Bolt::Executor.new
|
33
|
+
# by default, we want to execute any plan that we come across without error
|
34
|
+
# or mocking. users can toggle this behavior so that plans will either need to
|
35
|
+
# be mocked out, or an error will be thrown.
|
36
|
+
@execute_any_plan = true
|
37
|
+
# plans that are allowed to be executed by the @executor_real
|
38
|
+
@allowed_exec_plans = {}
|
31
39
|
end
|
32
40
|
|
33
41
|
def module_file_id(file)
|
@@ -96,6 +104,57 @@ module BoltSpec
|
|
96
104
|
result
|
97
105
|
end
|
98
106
|
|
107
|
+
def with_plan_allowed_exec(plan_name, params)
|
108
|
+
@allowed_exec_plans[plan_name] = params
|
109
|
+
result = yield
|
110
|
+
@allowed_exec_plans.delete(plan_name)
|
111
|
+
result
|
112
|
+
end
|
113
|
+
|
114
|
+
def run_plan(scope, plan_clj, params)
|
115
|
+
result = nil
|
116
|
+
plan_name = plan_clj.closure_name
|
117
|
+
|
118
|
+
# get the mock object either by plan name, or the default in case allow_any_plan
|
119
|
+
# was called, if both are nil / don't exist, then dub will be nil and we'll fall
|
120
|
+
# through to another conditional statement
|
121
|
+
doub = @plan_doubles[plan_name] || @plan_doubles[:default]
|
122
|
+
|
123
|
+
# High level:
|
124
|
+
# - If we've explicitly allowed execution of the plan (normally the main plan
|
125
|
+
# passed into BoltSpec::Plan::run_plan()), then execute it
|
126
|
+
# - If we've explicitly "allowed/expected" the plan (mocked),
|
127
|
+
# then run it through the mock object
|
128
|
+
# - If we're allowing "any" plan to be executed,
|
129
|
+
# then execute it
|
130
|
+
# - Otherwise we have an error
|
131
|
+
if @allowed_exec_plans.key?(plan_name) && @allowed_exec_plans[plan_name] == params
|
132
|
+
# This plan's name + parameters were explicitly allowed to be executed.
|
133
|
+
# run it with the real executor.
|
134
|
+
# We require this functionality so that the BoltSpec::Plans.run_plan()
|
135
|
+
# function can kick off the initial plan. In reality, no other plans should
|
136
|
+
# be in this hash.
|
137
|
+
result = @executor_real.run_plan(scope, plan_clj, params)
|
138
|
+
elsif doub
|
139
|
+
result = doub.process(scope, plan_clj, params)
|
140
|
+
# the throw here is how Puppet exits out of a closure and returns a result
|
141
|
+
# it throws this special symbol with a result object that is captured by
|
142
|
+
# the run_plan Puppet function
|
143
|
+
throw :return, result
|
144
|
+
elsif @execute_any_plan
|
145
|
+
# if the plan wasn't allowed or mocked out, and we're allowing any plan to be
|
146
|
+
# executed, then execute the plan
|
147
|
+
result = @executor_real.run_plan(scope, plan_clj, params)
|
148
|
+
else
|
149
|
+
# convert to JSON and back so that we get the ruby representation with all keys and
|
150
|
+
# values converted to a string .to_s instead of their ruby object notation
|
151
|
+
params_str = JSON.parse(params.to_json)
|
152
|
+
@error_message = "Unexpected call to 'run_plan(#{plan_name}, #{params_str})'"
|
153
|
+
raise UnexpectedInvocation, @error_message
|
154
|
+
end
|
155
|
+
result
|
156
|
+
end
|
157
|
+
|
99
158
|
def assert_call_expectations
|
100
159
|
MOCKED_ACTIONS.each do |action|
|
101
160
|
instance_variable_get(:"@#{action}_doubles").map do |object, doub|
|
@@ -171,6 +230,7 @@ module BoltSpec
|
|
171
230
|
def transport(_protocol)
|
172
231
|
Class.new do
|
173
232
|
attr_reader :provided_features
|
233
|
+
|
174
234
|
def initialize(features)
|
175
235
|
@provided_features = features
|
176
236
|
end
|
data/lib/bolt_spec/run.rb
CHANGED
@@ -126,25 +126,25 @@ module BoltSpec
|
|
126
126
|
end
|
127
127
|
|
128
128
|
class BoltRunner
|
129
|
-
# Creates a temporary
|
130
|
-
# WARNING: puppetdb config and orch config which do not use the
|
129
|
+
# Creates a temporary project so no settings are picked up
|
130
|
+
# WARNING: puppetdb config and orch config which do not use the project may
|
131
131
|
# still be loaded
|
132
132
|
def self.with_runner(config_data, inventory_data)
|
133
|
-
Dir.mktmpdir do |
|
134
|
-
runner = new(Bolt::Util.deep_clone(config_data), Bolt::Util.deep_clone(inventory_data),
|
133
|
+
Dir.mktmpdir do |project_path|
|
134
|
+
runner = new(Bolt::Util.deep_clone(config_data), Bolt::Util.deep_clone(inventory_data), project_path)
|
135
135
|
yield runner
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
139
|
-
def initialize(config_data, inventory_data,
|
139
|
+
def initialize(config_data, inventory_data, project_path)
|
140
140
|
@config_data = config_data || {}
|
141
141
|
@inventory_data = inventory_data || {}
|
142
|
-
@
|
142
|
+
@project_path = project_path
|
143
143
|
@analytics = Bolt::Analytics::NoopClient.new
|
144
144
|
end
|
145
145
|
|
146
146
|
def config
|
147
|
-
@config ||= Bolt::Config.new(Bolt::
|
147
|
+
@config ||= Bolt::Config.new(Bolt::Project.new(@project_path), @config_data)
|
148
148
|
end
|
149
149
|
|
150
150
|
def inventory
|
@@ -152,20 +152,17 @@ module BoltSpec
|
|
152
152
|
end
|
153
153
|
|
154
154
|
def plugins
|
155
|
-
@plugins ||= Bolt::Plugin.setup(config, pal
|
155
|
+
@plugins ||= Bolt::Plugin.setup(config, pal)
|
156
156
|
end
|
157
157
|
|
158
158
|
def puppetdb_client
|
159
|
-
|
160
|
-
puppetdb_config = Bolt::PuppetDB::Config.load_config(nil, config.puppetdb)
|
161
|
-
Bolt::PuppetDB::Client.new(puppetdb_config)
|
162
|
-
end
|
159
|
+
plugins.puppetdb_client
|
163
160
|
end
|
164
161
|
|
165
162
|
def pal
|
166
163
|
@pal ||= Bolt::PAL.new(config.modulepath,
|
167
164
|
config.hiera_config,
|
168
|
-
config.
|
165
|
+
config.project.resource_types,
|
169
166
|
config.compile_concurrency)
|
170
167
|
end
|
171
168
|
|
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.11.0
|
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-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -184,7 +184,7 @@ dependencies:
|
|
184
184
|
requirements:
|
185
185
|
- - ">="
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 6.
|
187
|
+
version: 6.15.0
|
188
188
|
- - "<"
|
189
189
|
- !ruby/object:Gem::Version
|
190
190
|
version: '7'
|
@@ -194,7 +194,7 @@ dependencies:
|
|
194
194
|
requirements:
|
195
195
|
- - ">="
|
196
196
|
- !ruby/object:Gem::Version
|
197
|
-
version: 6.
|
197
|
+
version: 6.15.0
|
198
198
|
- - "<"
|
199
199
|
- !ruby/object:Gem::Version
|
200
200
|
version: '7'
|
@@ -324,6 +324,20 @@ dependencies:
|
|
324
324
|
- - ">="
|
325
325
|
- !ruby/object:Gem::Version
|
326
326
|
version: '1.14'
|
327
|
+
- !ruby/object:Gem::Dependency
|
328
|
+
name: octokit
|
329
|
+
requirement: !ruby/object:Gem::Requirement
|
330
|
+
requirements:
|
331
|
+
- - "~>"
|
332
|
+
- !ruby/object:Gem::Version
|
333
|
+
version: '4.0'
|
334
|
+
type: :development
|
335
|
+
prerelease: false
|
336
|
+
version_requirements: !ruby/object:Gem::Requirement
|
337
|
+
requirements:
|
338
|
+
- - "~>"
|
339
|
+
- !ruby/object:Gem::Version
|
340
|
+
version: '4.0'
|
327
341
|
- !ruby/object:Gem::Dependency
|
328
342
|
name: puppetlabs_spec_helper
|
329
343
|
requirement: !ruby/object:Gem::Requirement
|
@@ -376,6 +390,7 @@ extra_rdoc_files: []
|
|
376
390
|
files:
|
377
391
|
- Puppetfile
|
378
392
|
- bolt-modules/boltlib/lib/puppet/datatypes/applyresult.rb
|
393
|
+
- bolt-modules/boltlib/lib/puppet/datatypes/resourceinstance.rb
|
379
394
|
- bolt-modules/boltlib/lib/puppet/datatypes/result.rb
|
380
395
|
- bolt-modules/boltlib/lib/puppet/datatypes/resultset.rb
|
381
396
|
- bolt-modules/boltlib/lib/puppet/datatypes/target.rb
|
@@ -396,8 +411,10 @@ files:
|
|
396
411
|
- bolt-modules/boltlib/lib/puppet/functions/run_plan.rb
|
397
412
|
- bolt-modules/boltlib/lib/puppet/functions/run_script.rb
|
398
413
|
- bolt-modules/boltlib/lib/puppet/functions/run_task.rb
|
414
|
+
- bolt-modules/boltlib/lib/puppet/functions/run_task_with.rb
|
399
415
|
- bolt-modules/boltlib/lib/puppet/functions/set_config.rb
|
400
416
|
- bolt-modules/boltlib/lib/puppet/functions/set_feature.rb
|
417
|
+
- bolt-modules/boltlib/lib/puppet/functions/set_resources.rb
|
401
418
|
- bolt-modules/boltlib/lib/puppet/functions/set_var.rb
|
402
419
|
- bolt-modules/boltlib/lib/puppet/functions/upload_file.rb
|
403
420
|
- bolt-modules/boltlib/lib/puppet/functions/vars.rb
|
@@ -414,6 +431,7 @@ files:
|
|
414
431
|
- bolt-modules/file/lib/puppet/functions/file/readable.rb
|
415
432
|
- bolt-modules/file/lib/puppet/functions/file/write.rb
|
416
433
|
- bolt-modules/out/lib/puppet/functions/out/message.rb
|
434
|
+
- bolt-modules/prompt/lib/puppet/functions/prompt.rb
|
417
435
|
- bolt-modules/system/lib/puppet/functions/system/env.rb
|
418
436
|
- exe/bolt
|
419
437
|
- lib/bolt.rb
|
@@ -423,7 +441,6 @@ files:
|
|
423
441
|
- lib/bolt/apply_result.rb
|
424
442
|
- lib/bolt/apply_target.rb
|
425
443
|
- lib/bolt/bolt_option_parser.rb
|
426
|
-
- lib/bolt/boltdir.rb
|
427
444
|
- lib/bolt/catalog.rb
|
428
445
|
- lib/bolt/catalog/logging.rb
|
429
446
|
- lib/bolt/cli.rb
|
@@ -469,19 +486,19 @@ files:
|
|
469
486
|
- lib/bolt/plugin.rb
|
470
487
|
- lib/bolt/plugin/env_var.rb
|
471
488
|
- lib/bolt/plugin/module.rb
|
472
|
-
- lib/bolt/plugin/pkcs7.rb
|
473
489
|
- lib/bolt/plugin/prompt.rb
|
474
490
|
- lib/bolt/plugin/puppetdb.rb
|
475
491
|
- lib/bolt/plugin/task.rb
|
492
|
+
- lib/bolt/project.rb
|
476
493
|
- lib/bolt/puppetdb.rb
|
477
494
|
- lib/bolt/puppetdb/client.rb
|
478
495
|
- lib/bolt/puppetdb/config.rb
|
479
496
|
- lib/bolt/r10k_log_proxy.rb
|
480
497
|
- lib/bolt/rerun.rb
|
498
|
+
- lib/bolt/resource_instance.rb
|
481
499
|
- lib/bolt/result.rb
|
482
500
|
- lib/bolt/result_set.rb
|
483
501
|
- lib/bolt/secret.rb
|
484
|
-
- lib/bolt/secret/base.rb
|
485
502
|
- lib/bolt/shell.rb
|
486
503
|
- lib/bolt/shell/bash.rb
|
487
504
|
- lib/bolt/shell/bash/tmpdir.rb
|
@@ -502,6 +519,7 @@ files:
|
|
502
519
|
- lib/bolt/transport/simple.rb
|
503
520
|
- lib/bolt/transport/ssh.rb
|
504
521
|
- lib/bolt/transport/ssh/connection.rb
|
522
|
+
- lib/bolt/transport/ssh/exec_connection.rb
|
505
523
|
- lib/bolt/transport/winrm.rb
|
506
524
|
- lib/bolt/transport/winrm/connection.rb
|
507
525
|
- lib/bolt/util.rb
|
@@ -528,6 +546,7 @@ files:
|
|
528
546
|
- lib/bolt_spec/plans.rb
|
529
547
|
- lib/bolt_spec/plans/action_stubs.rb
|
530
548
|
- lib/bolt_spec/plans/action_stubs/command_stub.rb
|
549
|
+
- lib/bolt_spec/plans/action_stubs/plan_stub.rb
|
531
550
|
- lib/bolt_spec/plans/action_stubs/script_stub.rb
|
532
551
|
- lib/bolt_spec/plans/action_stubs/task_stub.rb
|
533
552
|
- lib/bolt_spec/plans/action_stubs/upload_stub.rb
|