1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00

Implement remove_tags_from_stream

This commit is contained in:
Michael Hale 2015-07-02 16:52:41 -04:00
parent 0ec563f778
commit 28a01545e3
3 changed files with 59 additions and 1 deletions

View file

@ -26,7 +26,7 @@ module Fog
request :merge_shards
request :add_tags_to_stream
request :list_tags_for_stream
# request :remove_tags_from_stream
request :remove_tags_from_stream
class Real
include Fog::AWS::CredentialFetcher::ConnectionMethods

View file

@ -0,0 +1,49 @@
module Fog
module AWS
class Kinesis
class Real
# Deletes tags from the specified Amazon Kinesis stream.
#
# ==== Options
# * StreamName<~String>: The name of the stream.
# * TagKeys<~Array>: A list of tag keys.
# ==== Returns
# * response<~Excon::Response>:
#
# ==== See Also
# https://docs.aws.amazon.com/kinesis/latest/APIReference/API_RemoveTagsFromStream.html
#
def remove_tags_from_stream(options={})
body = {
"StreamName" => options.delete("StreamName"),
"TagKeys" => options.delete("TagKeys")
}.reject{ |_,v| v.nil? }
request({
'X-Amz-Target' => "Kinesis_#{@version}.RemoveTagsFromStream",
:body => body,
}.merge(options))
end
end
class Mock
def remove_tags_from_stream(options={})
stream_name = options.delete("StreamName")
tags = options.delete("TagKeys")
unless stream = data[:kinesis_streams].detect{ |s| s["StreamName"] == stream_name }
raise 'unknown stream'
end
stream["Tags"] = stream["Tags"].delete_if { |k,_| tags.include?(k) }
response = Excon::Response.new
response.status = 200
response.body = ""
response
end
end
end
end
end

View file

@ -227,6 +227,15 @@ Shindo.tests('AWS::Kinesis | stream requests', ['aws', 'kinesis']) do
end
end
tests("#remove_tags_from_stream").returns("") do
Fog::AWS[:kinesis].remove_tags_from_stream("StreamName" => @stream_id, "TagKeys" => %w[b]).body.tap do
returns({"a" => "1"}) {
body = Fog::AWS[:kinesis].list_tags_for_stream("StreamName" => @stream_id).body
body["Tags"].inject({}){ |m, tag| m.merge(tag["Key"] => tag["Value"]) }
}
end
end
tests("#delete_stream").returns("") do
Fog::AWS[:kinesis].delete_stream("StreamName" => @stream_id).body
end