Skip to content

Commit

Permalink
(GH-3309) Ensure bundled-ruby defaults are applied at target init
Browse files Browse the repository at this point in the history
Previously defaults were not applied until an action was actually requested on a target. This made inventory resolution confusing and non-determanistic behavior with apply_prep. This commit moves application of defaults for a target to the init method for creating a target object.

!bug

* **Apply bundled-ruby defaults at target creation** ([#3309](3309))

  Ensure defaults associated with `bundled-ruby` transport config are
  applied at target initialization.
  • Loading branch information
donoghuc committed May 10, 2024
1 parent 7e8cede commit 8122178
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 9 deletions.
4 changes: 3 additions & 1 deletion lib/bolt/inventory/target.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def initialize(target_data, inventory)
@name = @uri
@safe_name = @uri_obj.omit(:password).to_str.sub(%r{^//}, '')
end

# handle special localhost target
if @name == 'localhost'
default = { 'config' => { 'transport' => 'local' } }
target_data = Bolt::Util.deep_merge(default, target_data)
Expand All @@ -53,6 +53,8 @@ def initialize(target_data, inventory)
@inventory = inventory

validate
# after setting config, apply local defaults when using bundled ruby
set_local_defaults if transport_config['bundled-ruby']
end

def set_local_defaults
Expand Down
4 changes: 0 additions & 4 deletions lib/bolt/target.rb
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,6 @@ def resources
inventory_target.resources
end

def set_local_defaults
inventory_target.set_local_defaults
end

# rubocop:disable Naming/AccessorMethodName
def set_resource(resource)
inventory_target.set_resource(resource)
Expand Down
4 changes: 0 additions & 4 deletions lib/bolt/transport/local.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ def connected?(_target)
end

def with_connection(target)
if target.transport_config['bundled-ruby']
target.set_local_defaults
end

yield Connection.new(target)
end
end
Expand Down

0 comments on commit 8122178

Please sign in to comment.