fog 0.3.25 → 0.3.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +9 -9
- data/fog.gemspec +10 -5
- data/lib/fog.rb +1 -1
- data/lib/fog/aws/compute.rb +1 -1
- data/lib/fog/aws/models/compute/address.rb +2 -2
- data/lib/fog/aws/models/compute/addresses.rb +44 -0
- data/lib/fog/aws/models/compute/flavors.rb +124 -0
- data/lib/fog/aws/models/compute/images.rb +31 -3
- data/lib/fog/aws/models/compute/key_pairs.rb +48 -0
- data/lib/fog/aws/models/compute/security_groups.rb +57 -1
- data/lib/fog/aws/models/compute/servers.rb +79 -0
- data/lib/fog/aws/models/compute/snapshots.rb +1 -1
- data/lib/fog/aws/models/compute/tags.rb +1 -1
- data/lib/fog/aws/models/compute/volume.rb +2 -2
- data/lib/fog/aws/models/compute/volumes.rb +69 -0
- data/lib/fog/aws/requests/cdn/post_distribution.rb +1 -1
- data/lib/fog/aws/requests/compute/create_image.rb +7 -1
- data/lib/fog/aws/requests/compute/create_snapshot.rb +7 -1
- data/lib/fog/bluebox/compute.rb +1 -1
- data/lib/fog/go_grid/compute.rb +1 -1
- data/lib/fog/new_servers/compute.rb +1 -1
- data/lib/fog/rackspace/cdn.rb +1 -1
- data/lib/fog/rackspace/compute.rb +5 -1
- data/lib/fog/rackspace/models/compute/server.rb +1 -1
- data/lib/fog/rackspace/requests/compute/confirm_resized_server.rb +34 -0
- data/lib/fog/rackspace/requests/compute/reboot_server.rb +5 -7
- data/lib/fog/rackspace/requests/compute/resize_server.rb +39 -0
- data/lib/fog/rackspace/requests/compute/revert_resized_server.rb +35 -0
- data/lib/fog/rackspace/requests/compute/server_action.rb +33 -0
- data/lib/fog/rackspace/storage.rb +1 -1
- data/lib/fog/slicehost/compute.rb +1 -1
- data/spec/aws/models/compute/volume_spec.rb +50 -28
- data/spec/aws/models/compute/volumes_spec.rb +1 -1
- data/tests/aws/requests/storage/bucket_tests.rb +6 -5
- data/tests/helper.rb +4 -0
- data/tests/rackspace/requests/compute/resize_tests.rb +47 -0
- metadata +14 -10
@@ -10,12 +10,8 @@ module Fog
|
|
10
10
|
# * type<~String> - Type of reboot, must be in ['HARD', 'SOFT']
|
11
11
|
#
|
12
12
|
def reboot_server(server_id, type = 'SOFT')
|
13
|
-
|
14
|
-
|
15
|
-
:expects => 202,
|
16
|
-
:method => 'POST',
|
17
|
-
:path => "servers/#{server_id}/action.json"
|
18
|
-
)
|
13
|
+
body = { 'reboot' => { 'type' => type }}
|
14
|
+
server_action(server_id, body)
|
19
15
|
end
|
20
16
|
|
21
17
|
end
|
@@ -23,7 +19,9 @@ module Fog
|
|
23
19
|
class Mock
|
24
20
|
|
25
21
|
def reboot_server(server_id, type = 'SOFT')
|
26
|
-
|
22
|
+
response = Excon::Response.new
|
23
|
+
response.status = 202
|
24
|
+
response
|
27
25
|
end
|
28
26
|
|
29
27
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Fog
|
2
|
+
module Rackspace
|
3
|
+
class Compute
|
4
|
+
class Real
|
5
|
+
|
6
|
+
# Reboot an existing server
|
7
|
+
#
|
8
|
+
# ==== Parameters
|
9
|
+
# * server_id<~Integer> - Id of server to resize
|
10
|
+
# * size<~String> - new size. call list_flavors to get available flavors
|
11
|
+
#
|
12
|
+
def resize_server(server_id, flavor_id)
|
13
|
+
body = { 'resize' => { 'flavorId' => flavor_id }}
|
14
|
+
server_action(server_id, body)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
class Mock
|
20
|
+
|
21
|
+
# FIXME: should probably transition instead of skipping to VERIFY_RESIZE
|
22
|
+
def resize_server(server_id, flavor_id)
|
23
|
+
response = Excon::Response.new
|
24
|
+
response.status = 202
|
25
|
+
|
26
|
+
# keep track of this for reverts
|
27
|
+
@data[:servers][server_id]['old_flavorId'] = @data[:servers][server_id]['flavorId']
|
28
|
+
|
29
|
+
@data[:servers][server_id]['flavorId'] = flavor_id
|
30
|
+
@data[:last_modified][:servers][server_id] = Time.now
|
31
|
+
@data[:servers][server_id]['status'] = 'VERIFY_RESIZE'
|
32
|
+
|
33
|
+
response
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Fog
|
2
|
+
module Rackspace
|
3
|
+
class Compute
|
4
|
+
class Real
|
5
|
+
|
6
|
+
# Revert resizing
|
7
|
+
#
|
8
|
+
# ==== Parameters
|
9
|
+
# * server_id<~Integer> - Id of server to revert
|
10
|
+
#
|
11
|
+
def revert_resized_server(server_id)
|
12
|
+
body = { 'revertResize' => nil }
|
13
|
+
server_action(server_id, body)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
class Mock
|
19
|
+
|
20
|
+
def revert_resized_server(server_id)
|
21
|
+
response = Excon::Response.new
|
22
|
+
response.status = 202
|
23
|
+
|
24
|
+
@data[:servers][server_id]['flavorId'] = @data[:servers][server_id]['old_flavorId']
|
25
|
+
@data[:servers][server_id].delete('old_flavorId')
|
26
|
+
@data[:last_modified][:servers][server_id] = Time.now
|
27
|
+
@data[:servers][server_id]['status'] = 'ACTIVE'
|
28
|
+
|
29
|
+
response
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Fog
|
2
|
+
module Rackspace
|
3
|
+
class Compute
|
4
|
+
class Real
|
5
|
+
|
6
|
+
# Reboot an existing server
|
7
|
+
#
|
8
|
+
# ==== Parameters
|
9
|
+
# * server_id<~Integer> - Id of server to reboot
|
10
|
+
# * body<~.to_json object> - Body of the request, describes the action (see reboot_server as an example)
|
11
|
+
# * expect<~Integer> - expected return, 202 except for confirm resize (204)
|
12
|
+
#
|
13
|
+
def server_action(server_id, body, expects=202)
|
14
|
+
request(
|
15
|
+
:body => body.to_json,
|
16
|
+
:expects => expects,
|
17
|
+
:method => 'POST',
|
18
|
+
:path => "servers/#{server_id}/action.json"
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
class Mock
|
25
|
+
|
26
|
+
def server_action(server_id, body)
|
27
|
+
Fog::Mock.not_implemented
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -111,7 +111,7 @@ module Fog
|
|
111
111
|
:host => @host,
|
112
112
|
:path => "#{@path}/#{params[:path]}",
|
113
113
|
}), &block)
|
114
|
-
rescue Excon::Errors::
|
114
|
+
rescue Excon::Errors::HTTPStatusError => error
|
115
115
|
raise case error
|
116
116
|
when Excon::Errors::NotFound
|
117
117
|
Fog::Rackspace::Storage::NotFound.slurp(error)
|
@@ -73,7 +73,7 @@ module Fog
|
|
73
73
|
|
74
74
|
begin
|
75
75
|
response = @connection.request(params.merge!({:host => @host}))
|
76
|
-
rescue Excon::Errors::
|
76
|
+
rescue Excon::Errors::HTTPStatusError => error
|
77
77
|
raise case error
|
78
78
|
when Excon::Errors::NotFound
|
79
79
|
Fog::Slicehost::Compute::NotFound.slurp(error)
|
@@ -67,42 +67,64 @@ describe 'Fog::AWS::Compute::Volume' do
|
|
67
67
|
@volume = AWS[:compute].volumes.new(:availability_zone => @server.availability_zone, :size => 1, :device => '/dev/sdz1')
|
68
68
|
end
|
69
69
|
|
70
|
-
|
71
|
-
|
72
|
-
@volume.
|
73
|
-
|
74
|
-
|
75
|
-
|
70
|
+
describe "when set to a server" do
|
71
|
+
after(:each) do
|
72
|
+
if @volume.id
|
73
|
+
@volume.wait_for { state == 'in-use' }
|
74
|
+
@volume.server = nil
|
75
|
+
@volume.wait_for { ready? }
|
76
|
+
@volume.destroy
|
77
|
+
end
|
76
78
|
end
|
77
|
-
end
|
78
79
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
80
|
+
it "should not attach to server if the volume has not been saved" do
|
81
|
+
@volume.server = @server
|
82
|
+
@volume.server_id.should_not == @server.id
|
83
|
+
end
|
83
84
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
85
|
+
it "should change the availability_zone if the volume has not been saved" do
|
86
|
+
@volume.server = @server
|
87
|
+
@volume.availability_zone.should == @server.availability_zone
|
88
|
+
end
|
88
89
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
90
|
+
it "should attach to server when the volume is saved" do
|
91
|
+
@volume.server = @server
|
92
|
+
@volume.save.should be_true
|
93
|
+
@volume.server_id.should == @server.id
|
94
|
+
end
|
95
|
+
|
96
|
+
it "should attach to server to an already saved volume" do
|
97
|
+
@volume.save.should be_true
|
98
|
+
@volume.server = @server
|
99
|
+
@volume.server_id.should == @server.id
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should not change the availability_zone if the volume has been saved" do
|
103
|
+
@volume.save.should be_true
|
104
|
+
@volume.server = @server
|
105
|
+
@volume.availability_zone.should == @server.availability_zone
|
106
|
+
end
|
94
107
|
|
95
|
-
it "should attach to server to an already saved volume" do
|
96
|
-
@volume.save.should be_true
|
97
|
-
@volume.server = @server
|
98
|
-
@volume.server_id.should == @server.id
|
99
108
|
end
|
100
109
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
110
|
+
describe "when set to nil" do
|
111
|
+
after(:each) do
|
112
|
+
@volume.destroy
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should detach from server if the volume has been saved" do
|
116
|
+
@volume.server = @server
|
117
|
+
@volume.save.should be_true
|
118
|
+
@server.reload.volumes.map(&:id).should include(@volume.id)
|
119
|
+
|
120
|
+
@volume.server = nil
|
121
|
+
@volume.wait_for { ready? }
|
122
|
+
@volume.server_id.should be_nil
|
123
|
+
@server.reload.volumes.map(&:id).should_not include(@volume.id)
|
124
|
+
end
|
125
|
+
|
105
126
|
end
|
127
|
+
|
106
128
|
end
|
107
129
|
|
108
130
|
describe "#reload" do
|
@@ -39,7 +39,7 @@ describe 'Fog::AWS::Compute::Volumes' do
|
|
39
39
|
describe "#get" do
|
40
40
|
|
41
41
|
it "should return a Fog::AWS::Compute::Volume if a matching volume exists" do
|
42
|
-
volume = AWS[:compute].volumes.create(:availability_zone => 'us-east-1a', :size => 1
|
42
|
+
volume = AWS[:compute].volumes.create(:availability_zone => 'us-east-1a', :size => 1)
|
43
43
|
volume.wait_for { ready? }
|
44
44
|
get = AWS[:compute].volumes.get(volume.id)
|
45
45
|
volume.attributes.should == get.attributes
|
@@ -3,11 +3,12 @@ Shindo.tests('AWS::Storage | bucket requests', ['aws']) do
|
|
3
3
|
tests('success') do
|
4
4
|
|
5
5
|
@bucket_format = {
|
6
|
-
'
|
7
|
-
'
|
8
|
-
'
|
9
|
-
'
|
10
|
-
'
|
6
|
+
'CommonPrefixes' => [],
|
7
|
+
'IsTruncated' => Fog::Boolean,
|
8
|
+
'Marker' => NilClass,
|
9
|
+
'MaxKeys' => Integer,
|
10
|
+
'Name' => String,
|
11
|
+
'Prefix' => NilClass,
|
11
12
|
'Contents' => [{
|
12
13
|
'ETag' => String,
|
13
14
|
'Key' => String,
|
data/tests/helper.rb
CHANGED
@@ -24,6 +24,10 @@ require 'tests/helpers/storage/directories_tests'
|
|
24
24
|
require 'tests/helpers/storage/file_tests'
|
25
25
|
require 'tests/helpers/storage/files_tests'
|
26
26
|
|
27
|
+
# Use so you can run in mock mode from the command line:
|
28
|
+
#
|
29
|
+
# FOG_MOCK=true fog
|
30
|
+
|
27
31
|
if ENV["FOG_MOCK"] == "true"
|
28
32
|
Fog.mock!
|
29
33
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
Shindo.tests('Rackspace::Compute | resize request', ['rackspace']) do
|
2
|
+
|
3
|
+
tests('confirm') do
|
4
|
+
|
5
|
+
@server = Rackspace[:compute].servers.create(:flavor_id => 1, :image_id => 19)
|
6
|
+
|
7
|
+
@server.wait_for { ready? }
|
8
|
+
|
9
|
+
tests("#resize_server(#{@server.id}, 2)").succeeds do
|
10
|
+
Rackspace[:compute].resize_server(@server.id, 2)
|
11
|
+
end
|
12
|
+
|
13
|
+
@server.wait_for { status == 'VERIFY_RESIZE' }
|
14
|
+
|
15
|
+
tests("#confirm_resized_server(#{@server.id})").succeeds do
|
16
|
+
Rackspace[:compute].confirm_resized_server(@server.id)
|
17
|
+
end
|
18
|
+
|
19
|
+
@server.wait_for { ready? }
|
20
|
+
|
21
|
+
@server.destroy
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
tests('revert') do
|
26
|
+
|
27
|
+
@server = Rackspace[:compute].servers.create(:flavor_id => 1, :image_id => 19)
|
28
|
+
|
29
|
+
@server.wait_for { ready? }
|
30
|
+
|
31
|
+
tests("#resize_server(#{@server.id}, 2)").succeeds do
|
32
|
+
Rackspace[:compute].resize_server(@server.id, 2)
|
33
|
+
end
|
34
|
+
|
35
|
+
@server.wait_for { status == 'VERIFY_RESIZE' }
|
36
|
+
|
37
|
+
tests("#revert_resized_server(#{@server.id})").succeeds do
|
38
|
+
Rackspace[:compute].revert_resized_server(@server.id)
|
39
|
+
end
|
40
|
+
|
41
|
+
@server.wait_for { ready? }
|
42
|
+
|
43
|
+
@server.destroy
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 26
|
9
|
+
version: 0.3.26
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- geemus (Wesley Beary)
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-12-01 00:00:00 -08:00
|
18
18
|
default_executable: fog
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -39,8 +39,8 @@ dependencies:
|
|
39
39
|
segments:
|
40
40
|
- 0
|
41
41
|
- 2
|
42
|
-
-
|
43
|
-
version: 0.2.
|
42
|
+
- 8
|
43
|
+
version: 0.2.8
|
44
44
|
requirement: *id002
|
45
45
|
name: excon
|
46
46
|
- !ruby/object:Gem::Dependency
|
@@ -86,7 +86,7 @@ dependencies:
|
|
86
86
|
type: :runtime
|
87
87
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
|
-
- -
|
89
|
+
- - ">="
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
segments:
|
92
92
|
- 2
|
@@ -100,14 +100,13 @@ dependencies:
|
|
100
100
|
type: :runtime
|
101
101
|
version_requirements: &id007 !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
|
-
- -
|
103
|
+
- - ">="
|
104
104
|
- !ruby/object:Gem::Version
|
105
105
|
segments:
|
106
106
|
- 1
|
107
107
|
- 4
|
108
|
-
-
|
109
|
-
|
110
|
-
version: 1.4.3.1
|
108
|
+
- 4
|
109
|
+
version: 1.4.4
|
111
110
|
requirement: *id007
|
112
111
|
name: nokogiri
|
113
112
|
- !ruby/object:Gem::Dependency
|
@@ -571,6 +570,7 @@ files:
|
|
571
570
|
- lib/fog/rackspace/requests/cdn/get_containers.rb
|
572
571
|
- lib/fog/rackspace/requests/cdn/head_container.rb
|
573
572
|
- lib/fog/rackspace/requests/cdn/put_container.rb
|
573
|
+
- lib/fog/rackspace/requests/compute/confirm_resized_server.rb
|
574
574
|
- lib/fog/rackspace/requests/compute/create_image.rb
|
575
575
|
- lib/fog/rackspace/requests/compute/create_server.rb
|
576
576
|
- lib/fog/rackspace/requests/compute/delete_image.rb
|
@@ -588,6 +588,9 @@ files:
|
|
588
588
|
- lib/fog/rackspace/requests/compute/list_servers.rb
|
589
589
|
- lib/fog/rackspace/requests/compute/list_servers_detail.rb
|
590
590
|
- lib/fog/rackspace/requests/compute/reboot_server.rb
|
591
|
+
- lib/fog/rackspace/requests/compute/resize_server.rb
|
592
|
+
- lib/fog/rackspace/requests/compute/revert_resized_server.rb
|
593
|
+
- lib/fog/rackspace/requests/compute/server_action.rb
|
591
594
|
- lib/fog/rackspace/requests/compute/update_server.rb
|
592
595
|
- lib/fog/rackspace/requests/storage/delete_container.rb
|
593
596
|
- lib/fog/rackspace/requests/storage/delete_object.rb
|
@@ -910,6 +913,7 @@ files:
|
|
910
913
|
- tests/rackspace/requests/compute/address_tests.rb
|
911
914
|
- tests/rackspace/requests/compute/flavor_tests.rb
|
912
915
|
- tests/rackspace/requests/compute/image_tests.rb
|
916
|
+
- tests/rackspace/requests/compute/resize_tests.rb
|
913
917
|
- tests/rackspace/requests/compute/server_tests.rb
|
914
918
|
- tests/rackspace/requests/storage/container_tests.rb
|
915
919
|
- tests/rackspace/requests/storage/object_tests.rb
|