1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/google/requests/compute/insert_firewall.rb
Ferran Rodenas 3ebe34c280 [google|compute] Refactor Compute to use the new Shared module
Commit d801b27 introduced a new Shared module with logic to initialize
a google_client_api and to make requests.

This commit refactors Compute to use the new Shared module.
2014-07-30 12:19:50 -07:00

43 lines
1.4 KiB
Ruby

module Fog
module Compute
class Google
class Mock
def insert_firewall(firewall_name, allowed, network = GOOGLE_COMPUTE_DEFAULT_NETWORK, options = {})
Fog::Mock.not_implemented
end
end
class Real
def insert_firewall(firewall_name, allowed, network = GOOGLE_COMPUTE_DEFAULT_NETWORK, options = {})
unless network.start_with? 'http'
network = "#{@api_url}#{@project}/global/networks/#{network}"
end
api_method = @compute.firewalls.insert
parameters = {
'project' => @project,
}
body_object = {
"name" => firewall_name,
"network" => network,
"allowed" => allowed,
}
unless options[:description].nil?
body_object["description"] = options[:description]
end
unless options[:source_ranges].nil? || options[:source_ranges].empty?
body_object["sourceRanges"] = options[:source_ranges]
end
unless options[:source_tags].nil? || options[:source_tags].empty?
body_object["sourceTags"] = options[:source_tags]
end
unless options[:target_tags].nil? || options[:target_tags].empty?
body_object["targetTags"] = options[:target_tags]
end
request(api_method, parameters, body_object)
end
end
end
end
end