fog 0.0.29 → 0.0.30
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/Rakefile +1 -0
- data/VERSION +1 -1
- data/bin/fog +18 -11
- data/fog.gemspec +43 -14
- data/lib/fog.rb +7 -1
- data/lib/fog/aws/ec2.rb +0 -7
- data/lib/fog/aws/models/ec2/address.rb +22 -26
- data/lib/fog/aws/models/ec2/addresses.rb +7 -22
- data/lib/fog/aws/models/ec2/instance.rb +2 -15
- data/lib/fog/aws/models/ec2/instances.rb +6 -23
- data/lib/fog/aws/models/ec2/key_pair.rb +2 -17
- data/lib/fog/aws/models/ec2/key_pairs.rb +6 -23
- data/lib/fog/aws/models/ec2/security_group.rb +18 -22
- data/lib/fog/aws/models/ec2/security_groups.rb +6 -23
- data/lib/fog/aws/models/ec2/snapshot.rb +2 -15
- data/lib/fog/aws/models/ec2/snapshots.rb +7 -20
- data/lib/fog/aws/models/ec2/volume.rb +23 -22
- data/lib/fog/aws/models/ec2/volumes.rb +8 -22
- data/lib/fog/aws/models/s3/bucket.rb +1 -1
- data/lib/fog/aws/models/s3/buckets.rb +3 -20
- data/lib/fog/aws/models/s3/objects.rb +11 -22
- data/lib/fog/aws/requests/ec2/allocate_address.rb +1 -1
- data/lib/fog/aws/requests/ec2/associate_address.rb +2 -2
- data/lib/fog/aws/requests/ec2/attach_volume.rb +2 -2
- data/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb +1 -1
- data/lib/fog/aws/requests/ec2/create_key_pair.rb +2 -2
- data/lib/fog/aws/requests/ec2/create_security_group.rb +2 -2
- data/lib/fog/aws/requests/ec2/create_snapshot.rb +2 -2
- data/lib/fog/aws/requests/ec2/create_volume.rb +3 -3
- data/lib/fog/aws/requests/ec2/delete_key_pair.rb +1 -1
- data/lib/fog/aws/requests/ec2/delete_security_group.rb +2 -2
- data/lib/fog/aws/requests/ec2/delete_snapshot.rb +2 -2
- data/lib/fog/aws/requests/ec2/delete_volume.rb +2 -2
- data/lib/fog/aws/requests/ec2/describe_addresses.rb +2 -2
- data/lib/fog/aws/requests/ec2/describe_availability_zones.rb +1 -1
- data/lib/fog/aws/requests/ec2/describe_images.rb +1 -1
- data/lib/fog/aws/requests/ec2/describe_instances.rb +2 -2
- data/lib/fog/aws/requests/ec2/describe_key_pairs.rb +2 -2
- data/lib/fog/aws/requests/ec2/describe_regions.rb +1 -1
- data/lib/fog/aws/requests/ec2/describe_security_groups.rb +2 -2
- data/lib/fog/aws/requests/ec2/describe_snapshots.rb +2 -2
- data/lib/fog/aws/requests/ec2/describe_volumes.rb +2 -2
- data/lib/fog/aws/requests/ec2/detach_volume.rb +2 -2
- data/lib/fog/aws/requests/ec2/disassociate_address.rb +2 -2
- data/lib/fog/aws/requests/ec2/get_console_output.rb +2 -2
- data/lib/fog/aws/requests/ec2/reboot_instances.rb +2 -2
- data/lib/fog/aws/requests/ec2/release_address.rb +2 -2
- data/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb +1 -1
- data/lib/fog/aws/requests/ec2/run_instances.rb +2 -2
- data/lib/fog/aws/requests/ec2/terminate_instances.rb +2 -2
- data/lib/fog/aws/requests/s3/copy_object.rb +2 -2
- data/lib/fog/aws/requests/s3/delete_bucket.rb +3 -3
- data/lib/fog/aws/requests/s3/delete_object.rb +2 -2
- data/lib/fog/aws/requests/s3/get_bucket.rb +2 -2
- data/lib/fog/aws/requests/s3/get_bucket_location.rb +2 -2
- data/lib/fog/aws/requests/s3/get_object.rb +2 -2
- data/lib/fog/aws/requests/s3/get_request_payment.rb +2 -2
- data/lib/fog/aws/requests/s3/get_service.rb +1 -1
- data/lib/fog/aws/requests/s3/head_object.rb +1 -1
- data/lib/fog/aws/requests/s3/put_bucket.rb +1 -1
- data/lib/fog/aws/requests/s3/put_object.rb +2 -2
- data/lib/fog/aws/requests/s3/put_request_payment.rb +1 -1
- data/lib/fog/aws/requests/simpledb/batch_put_attributes.rb +2 -2
- data/lib/fog/aws/requests/simpledb/create_domain.rb +1 -1
- data/lib/fog/aws/requests/simpledb/delete_attributes.rb +2 -2
- data/lib/fog/aws/requests/simpledb/delete_domain.rb +1 -1
- data/lib/fog/aws/requests/simpledb/domain_metadata.rb +2 -2
- data/lib/fog/aws/requests/simpledb/get_attributes.rb +2 -2
- data/lib/fog/aws/requests/simpledb/list_domains.rb +1 -1
- data/lib/fog/aws/requests/simpledb/put_attributes.rb +1 -1
- data/lib/fog/aws/requests/simpledb/select.rb +1 -1
- data/lib/fog/aws/s3.rb +0 -7
- data/lib/fog/aws/simpledb.rb +0 -4
- data/lib/fog/collection.rb +35 -7
- data/lib/fog/connection.rb +10 -130
- data/lib/fog/model.rb +18 -13
- data/lib/fog/parser.rb +0 -5
- data/lib/fog/rackspace.rb +35 -15
- data/lib/fog/rackspace/files.rb +36 -6
- data/lib/fog/rackspace/models/servers/server.rb +2 -16
- data/lib/fog/rackspace/models/servers/servers.rb +6 -21
- data/lib/fog/rackspace/requests/files/delete_container.rb +38 -0
- data/lib/fog/rackspace/requests/files/delete_object.rb +39 -0
- data/lib/fog/rackspace/requests/files/get_container.rb +61 -0
- data/lib/fog/rackspace/requests/files/get_containers.rb +5 -7
- data/lib/fog/rackspace/requests/files/head_container.rb +44 -0
- data/lib/fog/rackspace/requests/files/head_containers.rb +1 -1
- data/lib/fog/rackspace/requests/files/put_container.rb +38 -0
- data/lib/fog/rackspace/requests/files/put_object.rb +41 -0
- data/lib/fog/rackspace/requests/servers/create_image.rb +6 -0
- data/lib/fog/rackspace/requests/servers/create_server.rb +21 -2
- data/lib/fog/rackspace/requests/servers/delete_server.rb +18 -3
- data/lib/fog/rackspace/requests/servers/get_server_details.rb +17 -5
- data/lib/fog/rackspace/requests/servers/list_addresses.rb +52 -0
- data/lib/fog/rackspace/requests/servers/list_flavors.rb +2 -4
- data/lib/fog/rackspace/requests/servers/list_flavors_detail.rb +41 -0
- data/lib/fog/rackspace/requests/servers/list_images.rb +1 -1
- data/lib/fog/rackspace/requests/servers/list_images_detail.rb +1 -1
- data/lib/fog/rackspace/requests/servers/list_private_addresses.rb +50 -0
- data/lib/fog/rackspace/requests/servers/list_public_addresses.rb +50 -0
- data/lib/fog/rackspace/requests/servers/list_servers.rb +11 -2
- data/lib/fog/rackspace/requests/servers/list_servers_detail.rb +17 -2
- data/lib/fog/rackspace/requests/servers/reboot_server.rb +3 -6
- data/lib/fog/rackspace/requests/servers/update_server.rb +18 -5
- data/lib/fog/rackspace/servers.rb +20 -0
- data/spec/aws/models/ec2/address_spec.rb +4 -4
- data/spec/aws/models/ec2/instance_spec.rb +6 -6
- data/spec/aws/models/ec2/key_pair_spec.rb +5 -5
- data/spec/aws/models/ec2/security_group_spec.rb +5 -5
- data/spec/aws/models/ec2/snapshot_spec.rb +8 -8
- data/spec/aws/models/ec2/snapshots_spec.rb +6 -6
- data/spec/aws/models/ec2/volume_spec.rb +6 -5
- data/spec/aws/models/ec2/volumes_spec.rb +4 -4
- data/spec/aws/requests/ec2/associate_address_spec.rb +2 -2
- data/spec/aws/requests/ec2/attach_volume_spec.rb +2 -2
- data/spec/aws/requests/ec2/create_key_pair_spec.rb +1 -1
- data/spec/aws/requests/ec2/create_security_group_spec.rb +1 -1
- data/spec/aws/requests/ec2/create_snapshot_spec.rb +1 -1
- data/spec/aws/requests/ec2/delete_security_group_spec.rb +1 -1
- data/spec/aws/requests/ec2/delete_snapshot_spec.rb +1 -1
- data/spec/aws/requests/ec2/delete_volume_spec.rb +2 -2
- data/spec/aws/requests/ec2/describe_addresses_spec.rb +1 -1
- data/spec/aws/requests/ec2/describe_instances_spec.rb +1 -1
- data/spec/aws/requests/ec2/describe_key_pairs_spec.rb +1 -1
- data/spec/aws/requests/ec2/describe_security_groups_spec.rb +1 -1
- data/spec/aws/requests/ec2/describe_snapshots_spec.rb +1 -1
- data/spec/aws/requests/ec2/describe_volumes_spec.rb +1 -1
- data/spec/aws/requests/ec2/detach_volume_spec.rb +1 -1
- data/spec/aws/requests/ec2/disassociate_address_spec.rb +1 -1
- data/spec/aws/requests/ec2/get_console_output_spec.rb +1 -1
- data/spec/aws/requests/ec2/reboot_instances_spec.rb +1 -1
- data/spec/aws/requests/ec2/release_address_spec.rb +1 -1
- data/spec/aws/requests/ec2/terminate_instances_spec.rb +1 -1
- data/spec/aws/requests/s3/copy_object_spec.rb +4 -5
- data/spec/aws/requests/s3/delete_bucket_spec.rb +3 -4
- data/spec/aws/requests/s3/delete_object_spec.rb +2 -3
- data/spec/aws/requests/s3/get_bucket_location_spec.rb +1 -1
- data/spec/aws/requests/s3/get_bucket_spec.rb +4 -6
- data/spec/aws/requests/s3/get_object_spec.rb +6 -10
- data/spec/aws/requests/s3/get_request_payment_spec.rb +1 -1
- data/spec/aws/requests/s3/head_object_spec.rb +2 -4
- data/spec/aws/requests/s3/put_object_spec.rb +4 -7
- data/spec/aws/requests/s3/put_request_payment_spec.rb +1 -1
- data/spec/aws/requests/simpledb/batch_put_attributes_spec.rb +1 -1
- data/spec/aws/requests/simpledb/delete_attributes_spec.rb +1 -1
- data/spec/aws/requests/simpledb/domain_metadata_spec.rb +1 -1
- data/spec/aws/requests/simpledb/get_attributes_spec.rb +1 -1
- data/spec/aws/requests/simpledb/put_attributes_spec.rb +1 -1
- data/spec/rackspace/requests/files/delete_container_spec.rb +24 -0
- data/spec/rackspace/requests/files/delete_object_spec.rb +37 -0
- data/spec/rackspace/requests/files/get_container_spec.rb +33 -0
- data/spec/rackspace/requests/files/get_containers_spec.rb +12 -1
- data/spec/rackspace/requests/files/head_container_spec.rb +30 -0
- data/spec/rackspace/requests/files/head_containers_spec.rb +9 -1
- data/spec/rackspace/requests/files/put_container_spec.rb +15 -0
- data/spec/rackspace/requests/files/put_object_spec.rb +20 -0
- data/spec/rackspace/requests/servers/create_image_spec.rb +16 -2
- data/spec/rackspace/requests/servers/create_server_spec.rb +1 -1
- data/spec/rackspace/requests/servers/delete_image_spec.rb +32 -0
- data/spec/rackspace/requests/servers/delete_server_spec.rb +1 -1
- data/spec/rackspace/requests/servers/get_server_details_spec.rb +1 -1
- data/spec/rackspace/requests/servers/list_addresses_spec.rb +34 -0
- data/spec/rackspace/requests/servers/list_flavors_detail_spec.rb +17 -0
- data/spec/rackspace/requests/servers/list_flavors_spec.rb +6 -3
- data/spec/rackspace/requests/servers/list_images_detail_spec.rb +18 -0
- data/spec/rackspace/requests/servers/list_images_spec.rb +5 -2
- data/spec/rackspace/requests/servers/list_private_addresses_spec.rb +32 -0
- data/spec/rackspace/requests/servers/list_public_addresses_spec.rb +32 -0
- data/spec/rackspace/requests/servers/list_servers_detail_spec.rb +1 -1
- data/spec/rackspace/requests/servers/reboot_server_spec.rb +31 -0
- data/spec/rackspace/requests/servers/update_server_spec.rb +33 -0
- data/spec/spec_helper.rb +5 -1
- metadata +50 -14
- data/benchs/headers_split_vs_match.rb +0 -18
- data/benchs/stripping.rb +0 -26
- data/lib/fog/errors.rb +0 -145
- data/lib/fog/response.rb +0 -12
- data/spec/rackspace/requests/servers/delete_image.rb +0 -12
- data/spec/rackspace/requests/servers/list_images_detail.rb +0 -12
- data/spec/rackspace/requests/servers/reboot_server.rb +0 -12
- data/spec/rackspace/requests/servers/update_server.rb +0 -12
|
@@ -9,11 +9,11 @@ unless Fog.mocking?
|
|
|
9
9
|
# ==== Parameters
|
|
10
10
|
# * id<~Integer> - Id of server to delete
|
|
11
11
|
#
|
|
12
|
-
def delete_server(
|
|
12
|
+
def delete_server(server_id)
|
|
13
13
|
request(
|
|
14
14
|
:expects => 202,
|
|
15
15
|
:method => 'DELETE',
|
|
16
|
-
:path => "servers/#{
|
|
16
|
+
:path => "servers/#{server_id}"
|
|
17
17
|
)
|
|
18
18
|
end
|
|
19
19
|
|
|
@@ -27,7 +27,22 @@ else
|
|
|
27
27
|
module Rackspace
|
|
28
28
|
class Servers
|
|
29
29
|
|
|
30
|
-
def delete_server
|
|
30
|
+
def delete_server(server_id)
|
|
31
|
+
response = Fog::Response.new
|
|
32
|
+
if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
|
|
33
|
+
if server['status'] == 'BUILD'
|
|
34
|
+
response.status = 409
|
|
35
|
+
raise(Excon::Errors.status_error(202, 409, response))
|
|
36
|
+
else
|
|
37
|
+
Fog::Rackspace::Servers.data[:last_modified].delete(server_id)
|
|
38
|
+
Fog::Rackspace::Servers.data[:servers].delete(server_id)
|
|
39
|
+
response.status = 202
|
|
40
|
+
end
|
|
41
|
+
else
|
|
42
|
+
response.status = 404
|
|
43
|
+
raise(Excon::Errors.status_error(202, 404, response))
|
|
44
|
+
end
|
|
45
|
+
response
|
|
31
46
|
end
|
|
32
47
|
|
|
33
48
|
end
|
|
@@ -6,8 +6,11 @@ unless Fog.mocking?
|
|
|
6
6
|
|
|
7
7
|
# Get details about a server
|
|
8
8
|
#
|
|
9
|
+
# ==== Parameters
|
|
10
|
+
# * server_id<~Integer> - Id of server to get details for
|
|
11
|
+
#
|
|
9
12
|
# ==== Returns
|
|
10
|
-
# * response<~
|
|
13
|
+
# * response<~Excon::Response>:
|
|
11
14
|
# * body<~Hash>:
|
|
12
15
|
# * 'server'<~Hash>:
|
|
13
16
|
# * 'addresses'<~Hash>:
|
|
@@ -21,11 +24,11 @@ unless Fog.mocking?
|
|
|
21
24
|
# * 'name<~String> - Name of server
|
|
22
25
|
# * 'progress'<~Integer> - Progress through current status
|
|
23
26
|
# * 'status'<~String> - Current server status
|
|
24
|
-
def get_server_details(
|
|
27
|
+
def get_server_details(server_id)
|
|
25
28
|
request(
|
|
26
|
-
:expects => 200,
|
|
29
|
+
:expects => [200, 203],
|
|
27
30
|
:method => 'GET',
|
|
28
|
-
:path => "servers/#{
|
|
31
|
+
:path => "servers/#{server_id}.json"
|
|
29
32
|
)
|
|
30
33
|
end
|
|
31
34
|
|
|
@@ -39,7 +42,16 @@ else
|
|
|
39
42
|
module Rackspace
|
|
40
43
|
class Servers
|
|
41
44
|
|
|
42
|
-
def get_server_details
|
|
45
|
+
def get_server_details(server_id)
|
|
46
|
+
response = Fog::Response.new
|
|
47
|
+
if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
|
|
48
|
+
response.status = [200, 203][rand(1)]
|
|
49
|
+
response.body = { 'server' => server }
|
|
50
|
+
else
|
|
51
|
+
response.status = 404
|
|
52
|
+
raise(Excon::Errors.status_error(202, 404, response))
|
|
53
|
+
end
|
|
54
|
+
response
|
|
43
55
|
end
|
|
44
56
|
|
|
45
57
|
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
unless Fog.mocking?
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Rackspace
|
|
5
|
+
class Servers
|
|
6
|
+
|
|
7
|
+
# List all server addresses
|
|
8
|
+
#
|
|
9
|
+
# ==== Parameters
|
|
10
|
+
# * server_id<~Integer> - Id of server to list addresses for
|
|
11
|
+
#
|
|
12
|
+
# ==== Returns
|
|
13
|
+
# * response<~Excon::Response>:
|
|
14
|
+
# * body<~Hash>:
|
|
15
|
+
# * 'addresses'<~Array>:
|
|
16
|
+
# * 'public'<~Array> - Public ip addresses
|
|
17
|
+
# * 'private'<~Array> - Private ip addresses
|
|
18
|
+
def list_addresses(server_id)
|
|
19
|
+
request(
|
|
20
|
+
:expects => [200, 203],
|
|
21
|
+
:method => 'GET',
|
|
22
|
+
:path => "servers/#{server_id}/ips.json"
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
else
|
|
31
|
+
|
|
32
|
+
module Fog
|
|
33
|
+
module Rackspace
|
|
34
|
+
class Servers
|
|
35
|
+
|
|
36
|
+
def list_addresses(server_id)
|
|
37
|
+
response = Fog::Response.new
|
|
38
|
+
if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
|
|
39
|
+
response.status = [200, 203][rand(1)]
|
|
40
|
+
response.body = { 'addresses' => server['addresses'] }
|
|
41
|
+
else
|
|
42
|
+
response.status = 404
|
|
43
|
+
raise(Excon::Errors.status_error(202, 404, response))
|
|
44
|
+
end
|
|
45
|
+
response
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
|
@@ -7,15 +7,13 @@ unless Fog.mocking?
|
|
|
7
7
|
# List all images (IDs and names only)
|
|
8
8
|
#
|
|
9
9
|
# ==== Returns
|
|
10
|
-
# * response<~
|
|
10
|
+
# * response<~Excon::Response>:
|
|
11
11
|
# * body<~Hash>:
|
|
12
12
|
# * 'id'<~Integer> - Id of the flavor
|
|
13
13
|
# * 'name'<~String> - Name of the flavor
|
|
14
|
-
# * 'ram'<~Integer> - Amount of ram for the flavor
|
|
15
|
-
# * 'disk'<~Integer> - Amount of diskspace for the flavor
|
|
16
14
|
def list_flavors
|
|
17
15
|
request(
|
|
18
|
-
:expects => 200,
|
|
16
|
+
:expects => [200, 203],
|
|
19
17
|
:method => 'GET',
|
|
20
18
|
:path => 'flavors.json'
|
|
21
19
|
)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
unless Fog.mocking?
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Rackspace
|
|
5
|
+
class Servers
|
|
6
|
+
|
|
7
|
+
# List all images (IDs and names only)
|
|
8
|
+
#
|
|
9
|
+
# ==== Returns
|
|
10
|
+
# * response<~Excon::Response>:
|
|
11
|
+
# * body<~Hash>:
|
|
12
|
+
# * 'id'<~Integer> - Id of the flavor
|
|
13
|
+
# * 'name'<~String> - Name of the flavor
|
|
14
|
+
# * 'ram'<~Integer> - Amount of ram for the flavor
|
|
15
|
+
# * 'disk'<~Integer> - Amount of diskspace for the flavor
|
|
16
|
+
def list_flavors_detail
|
|
17
|
+
request(
|
|
18
|
+
:expects => 200,
|
|
19
|
+
:method => 'GET',
|
|
20
|
+
:path => 'flavors/detail.json'
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
else
|
|
29
|
+
|
|
30
|
+
module Fog
|
|
31
|
+
module Rackspace
|
|
32
|
+
class Servers
|
|
33
|
+
|
|
34
|
+
def list_flavors_detail
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
unless Fog.mocking?
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Rackspace
|
|
5
|
+
class Servers
|
|
6
|
+
|
|
7
|
+
# List private server addresses
|
|
8
|
+
#
|
|
9
|
+
# ==== Parameters
|
|
10
|
+
# * server_id<~Integer> - Id of server to list addresses for
|
|
11
|
+
#
|
|
12
|
+
# ==== Returns
|
|
13
|
+
# * response<~Excon::Response>:
|
|
14
|
+
# * body<~Hash>:
|
|
15
|
+
# * 'private'<~Array> - Public ip addresses
|
|
16
|
+
def list_private_addresses(server_id)
|
|
17
|
+
request(
|
|
18
|
+
:expects => [200, 203],
|
|
19
|
+
:method => 'GET',
|
|
20
|
+
:path => "servers/#{server_id}/ips/private.json"
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
else
|
|
29
|
+
|
|
30
|
+
module Fog
|
|
31
|
+
module Rackspace
|
|
32
|
+
class Servers
|
|
33
|
+
|
|
34
|
+
def list_private_addresses(server_id)
|
|
35
|
+
response = Fog::Response.new
|
|
36
|
+
if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
|
|
37
|
+
response.status = [200, 203][rand(1)]
|
|
38
|
+
response.body = { 'private' => server['addresses']['private'] }
|
|
39
|
+
else
|
|
40
|
+
response.status = 404
|
|
41
|
+
raise(Excon::Errors.status_error(202, 404, response))
|
|
42
|
+
end
|
|
43
|
+
response
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
unless Fog.mocking?
|
|
2
|
+
|
|
3
|
+
module Fog
|
|
4
|
+
module Rackspace
|
|
5
|
+
class Servers
|
|
6
|
+
|
|
7
|
+
# List public server addresses
|
|
8
|
+
#
|
|
9
|
+
# ==== Parameters
|
|
10
|
+
# * server_id<~Integer> - Id of server to list addresses for
|
|
11
|
+
#
|
|
12
|
+
# ==== Returns
|
|
13
|
+
# * response<~Excon::Response>:
|
|
14
|
+
# * body<~Hash>:
|
|
15
|
+
# * 'public'<~Array> - Public ip addresses
|
|
16
|
+
def list_public_addresses(server_id)
|
|
17
|
+
request(
|
|
18
|
+
:expects => [200, 203],
|
|
19
|
+
:method => 'GET',
|
|
20
|
+
:path => "servers/#{server_id}/ips/public.json"
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
else
|
|
29
|
+
|
|
30
|
+
module Fog
|
|
31
|
+
module Rackspace
|
|
32
|
+
class Servers
|
|
33
|
+
|
|
34
|
+
def list_public_addresses(server_id)
|
|
35
|
+
response = Fog::Response.new
|
|
36
|
+
if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
|
|
37
|
+
response.status = [200, 203][rand(1)]
|
|
38
|
+
response.body = { 'public' => server['addresses']['public'] }
|
|
39
|
+
else
|
|
40
|
+
response.status = 404
|
|
41
|
+
raise(Excon::Errors.status_error(202, 404, response))
|
|
42
|
+
end
|
|
43
|
+
response
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
@@ -7,14 +7,14 @@ unless Fog.mocking?
|
|
|
7
7
|
# List all servers (IDs and names only)
|
|
8
8
|
#
|
|
9
9
|
# ==== Returns
|
|
10
|
-
# * response<~
|
|
10
|
+
# * response<~Excon::Response>:
|
|
11
11
|
# * body<~Hash>:
|
|
12
12
|
# * 'servers'<~Array>:
|
|
13
13
|
# * 'id'<~Integer> - Id of server
|
|
14
14
|
# * 'name<~String> - Name of server
|
|
15
15
|
def list_servers
|
|
16
16
|
request(
|
|
17
|
-
:expects => 200,
|
|
17
|
+
:expects => [200, 203],
|
|
18
18
|
:method => 'GET',
|
|
19
19
|
:path => 'servers.json'
|
|
20
20
|
)
|
|
@@ -31,6 +31,15 @@ else
|
|
|
31
31
|
class Servers
|
|
32
32
|
|
|
33
33
|
def list_servers
|
|
34
|
+
response = Fog::Response.new
|
|
35
|
+
data = list_servers_detail.body['servers']
|
|
36
|
+
servers = []
|
|
37
|
+
for server in data
|
|
38
|
+
servers << server.reject { |key, value| !['id', 'name'].include?(key) }
|
|
39
|
+
end
|
|
40
|
+
response.status = [200, 203][rand(1)]
|
|
41
|
+
response.body = { 'servers' => servers }
|
|
42
|
+
response
|
|
34
43
|
end
|
|
35
44
|
|
|
36
45
|
end
|
|
@@ -7,7 +7,7 @@ unless Fog.mocking?
|
|
|
7
7
|
# List all servers details
|
|
8
8
|
#
|
|
9
9
|
# ==== Returns
|
|
10
|
-
# * response<~
|
|
10
|
+
# * response<~Excon::Response>:
|
|
11
11
|
# * body<~Hash>:
|
|
12
12
|
# * 'servers'<~Array>:
|
|
13
13
|
# * 'id'<~Integer> - Id of server
|
|
@@ -39,7 +39,22 @@ else
|
|
|
39
39
|
module Rackspace
|
|
40
40
|
class Servers
|
|
41
41
|
|
|
42
|
-
def
|
|
42
|
+
def list_servers_detail
|
|
43
|
+
response = Fog::Response.new
|
|
44
|
+
|
|
45
|
+
servers = Fog::Rackspace::Servers.data[:servers].values
|
|
46
|
+
for server in servers
|
|
47
|
+
case server['status']
|
|
48
|
+
when 'BUILD'
|
|
49
|
+
if Time.now - Fog::Rackspace::Servers.data[:last_modified][server['id']] > 2
|
|
50
|
+
server['status'] = 'ACTIVE'
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
response.status = [200, 203][rand(1)]
|
|
56
|
+
response.body = { 'servers' => servers }
|
|
57
|
+
response
|
|
43
58
|
end
|
|
44
59
|
|
|
45
60
|
end
|
|
@@ -11,14 +11,11 @@ unless Fog.mocking?
|
|
|
11
11
|
# * type<~String> - Type of reboot, must be in ['HARD', 'SOFT']
|
|
12
12
|
#
|
|
13
13
|
def reboot_server(server_id, type)
|
|
14
|
-
data = {
|
|
15
|
-
'reboot' => { 'type' => type }
|
|
16
|
-
}
|
|
17
14
|
request(
|
|
18
|
-
:body =>
|
|
15
|
+
:body => { 'reboot' => { 'type' => type }}.to_json,
|
|
19
16
|
:expects => 202,
|
|
20
17
|
:method => 'POST',
|
|
21
|
-
:path => "servers/#{
|
|
18
|
+
:path => "servers/#{server_id}/action.json"
|
|
22
19
|
)
|
|
23
20
|
end
|
|
24
21
|
|
|
@@ -32,7 +29,7 @@ else
|
|
|
32
29
|
module Rackspace
|
|
33
30
|
class Servers
|
|
34
31
|
|
|
35
|
-
def
|
|
32
|
+
def reboot_server(server_id, type)
|
|
36
33
|
end
|
|
37
34
|
|
|
38
35
|
end
|
|
@@ -9,15 +9,14 @@ unless Fog.mocking?
|
|
|
9
9
|
# ==== Parameters
|
|
10
10
|
# # server_id<~Integer> - Id of server to update
|
|
11
11
|
# * options<~Hash>:
|
|
12
|
-
# * name<~String> - New name for server
|
|
13
12
|
# * adminPass<~String> - New admin password for server
|
|
14
|
-
#
|
|
13
|
+
# * name<~String> - New name for server
|
|
15
14
|
def update_server(server_id, options = {})
|
|
16
15
|
request(
|
|
17
|
-
:body => options.to_json,
|
|
16
|
+
:body => { 'server' => options }.to_json,
|
|
18
17
|
:expects => 204,
|
|
19
18
|
:method => 'PUT',
|
|
20
|
-
:path => "servers/#{
|
|
19
|
+
:path => "servers/#{server_id}.json"
|
|
21
20
|
)
|
|
22
21
|
end
|
|
23
22
|
|
|
@@ -31,7 +30,21 @@ else
|
|
|
31
30
|
module Rackspace
|
|
32
31
|
class Servers
|
|
33
32
|
|
|
34
|
-
def update_server
|
|
33
|
+
def update_server(server_id, options)
|
|
34
|
+
response = Fog::Response.new
|
|
35
|
+
if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
|
|
36
|
+
if options['adminPass']
|
|
37
|
+
server['adminPass'] = options['adminPass']
|
|
38
|
+
end
|
|
39
|
+
if options['name']
|
|
40
|
+
server['name'] = options['name']
|
|
41
|
+
end
|
|
42
|
+
response.status = 204
|
|
43
|
+
else
|
|
44
|
+
response.status = 404
|
|
45
|
+
raise(Excon::Errors.status_error(202, 404, response))
|
|
46
|
+
end
|
|
47
|
+
response
|
|
35
48
|
end
|
|
36
49
|
|
|
37
50
|
end
|