fog 0.3.17 → 0.3.18
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +5 -5
- data/README.rdoc +16 -7
- data/fog.gemspec +102 -27
- data/lib/fog.rb +3 -2
- data/lib/fog/aws/cdn.rb +2 -1
- data/lib/fog/aws/compute.rb +3 -2
- data/lib/fog/aws/iam.rb +8 -0
- data/lib/fog/aws/models/compute/flavors.rb +2 -1
- data/lib/fog/aws/models/compute/server.rb +3 -0
- data/lib/fog/aws/models/compute/volume.rb +9 -8
- data/lib/fog/aws/models/storage/file.rb +24 -14
- data/lib/fog/aws/models/storage/files.rb +4 -14
- data/lib/fog/aws/parsers/cdn/distribution.rb +16 -1
- data/lib/fog/aws/parsers/cdn/get_distribution_list.rb +13 -0
- data/lib/fog/aws/parsers/compute/describe_volumes.rb +2 -0
- data/lib/fog/aws/parsers/iam/create_group.rb +2 -2
- data/lib/fog/aws/parsers/iam/create_user.rb +26 -0
- data/lib/fog/aws/parsers/iam/list_group_policies.rb +28 -0
- data/lib/fog/aws/parsers/iam/list_groups.rb +1 -1
- data/lib/fog/aws/parsers/storage/complete_multipart_upload.rb +24 -0
- data/lib/fog/aws/parsers/storage/initiate_multipart_upload.rb +24 -0
- data/lib/fog/aws/parsers/storage/list_multipart_uploads.rb +56 -0
- data/lib/fog/aws/parsers/storage/list_parts.rb +40 -0
- data/lib/fog/aws/requests/cdn/get_distribution.rb +11 -1
- data/lib/fog/aws/requests/cdn/get_distribution_list.rb +9 -1
- data/lib/fog/aws/requests/cdn/post_distribution.rb +16 -5
- data/lib/fog/aws/requests/cdn/put_distribution_config.rb +102 -0
- data/lib/fog/aws/requests/compute/describe_volumes.rb +1 -0
- data/lib/fog/aws/requests/compute/run_instances.rb +1 -1
- data/lib/fog/aws/requests/iam/add_user_to_group.rb +42 -0
- data/lib/fog/aws/requests/iam/create_group.rb +7 -3
- data/lib/fog/aws/requests/iam/create_user.rb +47 -0
- data/lib/fog/aws/requests/iam/delete_group.rb +5 -1
- data/lib/fog/aws/requests/iam/delete_group_policy.rb +42 -0
- data/lib/fog/aws/requests/iam/delete_user.rb +40 -0
- data/lib/fog/aws/requests/iam/list_group_policies.rb +47 -0
- data/lib/fog/aws/requests/iam/list_groups.rb +9 -4
- data/lib/fog/aws/requests/iam/put_group_policy.rb +44 -0
- data/lib/fog/aws/requests/iam/remove_user_from_group.rb +42 -0
- data/lib/fog/aws/requests/simpledb/put_attributes.rb +2 -2
- data/lib/fog/aws/requests/storage/abort_multipart_upload.rb +38 -0
- data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +60 -0
- data/lib/fog/aws/requests/storage/get_service.rb +1 -1
- data/lib/fog/aws/requests/storage/initiate_multipart_upload.rb +55 -0
- data/lib/fog/aws/requests/storage/list_multipart_uploads.rb +68 -0
- data/lib/fog/aws/requests/storage/list_parts.rb +67 -0
- data/lib/fog/aws/requests/storage/put_object.rb +12 -5
- data/lib/fog/aws/requests/storage/upload_part.rb +51 -0
- data/lib/fog/aws/storage.rb +12 -6
- data/lib/fog/brightbox.rb +7 -0
- data/lib/fog/brightbox/bin.rb +23 -0
- data/lib/fog/brightbox/compute.rb +134 -0
- data/lib/fog/brightbox/models/compute/account.rb +51 -0
- data/lib/fog/brightbox/models/compute/cloud_ip.rb +43 -0
- data/lib/fog/brightbox/models/compute/cloud_ips.rb +34 -0
- data/lib/fog/brightbox/models/compute/flavor.rb +33 -0
- data/lib/fog/brightbox/models/compute/flavors.rb +28 -0
- data/lib/fog/brightbox/models/compute/image.rb +52 -0
- data/lib/fog/brightbox/models/compute/images.rb +28 -0
- data/lib/fog/brightbox/models/compute/server.rb +94 -0
- data/lib/fog/brightbox/models/compute/servers.rb +29 -0
- data/lib/fog/brightbox/models/compute/user.rb +39 -0
- data/lib/fog/brightbox/models/compute/users.rb +29 -0
- data/lib/fog/brightbox/models/compute/zone.rb +21 -0
- data/lib/fog/brightbox/models/compute/zones.rb +29 -0
- data/lib/fog/brightbox/requests/compute/create_api_client.rb +27 -0
- data/lib/fog/brightbox/requests/compute/create_cloud_ip.rb +27 -0
- data/lib/fog/brightbox/requests/compute/create_image.rb +27 -0
- data/lib/fog/brightbox/requests/compute/create_server.rb +27 -0
- data/lib/fog/brightbox/requests/compute/destroy_api_client.rb +28 -0
- data/lib/fog/brightbox/requests/compute/destroy_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/destroy_image.rb +28 -0
- data/lib/fog/brightbox/requests/compute/destroy_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_account.rb +27 -0
- data/lib/fog/brightbox/requests/compute/get_api_client.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_image.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_interface.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_server_type.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_user.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_zone.rb +28 -0
- data/lib/fog/brightbox/requests/compute/list_api_clients.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_cloud_ips.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_images.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_server_types.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_servers.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_users.rb +27 -0
- data/lib/fog/brightbox/requests/compute/list_zones.rb +27 -0
- data/lib/fog/brightbox/requests/compute/map_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/reset_ftp_password_account.rb +27 -0
- data/lib/fog/brightbox/requests/compute/resize_server.rb +27 -0
- data/lib/fog/brightbox/requests/compute/shutdown_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/snapshot_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/start_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/stop_server.rb +28 -0
- data/lib/fog/brightbox/requests/compute/unmap_cloud_ip.rb +28 -0
- data/lib/fog/brightbox/requests/compute/update_account.rb +28 -0
- data/lib/fog/brightbox/requests/compute/update_api_client.rb +29 -0
- data/lib/fog/brightbox/requests/compute/update_image.rb +29 -0
- data/lib/fog/brightbox/requests/compute/update_server.rb +29 -0
- data/lib/fog/brightbox/requests/compute/update_user.rb +29 -0
- data/lib/fog/core/attributes.rb +3 -3
- data/lib/fog/core/bin.rb +2 -0
- data/lib/fog/core/compute.rb +5 -2
- data/lib/fog/core/credentials.rb +2 -0
- data/lib/fog/core/service.rb +24 -12
- data/lib/fog/google/models/storage/file.rb +23 -14
- data/lib/fog/google/models/storage/files.rb +4 -14
- data/lib/fog/google/requests/storage/get_bucket.rb +0 -1
- data/lib/fog/google/requests/storage/put_object.rb +9 -2
- data/lib/fog/rackspace/models/storage/file.rb +3 -3
- data/lib/fog/rackspace/models/storage/files.rb +5 -13
- data/spec/aws/models/compute/server_spec.rb +0 -3
- data/spec/aws/requests/simpledb/get_attributes_spec.rb +11 -0
- data/spec/core/attributes_spec.rb +52 -0
- data/spec/vcloud/bin_spec.rb +1 -1
- data/spec/vcloud/vcloud_spec.rb +1 -1
- data/tests/aws/models/compute/flavors_tests.rb +5 -0
- data/tests/aws/models/compute/server_tests.rb +6 -0
- data/tests/aws/models/compute/servers_tests.rb +6 -0
- data/tests/aws/requests/storage/bucket_tests.rb +1 -1
- data/tests/aws/requests/storage/multipart_upload_tests.rb +135 -0
- data/tests/bluebox/models/compute/flavors_tests.rb +5 -0
- data/tests/bluebox/models/compute/server_tests.rb +5 -0
- data/tests/bluebox/models/compute/servers_tests.rb +6 -0
- data/tests/brightbox/helper.rb +0 -0
- data/tests/brightbox/models/compute/flavors_tests.rb +5 -0
- data/tests/brightbox/models/compute/server_tests.rb +6 -0
- data/tests/brightbox/models/compute/servers_tests.rb +6 -0
- data/tests/google/requests/storage/bucket_tests.rb +78 -0
- data/tests/google/requests/storage/object_tests.rb +81 -0
- data/tests/helper.rb +19 -4
- data/tests/helpers/collection_tests.rb +51 -0
- data/tests/helpers/compute/flavors_tests.rb +34 -0
- data/tests/helpers/compute/server_tests.rb +19 -0
- data/tests/helpers/compute/servers_tests.rb +11 -0
- data/tests/helpers/model_tests.rb +28 -0
- data/tests/helpers/storage/directories_tests.rb +4 -36
- data/tests/helpers/storage/directory_tests.rb +8 -22
- data/tests/helpers/storage/file_tests.rb +8 -25
- data/tests/helpers/storage/files_tests.rb +5 -39
- data/tests/local/models/storage/directories_tests.rb +1 -1
- data/tests/local/models/storage/directory_tests.rb +1 -1
- data/tests/local/models/storage/file_tests.rb +1 -1
- data/tests/local/models/storage/files_tests.rb +1 -1
- data/tests/rackspace/models/compute/flavors_tests.rb +5 -0
- data/tests/rackspace/models/compute/server_tests.rb +6 -0
- data/tests/rackspace/models/compute/servers_tests.rb +6 -0
- data/tests/rackspace/models/storage/directories_tests.rb +1 -1
- data/tests/rackspace/models/storage/directory_tests.rb +1 -1
- data/tests/rackspace/models/storage/file_tests.rb +1 -1
- data/tests/rackspace/models/storage/files_tests.rb +1 -1
- data/tests/slicehost/models/compute/flavors_tests.rb +5 -0
- data/tests/slicehost/models/compute/server_tests.rb +6 -0
- data/tests/slicehost/models/compute/servers_tests.rb +6 -0
- metadata +108 -31
- data/spec/aws/models/compute/flavors_spec.rb +0 -14
- data/spec/aws/models/compute/servers_spec.rb +0 -21
- data/spec/bluebox/models/compute/flavors_spec.rb +0 -17
- data/spec/bluebox/models/compute/server_spec.rb +0 -29
- data/spec/bluebox/models/compute/servers_spec.rb +0 -31
- data/spec/google/requests/storage/copy_object_spec.rb +0 -61
- data/spec/google/requests/storage/delete_bucket_spec.rb +0 -35
- data/spec/google/requests/storage/delete_object_spec.rb +0 -38
- data/spec/google/requests/storage/get_bucket_spec.rb +0 -110
- data/spec/google/requests/storage/get_object_spec.rb +0 -58
- data/spec/google/requests/storage/get_service_spec.rb +0 -32
- data/spec/google/requests/storage/head_object_spec.rb +0 -26
- data/spec/google/requests/storage/put_bucket_spec.rb +0 -21
- data/spec/google/requests/storage/put_object_spec.rb +0 -43
- data/spec/rackspace/models/compute/flavors_spec.rb +0 -18
- data/spec/rackspace/models/compute/server_spec.rb +0 -55
- data/spec/rackspace/models/compute/servers_spec.rb +0 -22
- data/spec/shared_examples/flavors_examples.rb +0 -16
- data/spec/shared_examples/server_examples.rb +0 -43
- data/spec/shared_examples/servers_examples.rb +0 -37
- data/spec/slicehost/models/compute/flavors_spec.rb +0 -18
- data/spec/slicehost/models/compute/server_spec.rb +0 -55
- data/spec/slicehost/models/compute/servers_spec.rb +0 -26
@@ -1,14 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
require File.dirname(__FILE__) + '/../../../shared_examples/flavors_examples'
|
3
|
-
|
4
|
-
describe 'Fog::AWS::Compute::Flavors' do
|
5
|
-
|
6
|
-
it_should_behave_like "Flavors"
|
7
|
-
|
8
|
-
subject { @flavor = @flavors.all.first }
|
9
|
-
|
10
|
-
before(:each) do
|
11
|
-
@flavors = AWS[:compute].flavors
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
require File.dirname(__FILE__) + '/../../../shared_examples/servers_examples'
|
3
|
-
|
4
|
-
describe 'Fog::AWS::Compute::Servers' do
|
5
|
-
|
6
|
-
it_should_behave_like "Servers"
|
7
|
-
|
8
|
-
subject { @server = @servers.new(:image_id => GENTOO_AMI) }
|
9
|
-
|
10
|
-
before(:each) do
|
11
|
-
@servers = AWS[:compute].servers
|
12
|
-
end
|
13
|
-
|
14
|
-
after(:each) do
|
15
|
-
if @server && !@server.new_record?
|
16
|
-
@server.wait_for { ready? }
|
17
|
-
@server.destroy.should be_true
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
require File.dirname(__FILE__) + '/../../../shared_examples/flavors_examples'
|
3
|
-
|
4
|
-
describe 'Fog::Bluebox::Compute::Flavors' do
|
5
|
-
|
6
|
-
if Fog.mocking?
|
7
|
-
it "needs to have mocks implemented"
|
8
|
-
else
|
9
|
-
it_should_behave_like "Flavors"
|
10
|
-
end
|
11
|
-
subject { @flavor = @flavors.all.first }
|
12
|
-
|
13
|
-
before(:each) do
|
14
|
-
@flavors = Bluebox[:compute].flavors
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
require File.dirname(__FILE__) + '/../../../shared_examples/server_examples'
|
3
|
-
|
4
|
-
describe 'Fog::Bluebox::Compute::Server' do
|
5
|
-
|
6
|
-
if Fog.mocking?
|
7
|
-
it "needs to have mocks implemented"
|
8
|
-
else
|
9
|
-
it_should_behave_like "Server"
|
10
|
-
end
|
11
|
-
|
12
|
-
subject {
|
13
|
-
@flavor_id = '94fd37a7-2606-47f7-84d5-9000deda52ae' # Block 1GB Virtual Server
|
14
|
-
@image_id = 'a00baa8f-b5d0-4815-8238-b471c4c4bf72' # Ubuntu 9.10 64bit
|
15
|
-
@server = @servers.new(:flavor_id => @flavor_id, :image_id => @image_id, :password => "chunkybacon")
|
16
|
-
}
|
17
|
-
|
18
|
-
before(:each) do
|
19
|
-
@servers = Bluebox[:compute].servers
|
20
|
-
end
|
21
|
-
|
22
|
-
after(:each) do
|
23
|
-
if @server && !@server.new_record?
|
24
|
-
@server.wait_for { ready? }
|
25
|
-
@server.destroy.should be_true
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
require File.dirname(__FILE__) + '/../../../shared_examples/servers_examples'
|
3
|
-
|
4
|
-
describe 'Fog::Bluebox::Compute::Servers' do
|
5
|
-
|
6
|
-
if Fog.mocking?
|
7
|
-
it "needs to have mocks implemented"
|
8
|
-
else
|
9
|
-
it_should_behave_like "Servers"
|
10
|
-
end
|
11
|
-
|
12
|
-
# flavor 1 = 256, image 3 = gentoo 2008.0
|
13
|
-
subject {
|
14
|
-
@flavor_id = '94fd37a7-2606-47f7-84d5-9000deda52ae' # Block 1GB Virtual Server
|
15
|
-
@image_id = 'a00baa8f-b5d0-4815-8238-b471c4c4bf72' # Ubuntu 9.10 64bit
|
16
|
-
@server = @servers.new(:flavor_id => @flavor_id, :image_id => @image_id, :password => "chunkybacon")
|
17
|
-
@server
|
18
|
-
}
|
19
|
-
|
20
|
-
before(:each) do
|
21
|
-
@servers = Bluebox[:compute].servers
|
22
|
-
end
|
23
|
-
|
24
|
-
after(:each) do
|
25
|
-
if @server && !@server.new_record?
|
26
|
-
@server.wait_for { ready? }
|
27
|
-
@server.destroy.should be_true
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
@@ -1,61 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
|
3
|
-
describe 'Storage.copy_object' do
|
4
|
-
describe 'success' do
|
5
|
-
|
6
|
-
before(:each) do
|
7
|
-
Google[:storage].put_bucket('fogcopyobjectsource')
|
8
|
-
Google[:storage].put_object('fogcopyobjectsource', 'fog_copy_object_source', lorem_file)
|
9
|
-
Google[:storage].put_bucket('fogcopyobjectdestination')
|
10
|
-
end
|
11
|
-
|
12
|
-
after(:each) do
|
13
|
-
Google[:storage].delete_object('fogcopyobjectdestination', 'fog_copy_object_destination')
|
14
|
-
Google[:storage].delete_bucket('fogcopyobjectdestination')
|
15
|
-
Google[:storage].delete_object('fogcopyobjectsource', 'fog_copy_object_source')
|
16
|
-
Google[:storage].delete_bucket('fogcopyobjectsource')
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'should return proper attributes' do
|
20
|
-
actual = Google[:storage].copy_object(
|
21
|
-
'fogcopyobjectsource', 'fog_copy_object_source',
|
22
|
-
'fogcopyobjectdestination', 'fog_copy_object_destination'
|
23
|
-
)
|
24
|
-
actual.status.should == 200
|
25
|
-
actual.body['ETag'].should be_a(String)
|
26
|
-
actual.body['LastModified'].should be_a(Time)
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
describe 'failure' do
|
31
|
-
|
32
|
-
it 'should raise a NotFound error if the source_bucket does not exist' do
|
33
|
-
lambda {
|
34
|
-
Google[:storage].copy_object(
|
35
|
-
'fognotabucket', 'fog_copy_object_source',
|
36
|
-
'fogcopyobjectdestination', 'fog_copy_object_destination'
|
37
|
-
)
|
38
|
-
}.should raise_error(Excon::Errors::NotFound)
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'should raise a NotFound error if the source_object does not exist' do
|
42
|
-
lambda {
|
43
|
-
Google[:storage].copy_object(
|
44
|
-
'fogcopyobjectsource', 'fog_not_an_object',
|
45
|
-
'fogcopyobjectdestination', 'fog_copy_object_destination'
|
46
|
-
)
|
47
|
-
}.should raise_error(Excon::Errors::NotFound)
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'should raise a NotFound error if the target_bucket does not exist' do
|
51
|
-
lambda {
|
52
|
-
Google[:storage].copy_object(
|
53
|
-
'fogcopyobjectsource', 'fog_copy_object_source',
|
54
|
-
'fognotabucket', 'fog_copy_object_destination'
|
55
|
-
)
|
56
|
-
}.should raise_error(Excon::Errors::NotFound)
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
|
3
|
-
describe 'Storage.delete_bucket' do
|
4
|
-
describe 'success' do
|
5
|
-
|
6
|
-
before(:each) do
|
7
|
-
Google[:storage].put_bucket('fogdeletebucket')
|
8
|
-
end
|
9
|
-
|
10
|
-
it 'should return proper attributes' do
|
11
|
-
actual = Google[:storage].delete_bucket('fogdeletebucket')
|
12
|
-
actual.status.should == 204
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
describe 'failure' do
|
17
|
-
|
18
|
-
it 'should raise a NotFound error if the bucket does not exist' do
|
19
|
-
lambda {
|
20
|
-
Google[:storage].delete_bucket('fognotabucket')
|
21
|
-
}.should raise_error(Excon::Errors::NotFound)
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'should raise a Conflict error if the bucket is not empty' do
|
25
|
-
Google[:storage].put_bucket('fogdeletebucket')
|
26
|
-
Google[:storage].put_object('fogdeletebucket', 'fog_delete_object', lorem_file)
|
27
|
-
lambda {
|
28
|
-
Google[:storage].delete_bucket('fogdeletebucket')
|
29
|
-
}.should raise_error(Excon::Errors::Conflict)
|
30
|
-
Google[:storage].delete_object('fogdeletebucket', 'fog_delete_object')
|
31
|
-
Google[:storage].delete_bucket('fogdeletebucket')
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
|
3
|
-
describe 'Storage.delete_object' do
|
4
|
-
describe 'success' do
|
5
|
-
|
6
|
-
before(:each) do
|
7
|
-
Google[:storage].put_bucket('fogdeleteobject')
|
8
|
-
Google[:storage].put_object('fogdeleteobject', 'fog_delete_object', lorem_file)
|
9
|
-
end
|
10
|
-
|
11
|
-
after(:each) do
|
12
|
-
Google[:storage].delete_bucket('fogdeleteobject')
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'should return proper attributes' do
|
16
|
-
actual = Google[:storage].delete_object('fogdeleteobject', 'fog_delete_object')
|
17
|
-
actual.status.should == 204
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
21
|
-
describe 'failure' do
|
22
|
-
|
23
|
-
it 'should raise a NotFound error if the bucket does not exist' do
|
24
|
-
lambda {
|
25
|
-
Google[:storage].delete_object('fognotabucket', 'fog_delete_object')
|
26
|
-
}.should raise_error(Excon::Errors::NotFound)
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'should raise an error if the object does not exist' do
|
30
|
-
Google[:storage].put_bucket('fogdeleteobject')
|
31
|
-
lambda {
|
32
|
-
Google[:storage].delete_object('fogdeleteobject', 'fog_not_an_object')
|
33
|
-
}.should raise_error(Excon::Errors::NotFound)
|
34
|
-
Google[:storage].delete_bucket('fogdeleteobject')
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
@@ -1,110 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
|
3
|
-
describe 'Storage.get_bucket' do
|
4
|
-
describe 'success' do
|
5
|
-
|
6
|
-
before(:all) do
|
7
|
-
Google[:storage].put_bucket('foggetbucket')
|
8
|
-
Google[:storage].put_object('foggetbucket', 'fog_object', lorem_file)
|
9
|
-
Google[:storage].put_object('foggetbucket', 'fog_other_object', lorem_file)
|
10
|
-
end
|
11
|
-
|
12
|
-
after(:all) do
|
13
|
-
Google[:storage].delete_object('foggetbucket', 'fog_object')
|
14
|
-
Google[:storage].delete_object('foggetbucket', 'fog_other_object')
|
15
|
-
Google[:storage].delete_bucket('foggetbucket')
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'should return proper attributes' do
|
19
|
-
actual = Google[:storage].get_bucket('foggetbucket')
|
20
|
-
actual.body['IsTruncated'].should == false
|
21
|
-
actual.body['Marker'].should be_nil
|
22
|
-
actual.body['Name'].should be_a(String)
|
23
|
-
actual.body['Prefix'].should be_nil
|
24
|
-
actual.body['Contents'].should be_an(Array)
|
25
|
-
actual.body['Contents'].length.should == 2
|
26
|
-
object = actual.body['Contents'].first
|
27
|
-
object['ETag'].should be_a(String)
|
28
|
-
object['Key'].should == 'fog_object'
|
29
|
-
object['LastModified'].should be_a(Time)
|
30
|
-
owner = object['Owner']
|
31
|
-
owner['DisplayName'].should be_a(String)
|
32
|
-
owner['ID'].should be_a(String)
|
33
|
-
object['Size'].should be_an(Integer)
|
34
|
-
object['StorageClass'].should be_a(String)
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'should accept marker option' do
|
38
|
-
actual = Google[:storage].get_bucket('foggetbucket', 'marker' => 'fog_object')
|
39
|
-
actual.body['IsTruncated'].should == false
|
40
|
-
actual.body['Marker'].should be_a(String)
|
41
|
-
actual.body['Name'].should be_a(String)
|
42
|
-
actual.body['Prefix'].should be_nil
|
43
|
-
actual.body['Contents'].should be_an(Array)
|
44
|
-
actual.body['Contents'].length.should == 1
|
45
|
-
object = actual.body['Contents'].first
|
46
|
-
object['ETag'].should be_a(String)
|
47
|
-
object['Key'].should == 'fog_other_object'
|
48
|
-
object['LastModified'].should be_a(Time)
|
49
|
-
owner = object['Owner']
|
50
|
-
owner['DisplayName'].should be_a(String)
|
51
|
-
owner['ID'].should be_a(String)
|
52
|
-
object['Size'].should be_an(Integer)
|
53
|
-
object['StorageClass'].should be_a(String)
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'should accept max-keys option' do
|
57
|
-
actual = Google[:storage].get_bucket('foggetbucket', 'max-keys' => 1)
|
58
|
-
actual.body['IsTruncated'].should == true
|
59
|
-
actual.body['Marker'].should be_nil
|
60
|
-
actual.body['Name'].should be_a(String)
|
61
|
-
actual.body['Prefix'].should be_nil
|
62
|
-
actual.body['Contents'].should be_an(Array)
|
63
|
-
actual.body['Contents'].length.should == 1
|
64
|
-
object = actual.body['Contents'].first
|
65
|
-
object['ETag'].should be_a(String)
|
66
|
-
object['Key'].should == 'fog_object'
|
67
|
-
object['LastModified'].should be_a(Time)
|
68
|
-
owner = object['Owner']
|
69
|
-
owner['DisplayName'].should be_a(String)
|
70
|
-
owner['ID'].should be_a(String)
|
71
|
-
object['Size'].should be_an(Integer)
|
72
|
-
object['StorageClass'].should be_a(String)
|
73
|
-
end
|
74
|
-
|
75
|
-
it 'should accept prefix option' do
|
76
|
-
actual = Google[:storage].get_bucket('foggetbucket', 'prefix' => 'fog_ob')
|
77
|
-
actual.body['IsTruncated'].should == false
|
78
|
-
actual.body['Marker'].should be_nil
|
79
|
-
actual.body['Name'].should be_a(String)
|
80
|
-
actual.body['Prefix'].should be_a(String)
|
81
|
-
actual.body['Contents'].should be_an(Array)
|
82
|
-
actual.body['Contents'].length.should == 1
|
83
|
-
object = actual.body['Contents'].first
|
84
|
-
object['ETag'].should be_a(String)
|
85
|
-
object['Key'].should == 'fog_object'
|
86
|
-
object['LastModified'].should be_a(Time)
|
87
|
-
owner = object['Owner']
|
88
|
-
owner['DisplayName'].should be_a(String)
|
89
|
-
owner['ID'].should be_a(String)
|
90
|
-
object['Size'].should be_an(Integer)
|
91
|
-
object['StorageClass'].should be_a(String)
|
92
|
-
end
|
93
|
-
|
94
|
-
end
|
95
|
-
describe 'failure' do
|
96
|
-
|
97
|
-
it 'should raise a NotFound error if the bucket does not exist' do
|
98
|
-
lambda {
|
99
|
-
Google[:storage].get_bucket('fognotabucket')
|
100
|
-
}.should raise_error(Excon::Errors::NotFound)
|
101
|
-
end
|
102
|
-
|
103
|
-
it 'should request non-subdomain buckets and raise a NotFound error' do
|
104
|
-
lambda {
|
105
|
-
Google[:storage].get_bucket('A-invalid--name')
|
106
|
-
}.should raise_error(Excon::Errors::BadRequest)
|
107
|
-
end
|
108
|
-
|
109
|
-
end
|
110
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
|
3
|
-
describe 'Storage.get_object' do
|
4
|
-
describe 'success' do
|
5
|
-
|
6
|
-
before(:each) do
|
7
|
-
Google[:storage].put_bucket('foggetobject')
|
8
|
-
Google[:storage].put_object('foggetobject', 'fog_get_object', lorem_file,{'x-goog-acl' => 'public-read'})
|
9
|
-
end
|
10
|
-
|
11
|
-
after(:each) do
|
12
|
-
Google[:storage].delete_object('foggetobject', 'fog_get_object')
|
13
|
-
Google[:storage].delete_bucket('foggetobject')
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'should return proper attributes' do
|
17
|
-
actual = Google[:storage].get_object('foggetobject', 'fog_get_object')
|
18
|
-
actual.status.should == 200
|
19
|
-
data = lorem_file.read
|
20
|
-
actual.body.should == data
|
21
|
-
actual.body.length.should == data.length
|
22
|
-
actual.headers['Content-Type'].should be_a(String)
|
23
|
-
actual.headers['ETag'].should be_a(String)
|
24
|
-
actual.headers['Last-Modified'].should be_a(String)
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'should return chunks with optional block' do
|
28
|
-
data = ''
|
29
|
-
Google[:storage].get_object('foggetobject', 'fog_get_object') do |chunk|
|
30
|
-
data << chunk
|
31
|
-
end
|
32
|
-
data.should == lorem_file.read
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'should return a url' do
|
36
|
-
url = Google[:storage].get_object_url('foggetobject', 'fog_get_object', Time.now + 60 * 10)
|
37
|
-
unless Fog.mocking?
|
38
|
-
open(url).read.should == lorem_file.read
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
describe 'failure' do
|
44
|
-
|
45
|
-
it 'should raise a NotFound error if the bucket does not exist' do
|
46
|
-
lambda {
|
47
|
-
Google[:storage].get_object('fognotabucket', 'fog_get_object')
|
48
|
-
}.should raise_error(Excon::Errors::NotFound)
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'should raise a NotFound error if the object does not exist' do
|
52
|
-
lambda {
|
53
|
-
Google[:storage].get_object('foggetobject', 'fog_not_an_object')
|
54
|
-
}.should raise_error(Excon::Errors::NotFound)
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
58
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
-
|
3
|
-
describe 'Storage.get_service' do
|
4
|
-
describe 'success' do
|
5
|
-
|
6
|
-
before(:all) do
|
7
|
-
Google[:storage].put_bucket('foggetservice')
|
8
|
-
Fog.wait_for { Google[:storage].directories.get('foggetservice') }
|
9
|
-
end
|
10
|
-
|
11
|
-
after(:all) do
|
12
|
-
Google[:storage].delete_bucket('foggetservice')
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'should return proper_attributes' do
|
16
|
-
actual = Google[:storage].get_service
|
17
|
-
actual.body['Buckets'].should be_an(Array)
|
18
|
-
bucket = actual.body['Buckets'].select {|bucket| bucket['Name'] == 'foggetservice'}.first
|
19
|
-
bucket['CreationDate'].should be_a(Time)
|
20
|
-
bucket['Name'].should == 'foggetservice'
|
21
|
-
owner = actual.body['Owner']
|
22
|
-
owner['DisplayName'].should be_a(String)
|
23
|
-
owner['ID'].should be_a(String)
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'should include foggetservice in get_service' do
|
27
|
-
actual = Google[:storage].get_service
|
28
|
-
actual.body['Buckets'].collect { |bucket| bucket['Name'] }.should include('foggetservice')
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|