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

Merge branch 'master' into rs_dns

Conflicts:
	lib/fog/rackspace.rb
This commit is contained in:
Brian Hartsock 2011-08-28 16:20:35 -04:00
commit e957a09494
927 changed files with 1989 additions and 1483 deletions

View file

@ -146,7 +146,6 @@ task :release => :build do
sh "git tag v#{version}"
sh "git push origin master"
sh "git push origin v#{version}"
Rake::Task[:build].invoke # rebuild with updated changelog
sh "gem push pkg/#{name}-#{version}.gem"
Rake::Task[:docs].invoke
end
@ -229,6 +228,7 @@ task :changelog do
for committer, commits in committers.to_a.sort {|x,y| y[1] <=> x[1]}
if [
'Aaron Suggs',
'Brian Hartsock',
'Christopher Oliver',
'Dylan Egan',
'geemus',

View file

@ -1,3 +1,159 @@
0.11.0 08/18/2011 73bcee507a4732e071c58d85793b7f307eb377dc
==========================================================
Stats! { 'downloads' => 202791, 'forks' => 237, 'open_issues' => 20, 'watchers' => 1427 }
MVP! Brian Hartsock
[aws|cdn]
Added commands for streaming distribution lists. thanks Christopher Oliver
[aws|compute]
describe security groups parser was not taking into account ipPermissionsEgress and therefore returning unexpected results when the account had VPC groups. thanks Christopher Oliver
Added missing 'platform' attribute to server model and describe instances request. thanks Christopher Oliver
[aws|iam]
fix 'Path' handling for get_group response. thanks Nick Osborn
add missing update_server_certificate request. thanks Nick Osborn
[aws|rds]
Allow string or symbol hash keys. thanks Aaron Suggs
[aws|s3]
Added basic tests for get_bucket, fixed a bug in get_bucket with delimiter option, tests succeed for both mocked and real situation. thanks Erik Terpstra
policy should be base64 encoded and not contain new lines. thanks Fujimura Daisuke
Require 'multi_json' was lucked. thanks Fujimura Daisuke
[compute]
add server base class to contain shared stuff (scp/ssh). thanks geemus
[compute|aws]
Whitespace removal. thanks Dylan Egan
Allow image mocks to support state (except failed). thanks Dylan Egan
fix pluralization of modify_image_attribute. thanks geemus
update modify image/snapshot attribute to match latest API. thanks geemus
add modify_image_attribute. thanks geemus
add support for saving assigned tags at server creation time. thanks geemus
add docs for new options on run_instances. thanks geemus
guard tag creation against empty tag set. thanks geemus
fixes for bootstrap and placing attributes json. thanks geemus
identity not needed for setup. thanks geemus
fix for running nice with mocked test run. thanks geemus
[compute|brightbox]
Updated test for new expected response from server. thanks Paul Thornthwaite
Updated Account format test to allow valid_credit_card flag. thanks Paul Thornthwaite
Added IPv6 address to format now it is exposed to API. thanks Paul Thornthwaite
DRY up request method. thanks Paul Thornthwaite
Corrected attribute name. thanks Paul Thornthwaite
[compute|voxel]
position in format is string, not integer. thanks geemus
[dns]
dry generate_unique_domain to tests helper. thanks geemus
[dns|dynect]
cleanup of initial implementation. thanks geemus
fixes to play nice with mocked test runs. thanks geemus
[dns|zerigo]
add host/port/scheme to recognizes. thanks geemus
[docs]
add task to build/publish supported services matrix. thanks geemus
alphasort doc tasks. thanks geemus
[misc]
if creating an s3 directory (bucket), one needs to pass in :location as well as have the aws connection set to the correct region... thanks Adam Greene
- Write files as binary (otherwise UTF8 - ASCII errors can occur) - Check if File exists before trying to delete it (paperclip sometimes deletes files twice) - Check if Directory exists before trying to "cd" into it. thanks Andre Meij
Fix issue 464, add howto for European Rackspace cloud. thanks Andre Meij
Initial support for adding/deleting a load balancer (requests only). thanks Brian Hartsock
Complete lifecycle for a load balancer. thanks Brian Hartsock
Improved error handling. thanks Brian Hartsock
Model and collection for load balancers. thanks Brian Hartsock
Fixed issues with loading all LB params. thanks Brian Hartsock
Requests for nodes. thanks Brian Hartsock
Rackspace Load Balancers: model classes for nodes. thanks Brian Hartsock
Rackspace Load Balancers: requests for virtual ips. thanks Brian Hartsock
Added virtual IP models. thanks Brian Hartsock
Rackspace LB: Made some updates from the pull request. thanks Brian Hartsock
Rackspace LB: protocols, algorithms, and connection logging. thanks Brian Hartsock
Added access list requests. thanks Brian Hartsock
Rackspace LB: Added session persistence requests. thanks Brian Hartsock
Rackspace LB: Connection throttling requests. thanks Brian Hartsock
Rackspace LB: Fixed issues with connection logging model. thanks Brian Hartsock
Rackspace LB: Health Monitor requests. thanks Brian Hartsock
Rackspace LB: account usage request. thanks Brian Hartsock
Rackspace LB: Load Balancer Usage requests. thanks Brian Hartsock
Rackspace LB: Added model capabilities for a lot of additional actions. thanks Brian Hartsock
Rackspace LB: models for access lists. thanks Brian Hartsock
Rackspace LB: account usage call. thanks Brian Hartsock
Rackspace LB: Refactoring and cleanup. thanks Brian Hartsock
register_image mocking support. thanks Dylan Egan
Remove GENTOO_AMI. thanks Dylan Egan
Store it under the ID, not the name. thanks Dylan Egan
Allow tag filtering for images. thanks Dylan Egan
Set imageOwnerAlias to self. Not 100% on this, but it will allow you to search for images with 'owner-alias' => 'self'. thanks Dylan Egan
Back to using Owner. A couple of tests for it too. thanks Dylan Egan
Added support for delimiter option in Fog::Storage::AWS::Mock object. thanks Erik Terpstra
Link to EBS snapshots blog post. thanks Gavin Sandie
Add force stop functionality to AWS Instance. thanks John Ferlito
* Changed LoadError to Fog::Error::LoadError when missing configuration * When running from command line, rescue the exception, and print the help message. thanks Mark A. Miller
* Fix VirtualBox in compute case statement. thanks Mark A. Miller
Update to the latest VirtualBox gem while we're at it for good measure. thanks Mark A. Miller
add dynect DNS provider with session request implemented. thanks Michael Hale
add dynect provider and cleanup extra requires. thanks Michael Hale
enable mocking for dynect. thanks Michael Hale
parse session request and fix mock for tests. thanks Michael Hale
whoops forgot to add these files. thanks Michael Hale
temporary rake task for convenient testing. thanks Michael Hale
include /REST in all requests. thanks Michael Hale
change API-Token to Auth-Token. thanks Michael Hale
add zone request. thanks Michael Hale
fix API-Token in mock session request. thanks Michael Hale
always run both mock and non-mock tests. thanks Michael Hale
parse the list of zones returned. thanks Michael Hale
require builder in dynect. thanks Michael Hale
WIP: add stub model classes. thanks Michael Hale
tests passing. thanks Michael Hale
rename zone request to zones. thanks Michael Hale
add zone request to show information for a single zone. thanks Michael Hale
hook up zones model. thanks Michael Hale
hook up zones.get. thanks Michael Hale
dynect: add a bunch of stuff: node_list, list_any_records, handle 307 job redirect,. thanks Michael Hale
dynect: nicer filter api for records. thanks Michael Hale
Escape source object name when copying. thanks Pratik Naik
provide #providers for shared services. thanks geemus
[rackspace|load balancers]
fixed broken tests. thanks Brian Hartsock
[rackspace|load_balancers]
fixes to play nice with mock test runs. thanks geemus
fix typo in tests. thanks geemus
[rackspace|loadbalancers]
cleanup. thanks geemus
[release]
add newest MVP to changelog task MVP omit list. thanks geemus
add stats to changelog. thanks geemus
remove un-needed rebuild of gem. thanks geemus
[storage]
fix deprecated get_url usage. thanks geemus
[storage|aws]
simplify region accessor. thanks geemus
[storage|ninefold]
remove debug output. thanks geemus
[tests]
non-destructively generate id for get('fake') == nil tests. thanks geemus
0.10.0 07/25/2011 9ca8cffc000c417a792235438c12855a277fe1ce
==========================================================

View file

@ -81,6 +81,10 @@ Rackspace has <a href="http://www.rackspacecloud.com/cloud_hosting_products/serv
:rackspace_api_key => RACKSPACE_API_KEY
})
If you work with the European cloud from Rackspace you have to add the following:
:rackspace_auth_url => "lon.auth.api.rackspacecloud.com"
We will skip over learning how to do this the 'Rackspace Way' and instead jump right to using bootstrap to get their smallest Ubuntu 10.04 LTS server.
server = connection.servers.bootstrap

View file

@ -85,29 +85,29 @@ Now you've got a bunch of files in S3: your resume, some code samples,
and maybe some pictures of your cat doing funny stuff. Since this is
all of vital importance, you need to back it up.
# copy each file to local disk
directory.files.each do |s3_file|
File.open(s3_file.key, 'w') do |local_file|
local_file.write(s3_file.body)
end
end
# copy each file to local disk
directory.files.each do |s3_file|
File.open(s3_file.key, 'w') do |local_file|
local_file.write(s3_file.body)
end
end
One caveat: it's way more efficient to do this:
# do two things per file
directory.files.each do |file|
do_one_thing(file)
do_another_thing(file)
end
# do two things per file
directory.files.each do |file|
do_one_thing(file)
do_another_thing(file)
end
than it is to do this:
# do two things per file
directory.files.each do |file|
do_one_thing(file)
end.each do |file|
do_another_thing(file)
end
# do two things per file
directory.files.each do |file|
do_one_thing(file)
end.each do |file|
do_another_thing(file)
end
The reason is that the list of files might be large. Really
large. Eat-all-your-RAM-and-ask-for-more large. Therefore, every time
@ -145,6 +145,10 @@ Rackspace has <a href="http://www.rackspacecloud.com/cloud_hosting_products/file
:rackspace_api_key => RACKSPACE_API_KEY
})
If you work with the European cloud from Rackspace you have to add the following:
:rackspace_auth_url => "lon.auth.api.rackspacecloud.com"
Then create, save, destroy as per fog-for-AWS. The `:public => true` option when creating directories (see above) is important for Rackspace; your folder and files won't be shared to Rackspace's CDN and hence your users without it. Similarly the `:public =&gt; true` on files is important for AWS and Google or they will be private.
## Local Storage

View file

@ -6,8 +6,8 @@ Gem::Specification.new do |s|
## If your rubyforge_project name is different, then edit it and comment out
## the sub! line in the Rakefile
s.name = 'fog'
s.version = '0.10.0'
s.date = '2011-07-25'
s.version = '0.11.0'
s.date = '2011-08-18'
s.rubyforge_project = 'fog'
## Make sure your summary is short. The description may be as long

View file

@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), 'fog', 'core')
module Fog
unless const_defined?(:VERSION)
VERSION = '0.10.0'
VERSION = '0.11.0'
end
end

View file

@ -1,6 +1,4 @@
require 'fog/core'
require 'openssl' # For RSA key pairs
require 'base64' # For console output
module Fog
module AWS
@ -8,11 +6,11 @@ module Fog
extend Fog::Provider
service(:auto_scaling, 'aws/auto_scaling')
service(:cdn, 'cdn/aws')
service(:compute, 'compute/aws')
service(:cdn, 'aws/cdn')
service(:compute, 'aws/compute')
service(:cloud_formation, 'aws/cloud_formation')
service(:cloud_watch, 'aws/cloud_watch')
service(:dns, 'dns/aws')
service(:dns, 'aws/dns')
service(:elb, 'aws/elb')
service(:iam, 'aws/iam')
service(:rds, 'aws/rds')
@ -20,7 +18,7 @@ module Fog
service(:simpledb, 'aws/simpledb')
service(:sns, 'aws/sns')
service(:sqs, 'aws/sqs')
service(:storage, 'storage/aws')
service(:storage, 'aws/storage')
def self.indexed_param(key, values)
params = {}

View file

@ -5,9 +5,9 @@ module Fog
requires :aws_access_key_id, :aws_secret_access_key
recognizes :host, :path, :port, :scheme, :version, :persistent
model_path 'fog/cdn/models/aws'
model_path 'fog/aws/cdn/models'
request_path 'fog/cdn/requests/aws'
request_path 'fog/aws/requests/cdn'
request 'delete_distribution'
request 'delete_streaming_distribution'
request 'get_distribution'

View file

@ -5,7 +5,7 @@ module Fog
requires :aws_access_key_id, :aws_secret_access_key
recognizes :endpoint, :region, :host, :path, :port, :scheme, :persistent
model_path 'fog/compute/models/aws'
model_path 'fog/aws/models/compute'
model :address
collection :addresses
model :flavor
@ -27,7 +27,7 @@ module Fog
model :spot_request
collection :spot_requests
request_path 'fog/compute/requests/aws'
request_path 'fog/aws/requests/compute'
request :allocate_address
request :associate_address
request :attach_volume

View file

@ -5,13 +5,13 @@ module Fog
requires :aws_access_key_id, :aws_secret_access_key
recognizes :host, :path, :port, :scheme, :version, :persistent
model_path 'fog/dns/models/aws'
model_path 'fog/aws/models/dns'
model :record
collection :records
model :zone
collection :zones
request_path 'fog/dns/requests/aws'
request_path 'fog/aws/requests/dns'
request :create_hosted_zone
request :get_hosted_zone
request :delete_hosted_zone

View file

@ -4,6 +4,7 @@ module Fog
class IdentifierTaken < Fog::Errors::Error; end
class InvalidInstance < Fog::Errors::Error; end
class Throttled < Fog::Errors::Error; end
requires :aws_access_key_id, :aws_secret_access_key
recognizes :region, :host, :path, :port, :scheme, :persistent
@ -165,6 +166,8 @@ module Fog
raise Fog::AWS::ELB::IdentifierTaken.slurp(error, match[2])
when 'InvalidInstance'
raise Fog::AWS::ELB::InvalidInstance.slurp(error, match[2])
when 'Throttling'
raise Fog::AWS::ELB::Throttled.slurp(error, match[2])
else
raise
end

View file

@ -16,8 +16,8 @@ module Fog
request :create_access_key
request :create_account_alias
request :create_group
request :create_user
request :create_login_profile
request :create_user
request :delete_access_key
request :delete_account_alias
request :delete_group
@ -27,17 +27,17 @@ module Fog
request :delete_signing_certificate
request :delete_user
request :delete_user_policy
request :get_login_profile
request :get_user
request :get_user_policy
request :get_group
request :get_group_policy
request :get_login_profile
request :get_server_certificate
request :get_user
request :get_user_policy
request :list_access_keys
request :list_account_aliases
request :list_group_policies
request :list_groups
request :list_groups_for_user
request :list_group_policies
request :list_server_certificates
request :list_signing_certificates
request :list_user_policies
@ -48,8 +48,9 @@ module Fog
request :update_access_key
request :update_group
request :update_login_profile
request :update_user
request :update_server_certificate
request :update_signing_certificate
request :update_user
request :upload_server_certificate
request :upload_signing_certificate

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/compute/models/aws//address'
require 'fog/aws/models/compute/address'
module Fog
module Compute

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/compute/models/aws/flavor'
require 'fog/aws/models/compute/flavor'
module Fog
module Compute

View file

@ -37,6 +37,10 @@ module Fog
end
end
def ready?
state == 'available'
end
end
end

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/compute/models/aws/image'
require 'fog/aws/models/compute/image'
module Fog
module Compute

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/compute/models/aws/key_pair'
require 'fog/aws/models/compute/key_pair'
module Fog
module Compute

View file

@ -38,7 +38,7 @@ module Fog
# "Server"=>"AmazonEC2"}
#
def authorize_group_and_owner(group, owner)
def authorize_group_and_owner(group, owner = nil)
requires :name
connection.authorize_security_group_ingress(
@ -130,7 +130,7 @@ module Fog
# "Server"=>"AmazonEC2"}
#
def revoke_group_and_owner(group, owner)
def revoke_group_and_owner(group, owner = nil)
requires :name
connection.revoke_security_group_ingress(

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/compute/models/aws/security_group'
require 'fog/aws/models/compute/security_group'
module Fog
module Compute

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/compute/models/aws/server'
require 'fog/aws/models/compute/server'
module Fog
module Compute

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/compute/models/aws/snapshot'
require 'fog/aws/models/compute/snapshot'
module Fog
module Compute

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/compute/models/aws/spot_request'
require 'fog/aws/models/compute/spot_request'
module Fog
module Compute

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/compute/models/aws/tag'
require 'fog/aws/models/compute/tag'
module Fog
module Compute

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/compute/models/aws/volume'
require 'fog/aws/models/compute/volume'
module Fog
module Compute

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/dns/models/aws/record'
require 'fog/aws/models/dns/record'
module Fog
module DNS

View file

@ -1,5 +1,5 @@
require 'fog/core/model'
# require 'fog/dns/models/aws/records'
# require 'fog/aws/models/dns/records'
module Fog
module DNS

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/dns/models/aws/zone'
require 'fog/aws/models/dns/zone'
module Fog
module DNS

View file

@ -1,4 +1,5 @@
require 'fog/core/model'
require 'fog/core/current_machine'
module Fog
module AWS
@ -43,6 +44,16 @@ module Fog
authorize_ingress({'CIDRIP' => cidrip})
end
# Add the current machine to the RDS security group.
def authorize_me
authorize_ip_address(Fog::CurrentMachine.ip_address)
end
# Add the ip address to the RDS security group.
def authorize_ip_address(ip)
authorize_cidrip("#{ip}/32")
end
def authorize_ingress(opts)
data = connection.authorize_db_security_group_ingress(id, opts).body['AuthorizeDBSecurityGroupIngressResult']['DBSecurityGroup']
merge_attributes(data)

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/storage/models/aws/directory'
require 'fog/aws/models/storage/directory'
module Fog
module Storage

View file

@ -1,5 +1,5 @@
require 'fog/core/model'
require 'fog/storage/models/aws/files'
require 'fog/aws/models/storage/files'
module Fog
module Storage

View file

@ -1,5 +1,5 @@
require 'fog/core/collection'
require 'fog/storage/models/aws/file'
require 'fog/aws/models/storage/file'
module Fog
module Storage

View file

@ -23,7 +23,7 @@ module Fog
def end_element(name)
case name
when 'Arn'
when 'Arn', 'Path'
if @in_group
@response['Group'][name] = value
elsif @in_users
@ -35,7 +35,7 @@ module Fog
@response['Group'][name] = value
when 'Users'
@in_users = false
when 'UserId', 'UserName', 'Path'
when 'UserId', 'UserName'
@user[name] = value
when 'member'
@response['Users'] << @user

Some files were not shown because too many files have changed in this diff Show more