From 5e5946b2ad571324a9879e0b5597ca2c36befada Mon Sep 17 00:00:00 2001 From: geemus Date: Wed, 8 Sep 2010 12:58:51 -0700 Subject: [PATCH] [new_servers] rename new_servers to compute for consistency --- lib/fog/new_servers.rb | 90 +++---------------- lib/fog/new_servers/bin.rb | 6 +- lib/fog/new_servers/compute.rb | 90 +++++++++++++++++++ lib/fog/new_servers/requests/add_server.rb | 39 -------- lib/fog/new_servers/requests/cancel_server.rb | 36 -------- .../requests/compute/add_server.rb | 41 +++++++++ .../requests/compute/cancel_server.rb | 38 ++++++++ .../requests/compute/get_server.rb | 44 +++++++++ .../requests/compute/list_images.rb | 35 ++++++++ .../requests/compute/list_plans.rb | 38 ++++++++ .../requests/compute/list_servers.rb | 44 +++++++++ .../requests/compute/reboot_server.rb | 32 +++++++ lib/fog/new_servers/requests/get_server.rb | 42 --------- lib/fog/new_servers/requests/list_images.rb | 33 ------- lib/fog/new_servers/requests/list_plans.rb | 36 -------- lib/fog/new_servers/requests/list_servers.rb | 42 --------- lib/fog/new_servers/requests/reboot_server.rb | 30 ------- 17 files changed, 375 insertions(+), 341 deletions(-) create mode 100644 lib/fog/new_servers/compute.rb delete mode 100644 lib/fog/new_servers/requests/add_server.rb delete mode 100644 lib/fog/new_servers/requests/cancel_server.rb create mode 100644 lib/fog/new_servers/requests/compute/add_server.rb create mode 100644 lib/fog/new_servers/requests/compute/cancel_server.rb create mode 100644 lib/fog/new_servers/requests/compute/get_server.rb create mode 100644 lib/fog/new_servers/requests/compute/list_images.rb create mode 100644 lib/fog/new_servers/requests/compute/list_plans.rb create mode 100644 lib/fog/new_servers/requests/compute/list_servers.rb create mode 100644 lib/fog/new_servers/requests/compute/reboot_server.rb delete mode 100644 lib/fog/new_servers/requests/get_server.rb delete mode 100644 lib/fog/new_servers/requests/list_images.rb delete mode 100644 lib/fog/new_servers/requests/list_plans.rb delete mode 100644 lib/fog/new_servers/requests/list_servers.rb delete mode 100644 lib/fog/new_servers/requests/reboot_server.rb diff --git a/lib/fog/new_servers.rb b/lib/fog/new_servers.rb index 5cd772941..b5734b4c4 100644 --- a/lib/fog/new_servers.rb +++ b/lib/fog/new_servers.rb @@ -1,88 +1,18 @@ -require 'fog/parser' - module Fog - class NewServers < Fog::Service + module NewServers - requires :new_servers_password - requires :new_servers_username + extend Fog::Provider - model_path 'fog/new_servers/models' - - request_path 'fog/new_servers/requests' - request :add_server - request :cancel_server - request :get_server - request :list_images - request :list_plans - request :list_servers - request :reboot_server - - class Mock - include Collections - - def self.data - @data ||= Hash.new do |hash, key| - hash[key] = {} - end - end - - def self.reset_data(keys=data.keys) - for key in [*keys] - data.delete(key) - end - end - - def initialize(options={}) - @new_server_username = options[:new_servers_username] - @data = self.class.data[@new_server_username] - end + service_path 'fog/new_servers' + service 'compute' + def self.new(attributes = {}) + location = caller.first + warning = "[yellow][WARN] Fog::NewServers#new is deprecated, use Fog::NewServers::Compute#new instead[/]" + warning << " [light_black](" << location << ")[/] " + Formatador.display_line(warning) + Fog::NewServers::Compute.new(attributes) end - class Real - include Collections - - def initialize(options={}) - @new_servers_password = options[:new_servers_password] - @new_servers_username = options[:new_servers_username] - @host = options[:host] || "noc.newservers.com" - @port = options[:port] || 443 - @scheme = options[:scheme] || 'https' - @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", options[:persistent]) - end - - def reload - @connection.reset - end - - def request(params) - params[:query] ||= {} - params[:query].merge!({ - :password => @new_servers_password, - :username => @new_servers_username - }) - params[:headers] ||= {} - case params[:method] - when 'DELETE', 'GET', 'HEAD' - params[:headers]['Accept'] = 'application/xml' - when 'POST', 'PUT' - params[:headers]['Content-Type'] = 'application/xml' - end - - begin - response = @connection.request(params.merge!({:host => @host})) - rescue Excon::Errors::Error => error - raise case error - when Excon::Errors::NotFound - Fog::NewServers::NotFound.slurp(error) - else - error - end - end - - response - end - - end end end diff --git a/lib/fog/new_servers/bin.rb b/lib/fog/new_servers/bin.rb index 03907c1ca..36850ffc6 100644 --- a/lib/fog/new_servers/bin.rb +++ b/lib/fog/new_servers/bin.rb @@ -9,15 +9,15 @@ module NewServers def [](service) @@connections ||= Hash.new do |hash, key| hash[key] = case key - when :new_servers - Fog::NewServers.new + when :compute + Fog::NewServers::Compute.new end end @@connections[service] end def services - [:new_servers] + [:compute] end else diff --git a/lib/fog/new_servers/compute.rb b/lib/fog/new_servers/compute.rb new file mode 100644 index 000000000..3989bdd42 --- /dev/null +++ b/lib/fog/new_servers/compute.rb @@ -0,0 +1,90 @@ +require 'fog/parser' + +module Fog + module NewServers + class Compute < Fog::Service + + requires :new_servers_password + requires :new_servers_username + + model_path 'fog/new_servers/models/compute' + + request_path 'fog/new_servers/requests/compute' + request :add_server + request :cancel_server + request :get_server + request :list_images + request :list_plans + request :list_servers + request :reboot_server + + class Mock + include Collections + + def self.data + @data ||= Hash.new do |hash, key| + hash[key] = {} + end + end + + def self.reset_data(keys=data.keys) + for key in [*keys] + data.delete(key) + end + end + + def initialize(options={}) + @new_server_username = options[:new_servers_username] + @data = self.class.data[@new_server_username] + end + + end + + class Real + include Collections + + def initialize(options={}) + @new_servers_password = options[:new_servers_password] + @new_servers_username = options[:new_servers_username] + @host = options[:host] || "noc.newservers.com" + @port = options[:port] || 443 + @scheme = options[:scheme] || 'https' + @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", options[:persistent]) + end + + def reload + @connection.reset + end + + def request(params) + params[:query] ||= {} + params[:query].merge!({ + :password => @new_servers_password, + :username => @new_servers_username + }) + params[:headers] ||= {} + case params[:method] + when 'DELETE', 'GET', 'HEAD' + params[:headers]['Accept'] = 'application/xml' + when 'POST', 'PUT' + params[:headers]['Content-Type'] = 'application/xml' + end + + begin + response = @connection.request(params.merge!({:host => @host})) + rescue Excon::Errors::Error => error + raise case error + when Excon::Errors::NotFound + Fog::NewServers::NotFound.slurp(error) + else + error + end + end + + response + end + + end + end + end +end diff --git a/lib/fog/new_servers/requests/add_server.rb b/lib/fog/new_servers/requests/add_server.rb deleted file mode 100644 index 2024c62a7..000000000 --- a/lib/fog/new_servers/requests/add_server.rb +++ /dev/null @@ -1,39 +0,0 @@ -module Fog - class NewServers - class Real - - # Boot a new server - # - # ==== Parameters - # * planId<~String> - The id of the plan to boot the server with - # * options<~Hash>: optional extra arguments - # * imageId<~String> - Optional image to boot server from - # * name<~String> - Name to boot new server with - # - # ==== Returns - # * response<~Excon::Response>: - # * body<~Hash>: - # * 'server'<~Hash>: - # * 'id'<~String> - Id of the image - # - def add_server(plan_id, options = {}) - request( - :expects => 200, - :method => 'GET', - :parser => Fog::ToHashDocument.new, - :path => 'api/addServer', - :query => {'planId' => plan_id}.merge!(options) - ) - end - - end - - class Mock - - def add_server(server_id) - Fog::Mock.not_implemented - end - - end - end -end diff --git a/lib/fog/new_servers/requests/cancel_server.rb b/lib/fog/new_servers/requests/cancel_server.rb deleted file mode 100644 index f43dbb3a3..000000000 --- a/lib/fog/new_servers/requests/cancel_server.rb +++ /dev/null @@ -1,36 +0,0 @@ -module Fog - class NewServers - class Real - - # Shutdown a running server - # - # ==== Parameters - # * serverId<~String> - The id of the server to shutdown - # - # ==== Returns - # * response<~Excon::Response>: - # * body<~Hash>: - # * 'server'<~Hash>: - # * 'id'<~String> - Id of the image - # - def cancel_server(server_id) - request( - :expects => 200, - :method => 'GET', - :parser => Fog::ToHashDocument.new, - :path => 'api/cancelServer', - :query => {'serverId' => server_id} - ) - end - - end - - class Mock - - def cancel_server(server_id) - Fog::Mock.not_implemented - end - - end - end -end diff --git a/lib/fog/new_servers/requests/compute/add_server.rb b/lib/fog/new_servers/requests/compute/add_server.rb new file mode 100644 index 000000000..1ad57702c --- /dev/null +++ b/lib/fog/new_servers/requests/compute/add_server.rb @@ -0,0 +1,41 @@ +module Fog + module NewServers + class Compute + class Real + + # Boot a new server + # + # ==== Parameters + # * planId<~String> - The id of the plan to boot the server with + # * options<~Hash>: optional extra arguments + # * imageId<~String> - Optional image to boot server from + # * name<~String> - Name to boot new server with + # + # ==== Returns + # * response<~Excon::Response>: + # * body<~Hash>: + # * 'server'<~Hash>: + # * 'id'<~String> - Id of the image + # + def add_server(plan_id, options = {}) + request( + :expects => 200, + :method => 'GET', + :parser => Fog::ToHashDocument.new, + :path => 'api/addServer', + :query => {'planId' => plan_id}.merge!(options) + ) + end + + end + + class Mock + + def add_server(server_id) + Fog::Mock.not_implemented + end + + end + end + end +end diff --git a/lib/fog/new_servers/requests/compute/cancel_server.rb b/lib/fog/new_servers/requests/compute/cancel_server.rb new file mode 100644 index 000000000..e81b5515d --- /dev/null +++ b/lib/fog/new_servers/requests/compute/cancel_server.rb @@ -0,0 +1,38 @@ +module Fog + module NewServers + class Compute + class Real + + # Shutdown a running server + # + # ==== Parameters + # * serverId<~String> - The id of the server to shutdown + # + # ==== Returns + # * response<~Excon::Response>: + # * body<~Hash>: + # * 'server'<~Hash>: + # * 'id'<~String> - Id of the image + # + def cancel_server(server_id) + request( + :expects => 200, + :method => 'GET', + :parser => Fog::ToHashDocument.new, + :path => 'api/cancelServer', + :query => {'serverId' => server_id} + ) + end + + end + + class Mock + + def cancel_server(server_id) + Fog::Mock.not_implemented + end + + end + end + end +end diff --git a/lib/fog/new_servers/requests/compute/get_server.rb b/lib/fog/new_servers/requests/compute/get_server.rb new file mode 100644 index 000000000..ffa24a204 --- /dev/null +++ b/lib/fog/new_servers/requests/compute/get_server.rb @@ -0,0 +1,44 @@ +module Fog + module NewServers + class Compute + class Real + + # List servers + # + # ==== Returns + # * response<~Excon::Response>: + # * server<~Hash>: + # * 'id'<~String> - Id of the server + # * 'ip'<~Hash>: + # * 'address'<~String> - Address of the ip + # * 'name'<~String> - Name of the ip + # * 'login'<~Hash>: + # * 'name'<~String> - Name of the login + # * 'password'<~String> - Password of the login + # * 'username'<~String> - Username of the login + # * 'name'<~String> - Name of the server + # * 'notes'<~String> - Notes about the server + # * 'state'<~String> - State of the server + # + def get_server(server_id) + request( + :expects => 200, + :method => 'GET', + :parser => Fog::ToHashDocument.new, + :path => 'api/getServer', + :query => {'serverId' => server_id} + ) + end + + end + + class Mock + + def get_server(server_id) + Fog::Mock.not_implemented + end + + end + end + end +end diff --git a/lib/fog/new_servers/requests/compute/list_images.rb b/lib/fog/new_servers/requests/compute/list_images.rb new file mode 100644 index 000000000..bf70fb2a6 --- /dev/null +++ b/lib/fog/new_servers/requests/compute/list_images.rb @@ -0,0 +1,35 @@ +module Fog + module NewServers + class Compute + class Real + + # List images + # + # ==== Returns + # * response<~Excon::Response>: + # * body<~Array>: + # * 'id'<~String> - Id of the image + # * 'name'<~String> - Name of the image + # * 'size'<~String> - Size of the image + # + def list_images + request( + :expects => 200, + :method => 'GET', + :parser => Fog::ToHashDocument.new, + :path => 'api/listImages' + ) + end + + end + + class Mock + + def list_images + Fog::Mock.not_implemented + end + + end + end + end +end diff --git a/lib/fog/new_servers/requests/compute/list_plans.rb b/lib/fog/new_servers/requests/compute/list_plans.rb new file mode 100644 index 000000000..bd3028644 --- /dev/null +++ b/lib/fog/new_servers/requests/compute/list_plans.rb @@ -0,0 +1,38 @@ +module Fog + module NewServers + class Compute + class Real + + # List available plans + # + # ==== Returns + # * response<~Excon::Response>: + # * body<~Array>: + # * 'description'<~String> - Description of the plan + # * 'id'<~String> - Id of the plan + # * 'name'<~String> - Name of the plan + # * 'rate'<~String> - Cost per hour of the plan + # * 'os'<~String> - Operating system of the plan + # * 'config'<~String> - Configuration of the plan + # + def list_plans + request( + :expects => 200, + :method => 'GET', + :parser => Fog::ToHashDocument.new, + :path => 'api/listPlans' + ) + end + + end + + class Mock + + def list_plans + Fog::Mock.not_implemented + end + + end + end + end +end diff --git a/lib/fog/new_servers/requests/compute/list_servers.rb b/lib/fog/new_servers/requests/compute/list_servers.rb new file mode 100644 index 000000000..d4d0a1435 --- /dev/null +++ b/lib/fog/new_servers/requests/compute/list_servers.rb @@ -0,0 +1,44 @@ +module Fog + module NewServers + class Compute + class Real + + # List servers + # + # ==== Returns + # * response<~Excon::Response>: + # * body<~Array>: + # * server<~Hash>: + # * 'id'<~String> - Id of the server + # * 'ip'<~Hash>: + # * 'address'<~String> - Address of the ip + # * 'name'<~String> - Name of the ip + # * 'login'<~Hash>: + # * 'name'<~String> - Name of the login + # * 'password'<~String> - Password of the login + # * 'username'<~String> - Username of the login + # * 'name'<~String> - Name of the server + # * 'notes'<~String> - Notes about the server + # * 'state'<~String> - State of the server + # + def list_servers + request( + :expects => 200, + :method => 'GET', + :parser => Fog::ToHashDocument.new, + :path => 'api/listServers' + ) + end + + end + + class Mock + + def list_servers + Fog::Mock.not_implemented + end + + end + end + end +end diff --git a/lib/fog/new_servers/requests/compute/reboot_server.rb b/lib/fog/new_servers/requests/compute/reboot_server.rb new file mode 100644 index 000000000..5bcb197c9 --- /dev/null +++ b/lib/fog/new_servers/requests/compute/reboot_server.rb @@ -0,0 +1,32 @@ +module Fog + module NewServers + class Compute + class Real + + # Reboot a running server + # + # ==== Parameters + # * serverId<~String> - The id of the server to reboot + # + def reboot_server(server_id) + request( + :expects => 200, + :method => 'GET', + :parser => Fog::ToHashDocument.new, + :path => 'api/rebootServer', + :query => {'serverId' => server_id} + ) + end + + end + + class Mock + + def reboot_server(server_id) + Fog::Mock.not_implemented + end + + end + end + end +end diff --git a/lib/fog/new_servers/requests/get_server.rb b/lib/fog/new_servers/requests/get_server.rb deleted file mode 100644 index 0242eeb5c..000000000 --- a/lib/fog/new_servers/requests/get_server.rb +++ /dev/null @@ -1,42 +0,0 @@ -module Fog - class NewServers - class Real - - # List servers - # - # ==== Returns - # * response<~Excon::Response>: - # * server<~Hash>: - # * 'id'<~String> - Id of the server - # * 'ip'<~Hash>: - # * 'address'<~String> - Address of the ip - # * 'name'<~String> - Name of the ip - # * 'login'<~Hash>: - # * 'name'<~String> - Name of the login - # * 'password'<~String> - Password of the login - # * 'username'<~String> - Username of the login - # * 'name'<~String> - Name of the server - # * 'notes'<~String> - Notes about the server - # * 'state'<~String> - State of the server - # - def get_server(server_id) - request( - :expects => 200, - :method => 'GET', - :parser => Fog::ToHashDocument.new, - :path => 'api/getServer', - :query => {'serverId' => server_id} - ) - end - - end - - class Mock - - def get_server(server_id) - Fog::Mock.not_implemented - end - - end - end -end diff --git a/lib/fog/new_servers/requests/list_images.rb b/lib/fog/new_servers/requests/list_images.rb deleted file mode 100644 index 7fdc9c17f..000000000 --- a/lib/fog/new_servers/requests/list_images.rb +++ /dev/null @@ -1,33 +0,0 @@ -module Fog - class NewServers - class Real - - # List images - # - # ==== Returns - # * response<~Excon::Response>: - # * body<~Array>: - # * 'id'<~String> - Id of the image - # * 'name'<~String> - Name of the image - # * 'size'<~String> - Size of the image - # - def list_images - request( - :expects => 200, - :method => 'GET', - :parser => Fog::ToHashDocument.new, - :path => 'api/listImages' - ) - end - - end - - class Mock - - def list_images - Fog::Mock.not_implemented - end - - end - end -end diff --git a/lib/fog/new_servers/requests/list_plans.rb b/lib/fog/new_servers/requests/list_plans.rb deleted file mode 100644 index 931c01e3b..000000000 --- a/lib/fog/new_servers/requests/list_plans.rb +++ /dev/null @@ -1,36 +0,0 @@ -module Fog - class NewServers - class Real - - # List available plans - # - # ==== Returns - # * response<~Excon::Response>: - # * body<~Array>: - # * 'description'<~String> - Description of the plan - # * 'id'<~String> - Id of the plan - # * 'name'<~String> - Name of the plan - # * 'rate'<~String> - Cost per hour of the plan - # * 'os'<~String> - Operating system of the plan - # * 'config'<~String> - Configuration of the plan - # - def list_plans - request( - :expects => 200, - :method => 'GET', - :parser => Fog::ToHashDocument.new, - :path => 'api/listPlans' - ) - end - - end - - class Mock - - def list_plans - Fog::Mock.not_implemented - end - - end - end -end diff --git a/lib/fog/new_servers/requests/list_servers.rb b/lib/fog/new_servers/requests/list_servers.rb deleted file mode 100644 index 69a22e7f7..000000000 --- a/lib/fog/new_servers/requests/list_servers.rb +++ /dev/null @@ -1,42 +0,0 @@ -module Fog - class NewServers - class Real - - # List servers - # - # ==== Returns - # * response<~Excon::Response>: - # * body<~Array>: - # * server<~Hash>: - # * 'id'<~String> - Id of the server - # * 'ip'<~Hash>: - # * 'address'<~String> - Address of the ip - # * 'name'<~String> - Name of the ip - # * 'login'<~Hash>: - # * 'name'<~String> - Name of the login - # * 'password'<~String> - Password of the login - # * 'username'<~String> - Username of the login - # * 'name'<~String> - Name of the server - # * 'notes'<~String> - Notes about the server - # * 'state'<~String> - State of the server - # - def list_servers - request( - :expects => 200, - :method => 'GET', - :parser => Fog::ToHashDocument.new, - :path => 'api/listServers' - ) - end - - end - - class Mock - - def list_servers - Fog::Mock.not_implemented - end - - end - end -end diff --git a/lib/fog/new_servers/requests/reboot_server.rb b/lib/fog/new_servers/requests/reboot_server.rb deleted file mode 100644 index 19d66e1d6..000000000 --- a/lib/fog/new_servers/requests/reboot_server.rb +++ /dev/null @@ -1,30 +0,0 @@ -module Fog - class NewServers - class Real - - # Reboot a running server - # - # ==== Parameters - # * serverId<~String> - The id of the server to reboot - # - def reboot_server(server_id) - request( - :expects => 200, - :method => 'GET', - :parser => Fog::ToHashDocument.new, - :path => 'api/rebootServer', - :query => {'serverId' => server_id} - ) - end - - end - - class Mock - - def reboot_server(server_id) - Fog::Mock.not_implemented - end - - end - end -end