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

Implement ELBV2 add_tags endpoint

This commit is contained in:
KevinLoiseau 2019-11-12 14:57:13 +01:00
parent beb3199492
commit e220c91298
No known key found for this signature in database
GPG key ID: 709159A779B96CC3
3 changed files with 56 additions and 0 deletions

View file

@ -5,6 +5,7 @@ module Fog
recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :version, :instrumentor, :instrumentor_name
request_path 'fog/aws/requests/elbv2'
request :add_tags
request :create_load_balancer
request :describe_load_balancers
request :describe_listeners

View file

@ -0,0 +1,10 @@
module Fog
module Parsers
module AWS
module ELBV2
class Empty < ELB::Empty
end
end
end
end
end

View file

@ -0,0 +1,45 @@
module Fog
module AWS
class ELBV2
class Real
require 'fog/aws/parsers/elbv2/empty'
# adds tags to a load balancer instance
# http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_AddTags.html
# ==== Parameters
# * resource_arn <~String> - The Amazon Resource Name (ARN) of the resource
# * tags <~Hash> A Hash of (String) key-value pairs
# ==== Returns
# * response<~Excon::Response>:
# * body<~Hash>:
def add_tags(resource_arn, tags)
keys = tags.keys.sort
values = keys.map {|key| tags[key]}
request({
'Action' => 'AddTags',
'ResourceArns.member.1' => resource_arn,
:parser => Fog::Parsers::AWS::ELBV2::Empty.new,
}.merge(Fog::AWS.indexed_param('Tags.member.%d.Key', keys))
.merge(Fog::AWS.indexed_param('Tags.member.%d.Value', values)))
end
end
class Mock
def add_tags(resource_arn, tags)
response = Excon::Response.new
if self.data[:load_balancers_v2][resource_arn]
self.data[:tags][resource_arn].merge! tags
response.status = 200
response.body = {
"ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id }
}
response
else
raise Fog::AWS::ELBV2::NotFound.new("Elastic load balancer #{resource_arn} not found")
end
end
end
end
end
end