def delete_tags(resources, tags)
tagged = resources.map do |resource_id|
type = case resource_id
when /^ami\-[a-z0-9]{8}$/i
'image'
when /^i\-[a-z0-9]{8}$/i
'instance'
when /^snap\-[a-z0-9]{8}$/i
'snapshot'
when /^vol\-[a-z0-9]{8}$/i
'volume'
end
if type && self.data["#{type}s""#{type}s"][resource_id]
{ 'resourceId' => resource_id, 'resourceType' => type }
else
raise(Fog::Service::NotFound.new("The #{type} ID '#{resource_id}' does not exist"))
end
end
tags.each do |key, value|
self.data[:tags][key][value] = self.data[:tags][key][value] - tagged
end
tagged.each do |resource|
object = self.data["#{resource['resourceType']}s""#{resource['resourceType']}s"][resource['resourceId']]
tags.each do |key, value|
tagset = object['tagSet']
tagset.delete(key) if tagset.has_key?(key) && (value.nil? || tagset[key] == value)
end
end
response = Excon::Response.new
response.status = true
response.body = {
'requestId' => Fog::AWS::Mock.request_id,
'return' => true
}
response
end