mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00

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.
43 lines
1.4 KiB
Ruby
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
|