fog 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. data/Gemfile +2 -2
  2. data/Gemfile.lock +6 -6
  3. data/README.rdoc +4 -1
  4. data/bin/fog +2 -1
  5. data/examples/bluebox_create.rb +33 -0
  6. data/fog.gemspec +58 -30
  7. data/lib/fog.rb +2 -1
  8. data/lib/fog/aws/elb.rb +0 -9
  9. data/lib/fog/aws/requests/elb/create_load_balancer.rb +3 -3
  10. data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +1 -1
  11. data/lib/fog/aws/requests/elb/describe_instance_health.rb +1 -1
  12. data/lib/fog/aws/requests/elb/describe_load_balancers.rb +1 -1
  13. data/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb +1 -1
  14. data/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb +1 -1
  15. data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +1 -1
  16. data/lib/fog/aws/requests/s3/get_bucket.rb +1 -6
  17. data/lib/fog/aws/requests/s3/get_bucket_acl.rb +1 -1
  18. data/lib/fog/aws/requests/s3/get_bucket_location.rb +1 -1
  19. data/lib/fog/aws/requests/s3/get_bucket_logging.rb +1 -1
  20. data/lib/fog/aws/requests/s3/get_bucket_object_versions.rb +1 -6
  21. data/lib/fog/aws/requests/s3/get_bucket_versioning.rb +1 -1
  22. data/lib/fog/aws/requests/s3/get_object.rb +1 -1
  23. data/lib/fog/aws/requests/s3/get_object_acl.rb +2 -2
  24. data/lib/fog/aws/requests/s3/get_object_torrent.rb +1 -1
  25. data/lib/fog/aws/requests/s3/get_request_payment.rb +1 -1
  26. data/lib/fog/aws/requests/s3/head_object.rb +1 -1
  27. data/lib/fog/aws/requests/s3/put_bucket_acl.rb +1 -1
  28. data/lib/fog/aws/requests/s3/put_bucket_logging.rb +1 -1
  29. data/lib/fog/aws/requests/s3/put_bucket_versioning.rb +1 -1
  30. data/lib/fog/aws/requests/s3/put_object_url.rb +54 -0
  31. data/lib/fog/aws/requests/s3/put_request_payment.rb +1 -1
  32. data/lib/fog/aws/s3.rb +7 -2
  33. data/lib/fog/bin.rb +1 -1
  34. data/lib/fog/bluebox.rb +100 -0
  35. data/lib/fog/bluebox/bin.rb +43 -0
  36. data/lib/fog/bluebox/models/flavor.rb +43 -0
  37. data/lib/fog/bluebox/models/flavors.rb +38 -0
  38. data/lib/fog/bluebox/models/image.rb +17 -0
  39. data/lib/fog/bluebox/models/images.rb +42 -0
  40. data/lib/fog/bluebox/models/server.rb +79 -0
  41. data/lib/fog/bluebox/models/servers.rb +39 -0
  42. data/lib/fog/bluebox/requests/create_block.rb +39 -0
  43. data/lib/fog/bluebox/requests/destroy_block.rb +32 -0
  44. data/lib/fog/bluebox/requests/get_block.rb +32 -0
  45. data/lib/fog/bluebox/requests/get_blocks.rb +34 -0
  46. data/lib/fog/bluebox/requests/get_product.rb +32 -0
  47. data/lib/fog/bluebox/requests/get_products.rb +31 -0
  48. data/lib/fog/bluebox/requests/get_template.rb +32 -0
  49. data/lib/fog/bluebox/requests/get_templates.rb +32 -0
  50. data/lib/fog/bluebox/requests/reboot_block.rb +33 -0
  51. data/lib/fog/credentials.rb +2 -1
  52. data/lib/fog/rackspace/files.rb +4 -12
  53. data/lib/fog/rackspace/models/servers/flavors.rb +1 -1
  54. data/lib/fog/rackspace/models/servers/images.rb +1 -1
  55. data/lib/fog/rackspace/models/servers/servers.rb +1 -1
  56. data/lib/fog/rackspace/requests/files/get_container.rb +1 -6
  57. data/lib/fog/rackspace/requests/files/get_containers.rb +1 -7
  58. data/lib/fog/rackspace/requests/files/head_container.rb +1 -1
  59. data/lib/fog/rackspace/requests/files/head_containers.rb +1 -1
  60. data/lib/fog/rackspace/requests/servers/create_server.rb +4 -5
  61. data/lib/fog/rackspace/requests/servers/delete_image.rb +2 -1
  62. data/lib/fog/rackspace/requests/servers/delete_server.rb +2 -3
  63. data/lib/fog/rackspace/requests/servers/get_server_details.rb +2 -3
  64. data/lib/fog/rackspace/requests/servers/list_addresses.rb +2 -3
  65. data/lib/fog/rackspace/requests/servers/list_private_addresses.rb +2 -3
  66. data/lib/fog/rackspace/requests/servers/list_public_addresses.rb +2 -3
  67. data/lib/fog/rackspace/requests/servers/reboot_server.rb +1 -1
  68. data/lib/fog/rackspace/requests/servers/update_server.rb +2 -3
  69. data/lib/fog/rackspace/servers.rb +21 -11
  70. data/lib/fog/slicehost.rb +18 -13
  71. data/lib/fog/vcloud.rb +148 -107
  72. data/lib/fog/vcloud/model.rb +2 -1
  73. data/lib/fog/vcloud/parser.rb +5 -0
  74. data/lib/fog/vcloud/requests/get_vdc.rb +3 -3
  75. data/lib/fog/vcloud/requests/get_versions.rb +1 -1
  76. data/lib/fog/vcloud/requests/login.rb +1 -1
  77. data/lib/fog/vcloud/terremark/ecloud.rb +34 -0
  78. data/lib/fog/vcloud/terremark/ecloud/models/internet_service.rb +29 -0
  79. data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +51 -0
  80. data/lib/fog/vcloud/terremark/ecloud/models/public_ip.rb +26 -0
  81. data/lib/fog/vcloud/terremark/ecloud/models/public_ips.rb +32 -0
  82. data/lib/fog/vcloud/terremark/ecloud/models/vdc.rb +11 -0
  83. data/lib/fog/vcloud/terremark/ecloud/parsers/get_internet_services.rb +59 -0
  84. data/lib/fog/vcloud/terremark/ecloud/parsers/get_public_ip.rb +30 -0
  85. data/lib/fog/vcloud/terremark/ecloud/parsers/get_public_ips.rb +40 -0
  86. data/lib/fog/vcloud/terremark/ecloud/parsers/internet_service.rb +58 -0
  87. data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +82 -0
  88. data/lib/fog/vcloud/terremark/ecloud/requests/delete_internet_service.rb +39 -0
  89. data/lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb +73 -0
  90. data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb +49 -0
  91. data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ips.rb +47 -0
  92. data/spec/bluebox/models/flavors_spec.rb +14 -0
  93. data/spec/bluebox/models/server_spec.rb +25 -0
  94. data/spec/bluebox/models/servers_spec.rb +27 -0
  95. data/spec/spec_helper.rb +16 -0
  96. data/spec/vcloud/spec_helper.rb +16 -1
  97. data/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb +58 -0
  98. data/spec/vcloud/terremark/ecloud/models/internet_services_spec.rb +29 -0
  99. data/spec/vcloud/terremark/ecloud/models/public_ip_spec.rb +43 -0
  100. data/spec/vcloud/terremark/ecloud/models/public_ips_spec.rb +26 -0
  101. data/spec/vcloud/terremark/ecloud/models/vdc_spec.rb +4 -0
  102. data/spec/vcloud/terremark/ecloud/requests/add_internet_service_spec.rb +57 -0
  103. data/spec/vcloud/terremark/ecloud/requests/delete_internet_service_spec.rb +34 -0
  104. data/spec/vcloud/terremark/ecloud/requests/get_internet_services_spec.rb +57 -0
  105. data/spec/vcloud/terremark/ecloud/requests/get_public_ip_spec.rb +40 -0
  106. data/spec/vcloud/terremark/ecloud/requests/get_public_ips_spec.rb +44 -0
  107. data/tests/bluebox/helper.rb +26 -0
  108. data/tests/bluebox/requests/block_tests.rb +68 -0
  109. data/tests/bluebox/requests/product_tests.rb +25 -0
  110. data/tests/bluebox/requests/template_tests.rb +32 -0
  111. data/tests/helper.rb +6 -6
  112. data/tests/helper_tests.rb +4 -0
  113. data/tests/rackspace/helper.rb +0 -32
  114. data/tests/rackspace/requests/servers/address_tests.rb +40 -0
  115. data/tests/rackspace/requests/servers/flavor_tests.rb +34 -0
  116. data/tests/rackspace/requests/servers/image_tests.rb +59 -0
  117. data/tests/rackspace/requests/servers/server_tests.rb +83 -0
  118. data/tests/slicehost/helper.rb +0 -35
  119. data/tests/slicehost/requests/backup_tests.rb +17 -0
  120. data/tests/slicehost/requests/flavor_tests.rb +30 -0
  121. data/tests/slicehost/requests/image_tests.rb +28 -0
  122. data/tests/slicehost/requests/slice_tests.rb +63 -0
  123. metadata +59 -31
  124. data/tests/rackspace/requests/servers/create_image_tests.rb +0 -20
  125. data/tests/rackspace/requests/servers/create_server_tests.rb +0 -18
  126. data/tests/rackspace/requests/servers/delete_image_tests.rb +0 -23
  127. data/tests/rackspace/requests/servers/delete_server_tests.rb +0 -19
  128. data/tests/rackspace/requests/servers/get_flavor_details_tests.rb +0 -16
  129. data/tests/rackspace/requests/servers/get_image_details_tests.rb +0 -16
  130. data/tests/rackspace/requests/servers/get_server_details_tests.rb +0 -21
  131. data/tests/rackspace/requests/servers/list_addresses_tests.rb +0 -22
  132. data/tests/rackspace/requests/servers/list_flavors_detail_tests.rb +0 -9
  133. data/tests/rackspace/requests/servers/list_flavors_tests.rb +0 -9
  134. data/tests/rackspace/requests/servers/list_images_detail_tests.rb +0 -9
  135. data/tests/rackspace/requests/servers/list_images_tests.rb +0 -9
  136. data/tests/rackspace/requests/servers/list_private_addresses_tests.rb +0 -22
  137. data/tests/rackspace/requests/servers/list_public_addresses_tests.rb +0 -22
  138. data/tests/rackspace/requests/servers/list_servers_detail_tests.rb +0 -14
  139. data/tests/rackspace/requests/servers/list_servers_tests.rb +0 -14
  140. data/tests/rackspace/requests/servers/reboot_server_tests.rb +0 -30
  141. data/tests/rackspace/requests/servers/update_server_tests.rb +0 -22
  142. data/tests/slicehost/requests/create_slice_tests.rb +0 -14
  143. data/tests/slicehost/requests/delete_slice_tests.rb +0 -20
  144. data/tests/slicehost/requests/get_backups_tests.rb +0 -9
  145. data/tests/slicehost/requests/get_flavor_tests.rb +0 -17
  146. data/tests/slicehost/requests/get_flavors_tests.rb +0 -9
  147. data/tests/slicehost/requests/get_image_tests.rb +0 -17
  148. data/tests/slicehost/requests/get_images_tests.rb +0 -9
  149. data/tests/slicehost/requests/get_slice_tests.rb +0 -22
  150. data/tests/slicehost/requests/get_slices_tests.rb +0 -9
  151. data/tests/slicehost/requests/reboot_slice_tests.rb +0 -23
@@ -0,0 +1,25 @@
1
+ Shindo.tests('Bluebox | product requests', ['bluebox']) do
2
+
3
+ tests('success') do
4
+
5
+ @product_id = '94fd37a7-2606-47f7-84d5-9000deda52ae' # 1 GB
6
+
7
+ tests("get_product('#{@product_id}')").formats(Bluebox::Formats::PRODUCT) do
8
+ Bluebox[:blocks].get_product(@product_id).body
9
+ end
10
+
11
+ tests("get_products").formats([Bluebox::Formats::PRODUCT]) do
12
+ Bluebox[:blocks].get_products.body
13
+ end
14
+
15
+ end
16
+
17
+ tests('failure') do
18
+
19
+ tests("get_product('00000000-0000-0000-0000-000000000000')").raises(Fog::Bluebox::NotFound) do
20
+ Bluebox[:blocks].get_product('00000000-0000-0000-0000-000000000000')
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -0,0 +1,32 @@
1
+ Shindo.tests('Bluebox | template requests', ['bluebox']) do
2
+
3
+ @template_format = {
4
+ 'created' => String,
5
+ 'description' => String,
6
+ 'id' => String,
7
+ 'public' => Fog::Boolean
8
+ }
9
+
10
+ tests('success') do
11
+
12
+ @template_id = 'a00baa8f-b5d0-4815-8238-b471c4c4bf72' # Ubuntu 9.10 64bit
13
+
14
+ tests("get_template('#{@template_id}')").formats(@template_format) do
15
+ Bluebox[:blocks].get_template(@template_id).body
16
+ end
17
+
18
+ tests("get_templates").formats([@template_format]) do
19
+ Bluebox[:blocks].get_templates.body
20
+ end
21
+
22
+ end
23
+
24
+ tests('failure') do
25
+
26
+ tests("get_template('00000000-0000-0000-0000-000000000000')").raises(Fog::Bluebox::NotFound) do
27
+ Bluebox[:blocks].get_template('00000000-0000-0000-0000-000000000000')
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -24,12 +24,8 @@ module Shindo
24
24
 
25
25
  def succeeds(&block)
26
26
  test('succeeds') do
27
- begin
28
- instance_eval(&block)
29
- true
30
- rescue Exception, Interrupt
31
- false
32
- end
27
+ instance_eval(&block)
28
+ true
33
29
  end
34
30
  end
35
31
 
@@ -39,6 +35,10 @@ module Shindo
39
35
  valid = true
40
36
  data = original_data.dup
41
37
  format = original_format.dup
38
+ if format.is_a?(Array)
39
+ data = {:element => data}
40
+ format = {:element => format}
41
+ end
42
42
  for key, value in format
43
43
  valid &&= data.has_key?(key)
44
44
  datum = data.delete(key)
@@ -16,6 +16,10 @@ Shindo.tests('test_helper', 'meta') do
16
16
  formats_kernel({:a => {:b => :c}}, {:a => {:b => Symbol}})
17
17
  end
18
18
 
19
+ test('when format of an array') do
20
+ formats_kernel([{:a => :b}], [{:a => Symbol}])
21
+ end
22
+
19
23
  end
20
24
 
21
25
  tests('returns false') do
@@ -27,38 +27,6 @@ module Rackspace
27
27
 
28
28
  module Formats
29
29
 
30
- FLAVOR = {
31
- 'disk' => Integer,
32
- 'id' => Integer,
33
- 'name' => String,
34
- 'ram' => Integer
35
- }
36
-
37
- IMAGE = {
38
- 'created' => String,
39
- 'id' => Integer,
40
- 'name' => String,
41
- 'progress' => Integer,
42
- 'serverId' => Integer,
43
- 'status' => String,
44
- 'updated' => String
45
- }
46
-
47
- SERVER = {
48
- 'addresses' => {
49
- 'private' => [String],
50
- 'public' => [String]
51
- },
52
- 'flavorId' => Integer,
53
- 'hostId' => String,
54
- 'id' => Integer,
55
- 'imageId' => Integer,
56
- 'metadata' => {},
57
- 'name' => String,
58
- 'progress' => Integer,
59
- 'status' => String
60
- }
61
-
62
30
  SUMMARY = {
63
31
  'id' => Integer,
64
32
  'name' => String
@@ -0,0 +1,40 @@
1
+ Shindo.tests('Rackspace::Servers | address requests', ['rackspace']) do
2
+
3
+ tests('success') do
4
+
5
+ @server = Rackspace[:servers].servers.create(:flavor_id => 1, :image_id => 19, :name => 'foglistaddresses')
6
+
7
+ tests("#list_addresses(#{@server.id})").formats({'addresses' => {'private' => [String], 'public' => [String]}}) do
8
+ Rackspace[:servers].list_addresses(@server.id).body
9
+ end
10
+
11
+ tests("#list_private_addresses(#{@server.id})").formats({'private' => [String]}) do
12
+ Rackspace[:servers].list_private_addresses(@server.id).body
13
+ end
14
+
15
+ tests("#list_public_addresses(#{@server.id})").formats({'public' => [String]}) do
16
+ Rackspace[:servers].list_public_addresses(@server.id).body
17
+ end
18
+
19
+ @server.wait_for { ready? }
20
+ @server.destroy
21
+
22
+ end
23
+
24
+ tests('failure') do
25
+
26
+ tests('#list_addresses(0)').raises(Fog::Rackspace::Servers::NotFound) do
27
+ Rackspace[:servers].list_addresses(0)
28
+ end
29
+
30
+ tests('#list_private_addresses(0)').raises(Fog::Rackspace::Servers::NotFound) do
31
+ Rackspace[:servers].list_private_addresses(0)
32
+ end
33
+
34
+ tests('#list_public_addresses(0)').raises(Fog::Rackspace::Servers::NotFound) do
35
+ Rackspace[:servers].list_public_addresses(0)
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -0,0 +1,34 @@
1
+ Shindo.tests('Rackspace::Servers | flavor requests', ['rackspace']) do
2
+
3
+ @flavor_format = {
4
+ 'disk' => Integer,
5
+ 'id' => Integer,
6
+ 'name' => String,
7
+ 'ram' => Integer
8
+ }
9
+
10
+ tests('success') do
11
+
12
+ tests('#get_flavor_details(1)').formats(@flavor_format) do
13
+ Rackspace[:servers].get_flavor_details(1).body['flavor']
14
+ end
15
+
16
+ tests('#list_flavors').formats({'flavors' => [Rackspace::Servers::Formats::SUMMARY]}) do
17
+ Rackspace[:servers].list_flavors.body
18
+ end
19
+
20
+ tests('#list_flavors_detail').formats({'flavors' => [@flavor_format]}) do
21
+ Rackspace[:servers].list_flavors_detail.body
22
+ end
23
+
24
+ end
25
+
26
+ tests('failure') do
27
+
28
+ tests('#get_flavor_details(0)').raises(Fog::Rackspace::Servers::NotFound) do
29
+ Rackspace[:servers].get_flavor_details(0)
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,59 @@
1
+ Shindo.tests('Rackspace::Servers | image requests', ['rackspace']) do
2
+
3
+ @image_format = {
4
+ 'created' => String,
5
+ 'id' => Integer,
6
+ 'name' => String,
7
+ 'progress' => Integer,
8
+ 'serverId' => Integer,
9
+ 'status' => String,
10
+ 'updated' => String
11
+ }
12
+
13
+ tests('success') do
14
+
15
+ @server = Rackspace[:servers].servers.create(:flavor_id => 1, :image_id => 19, :name => 'foggetserverdetails')
16
+ @server.wait_for { ready? }
17
+ @image_id = nil
18
+
19
+ tests("#create_image(#{@server.id})").formats(@image_format.reject {|key,value| key == 'progress'}) do
20
+ data = Rackspace[:servers].create_image(@server.id).body['image']
21
+ @image_id = data['id']
22
+ data
23
+ end
24
+
25
+ Rackspace[:servers].images.get(@image_id).wait_for { ready? }
26
+
27
+ tests("#get_image_details(#{@image_id})").formats(@image_format) do
28
+ Rackspace[:servers].get_image_details(@image_id).body['image']
29
+ end
30
+
31
+ tests('#list_images').formats({'images' => [Rackspace::Servers::Formats::SUMMARY]}) do
32
+ Rackspace[:servers].list_images.body
33
+ end
34
+
35
+ tests('#list_images_detail').formats({'images' => [@image_format]}) do
36
+ Rackspace[:servers].list_images_detail.body
37
+ end
38
+
39
+ tests("#delete_image(#{@image_id})").succeeds do
40
+ Rackspace[:servers].delete_image(@image_id)
41
+ end
42
+
43
+ @server.destroy
44
+
45
+ end
46
+
47
+ tests('failure') do
48
+
49
+ tests('#delete_image(0)').raises(Excon::Errors::BadRequest) do
50
+ Rackspace[:servers].delete_image(0)
51
+ end
52
+
53
+ tests('#get_image_details(0)').raises(Fog::Rackspace::Servers::NotFound) do
54
+ Rackspace[:servers].get_image_details(0)
55
+ end
56
+
57
+ end
58
+
59
+ end
@@ -0,0 +1,83 @@
1
+ Shindo.tests('Rackspace::Servers | server requests', ['rackspace']) do
2
+
3
+ @server_format = {
4
+ 'addresses' => {
5
+ 'private' => [String],
6
+ 'public' => [String]
7
+ },
8
+ 'flavorId' => Integer,
9
+ 'hostId' => String,
10
+ 'id' => Integer,
11
+ 'imageId' => Integer,
12
+ 'metadata' => {},
13
+ 'name' => String,
14
+ 'progress' => Integer,
15
+ 'status' => String
16
+ }
17
+
18
+ tests('success') do
19
+
20
+ @server_id = nil
21
+
22
+ tests('#create_server(1, 19)').formats(@server_format.merge('adminPass' => String)) do
23
+ # 1 => 256MB, 19 => Gentoo
24
+ data = Rackspace[:servers].create_server(1, 19).body['server']
25
+ @server_id = data['id']
26
+ data
27
+ end
28
+
29
+ Rackspace[:servers].servers.get(@server_id).wait_for { ready? }
30
+
31
+ tests("#get_server_details(#{@server_id})").formats(@server_format) do
32
+ Rackspace[:servers].get_server_details(@server_id).body['server']
33
+ end
34
+
35
+ tests('#list_servers').formats({'servers' => [Rackspace::Servers::Formats::SUMMARY]}) do
36
+ Rackspace[:servers].list_servers.body
37
+ end
38
+
39
+ tests('#list_servers_detail').formats({'servers' => [@server_format]}) do
40
+ Rackspace[:servers].list_servers_detail.body
41
+ end
42
+
43
+ tests("#update_server(#{@server_id}, :name => 'fogupdatedserver', :adminPass => 'fogupdatedserver')").succeeds do
44
+ Rackspace[:servers].update_server(@server_id, :name => 'fogupdatedserver', :adminPass => 'fogupdatedserver')
45
+ end
46
+
47
+ tests("#reboot_server(#{@server_id}, 'HARD')").succeeds do
48
+ Rackspace[:servers].reboot_server(@server_id, 'HARD')
49
+ end
50
+
51
+ tests("#reboot_server(#{@server_id}, 'SOFT')").succeeds do
52
+ Rackspace[:servers].reboot_server(@server_id, 'SOFT')
53
+ end
54
+
55
+ Rackspace[:servers].servers.get(@server_id).wait_for { ready? }
56
+
57
+ tests("#delete_server(#{@server_id})").succeeds do
58
+ Rackspace[:servers].delete_server(@server_id)
59
+ end
60
+
61
+ end
62
+
63
+ tests('failure') do
64
+
65
+ tests('#delete_server(0)').raises(Fog::Rackspace::Servers::NotFound) do
66
+ Rackspace[:servers].delete_server(0)
67
+ end
68
+
69
+ tests('#get_server_details(0)').raises(Fog::Rackspace::Servers::NotFound) do
70
+ Rackspace[:servers].get_server_details(0)
71
+ end
72
+
73
+ tests("#update_server(0, :name => 'fogupdatedserver', :adminPass => 'fogupdatedserver')").raises(Fog::Rackspace::Servers::NotFound) do
74
+ Rackspace[:servers].update_server(0, :name => 'fogupdatedserver', :adminPass => 'fogupdatedserver')
75
+ end
76
+
77
+ tests('#reboot_server(0)').raises(Fog::Rackspace::Servers::NotFound) do
78
+ Rackspace[:servers].reboot_server(0)
79
+ end
80
+
81
+ end
82
+
83
+ end
@@ -13,39 +13,4 @@ module Slicehost
13
13
  @@connections[service]
14
14
  end
15
15
 
16
- module Formats
17
-
18
- BACKUP = {
19
- 'date' => String,
20
- 'id' => Integer,
21
- 'name' => String,
22
- 'slice-id' => Integer
23
- }
24
-
25
- FLAVOR = {
26
- 'id' => Integer,
27
- 'name' => String,
28
- 'price' => Integer,
29
- 'ram' => Integer
30
- }
31
-
32
- IMAGE = {
33
- 'id' => Integer,
34
- 'name' => String
35
- }
36
-
37
- SLICE = {
38
- 'addresses' => [String],
39
- 'bw-in' => Float,
40
- 'bw-out' => Float,
41
- 'flavor-id' => Integer,
42
- 'id' => Integer,
43
- 'image-id' => Integer,
44
- 'name' => String,
45
- 'progress' => Integer,
46
- 'status' => String
47
- }
48
-
49
- end
50
-
51
16
  end
@@ -0,0 +1,17 @@
1
+ Shindo.tests('Slicehost | backup requests', ['slicehost']) do
2
+
3
+ @backup_format = {
4
+ 'date' => String,
5
+ 'id' => Integer,
6
+ 'name' => String,
7
+ 'slice-id' => Integer
8
+ }
9
+
10
+ tests('success') do
11
+
12
+ tests('#get_backups').formats({ 'backups' => [@backup_format] }) do
13
+ Slicehost[:slices].get_backups.body
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,30 @@
1
+ Shindo.tests('Slicehost | flavor requests', ['slicehost']) do
2
+
3
+ @flavor_format = {
4
+ 'id' => Integer,
5
+ 'name' => String,
6
+ 'price' => Integer,
7
+ 'ram' => Integer
8
+ }
9
+
10
+ tests('success') do
11
+
12
+ tests('#get_flavor(1)').formats(@flavor_format) do
13
+ Slicehost[:slices].get_flavor(1).body
14
+ end
15
+
16
+ tests('#get_flavors').formats({ 'flavors' => [@flavor_format] }) do
17
+ Slicehost[:slices].get_flavors.body
18
+ end
19
+
20
+ end
21
+
22
+ tests('failure') do
23
+
24
+ tests('#get_flavor(0)').raises(Excon::Errors::Forbidden) do
25
+ Slicehost[:slices].get_flavor(0)
26
+ end
27
+
28
+ end
29
+
30
+ end