Skip to content

Commit bb43e30

Browse files
committedMar 8, 2021
S3Source does not extend any Chef classes, so config is not an inherited attribute and as such needs to be passed in to fetch() explicitly
Signed-off-by: Kat Rossiter <signe@users.noreply.github.com>
1 parent 1ea8a45 commit bb43e30

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed
 

‎lib/chef/knife/ec2_server_create.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -522,15 +522,15 @@ def download_validation_key(tempfile)
522522

523523
def s3_validation_key
524524
@s3_validation_key ||= begin
525-
Chef::Knife::S3Source.fetch(config[:validation_key_url])
525+
Chef::Knife::S3Source.fetch(config[:validation_key_url], config)
526526
end
527527
end
528528

529529
def s3_secret
530530
@s3_secret ||= begin
531531
return false unless config[:s3_secret]
532532

533-
Chef::Knife::S3Source.fetch(config[:s3_secret])
533+
Chef::Knife::S3Source.fetch(config[:s3_secret], config)
534534
end
535535
end
536536

‎lib/chef/knife/helpers/s3_source.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@
1717
class Chef
1818
class Knife
1919
class S3Source
20-
attr_accessor :url
20+
attr_accessor :url, :config
2121

22-
def self.fetch(url)
22+
def self.fetch(url, config)
2323
source = Chef::Knife::S3Source.new
2424
source.url = url
25+
source.config = config
2526
source.body
2627
end
2728

‎spec/unit/s3_source_deps_spec.rb

+9-7
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,22 @@
1414

1515
it "lazy loads Aws::S3::Client without required config" do
1616
begin
17-
Chef::Knife::S3Source.fetch("test")
17+
knife_config = {}
18+
Chef::Knife::S3Source.fetch("test", knife_config)
1819
rescue Exception => e
19-
expect(e).to be_a_kind_of(NoMethodError)
20+
expect(e).to be_a_kind_of(ArgumentError)
2021
end
2122
end
2223

2324
it "lazy loads Aws::S3::Client with required config" do
2425
begin
25-
Chef::Config[:knife][:aws_access_key_id] = "aws_access_key_id"
26-
Chef::Config[:knife][:aws_secret_access_key] = "aws_secret_access_key"
27-
Chef::Config[:knife][:region] = "test-region"
28-
Chef::Knife::S3Source.fetch("test")
26+
knife_config = {}
27+
knife_config[:aws_access_key_id] = "aws_access_key_id"
28+
knife_config[:aws_secret_access_key] = "aws_secret_access_key"
29+
knife_config[:region] = "test-region"
30+
Chef::Knife::S3Source.fetch("/test/testfile", knife_config)
2931
rescue Exception => e
30-
expect(e).to be_a_kind_of(ArgumentError)
32+
expect(e).to be_a_kind_of(Aws::Errors::NoSuchEndpointError)
3133
end
3234
end
3335
end

0 commit comments

Comments
 (0)