-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[rackspace] rename files/servers to storage/compute
- Loading branch information
Showing
44 changed files
with
341 additions
and
291 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
module Fog | ||
module Rackspace | ||
class Compute < Fog::Service | ||
|
||
requires :rackspace_api_key, :rackspace_username | ||
|
||
model_path 'fog/rackspace/models/compute' | ||
model :flavor | ||
collection :flavors | ||
model :image | ||
collection :images | ||
model :server | ||
collection :servers | ||
|
||
request_path 'fog/rackspace/requests/compute' | ||
request :create_image | ||
request :create_server | ||
request :delete_image | ||
request :delete_server | ||
request :get_flavor_details | ||
request :get_image_details | ||
request :get_server_details | ||
request :list_addresses | ||
request :list_private_addresses | ||
request :list_public_addresses | ||
request :list_flavors | ||
request :list_flavors_detail | ||
request :list_images | ||
request :list_images_detail | ||
request :list_servers | ||
request :list_servers_detail | ||
request :reboot_server | ||
request :update_server | ||
|
||
class Mock | ||
include Collections | ||
|
||
def self.data | ||
@data ||= Hash.new do |hash, key| | ||
hash[key] = { | ||
:last_modified => { | ||
:images => {}, | ||
:servers => {} | ||
}, | ||
:images => {}, | ||
:servers => {} | ||
} | ||
end | ||
end | ||
|
||
def self.reset_data(keys=data.keys) | ||
for key in [*keys] | ||
data.delete(key) | ||
end | ||
end | ||
|
||
def initialize(options={}) | ||
@rackspace_username = options[:rackspace_username] | ||
@data = self.class.data[@rackspace_username] | ||
end | ||
|
||
end | ||
|
||
class Real | ||
include Collections | ||
|
||
def initialize(options={}) | ||
credentials = Fog::Rackspace.authenticate(options) | ||
@auth_token = credentials['X-Auth-Token'] | ||
uri = URI.parse(credentials['X-Server-Management-Url']) | ||
@host = uri.host | ||
@path = uri.path | ||
@port = uri.port | ||
@scheme = uri.scheme | ||
@connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", options[:persistent]) | ||
end | ||
|
||
def reload | ||
@connection.reset | ||
end | ||
|
||
def request(params) | ||
begin | ||
response = @connection.request(params.merge!({ | ||
:headers => { | ||
'Content-Type' => 'application/json', | ||
'X-Auth-Token' => @auth_token | ||
}.merge!(params[:headers] || {}), | ||
:host => @host, | ||
:path => "#{@path}/#{params[:path]}" | ||
})) | ||
rescue Excon::Errors::Error => error | ||
raise case error | ||
when Excon::Errors::NotFound | ||
Fog::Rackspace::Compute::NotFound.slurp(error) | ||
else | ||
error | ||
end | ||
end | ||
unless response.body.empty? | ||
response.body = JSON.parse(response.body) | ||
end | ||
response | ||
end | ||
|
||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,135 +1,15 @@ | ||
module Fog | ||
module Rackspace | ||
class Files < Fog::Service | ||
|
||
requires :rackspace_api_key, :rackspace_username | ||
|
||
model_path 'fog/rackspace/models/files' | ||
model :directory | ||
collection :directories | ||
model :file | ||
collection :files | ||
|
||
request_path 'fog/rackspace/requests/files' | ||
request :delete_container | ||
request :delete_object | ||
request :get_container | ||
request :get_containers | ||
request :get_object | ||
request :head_container | ||
request :head_containers | ||
request :head_object | ||
request :put_container | ||
request :put_object | ||
|
||
module Utils | ||
|
||
def parse_data(data) | ||
metadata = { | ||
:body => nil, | ||
:headers => {} | ||
} | ||
|
||
if data.is_a?(String) | ||
metadata[:body] = data | ||
metadata[:headers]['Content-Length'] = metadata[:body].size.to_s | ||
else | ||
filename = ::File.basename(data.path) | ||
unless (mime_types = MIME::Types.of(filename)).empty? | ||
metadata[:headers]['Content-Type'] = mime_types.first.content_type | ||
end | ||
metadata[:body] = data.read | ||
metadata[:headers]['Content-Length'] = ::File.size(data.path).to_s | ||
end | ||
# metadata[:headers]['Content-MD5'] = Base64.encode64(Digest::MD5.digest(metadata[:body])).strip | ||
metadata | ||
end | ||
|
||
class Files | ||
|
||
def self.new(attributes = {}) | ||
location = caller.first | ||
warning = "[yellow][WARN] Fog::Rackspace::Files#new is deprecated, use Fog::Rackspace::Storage#new instead[/]" | ||
warning << " [light_black](" << location << ")[/] " | ||
Formatador.display_line(warning) | ||
Fog::Rackspace::Storage.new(attributes) | ||
end | ||
|
||
class Mock | ||
include Collections | ||
include Utils | ||
|
||
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={}) | ||
@rackspace_username = options[:rackspace_username] | ||
@data = self.class.data[@rackspace_username] | ||
end | ||
|
||
end | ||
|
||
class Real | ||
include Collections | ||
include Utils | ||
|
||
def initialize(options={}) | ||
credentials = Fog::Rackspace.authenticate(options) | ||
@auth_token = credentials['X-Auth-Token'] | ||
|
||
if(credentials['X-CDN-Management-Url']) | ||
cdn_uri = URI.parse(credentials['X-CDN-Management-Url']) | ||
@cdn_host = cdn_uri.host | ||
@cdn_path = cdn_uri.path | ||
@cdn_port = cdn_uri.port | ||
@cdn_scheme = cdn_uri.scheme | ||
@cdn_connection = Fog::Connection.new("#{@cdn_scheme}://#{@cdn_host}:#{@cdn_port}", options[:persistent]) | ||
end | ||
|
||
storage_uri = URI.parse(credentials['X-Storage-Url']) | ||
@storage_host = storage_uri.host | ||
@storage_path = storage_uri.path | ||
@storage_port = storage_uri.port | ||
@storage_scheme = storage_uri.scheme | ||
@storage_connection = Fog::Connection.new("#{@storage_scheme}://#{@storage_host}:#{@storage_port}", options[:persistent]) | ||
end | ||
|
||
def reload | ||
@connection.reset | ||
end | ||
|
||
def cdn_request(params) | ||
response = @cdn_connection.request(params.merge!({ | ||
:headers => { | ||
'Content-Type' => 'application/json', | ||
'X-Auth-Token' => @auth_token | ||
}.merge!(params[:headers] || {}), | ||
:host => @cdn_host, | ||
:path => "#{@cdn_path}/#{params[:path]}", | ||
})) | ||
if !response.body.empty? && parse_json && response.headers['Content-Type'] =~ %r{application/json} | ||
response.body = JSON.parse(response.body) | ||
end | ||
response | ||
end | ||
|
||
def storage_request(params, parse_json = true, &block) | ||
response = @storage_connection.request(params.merge!({ | ||
:headers => { | ||
'Content-Type' => 'application/json', | ||
'X-Auth-Token' => @auth_token | ||
}.merge!(params[:headers] || {}), | ||
:host => @storage_host, | ||
:path => "#{@storage_path}/#{params[:path]}", | ||
}), &block) | ||
if !response.body.empty? && parse_json && response.headers['Content-Type'] =~ %r{application/json} | ||
response.body = JSON.parse(response.body) | ||
end | ||
response | ||
end | ||
|
||
end | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,7 @@ | |
|
||
module Fog | ||
module Rackspace | ||
class Servers | ||
class Compute | ||
|
||
class Flavor < Fog::Model | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,7 @@ | |
|
||
module Fog | ||
module Rackspace | ||
class Servers | ||
class Compute | ||
|
||
class Image < Fog::Model | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,7 @@ | |
|
||
module Fog | ||
module Rackspace | ||
class Servers | ||
class Compute | ||
|
||
class Server < Fog::Model | ||
|
||
|
Oops, something went wrong.