Skip to content

Commit 06bffcf

Browse files
committed
We now can inflate blocks at runtime for the HTTP Request Message - closes CHEF-35
1 parent 8defcd0 commit 06bffcf

2 files changed

Lines changed: 35 additions & 4 deletions

File tree

chef/lib/chef/provider/http_request.rb

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ def load_current_resource
3030

3131
# Send a GET request to @new_resource.url, with ?message=@new_resource.message
3232
def action_get
33+
message = check_message(@new_resource.message)
3334
body = @rest.run_request(
3435
:GET,
35-
@rest.create_url("#{@new_resource.url}?message=#{@new_resource.message}"),
36+
@rest.create_url("#{@new_resource.url}?message=#{message}"),
3637
false,
3738
10,
3839
false
@@ -44,10 +45,11 @@ def action_get
4445

4546
# Send a PUT request to @new_resource.url, with the message as the payload
4647
def action_put
48+
message = check_message(@new_resource.message)
4749
body = @rest.run_request(
4850
:PUT,
4951
@rest.create_url("#{@new_resource.url}"),
50-
@new_resource.message,
52+
message,
5153
10,
5254
false
5355
)
@@ -58,15 +60,16 @@ def action_put
5860

5961
# Send a POST request to @new_resource.url, with the message as the payload
6062
def action_post
63+
message = check_message(@new_resource.message)
6164
body = @rest.run_request(
6265
:POST,
6366
@rest.create_url("#{@new_resource.url}"),
64-
@new_resource.message,
67+
message,
6568
10,
6669
false
6770
)
6871
@new_resource.updated = true
69-
Chef::Log.info("#{@new_resource} POST to #{@new_resource.url} message: #{@new_resource.message.inspect} successful")
72+
Chef::Log.info("#{@new_resource} POST to #{@new_resource.url} message: #{message.inspect} successful")
7073
Chef::Log.debug("#{@new_resource} POST request response: #{body}")
7174
end
7275

@@ -84,6 +87,16 @@ def action_delete
8487
Chef::Log.debug("#{@new_resource} DELETE request response: #{body}")
8588
end
8689

90+
private
91+
92+
def check_message(message)
93+
if message.kind_of?(Proc)
94+
message.call
95+
else
96+
message
97+
end
98+
end
99+
87100
end
88101
end
89102
end

chef/spec/unit/provider/http_request_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@
7676
@provider.action_get
7777
end
7878

79+
it "should inflate a message block at runtime" do
80+
@new_resource.stub!(:message).and_return(lambda { "return" })
81+
@rest.should_receive(:create_url).with("#{@new_resource.url}?message=return")
82+
@provider.action_get
83+
end
84+
7985
it "should run a GET request" do
8086
@rest.should_receive(:run_request).with(:GET, @rest.create_url, false, 10, false)
8187
@provider.action_get
@@ -115,6 +121,12 @@
115121
@provider.action_put
116122
end
117123

124+
it "should inflate a message block at runtime" do
125+
@new_resource.stub!(:message).and_return(lambda { "return" })
126+
@rest.should_receive(:run_request).with(:PUT, @rest.create_url, "return", 10, false)
127+
@provider.action_put
128+
end
129+
118130
it "should update the resource" do
119131
@new_resource.should_receive(:updated=).with(true)
120132
@provider.action_put
@@ -149,6 +161,12 @@
149161
@provider.action_post
150162
end
151163

164+
it "should inflate a message block at runtime" do
165+
@new_resource.stub!(:message).and_return(lambda { "return" })
166+
@rest.should_receive(:run_request).with(:POST, @rest.create_url, "return", 10, false)
167+
@provider.action_post
168+
end
169+
152170
it "should update the resource" do
153171
@new_resource.should_receive(:updated=).with(true)
154172
@provider.action_post

0 commit comments

Comments
 (0)