class Fog::Scaleway::Compute::Real
Public Class Methods
new(options)
click to toggle source
# File lib/fog/scaleway/compute.rb, line 120 def initialize(options) @token = options[:scaleway_token] @organization = options[:scaleway_organization] @region = options[:scaleway_region] || 'par1' @connection_options = options[:connection_options] || {} end
Public Instance Methods
create_image(name, arch, root_volume, options = {})
click to toggle source
# File lib/fog/scaleway/requests/compute/create_image.rb, line 5 def create_image(name, arch, root_volume, options = {}) body = { organization: @organization, name: name, arch: arch, root_volume: root_volume } body.merge!(options) create('/images', body) end
create_ip(options = {})
click to toggle source
# File lib/fog/scaleway/requests/compute/create_ip.rb, line 5 def create_ip(options = {}) body = { organization: @organization } body.merge!(options) create('/ips', body) end
create_security_group(name, options = {})
click to toggle source
# File lib/fog/scaleway/requests/compute/create_security_group.rb, line 5 def create_security_group(name, options = {}) body = { organization: @organization, name: name } body.merge!(options) create('/security_groups', body) end
create_security_group_rule(security_group_id, action, direction, ip_range, protocol, dest_port_from = nil)
click to toggle source
# File lib/fog/scaleway/requests/compute/create_security_group_rule.rb, line 5 def create_security_group_rule(security_group_id, action, direction, ip_range, protocol, dest_port_from = nil) create("/security_groups/#{security_group_id}/rules", action: action, direction: direction, ip_range: ip_range, protocol: protocol, dest_port_from: dest_port_from) end
create_server(name, image, volumes, options = {})
click to toggle source
# File lib/fog/scaleway/requests/compute/create_server.rb, line 5 def create_server(name, image, volumes, options = {}) body = { organization: @organization, name: name, image: image, volumes: volumes } body.merge!(options) create('/servers', body) end
create_snapshot(name, volume_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/create_snapshot.rb, line 5 def create_snapshot(name, volume_id) create('/snapshots', organization: @organization, name: name, volume_id: volume_id) end
create_volume(name, volume_type, options)
click to toggle source
# File lib/fog/scaleway/requests/compute/create_volume.rb, line 5 def create_volume(name, volume_type, options) if options[:size].nil? && options[:base_volume].nil? && options[:base_snapshot].nil? raise ArgumentError, 'size, base_volume or base_snapshot are required to create a volume' end body = { organization: @organization, name: name, volume_type: volume_type } if !options[:size].nil? body[:size] = options[:size] elsif !options[:base_volume].nil? body[:base_volume] = options[:base_volume] else body[:base_snapshot] = options[:base_snapshot] end create('/volumes', body) end
delete_image(image_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/delete_image.rb, line 5 def delete_image(image_id) delete("/images/#{image_id}") end
delete_ip(ip_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/delete_ip.rb, line 5 def delete_ip(ip_id) delete("/ips/#{ip_id}") end
delete_security_group(security_group_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/delete_security_group.rb, line 5 def delete_security_group(security_group_id) delete("/security_groups/#{security_group_id}") end
delete_security_group_rule(security_group_id, rule_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/delete_security_group_rule.rb, line 5 def delete_security_group_rule(security_group_id, rule_id) delete("/security_groups/#{security_group_id}/rules/#{rule_id}") end
delete_server(server_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/delete_server.rb, line 5 def delete_server(server_id) delete("/servers/#{server_id}") end
delete_snapshot(snapshot_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/delete_snapshot.rb, line 5 def delete_snapshot(snapshot_id) delete("/snapshots/#{snapshot_id}") end
delete_task(task_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/delete_task.rb, line 5 def delete_task(task_id) delete("/tasks/#{task_id}") end
delete_user_data(server_id, key)
click to toggle source
# File lib/fog/scaleway/requests/compute/delete_user_data.rb, line 5 def delete_user_data(server_id, key) delete("/servers/#{server_id}/user_data/#{key}") end
delete_volume(volume_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/delete_volume.rb, line 5 def delete_volume(volume_id) delete("/volumes/#{volume_id}") end
execute_server_action(server_id, action)
click to toggle source
# File lib/fog/scaleway/requests/compute/execute_server_action.rb, line 5 def execute_server_action(server_id, action) request(method: :post, path: "/servers/#{server_id}/action", body: { action: action }, expects: [202]) end
get_bootscript(bootscript_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/get_bootscript.rb, line 5 def get_bootscript(bootscript_id) get("/bootscripts/#{bootscript_id}") end
get_container(container_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/get_container.rb, line 5 def get_container(container_id) get("/containers/#{container_id}") end
get_dashboard()
click to toggle source
# File lib/fog/scaleway/requests/compute/get_dashboard.rb, line 5 def get_dashboard # rubocop:disable Naming/AccessorMethodName get('/dashboard') end
get_image(image_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/get_image.rb, line 5 def get_image(image_id) get("/images/#{image_id}") end
get_ip(ip_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/get_ip.rb, line 5 def get_ip(ip_id) get("/ips/#{ip_id}") end
get_security_group(security_group_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/get_security_group.rb, line 5 def get_security_group(security_group_id) get("/security_groups/#{security_group_id}") end
get_security_group_rule(security_group_id, rule_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/get_security_group_rule.rb, line 5 def get_security_group_rule(security_group_id, rule_id) get("/security_groups/#{security_group_id}/rules/#{rule_id}") end
get_server(server_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/get_server.rb, line 5 def get_server(server_id) get("/servers/#{server_id}") end
get_snapshot(snapshot_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/get_snapshot.rb, line 5 def get_snapshot(snapshot_id) get("/snapshots/#{snapshot_id}") end
get_task(task_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/get_task.rb, line 5 def get_task(task_id) get("/tasks/#{task_id}") end
get_user_data(server_id, key)
click to toggle source
# File lib/fog/scaleway/requests/compute/get_user_data.rb, line 5 def get_user_data(server_id, key) get("/servers/#{server_id}/user_data/#{key}") end
get_volume(volume_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/get_volume.rb, line 5 def get_volume(volume_id) get("/volumes/#{volume_id}") end
list_bootscripts(filters = {})
click to toggle source
# File lib/fog/scaleway/requests/compute/list_bootscripts.rb, line 5 def list_bootscripts(filters = {}) get('/bootscripts', filters) end
list_containers()
click to toggle source
# File lib/fog/scaleway/requests/compute/list_containers.rb, line 5 def list_containers get('/containers') end
list_images(filters = {})
click to toggle source
# File lib/fog/scaleway/requests/compute/list_images.rb, line 5 def list_images(filters = {}) get('/images', filters) end
list_ips()
click to toggle source
# File lib/fog/scaleway/requests/compute/list_ips.rb, line 5 def list_ips get('/ips') end
list_product_servers()
click to toggle source
# File lib/fog/scaleway/requests/compute/list_product_servers.rb, line 5 def list_product_servers get('/products/servers') end
list_security_group_rules(security_group_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/list_security_group_rules.rb, line 5 def list_security_group_rules(security_group_id) get("/security_groups/#{security_group_id}/rules") end
list_security_groups()
click to toggle source
# File lib/fog/scaleway/requests/compute/list_security_groups.rb, line 5 def list_security_groups get('/security_groups') end
list_server_actions(server_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/list_server_actions.rb, line 5 def list_server_actions(server_id) get("/servers/#{server_id}/action") end
list_servers()
click to toggle source
# File lib/fog/scaleway/requests/compute/list_servers.rb, line 5 def list_servers get('/servers') end
list_snapshots()
click to toggle source
# File lib/fog/scaleway/requests/compute/list_snapshots.rb, line 5 def list_snapshots get('/snapshots') end
list_tasks()
click to toggle source
# File lib/fog/scaleway/requests/compute/list_tasks.rb, line 5 def list_tasks get('tasks') end
list_user_data(server_id)
click to toggle source
# File lib/fog/scaleway/requests/compute/list_user_data.rb, line 5 def list_user_data(server_id) get("/servers/#{server_id}/user_data") end
list_volumes()
click to toggle source
# File lib/fog/scaleway/requests/compute/list_volumes.rb, line 5 def list_volumes get('/volumes') end
request(params)
click to toggle source
# File lib/fog/scaleway/compute.rb, line 127 def request(params) client.request(params) rescue Excon::Errors::HTTPStatusError => error decoded = Fog::Scaleway::Errors.decode_error(error) raise if decoded.nil? type = decoded[:type] message = decoded[:message] raise case type when 'invalid_request_error', 'invalid_auth', 'authorization_required', 'unknown_resource', 'conflict' Fog::Scaleway::Compute.const_get(camelize(type)).slurp(error, message) when 'api_error' Fog::Scaleway::Compute::APIError.slurp(error, message) else Fog::Scaleway::Compute::Error.slurp(error, message) end end
update_image(image_id, body)
click to toggle source
# File lib/fog/scaleway/requests/compute/update_image.rb, line 5 def update_image(image_id, body) update("/images/#{image_id}", body) end
update_ip(ip_id, body)
click to toggle source
# File lib/fog/scaleway/requests/compute/update_ip.rb, line 5 def update_ip(ip_id, body) update("/ips/#{ip_id}", body) end
update_security_group(security_group_id, body)
click to toggle source
# File lib/fog/scaleway/requests/compute/update_security_group.rb, line 5 def update_security_group(security_group_id, body) update("/security_groups/#{security_group_id}", body) end
update_security_group_rule(security_group_id, rule_id, body)
click to toggle source
# File lib/fog/scaleway/requests/compute/update_security_group_rule.rb, line 5 def update_security_group_rule(security_group_id, rule_id, body) update("/security_groups/#{security_group_id}/rules/#{rule_id}", body) end
update_server(server_id, body)
click to toggle source
# File lib/fog/scaleway/requests/compute/update_server.rb, line 5 def update_server(server_id, body) update("/servers/#{server_id}", body) end
update_snapshot(snapshot_id, body)
click to toggle source
# File lib/fog/scaleway/requests/compute/update_snapshot.rb, line 5 def update_snapshot(snapshot_id, body) update("/snapshots/#{snapshot_id}", body) end
update_user_data(server_id, key, value)
click to toggle source
# File lib/fog/scaleway/requests/compute/update_user_data.rb, line 5 def update_user_data(server_id, key, value) request(method: :patch, path: "/servers/#{server_id}/user_data/#{key}", headers: { 'Content-Type' => 'text/plain' }, body: value, expects: [204]) end
update_volume(volume_id, body)
click to toggle source
# File lib/fog/scaleway/requests/compute/update_volume.rb, line 5 def update_volume(volume_id, body) update("/volumes/#{volume_id}", body) end
Private Instance Methods
camelize(str)
click to toggle source
# File lib/fog/scaleway/compute.rb, line 156 def camelize(str) str.split('_').collect(&:capitalize).join end
client()
click to toggle source
# File lib/fog/scaleway/compute.rb, line 148 def client @client ||= Fog::Scaleway::Client.new(endpoint, @token, @connection_options) end
endpoint()
click to toggle source
# File lib/fog/scaleway/compute.rb, line 152 def endpoint "https://cp-#{@region}.scaleway.com" end