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
@@ -4,8 +4,9 @@ module Fog
|
|
4
4
|
|
5
5
|
class Server < Fog::Model
|
6
6
|
|
7
|
+
identity :id
|
8
|
+
|
7
9
|
attribute :admin_pass, 'adminPass'
|
8
|
-
attribute :id
|
9
10
|
attribute :name
|
10
11
|
attribute :image_id, 'imageId'
|
11
12
|
attribute :flavor_id, 'flavorId'
|
@@ -21,11 +22,6 @@ module Fog
|
|
21
22
|
true
|
22
23
|
end
|
23
24
|
|
24
|
-
def reload
|
25
|
-
new_attributes = servers.get(@id).body['server']
|
26
|
-
merge_attributes(new_attributes)
|
27
|
-
end
|
28
|
-
|
29
25
|
def save
|
30
26
|
options = { 'metadata' => @metadata, 'name' => @name, 'personality' => @personality }
|
31
27
|
options = options.reject {|key, value| value.nil?}
|
@@ -34,16 +30,6 @@ module Fog
|
|
34
30
|
true
|
35
31
|
end
|
36
32
|
|
37
|
-
def servers
|
38
|
-
@servers
|
39
|
-
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
def servers=(new_servers)
|
44
|
-
@servers = new_servers
|
45
|
-
end
|
46
|
-
|
47
33
|
end
|
48
34
|
|
49
35
|
end
|
@@ -8,43 +8,28 @@ module Fog
|
|
8
8
|
|
9
9
|
class Servers < Fog::Collection
|
10
10
|
|
11
|
+
model Fog::Rackspace::Servers::Server
|
12
|
+
|
11
13
|
def all
|
12
|
-
data = connection.
|
14
|
+
data = connection.list_servers_detail.body
|
13
15
|
servers = Fog::Rackspace::Servers::Servers.new({
|
14
16
|
:connection => connection
|
15
17
|
})
|
16
18
|
for server in data['servers']
|
17
19
|
servers << Fog::Rackspace::Servers::Server.new({
|
18
|
-
:
|
19
|
-
:
|
20
|
+
:collection => servers,
|
21
|
+
:connection => connection
|
20
22
|
}.merge!(server))
|
21
23
|
end
|
22
24
|
servers
|
23
25
|
end
|
24
26
|
|
25
|
-
def create(attributes = {})
|
26
|
-
server = new(attributes)
|
27
|
-
server.save
|
28
|
-
server
|
29
|
-
end
|
30
|
-
|
31
27
|
def get(id)
|
32
28
|
connection.get_server_details(id)
|
33
|
-
rescue
|
29
|
+
rescue Excon::Errors::NotFound
|
34
30
|
nil
|
35
31
|
end
|
36
32
|
|
37
|
-
def new(attributes = {})
|
38
|
-
Fog::Rackspace::Servers::Server.new({
|
39
|
-
:connection => connection,
|
40
|
-
:servers => self
|
41
|
-
}.merge!(attributes))
|
42
|
-
end
|
43
|
-
|
44
|
-
def reload
|
45
|
-
get(id)
|
46
|
-
end
|
47
|
-
|
48
33
|
end
|
49
34
|
|
50
35
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
unless Fog.mocking?
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Rackspace
|
5
|
+
class Files
|
6
|
+
|
7
|
+
# Delete an existing container
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * name<~String> - Name of container to delete
|
11
|
+
#
|
12
|
+
def delete_container(name)
|
13
|
+
response = storage_request(
|
14
|
+
:expects => 204,
|
15
|
+
:method => 'DELETE',
|
16
|
+
:path => CGI.escape(name)
|
17
|
+
)
|
18
|
+
response
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
else
|
26
|
+
|
27
|
+
module Fog
|
28
|
+
module Rackspace
|
29
|
+
class Servers
|
30
|
+
|
31
|
+
def delete_container
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
unless Fog.mocking?
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Rackspace
|
5
|
+
class Files
|
6
|
+
|
7
|
+
# Delete an existing container
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * container<~String> - Name of container to delete
|
11
|
+
# * object<~String> - Name of object to delete
|
12
|
+
#
|
13
|
+
def delete_object(container, object)
|
14
|
+
response = storage_request(
|
15
|
+
:expects => 204,
|
16
|
+
:method => 'DELETE',
|
17
|
+
:path => "#{CGI.escape(container)}/#{CGI.escape(object)}"
|
18
|
+
)
|
19
|
+
response
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
else
|
27
|
+
|
28
|
+
module Fog
|
29
|
+
module Rackspace
|
30
|
+
class Servers
|
31
|
+
|
32
|
+
def delete_object
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
unless Fog.mocking?
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Rackspace
|
5
|
+
class Files
|
6
|
+
|
7
|
+
# List number of containers and total bytes stored
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * container<~String> - Name of container to retrieve info for
|
11
|
+
# * options<~String>:
|
12
|
+
# * 'limit'<~String> - Maximum number of objects to return
|
13
|
+
# * 'marker'<~String> - Only return objects whose name is greater than marker
|
14
|
+
# * 'prefix'<~String> - Limits results to those starting with prefix
|
15
|
+
# * 'path'<~String> - Return objects nested in the pseudo path
|
16
|
+
#
|
17
|
+
# ==== Returns
|
18
|
+
# * response<~Excon::Response>:
|
19
|
+
# * headers<~Hash>:
|
20
|
+
# * 'X-Account-Container-Count'<~String> - Count of containers
|
21
|
+
# * 'X-Account-Bytes-Used'<~String> - Bytes used
|
22
|
+
# * body<~Array>:
|
23
|
+
# * item<~Hash>:
|
24
|
+
# * 'bytes'<~String> - Size of object
|
25
|
+
# * 'content_type'<~String> Content-Type of object
|
26
|
+
# * 'hash'<~String> - Hash of object (etag?)
|
27
|
+
# * 'last_modified'<~String> - Last modified timestamp
|
28
|
+
# * 'name'<~String> - Name of object
|
29
|
+
def get_container(container, options = {})
|
30
|
+
query = ''
|
31
|
+
for key, value in options.merge!({ 'format' => 'json' })
|
32
|
+
query << "#{key}=#{value}&"
|
33
|
+
end
|
34
|
+
query.chop!
|
35
|
+
response = storage_request(
|
36
|
+
:expects => 200,
|
37
|
+
:method => 'GET',
|
38
|
+
:path => container,
|
39
|
+
:query => query
|
40
|
+
)
|
41
|
+
response
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
else
|
49
|
+
|
50
|
+
module Fog
|
51
|
+
module Rackspace
|
52
|
+
class Servers
|
53
|
+
|
54
|
+
def get_flavors
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
@@ -12,7 +12,7 @@ unless Fog.mocking?
|
|
12
12
|
# * 'marker'<~String> - Only return objects with name greater than this value
|
13
13
|
#
|
14
14
|
# ==== Returns
|
15
|
-
# * response<~
|
15
|
+
# * response<~Excon::Response>:
|
16
16
|
# * body<~Array>:
|
17
17
|
# * container<~Hash>:
|
18
18
|
# * 'bytes'<~Integer>: - Number of bytes used by container
|
@@ -20,19 +20,17 @@ unless Fog.mocking?
|
|
20
20
|
# * 'name'<~String>: - Name of container
|
21
21
|
def get_containers(options = {})
|
22
22
|
options = { 'format' => 'json' }.merge!(options)
|
23
|
-
query =
|
23
|
+
query = ''
|
24
24
|
for key, value in options
|
25
|
-
query << "#{key}=#{CGI.escape(value)}"
|
25
|
+
query << "#{key}=#{CGI.escape(value)}&"
|
26
26
|
end
|
27
|
+
query.chop!
|
27
28
|
response = storage_request(
|
28
29
|
:expects => [200, 204],
|
29
30
|
:method => 'GET',
|
30
31
|
:path => '',
|
31
|
-
:query => query
|
32
|
+
:query => query
|
32
33
|
)
|
33
|
-
if response.status == 204
|
34
|
-
response.body = []
|
35
|
-
end
|
36
34
|
response
|
37
35
|
end
|
38
36
|
|
@@ -0,0 +1,44 @@
|
|
1
|
+
unless Fog.mocking?
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Rackspace
|
5
|
+
class Files
|
6
|
+
|
7
|
+
# List number of objects and total bytes stored
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * container<~String> - Name of container to retrieve info for
|
11
|
+
#
|
12
|
+
# ==== Returns
|
13
|
+
# * response<~Excon::Response>:
|
14
|
+
# * headers<~Hash>:
|
15
|
+
# * 'X-Container-Object-Count'<~String> - Count of containers
|
16
|
+
# * 'X-Container-Bytes-Used'<~String> - Bytes used
|
17
|
+
def head_container(container)
|
18
|
+
response = storage_request(
|
19
|
+
:expects => 204,
|
20
|
+
:method => 'HEAD',
|
21
|
+
:path => container,
|
22
|
+
:query => 'format=json'
|
23
|
+
)
|
24
|
+
response
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
else
|
32
|
+
|
33
|
+
module Fog
|
34
|
+
module Rackspace
|
35
|
+
class Servers
|
36
|
+
|
37
|
+
def get_flavors
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -7,7 +7,7 @@ unless Fog.mocking?
|
|
7
7
|
# List number of containers and total bytes stored
|
8
8
|
#
|
9
9
|
# ==== Returns
|
10
|
-
# * response<~
|
10
|
+
# * response<~Excon::Response>:
|
11
11
|
# * headers<~Hash>:
|
12
12
|
# * 'X-Account-Container-Count'<~String> - Count of containers
|
13
13
|
# * 'X-Account-Bytes-Used'<~String> - Bytes used
|
@@ -0,0 +1,38 @@
|
|
1
|
+
unless Fog.mocking?
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Rackspace
|
5
|
+
class Files
|
6
|
+
|
7
|
+
# Create a new container
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * name<~String> - Name for container, should be < 256 bytes and must not contain '/'
|
11
|
+
#
|
12
|
+
def put_container(name)
|
13
|
+
response = storage_request(
|
14
|
+
:expects => [201, 202],
|
15
|
+
:method => 'PUT',
|
16
|
+
:path => CGI.escape(name)
|
17
|
+
)
|
18
|
+
response
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
else
|
26
|
+
|
27
|
+
module Fog
|
28
|
+
module Rackspace
|
29
|
+
class Servers
|
30
|
+
|
31
|
+
def put_container
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
unless Fog.mocking?
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Rackspace
|
5
|
+
class Files
|
6
|
+
|
7
|
+
# Create a new object
|
8
|
+
#
|
9
|
+
# ==== Parameters
|
10
|
+
# * container<~String> - Name for container, should be < 256 bytes and must not contain '/'
|
11
|
+
#
|
12
|
+
def put_object(container, object, data)
|
13
|
+
data = parse_data(data)
|
14
|
+
response = storage_request(
|
15
|
+
:body => data[:body],
|
16
|
+
:expects => 201,
|
17
|
+
:headers => data[:headers],
|
18
|
+
:method => 'PUT',
|
19
|
+
:path => "#{CGI.escape(container)}/#{CGI.escape(object)}"
|
20
|
+
)
|
21
|
+
response
|
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 put_container
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -10,6 +10,12 @@ unless Fog.mocking?
|
|
10
10
|
# * server_id<~Integer> - Id of server to create image from
|
11
11
|
# * options<~Hash> - Name
|
12
12
|
#
|
13
|
+
# ==== Returns
|
14
|
+
# * response<~Excon::Response>:
|
15
|
+
# * 'image'<~Hash>:
|
16
|
+
# * 'id'<~Integer> - Id of image
|
17
|
+
# * 'name'<~String> - Name of image
|
18
|
+
# * 'serverId'<~Integer> - Id of server
|
13
19
|
def create_image(server_id, options = {})
|
14
20
|
data = {
|
15
21
|
'image' => {
|
@@ -19,7 +19,7 @@ unless Fog.mocking?
|
|
19
19
|
# * 'path'<~String> - Path to file (255 bytes total of path strings)
|
20
20
|
#
|
21
21
|
# ==== Returns
|
22
|
-
# * response<~
|
22
|
+
# * response<~Excon::Response>:
|
23
23
|
# * body<~Hash>:
|
24
24
|
# * 'server'<~Hash>:
|
25
25
|
# * 'addresses'<~Hash>:
|
@@ -74,7 +74,26 @@ else
|
|
74
74
|
module Rackspace
|
75
75
|
class Servers
|
76
76
|
|
77
|
-
def create_server
|
77
|
+
def create_server(flavor_id, image_id, options = {})
|
78
|
+
response = Fog::Response.new
|
79
|
+
response.status = 202
|
80
|
+
|
81
|
+
data = {
|
82
|
+
'addresses' => { 'private' => ['0.0.0.0'], 'public' => ['0.0.0.0'] },
|
83
|
+
'flavorId' => flavor_id,
|
84
|
+
'id' => 123456,
|
85
|
+
'imageId' => image_id,
|
86
|
+
'hostId' => "123456789ABCDEF01234567890ABCDEF",
|
87
|
+
'metadata' => options[:metadata] || {},
|
88
|
+
'progress' => 0,
|
89
|
+
'status' => 'BUILD'
|
90
|
+
}
|
91
|
+
data['name'] = "slice#{data[:id]}"
|
92
|
+
data['adminPass'] = "#{data['name']}password"
|
93
|
+
Fog::Rackspace::Servers.data[:last_modified][data['id']] = Time.now
|
94
|
+
Fog::Rackspace::Servers.data[:servers][data['id']] = data
|
95
|
+
response.body = { 'server' => data }
|
96
|
+
response
|
78
97
|
end
|
79
98
|
|
80
99
|
end
|