Class: Fog::Compute::Google::Real
- Inherits:
-
Object
- Object
- Fog::Compute::Google::Real
- Includes:
- Collections, Shared
- Defined in:
- lib/fog/google/compute.rb,
lib/fog/google/requests/compute/get_disk.rb,
lib/fog/google/requests/compute/get_zone.rb,
lib/fog/google/requests/compute/set_tags.rb,
lib/fog/google/requests/compute/get_image.rb,
lib/fog/google/requests/compute/get_route.rb,
lib/fog/google/requests/compute/get_region.rb,
lib/fog/google/requests/compute/get_server.rb,
lib/fog/google/requests/compute/list_disks.rb,
lib/fog/google/requests/compute/list_zones.rb,
lib/fog/google/requests/compute/attach_disk.rb,
lib/fog/google/requests/compute/delete_disk.rb,
lib/fog/google/requests/compute/detach_disk.rb,
lib/fog/google/requests/compute/get_address.rb,
lib/fog/google/requests/compute/get_network.rb,
lib/fog/google/requests/compute/get_project.rb,
lib/fog/google/requests/compute/insert_disk.rb,
lib/fog/google/requests/compute/list_images.rb,
lib/fog/google/requests/compute/list_routes.rb,
lib/fog/google/requests/compute/delete_image.rb,
lib/fog/google/requests/compute/delete_route.rb,
lib/fog/google/requests/compute/get_firewall.rb,
lib/fog/google/requests/compute/get_snapshot.rb,
lib/fog/google/requests/compute/insert_image.rb,
lib/fog/google/requests/compute/insert_route.rb,
lib/fog/google/requests/compute/list_regions.rb,
lib/fog/google/requests/compute/list_servers.rb,
lib/fog/google/requests/compute/set_metadata.rb,
lib/fog/google/requests/compute/delete_server.rb,
lib/fog/google/requests/compute/insert_server.rb,
lib/fog/google/requests/compute/list_networks.rb,
lib/fog/google/requests/compute/delete_address.rb,
lib/fog/google/requests/compute/delete_network.rb,
lib/fog/google/requests/compute/insert_address.rb,
lib/fog/google/requests/compute/insert_network.rb,
lib/fog/google/requests/compute/list_addresses.rb,
lib/fog/google/requests/compute/list_firewalls.rb,
lib/fog/google/requests/compute/list_snapshots.rb,
lib/fog/google/requests/compute/delete_firewall.rb,
lib/fog/google/requests/compute/delete_snapshot.rb,
lib/fog/google/requests/compute/get_target_pool.rb,
lib/fog/google/requests/compute/insert_firewall.rb,
lib/fog/google/requests/compute/insert_snapshot.rb,
lib/fog/google/requests/compute/get_machine_type.rb,
lib/fog/google/requests/compute/list_target_pools.rb,
lib/fog/google/requests/compute/delete_target_pool.rb,
lib/fog/google/requests/compute/get_zone_operation.rb,
lib/fog/google/requests/compute/insert_target_pool.rb,
lib/fog/google/requests/compute/list_machine_types.rb,
lib/fog/google/requests/compute/get_forwarding_rule.rb,
lib/fog/google/requests/compute/get_global_operation.rb,
lib/fog/google/requests/compute/get_region_operation.rb,
lib/fog/google/requests/compute/list_zone_operations.rb,
lib/fog/google/requests/compute/delete_zone_operation.rb,
lib/fog/google/requests/compute/get_http_health_check.rb,
lib/fog/google/requests/compute/list_forwarding_rules.rb,
lib/fog/google/requests/compute/delete_forwarding_rule.rb,
lib/fog/google/requests/compute/get_target_pool_health.rb,
lib/fog/google/requests/compute/insert_forwarding_rule.rb,
lib/fog/google/requests/compute/list_global_operations.rb,
lib/fog/google/requests/compute/list_region_operations.rb,
lib/fog/google/requests/compute/delete_global_operation.rb,
lib/fog/google/requests/compute/delete_region_operation.rb,
lib/fog/google/requests/compute/list_http_health_checks.rb,
lib/fog/google/requests/compute/delete_http_health_check.rb,
lib/fog/google/requests/compute/insert_http_health_check.rb,
lib/fog/google/requests/compute/add_target_pool_instances.rb,
lib/fog/google/requests/compute/list_aggregated_addresses.rb,
lib/fog/google/requests/compute/set_forwarding_rule_target.rb,
lib/fog/google/requests/compute/remove_target_pool_instance.rb,
lib/fog/google/requests/compute/remove_target_pool_instances.rb,
lib/fog/google/requests/compute/set_common_instance_metadata.rb,
lib/fog/google/requests/compute/add_target_pool_health_checks.rb,
lib/fog/google/requests/compute/list_aggregated_machine_types.rb,
lib/fog/google/requests/compute/remove_target_pool_health_checks.rb
Instance Attribute Summary collapse
-
#api_url ⇒ Object
readonly
Returns the value of attribute api_url.
-
#client ⇒ Object
Returns the value of attribute client.
-
#compute ⇒ Object
readonly
Returns the value of attribute compute.
Attributes included from Shared
Instance Method Summary collapse
- #add_target_pool_health_checks(target_pool, health_checks) ⇒ Object
- #add_target_pool_instances(target_pool, instances) ⇒ Object
- #attach_disk(instance, zone, deviceName) ⇒ Object
-
#build_response(result) ⇒ Object
result = Google::APIClient::Result returns Excon::Response.
- #build_result(api_method, parameters, body_object = nil) ⇒ Object
- #delete_address(address_name, region_name) ⇒ Object
- #delete_disk(disk_name, zone_name) ⇒ Object
- #delete_firewall(firewall_name) ⇒ Object
- #delete_forwarding_rule(forwarding_rule_name, region_name) ⇒ Object
- #delete_global_operation(operation) ⇒ Object
- #delete_http_health_check(name) ⇒ Object
- #delete_image(image_name) ⇒ Object
- #delete_network(network_name) ⇒ Object
- #delete_region_operation(region_name, operation) ⇒ Object
- #delete_route(identity) ⇒ Object
- #delete_server(server_name, zone_name = nil) ⇒ Object
- #delete_snapshot(snapshot_name) ⇒ Object
- #delete_target_pool(target_pool_name, region_name) ⇒ Object
- #delete_zone_operation(zone_name, operation) ⇒ Object
- #detach_disk(instance, zone, deviceName) ⇒ Object
- #format_metadata(metadata) ⇒ Object
- #get_address(address_name, region_name) ⇒ Object
- #get_disk(disk_name, zone_name) ⇒ Object
- #get_firewall(firewall_name) ⇒ Object
- #get_forwarding_rule(forwarding_rule_name, region_name) ⇒ Object
- #get_global_operation(operation) ⇒ Object
- #get_http_health_check(name) ⇒ Object
- #get_image(image_name, project = @project) ⇒ Object
- #get_machine_type(machine_type_name, zone_name = nil) ⇒ Object
- #get_network(network_name) ⇒ Object
- #get_project(identity) ⇒ Object
- #get_region(identity) ⇒ Object
- #get_region_operation(region_name, operation) ⇒ Object
- #get_route(identity) ⇒ Object
- #get_server(server_name, zone_name) ⇒ Object
- #get_snapshot(snap_name, project = @project) ⇒ Object
- #get_target_pool(target_pool_name, region_name) ⇒ Object
- #get_target_pool_health(target_pool) ⇒ Object
- #get_zone(zone_name) ⇒ Object
- #get_zone_operation(zone_name, operation) ⇒ Object
- #handle_disks(options) ⇒ Object
-
#initialize(options) ⇒ Real
constructor
A new instance of Real.
- #insert_address(address_name, region_name, options = {}) ⇒ Object
- #insert_disk(disk_name, zone_name, image_name = nil, opts = {}) ⇒ Object
- #insert_firewall(firewall_name, allowed, network = @default_network, options = {}) ⇒ Object
- #insert_forwarding_rule(forwarding_rule_name, region_name, opts = {}) ⇒ Object
- #insert_http_health_check(name, opts = {}) ⇒ Object
- #insert_image(image_name, options = {}) ⇒ Object
- #insert_network(network_name, ip_range, options = {}) ⇒ Object
- #insert_route(name, network, dest_range, priority, options = {}) ⇒ Object
- #insert_server(server_name, zone_name, options = {}, *deprecated_args) ⇒ Object
- #insert_snapshot(disk_name, zone_name, project = @project, opts = {}) ⇒ Object
- #insert_target_pool(target_pool_name, region_name, opts = {}) ⇒ Object
- #list_addresses(region_name) ⇒ Object
- #list_aggregated_addresses ⇒ Object
- #list_aggregated_machine_types ⇒ Object
- #list_disks(zone_name) ⇒ Object
- #list_firewalls ⇒ Object
- #list_forwarding_rules(region_name) ⇒ Object
- #list_global_operations ⇒ Object
- #list_http_health_checks ⇒ Object
- #list_images(project = nil) ⇒ Object
- #list_machine_types(zone_name) ⇒ Object
- #list_networks ⇒ Object
- #list_region_operations(region) ⇒ Object
- #list_regions ⇒ Object
- #list_routes ⇒ Object
- #list_servers(zone_name) ⇒ Object
- #list_snapshots(project = nil) ⇒ Object
- #list_target_pools(region_name) ⇒ Object
- #list_zone_operations(zone) ⇒ Object
- #list_zones ⇒ Object
-
#new_pk12_google_client(google_client_email, google_key_location, app_name = nil, app_version = nil) ⇒ Object
Public: Create a Google::APIClient with a pkcs12 key and a user email.
- #remove_target_pool_health_checks(target_pool, health_checks) ⇒ Object
- #remove_target_pool_instances(target_pool, instances) ⇒ Object
- #set_common_instance_metadata(identity, current_fingerprint, metadata = {}) ⇒ Object
- #set_forwarding_rule_target(rule, target) ⇒ Object
-
#set_metadata(instance, zone, fingerprint, metadata = {}) ⇒ Object
Set an instance metadata.
- #set_tags(instance, zone, tags = []) ⇒ Object
Methods included from Shared
#backoff_if_unfound, #build_excon_response, #find_zone, #shared_initialize
Constructor Details
#initialize(options) ⇒ Real
Returns a new instance of Real.
908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 |
# File 'lib/fog/google/compute.rb', line 908 def initialize() # NOTE: loaded here to avoid requiring this as a core Fog dependency begin require 'google/api_client' rescue LoadError => error Fog::Logger.warning("Please install the google-api-client gem before using this provider.") raise error end shared_initialize() if ![:google_client].nil? @client = [:google_client] end if @client.nil? if ![:google_client_email].nil? and ![:google_key_location].nil? @client = self.new_pk12_google_client( [:google_client_email], File.([:google_key_location]), [:app_name], [:app_verion]) else Fog::Logger.debug("Fog::Compute::Google.client has not been initialized nor are the :google_client_email and :google_key_location options set, so we can not create one for you.") raise ArgumentError.new("No Google API Client has been initialized.") end end # We want to always mention we're using Fog. if @client.user_agent.nil? or @client.user_agent.empty? @client.user_agent = "" elsif !@client.user_agent.include? "fog" @client.user_agent += "fog/#{Fog::VERSION}" end @compute = @client.discovered_api('compute', api_version) end |
Instance Attribute Details
#api_url ⇒ Object (readonly)
Returns the value of attribute api_url.
906 907 908 |
# File 'lib/fog/google/compute.rb', line 906 def api_url @api_url end |
#client ⇒ Object
Returns the value of attribute client.
905 906 907 |
# File 'lib/fog/google/compute.rb', line 905 def client @client end |
#compute ⇒ Object (readonly)
Returns the value of attribute compute.
906 907 908 |
# File 'lib/fog/google/compute.rb', line 906 def compute @compute end |
Instance Method Details
#add_target_pool_health_checks(target_pool, health_checks) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/google/requests/compute/add_target_pool_health_checks.rb', line 15 def add_target_pool_health_checks(target_pool, health_checks) api_method = @compute.target_pools.add_health_check parameters = { 'project' => @project, 'targetPool' => target_pool.name, 'region' => target_pool.region.split('/')[-1] } body = { 'healthChecks' => health_checks.collect { |i| { 'healthCheck' => i } } } result = self.build_result(api_method, parameters, body_object=body) self.build_response(result) end |
#add_target_pool_instances(target_pool, instances) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/google/requests/compute/add_target_pool_instances.rb', line 15 def add_target_pool_instances(target_pool, instances) api_method = @compute.target_pools.add_instance parameters = { 'project' => @project, 'targetPool' => target_pool.name, 'region' => target_pool.region.split('/')[-1] } body = { 'instances' => instances.collect { |i| { 'instance' => i } } } result = self.build_result(api_method, parameters, body_object=body) self.build_response(result) end |
#attach_disk(instance, zone, deviceName) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/google/requests/compute/attach_disk.rb', line 13 def attach_disk(instance, zone, deviceName) api_method = @compute.instances.attach_disk parameters = { 'project' => @project, 'instance' => instance, 'zone' => zone } body_object = { "deviceName" => deviceName } result = self.build_result(api_method, parameters, body_object=body_object) response = self.build_response(result) end |
#build_response(result) ⇒ Object
result = Google::APIClient::Result returns Excon::Response
1007 1008 1009 |
# File 'lib/fog/google/compute.rb', line 1007 def build_response(result) build_excon_response(result.body.nil? || result.body.empty? ? nil : Fog::JSON.decode(result.body), result.status) end |
#build_result(api_method, parameters, body_object = nil) ⇒ Object
990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 |
# File 'lib/fog/google/compute.rb', line 990 def build_result(api_method, parameters, body_object=nil) if body_object result = @client.execute( :api_method => api_method, :parameters => parameters, :body_object => body_object ) else result = @client.execute( :api_method => api_method, :parameters => parameters ) end end |
#delete_address(address_name, region_name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/google/requests/compute/delete_address.rb', line 15 def delete_address(address_name, region_name) api_method = @compute.addresses.delete parameters = { 'project' => @project, 'address' => address_name, 'region' => region_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_disk(disk_name, zone_name) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/fog/google/requests/compute/delete_disk.rb', line 35 def delete_disk(disk_name, zone_name) if zone_name.start_with? 'http' zone_name = zone_name.split('/')[-1] end api_method = @compute.disks.delete parameters = { 'project' => @project, 'disk' => disk_name, 'zone' => zone_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_firewall(firewall_name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/delete_firewall.rb', line 15 def delete_firewall(firewall_name) api_method = @compute.firewalls.delete parameters = { 'project' => @project, 'firewall' => firewall_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_forwarding_rule(forwarding_rule_name, region_name) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/google/requests/compute/delete_forwarding_rule.rb', line 16 def delete_forwarding_rule(forwarding_rule_name, region_name) if region_name.start_with? 'http' region_name = region_name.split('/')[-1] end api_method = @compute.forwarding_rules.delete parameters = { 'project' => @project, 'forwardingRule' => forwarding_rule_name, 'region' => region_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_global_operation(operation) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/google/requests/compute/delete_global_operation.rb', line 16 def delete_global_operation(operation) api_method = @compute.global_operations.delete parameters = { 'project' => @project, 'operation' => operation } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_http_health_check(name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/delete_http_health_check.rb', line 15 def delete_http_health_check(name) api_method = @compute.http_health_checks.delete parameters = { 'project' => @project, 'httpHealthCheck' => name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_image(image_name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/delete_image.rb', line 15 def delete_image(image_name) api_method = @compute.images.delete parameters = { 'project' => @project, 'image' => image_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_network(network_name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/delete_network.rb', line 15 def delete_network(network_name) api_method = @compute.networks.delete parameters = { 'project' => @project, 'network' => network_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_region_operation(region_name, operation) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/fog/google/requests/compute/delete_region_operation.rb', line 16 def delete_region_operation(region_name, operation) if region_name.start_with? 'http' region_name = region_name.split('/')[-1] end api_method = @compute.region_operations.delete parameters = { 'project' => @project, 'region' => region_name, 'operation' => operation } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_route(identity) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/fog/google/requests/compute/delete_route.rb', line 12 def delete_route(identity) api_method = @compute.routes.delete parameters = { 'project' => @project, 'route' => identity, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_server(server_name, zone_name = nil) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/fog/google/requests/compute/delete_server.rb', line 57 def delete_server(server_name, zone_name=nil) zone_name = find_zone(zone_name) api_method = @compute.instances.delete parameters = { 'project' => @project, 'zone' => zone_name, 'instance' => server_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_snapshot(snapshot_name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/delete_snapshot.rb', line 15 def delete_snapshot(snapshot_name) api_method = @compute.snapshots.delete parameters = { 'project' => @project, 'snapshot' => snapshot_name, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_target_pool(target_pool_name, region_name) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/google/requests/compute/delete_target_pool.rb', line 16 def delete_target_pool(target_pool_name, region_name) if region_name.start_with? 'http' region_name = region_name.split('/')[-1] end api_method = @compute.target_pools.delete parameters = { 'project' => @project, 'targetPool' => target_pool_name, 'region' => region_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#delete_zone_operation(zone_name, operation) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/fog/google/requests/compute/delete_zone_operation.rb', line 16 def delete_zone_operation(zone_name, operation) if zone_name.start_with? 'http' zone_name = zone_name.split('/')[-1] end api_method = @compute.zone_operations.delete parameters = { 'project' => @project, 'zone' => zone_name, 'operation' => operation } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#detach_disk(instance, zone, deviceName) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/fog/google/requests/compute/detach_disk.rb', line 13 def detach_disk(instance, zone, deviceName) api_method = @compute.instances.detach_disk parameters = { 'project' => @project, 'instance' => instance, 'zone' => zone, } body_object = { "deviceName" => deviceName } result = self.build_result(api_method, parameters, body_object=body_object) response = self.build_response(result) end |
#format_metadata(metadata) ⇒ Object
116 117 118 |
# File 'lib/fog/google/requests/compute/insert_server.rb', line 116 def () { "items" => .map {|k,v| {"key" => k, "value" => v}} } end |
#get_address(address_name, region_name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/google/requests/compute/get_address.rb', line 15 def get_address(address_name, region_name) api_method = @compute.addresses.get parameters = { 'project' => @project, 'address' => address_name, 'region' => region_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_disk(disk_name, zone_name) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/fog/google/requests/compute/get_disk.rb', line 39 def get_disk(disk_name, zone_name) if zone_name.start_with? 'http' zone_name = zone_name.split('/')[-1] end api_method = @compute.disks.get parameters = { 'project' => @project, 'disk' => disk_name, 'zone' => zone_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_firewall(firewall_name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/get_firewall.rb', line 15 def get_firewall(firewall_name) api_method = @compute.firewalls.get parameters = { 'project' => @project, 'firewall' => firewall_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_forwarding_rule(forwarding_rule_name, region_name) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/fog/google/requests/compute/get_forwarding_rule.rb', line 13 def get_forwarding_rule(forwarding_rule_name, region_name) if region_name.start_with? 'http' region_name = region_name.split('/')[-1] end api_method = @compute.forwarding_rules.get parameters = { 'project' => @project, 'forwardingRule' => forwarding_rule_name, 'region' => region_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_global_operation(operation) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/google/requests/compute/get_global_operation.rb', line 16 def get_global_operation(operation) api_method = @compute.global_operations.get parameters = { 'project' => @project, 'operation' => operation } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_http_health_check(name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/get_http_health_check.rb', line 15 def get_http_health_check(name) api_method = @compute.http_health_checks.get parameters = { 'project' => @project, 'httpHealthCheck' => name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_image(image_name, project = @project) ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/fog/google/requests/compute/get_image.rb', line 28 def get_image(image_name, project=@project) api_method = @compute.images.get parameters = { 'image' => image_name, 'project' => project, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_machine_type(machine_type_name, zone_name = nil) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/fog/google/requests/compute/get_machine_type.rb', line 30 def get_machine_type(machine_type_name, zone_name = nil) zone_name = list_zones.body['items'].first['name'] if zone_name.nil? if zone_name.start_with? 'http' zone_name = zone_name.split('/')[-1] end api_method = @compute.machine_types.get parameters = { 'zone' => zone_name, 'project' => 'google', 'machineType' => machine_type_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_network(network_name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/get_network.rb', line 15 def get_network(network_name) api_method = @compute.networks.get parameters = { 'project' => @project, 'network' => network_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_project(identity) ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/fog/google/requests/compute/get_project.rb', line 12 def get_project(identity) api_method = @compute.projects.get parameters = { :project => identity, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_region(identity) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/fog/google/requests/compute/get_region.rb', line 12 def get_region(identity) api_method = @compute.regions.get parameters = { 'project' => @project, 'region' => identity.split('/')[-1], } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_region_operation(region_name, operation) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/google/requests/compute/get_region_operation.rb', line 16 def get_region_operation(region_name, operation) if region_name.start_with? 'http' region_name = region_name.split('/')[-1] end api_method = @compute.region_operations.get parameters = { 'project' => @project, 'region' => region_name, 'operation' => operation } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_route(identity) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/fog/google/requests/compute/get_route.rb', line 12 def get_route(identity) api_method = @compute.routes.get parameters = { 'project' => @project, 'route' => identity, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_server(server_name, zone_name) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/fog/google/requests/compute/get_server.rb', line 60 def get_server(server_name, zone_name) if zone_name.is_a? Excon::Response zone = zone_name.body["name"] else zone = zone_name end api_method = @compute.instances.get parameters = { 'project' => @project, 'zone' => zone, 'instance' => server_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_snapshot(snap_name, project = @project) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/google/requests/compute/get_snapshot.rb', line 15 def get_snapshot(snap_name, project=@project) if snap_name.nil? raise ArgumentError.new "snap_name must not be nil." end api_method = @compute.snapshots.get parameters = { 'snapshot' => snap_name, 'project' => project, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_target_pool(target_pool_name, region_name) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/fog/google/requests/compute/get_target_pool.rb', line 13 def get_target_pool(target_pool_name, region_name) if region_name.start_with? 'http' region_name = region_name.split('/')[-1] end api_method = @compute.target_pools.get parameters = { 'project' => @project, 'targetPool' => target_pool_name, 'region' => region_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_target_pool_health(target_pool) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/fog/google/requests/compute/get_target_pool_health.rb', line 15 def get_target_pool_health(target_pool) api_method = @compute.target_pools.get_health parameters = { 'project' => @project, 'targetPool' => target_pool.name, 'region' => target_pool.region.split('/')[-1] } health_results = target_pool.instances.collect do |instance| body = { 'instance' => instance } resp = build_response(build_result(api_method, parameters, body_object=body)) [instance, resp.data[:body]['healthStatus']] end Hash[health_results] end |
#get_zone(zone_name) ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/fog/google/requests/compute/get_zone.rb', line 28 def get_zone(zone_name) api_method = @compute.zones.get parameters = { 'project' => @project, 'zone' => zone_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#get_zone_operation(zone_name, operation) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/fog/google/requests/compute/get_zone_operation.rb', line 40 def get_zone_operation(zone_name, operation) if zone_name.start_with? 'http' zone_name = zone_name.split('/')[-1] end api_method = @compute.zone_operations.get parameters = { 'project' => @project, 'zone' => zone_name, 'operation' => operation } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#handle_disks(options) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/fog/google/requests/compute/insert_server.rb', line 101 def handle_disks() disks = [] # An array of persistent disks. You must supply a boot disk as the first disk in # this array and mark it as a boot disk using the disks[].boot property. .delete('disks').each do |disk| if disk.is_a? Disk disks << disk.get_object else disks << disk end end disks.first['boot'] = true disks end |
#insert_address(address_name, region_name, options = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/fog/google/requests/compute/insert_address.rb', line 15 def insert_address(address_name, region_name, = {}) api_method = @compute.addresses.insert parameters = { 'project' => @project, 'region' => region_name, } body_object = { 'name' => address_name } body_object['description'] = [:description] if [:description] result = self.build_result(api_method, parameters, body_object) response = self.build_response(result) end |
#insert_disk(disk_name, zone_name, image_name = nil, opts = {}) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/fog/google/requests/compute/insert_disk.rb', line 67 def insert_disk(disk_name, zone_name, image_name=nil, opts={}) api_method = @compute.disks.insert parameters = { 'project' => @project, 'zone' => zone_name } if image_name # New disk from image image = images.get(image_name) raise ArgumentError.new("Invalid image specified: #{image_name}") unless image @image_url = @api_url + image.resource_url parameters['sourceImage'] = @image_url end body_object = { 'name' => disk_name } # According to Google docs, if image name is not present, only one of # sizeGb or sourceSnapshot need to be present, one will create blank # disk of desired size, other will create disk from snapshot if image_name.nil? if opts.has_key?('sourceSnapshot') # New disk from snapshot snap = snapshots.get(opts.delete('sourceSnapshot')) raise ArgumentError.new('Invalid source snapshot') unless snap body_object['sourceSnapshot'] = @api_url + snap.resource_url elsif opts.has_key?('sizeGb') # New blank disk body_object['sizeGb'] = opts.delete('sizeGb') else raise ArgumentError.new('Must specify image OR snapshot OR '\ 'disk size when creating a disk.') end end # Merge in any remaining options (only 'description' should remain) body_object.merge!(opts) result = self.build_result(api_method, parameters, body_object) response = self.build_response(result) end |
#insert_firewall(firewall_name, allowed, network = @default_network, options = {}) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/fog/google/requests/compute/insert_firewall.rb', line 14 def insert_firewall(firewall_name, allowed, network = @default_network, = {}) 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 [:description].nil? body_object["description"] = [:description] end unless [:source_ranges].nil? || [:source_ranges].empty? body_object["sourceRanges"] = [:source_ranges] end unless [:source_tags].nil? || [:source_tags].empty? body_object["sourceTags"] = [:source_tags] end unless [:target_tags].nil? || [:target_tags].empty? body_object["targetTags"] = [:target_tags] end result = self.build_result(api_method, parameters, body_object) response = self.build_response(result) end |
#insert_forwarding_rule(forwarding_rule_name, region_name, opts = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/fog/google/requests/compute/insert_forwarding_rule.rb', line 15 def insert_forwarding_rule(forwarding_rule_name, region_name, opts = {}) api_method = @compute.forwarding_rules.insert parameters = { 'project' => @project, 'region' => region_name } body_object = { 'name' => forwarding_rule_name } body_object.merge!(opts) result = self.build_result(api_method, parameters, body_object=body_object) response = self.build_response(result) end |
#insert_http_health_check(name, opts = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/fog/google/requests/compute/insert_http_health_check.rb', line 15 def insert_http_health_check(name, opts={}) api_method = @compute.http_health_checks.insert parameters = { 'project' => @project } body_object = { 'name' => name } body_object.merge!(opts) result = self.build_result(api_method, parameters, body_object) response = self.build_response(result) end |
#insert_image(image_name, options = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/fog/google/requests/compute/insert_image.rb', line 15 def insert_image(image_name, ={}) api_method = @compute.images.insert parameters = { 'project' => @project, } body_object = { 'sourceType' => 'RAW', 'name' => image_name, 'rawDisk' => .delete('rawDisk') } # Merge in the remaining params (only 'description' should remain) body_object.merge!() result = self.build_result(api_method, parameters, body_object=body_object) response = self.build_response(result) end |
#insert_network(network_name, ip_range, options = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/google/requests/compute/insert_network.rb', line 15 def insert_network(network_name, ip_range, = {}) api_method = @compute.networks.insert parameters = { 'project' => @project, } body_object = { 'name' => network_name, 'IPv4Range' => ip_range } body_object['description'] = [:description] if [:description] body_object['gatewayIPv4'] = [:gateway_ipv4] if [:gateway_ipv4] result = self.build_result(api_method, parameters, body_object) response = self.build_response(result) end |
#insert_route(name, network, dest_range, priority, options = {}) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/fog/google/requests/compute/insert_route.rb', line 12 def insert_route(name, network, dest_range, priority, = {}) api_method = @compute.routes.insert parameters = { 'project' => @project, } body_object = { 'name' => name, 'network' => network, 'destRange' => dest_range, 'priority' => priority, } body_object['description'] = [:description] if [:description] unless [:tags].nil? || [:tags].empty? body_object['tags'] = [:tags] end body_object['nextHopInstance'] = [:next_hop_instance] if [:next_hop_instance] body_object['nextHopGateway'] = [:next_hop_gateway] if [:next_hop_gateway] body_object['nextHopIp'] = [:next_hop_ip] if [:next_hop_ip] result = self.build_result(api_method, parameters, body_object) response = self.build_response(result) end |
#insert_server(server_name, zone_name, options = {}, *deprecated_args) ⇒ Object
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
# File 'lib/fog/google/requests/compute/insert_server.rb', line 120 def insert_server(server_name, zone_name, ={}, *deprecated_args) if deprecated_args.length > 0 or not .is_a? Hash raise ArgumentError.new 'Too many parameters specified. This may be the cause of code written for an outdated'\ ' version of fog. Usage: server_name, zone_name, [options]' end api_method = @compute.instances.insert parameters = { 'project' => @project, 'zone' => zone_name, } body_object = {:name => server_name} body_object['machineType'] = @api_url + @project + "/zones/#{zone_name}/machineTypes/#{.delete 'machineType'}" network = nil if .has_key? 'network' network = .delete 'network' elsif @default_network network = @default_network end # ExternalIP is default value for server creation access_config = {'type' => 'ONE_TO_ONE_NAT', 'name' => 'External NAT'} # leave natIP undefined to use an IP from a shared ephemeral IP address pool if .has_key? 'externalIp' access_config['natIP'] = .delete 'externalIp' end networkInterfaces = [] if ! network.nil? networkInterface = { 'network' => @api_url + @project + "/global/networks/#{network}" } networkInterface['accessConfigs'] = [access_config] networkInterfaces << networkInterface end scheduling = { 'automaticRestart' => false, 'onHostMaintenance' => "MIGRATE" } if .has_key? 'auto_restart' scheduling['automaticRestart'] = .delete 'auto_restart' scheduling['automaticRestart'] = scheduling['automaticRestart'].class == TrueClass end if .has_key? 'on_host_maintenance' ohm = .delete 'on_host_maintenance' scheduling['onHostMaintenance'] = (ohm.respond_to?("upcase") && ohm.upcase == "MIGRATE" && "MIGRATE") || "TERMINATE" end body_object['scheduling'] = scheduling # TODO: add other networks body_object['networkInterfaces'] = networkInterfaces if ['disks'].nil? or ['disks'].empty? raise ArgumentError.new "Empty value for field 'disks'. Boot disk must be specified" end body_object['disks'] = handle_disks() ['metadata'] = ['metadata'] if ['metadata'] body_object['tags'] = { 'items' => .delete('tags') } if ['tags'] body_object.merge!() # Adds in all remaining options that weren't explicitly handled. result = self.build_result(api_method, parameters, body_object=body_object) response = self.build_response(result) end |
#insert_snapshot(disk_name, zone_name, project = @project, opts = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/fog/google/requests/compute/insert_snapshot.rb', line 15 def insert_snapshot(disk_name, zone_name, project=@project, opts={}) # This is unfortunate, since we might be called from 2 contexts # 1. disk.snapshot <-- here validation of disk_name is not needed # 2. snapshot.create <-- here we must validate the disk_name # # Validation would involve 'get'ing the disk by that name. This is # redundant (and expensive) for case (1) which is likely the common # codepath. So we won't do it. api_method = @compute.disks.create_snapshot parameters = { 'disk' => disk_name, 'zone' => zone_name, 'project' => @project, } snap_name = opts.delete('name') raise ArgumentError.new('Must specify snapshot name') unless snap_name body_object = { 'name' => snap_name } # Merge in any remaining options (description) body_object.merge(opts) result = self.build_result(api_method, parameters, body_object) response = self.build_response(result) end |
#insert_target_pool(target_pool_name, region_name, opts = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/fog/google/requests/compute/insert_target_pool.rb', line 15 def insert_target_pool(target_pool_name, region_name, opts = {}) api_method = @compute.target_pools.insert parameters = { 'project' => @project, 'region' => region_name } body_object = { 'name' => target_pool_name } body_object.merge!(opts) result = self.build_result(api_method, parameters, body_object=body_object) response = self.build_response(result) end |
#list_addresses(region_name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/list_addresses.rb', line 15 def list_addresses(region_name) api_method = @compute.addresses.list parameters = { 'project' => @project, 'region' => region_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_aggregated_addresses ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/fog/google/requests/compute/list_aggregated_addresses.rb', line 12 def list_aggregated_addresses api_method = @compute.addresses.aggregated_list parameters = { 'project' => @project, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_aggregated_machine_types ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/fog/google/requests/compute/list_aggregated_machine_types.rb', line 12 def list_aggregated_machine_types api_method = @compute.machine_types.aggregated_list parameters = { 'project' => @project, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_disks(zone_name) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/google/requests/compute/list_disks.rb', line 21 def list_disks(zone_name) api_method = @compute.disks.list parameters = { 'project' => @project, 'zone' => zone_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_firewalls ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/fog/google/requests/compute/list_firewalls.rb', line 15 def list_firewalls api_method = @compute.firewalls.list parameters = { 'project' => @project } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_forwarding_rules(region_name) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/google/requests/compute/list_forwarding_rules.rb', line 21 def list_forwarding_rules(region_name) api_method = @compute.forwarding_rules.list parameters = { 'project' => @project, 'region' => region_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_global_operations ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/list_global_operations.rb', line 16 def list_global_operations api_method = @compute.global_operations.list parameters = { 'project' => @project } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_http_health_checks ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/fog/google/requests/compute/list_http_health_checks.rb', line 15 def list_http_health_checks api_method = @compute.http_health_checks.list parameters = { 'project' => @project } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_images(project = nil) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/google/requests/compute/list_images.rb', line 21 def list_images(project=nil) api_method = @compute.images.list project=@project if project.nil? parameters = { 'project' => project } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_machine_types(zone_name) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/fog/google/requests/compute/list_machine_types.rb', line 22 def list_machine_types(zone_name) api_method = @compute.machine_types.list parameters = { 'project' => @project, 'zone' => zone_name, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_networks ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/fog/google/requests/compute/list_networks.rb', line 15 def list_networks api_method = @compute.networks.list parameters = { 'project' => @project } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_region_operations(region) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/google/requests/compute/list_region_operations.rb', line 16 def list_region_operations(region) api_method = @compute.region_operations.list parameters = { 'region' => region, 'project' => @project, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_regions ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/fog/google/requests/compute/list_regions.rb', line 15 def list_regions api_method = @compute.regions.list parameters = { 'project' => @project } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_routes ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/fog/google/requests/compute/list_routes.rb', line 12 def list_routes api_method = @compute.routes.list parameters = { 'project' => @project, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_servers(zone_name) ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/fog/google/requests/compute/list_servers.rb', line 23 def list_servers(zone_name) api_method = @compute.instances.list parameters = { 'project' => @project, 'zone' => zone_name, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_snapshots(project = nil) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/list_snapshots.rb', line 15 def list_snapshots(project=nil) api_method = @compute.snapshots.list project=@project if project.nil? parameters = { 'project' => project } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_target_pools(region_name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/google/requests/compute/list_target_pools.rb', line 15 def list_target_pools(region_name) api_method = @compute.target_pools.list parameters = { 'project' => @project, 'region' => region_name } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_zone_operations(zone) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/google/requests/compute/list_zone_operations.rb', line 16 def list_zone_operations(zone) api_method = @compute.zone_operations.list parameters = { 'zone' => zone, 'project' => @project, } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#list_zones ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/fog/google/requests/compute/list_zones.rb', line 21 def list_zones api_method = @compute.zones.list parameters = { 'project' => @project } result = self.build_result(api_method, parameters) response = self.build_response(result) end |
#new_pk12_google_client(google_client_email, google_key_location, app_name = nil, app_version = nil) ⇒ Object
Public: Create a Google::APIClient with a pkcs12 key and a user email.
google_client_email - an @developer.gserviceaccount.com email address to use. google_key_location - an absolute location to a pkcs12 key file. app_name - an optional string to set as the app name in the user agent. app_version - an optional string to set as the app version in the user agent.
Returns a new Google::APIClient
954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 |
# File 'lib/fog/google/compute.rb', line 954 def new_pk12_google_client(google_client_email, google_key_location, app_name=nil, app_version=nil) # The devstorage scope is needed to be able to insert images # devstorage.read_only scope is not sufficient like you'd hope api_scope_url = 'https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/devstorage.read_write' user_agent = "" if app_name user_agent = "#{app_name}/#{app_version || '0.0.0'} " end user_agent += "fog/#{Fog::VERSION}" = { # https://github.com/google/google-api-ruby-client/blob/master/lib/google/api_client.rb#L98 :application_name => "suppress warning", # https://github.com/google/google-api-ruby-client/blob/master/lib/google/api_client.rb#L100 :user_agent => user_agent } local_client = ::Google::APIClient.new() key = ::Google::APIClient::KeyUtils.load_from_pkcs12(google_key_location, 'notasecret') local_client. = Signet::OAuth2::Client.new({ :audience => 'https://accounts.google.com/o/oauth2/token', :auth_provider_x509_cert_url => "https://www.googleapis.com/oauth2/v1/certs", :client_x509_cert_url => "https://www.googleapis.com/robot/v1/metadata/x509/#{google_client_email}", :issuer => google_client_email, :scope => api_scope_url, :signing_key => key, :token_credential_uri => 'https://accounts.google.com/o/oauth2/token', }) local_client..fetch_access_token! return local_client end |
#remove_target_pool_health_checks(target_pool, health_checks) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/google/requests/compute/remove_target_pool_health_checks.rb', line 15 def remove_target_pool_health_checks(target_pool, health_checks) api_method = @compute.target_pools.remove_health_check parameters = { 'project' => @project, 'targetPool' => target_pool.name, 'region' => target_pool.region.split('/')[-1] } body = { 'healthChecks' => health_checks.collect { |i| { 'healthCheck' => i } } } result = self.build_result(api_method, parameters, body_object=body) self.build_response(result) end |
#remove_target_pool_instances(target_pool, instances) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/fog/google/requests/compute/remove_target_pool_instance.rb', line 15 def remove_target_pool_instances(target_pool, instances) api_method = @compute.target_pools.remove_instance parameters = { 'project' => @project, 'targetPool' => target_pool.name, 'region' => target_pool.region.split('/')[-1] } body = { 'instances' => instances.collect { |i| { 'instance' => i } } } result = self.build_result(api_method, parameters, body_object=body) self.build_response(result) end |
#set_common_instance_metadata(identity, current_fingerprint, metadata = {}) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/google/requests/compute/set_common_instance_metadata.rb', line 13 def (identity, current_fingerprint, = {}) api_method = @compute.projects. parameters = { :project => identity, } body_object = { :fingerprint => current_fingerprint, :items => Array().map { |pair| { :key => pair[0], :value => pair[1] } }, } result = self.build_result(api_method, parameters, body_object) response = self.build_response(result) end |
#set_forwarding_rule_target(rule, target) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/fog/google/requests/compute/set_forwarding_rule_target.rb', line 13 def set_forwarding_rule_target(rule, target) api_method = @compute.forwarding_rules.set_target parameters = { 'project' => @project, 'forwardingRule' => rule.name, 'region' => rule.region.split('/')[-1] } body = { 'target' => target } result = self.build_result(api_method, parameters, body_object=body) self.build_response(result) end |
#set_metadata(instance, zone, fingerprint, metadata = {}) ⇒ Object
Set an instance metadata
Parameters
-
instance<~String> - Instance name (identity)
-
zone<~String> - Zone short name (without the full path)
-
fingerprint<~String> - The fingerprint of the last metadata. Can be retrieved by reloading the compute object, and checking the metadata fingerprint field.
instance.reload fingerprint = instance.['fingerprint']
-
metadata<~Hash> - A new metadata
Returns
-
response<~Excon::Response>
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/fog/google/requests/compute/set_metadata.rb', line 27 def (instance, zone, fingerprint, ={}) api_method = @compute.instances. parameters = { 'project' => @project, 'instance' => instance, 'zone' => zone } body_object = { 'fingerprint' => fingerprint, "items" => .to_a.map {|pair| { :key => pair[0], :value => pair[1] } } } result = self.build_result( api_method, parameters, body_object=body_object ) response = self.build_response(result) end |
#set_tags(instance, zone, tags = []) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/fog/google/requests/compute/set_tags.rb', line 15 def (instance, zone, =[]) me = self.servers.get(instance, zone) fp = me.["fingerprint"] api_method = @compute.instances. parameters = { 'project' => @project, 'instance' => instance, 'zone' => zone } body_object = { "fingerprint" => fp, "items" => } result = self.build_result( api_method, parameters, body_object=body_object ) response = self.build_response(result) end |