deltacloud-core 0.0.2 → 0.0.3

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.
Files changed (64) hide show
  1. data/COPYING +176 -502
  2. data/Rakefile +21 -14
  3. data/deltacloud.rb +3 -0
  4. data/lib/deltacloud/base_driver.rb +12 -11
  5. data/lib/deltacloud/base_driver/base_driver.rb +22 -11
  6. data/lib/deltacloud/drivers/ec2/ec2_driver.rb +15 -12
  7. data/lib/deltacloud/drivers/gogrid/gogrid_driver.rb +16 -11
  8. data/lib/deltacloud/drivers/mock/data/images/img1.yml +3 -0
  9. data/lib/deltacloud/drivers/mock/data/images/img2.yml +3 -0
  10. data/lib/deltacloud/drivers/mock/data/images/img3.yml +3 -0
  11. data/lib/deltacloud/drivers/mock/data/instances/inst0.yml +16 -0
  12. data/lib/deltacloud/drivers/mock/data/instances/inst1.yml +9 -0
  13. data/lib/deltacloud/drivers/mock/data/instances/inst2.yml +9 -0
  14. data/lib/deltacloud/drivers/mock/data/storage_snapshots/snap1.yml +4 -0
  15. data/lib/deltacloud/drivers/mock/data/storage_snapshots/snap2.yml +4 -0
  16. data/lib/deltacloud/drivers/mock/data/storage_snapshots/snap3.yml +4 -0
  17. data/lib/deltacloud/drivers/mock/data/storage_volumes/vol1.yml +6 -0
  18. data/lib/deltacloud/drivers/mock/data/storage_volumes/vol2.yml +6 -0
  19. data/lib/deltacloud/drivers/mock/data/storage_volumes/vol3.yml +6 -0
  20. data/lib/deltacloud/drivers/mock/mock_driver.rb +13 -11
  21. data/lib/deltacloud/drivers/rackspace/rackspace_client.rb +12 -11
  22. data/lib/deltacloud/drivers/rackspace/rackspace_driver.rb +12 -11
  23. data/lib/deltacloud/drivers/rhevm/rhevm_driver.rb +12 -11
  24. data/lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb +12 -11
  25. data/lib/deltacloud/drivers/rimuhosting/rimuhosting_driver.rb +14 -12
  26. data/lib/deltacloud/drivers/terremark/terremark_driver.rb +12 -11
  27. data/lib/deltacloud/helpers/application_helper.rb +64 -11
  28. data/lib/deltacloud/helpers/conversion_helper.rb +12 -11
  29. data/lib/deltacloud/method_serializer.rb +12 -11
  30. data/lib/deltacloud/models/base_model.rb +12 -11
  31. data/lib/deltacloud/models/image.rb +12 -11
  32. data/lib/deltacloud/models/instance.rb +13 -12
  33. data/lib/deltacloud/models/instance_profile.rb +12 -11
  34. data/lib/deltacloud/models/realm.rb +12 -11
  35. data/lib/deltacloud/models/storage_snapshot.rb +12 -11
  36. data/lib/deltacloud/models/storage_volume.rb +12 -11
  37. data/lib/drivers.rb +12 -0
  38. data/lib/sinatra/rabbit.rb +1 -0
  39. data/lib/sinatra/respond_to.rb +3 -0
  40. data/server.rb +40 -80
  41. data/tests/api_test.rb +37 -0
  42. data/tests/hardware_profiles_test.rb +120 -0
  43. data/tests/images_test.rb +95 -78
  44. data/tests/instance_states_test.rb +52 -0
  45. data/tests/instances_test.rb +193 -110
  46. data/tests/realms_test.rb +66 -44
  47. data/views/errors/not_found.html.haml +6 -0
  48. data/views/errors/not_found.xml.haml +2 -0
  49. data/views/hardware_profiles/index.xml.haml +1 -1
  50. data/views/hardware_profiles/show.xml.haml +3 -2
  51. data/views/images/index.xml.haml +4 -3
  52. data/views/images/show.xml.haml +2 -2
  53. data/views/instances/index.xml.haml +6 -8
  54. data/views/instances/show.xml.haml +9 -10
  55. data/views/realms/index.xml.haml +1 -3
  56. data/views/realms/show.xml.haml +4 -5
  57. data/views/storage_snapshots/index.xml.haml +3 -5
  58. data/views/storage_snapshots/show.xml.haml +2 -4
  59. data/views/storage_volumes/index.xml.haml +7 -7
  60. data/views/storage_volumes/show.xml.haml +2 -4
  61. metadata +156 -81
  62. data/tests/deltacloud_test.rb +0 -60
  63. data/tests/storage_snapshots_test.rb +0 -48
  64. data/tests/storage_volumes_test.rb +0 -48
@@ -1,60 +0,0 @@
1
- require 'rubygems'
2
- require 'test/unit'
3
- require 'rack/test'
4
- require 'base64'
5
- require 'nokogiri'
6
- require 'pp'
7
- require 'sinatra'
8
-
9
- ENV['API_DRIVER']='mock'
10
- ENV['API_HOST']='localhost'
11
-
12
- require 'server'
13
-
14
- set :environment => :test
15
-
16
- module DeltacloudTest
17
- include Rack::Test::Methods
18
-
19
- def app
20
- Sinatra::Application
21
- end
22
-
23
- def test_if_response_is_valid
24
- get '/api/'+@collection+'.xml', @params, rack_headers
25
- assert last_response.ok?
26
- end
27
-
28
- def test_if_http_status_is_correct_with_wrong_credentials
29
- return if ['realms'].include?(@collection)
30
- wrong_header = rack_headers
31
- wrong_header['HTTP_AUTHORIZATION'] = authorization('wronguser', 'wrongpassword')
32
- get '/api/'+@collection+'.xml', @params, wrong_header
33
- assert_equal 403, last_response.status
34
- end
35
-
36
- def test_if_index_operation_proper_root_element
37
- get '/api/'+@collection+'.xml', @params, rack_headers
38
- doc = Nokogiri::XML.parse(last_response.body)
39
- assert_equal @collection.gsub('_', '-'), doc.root.name
40
- end
41
-
42
- def test_html_response
43
- get '/api/'+@collection+'.html', @params, rack_headers
44
- doc = Nokogiri::HTML.parse(last_response.body)
45
- assert_equal 'html', doc.root.name
46
- end
47
-
48
- def authorization(username, password)
49
- "Basic " + Base64.encode64("#{username}:#{password}")
50
- end
51
-
52
- def rack_headers
53
- return {
54
- 'HTTP_AUTHORIZATION' => authorization('mockuser', 'mockpassword'),
55
- 'SERVER_PORT' => '4040',
56
- 'Accept' => 'application/xml;q=1'
57
- }
58
- end
59
-
60
- end
@@ -1,48 +0,0 @@
1
- require 'tests/deltacloud_test'
2
-
3
- class StorageSnapshotsTest < Test::Unit::TestCase
4
-
5
- def initialize(*args)
6
- @collection = 'storage_snapshots'
7
- @operations = [:index, :show]
8
- @options = [:id, :architecture, :memory, :storage]
9
- @params = {}
10
- super(*args)
11
- end
12
-
13
- def test_if_storage_snapshots_are_not_empty
14
- get '/api/storage_snapshots.xml', @params, rack_headers
15
- doc = Nokogiri::XML.parse(last_response.body)
16
- assert_not_equal 0, doc.xpath('/storage-snapshots/storage-snapshot').size
17
- end
18
-
19
- [:id, :created, :state, :'storage-volume'].each do |option|
20
- method_name = :"test_if_storage_snapshots_index_contain_#{option}"
21
- send :define_method, method_name do
22
- get '/api/storage_snapshots.xml', @params, rack_headers
23
- doc = Nokogiri::XML.parse(last_response.body)
24
- storage_volume = doc.xpath('/storage-snapshots/storage-snapshot[1]').first
25
- assert_not_nil storage_volume.xpath(option.to_s).first
26
- end
27
- end
28
-
29
- [:id, :created, :state, :'storage-volume'].each do |option|
30
- method_name = :"test_if_storage_volume_show_contain_#{option}"
31
- send :define_method, method_name do
32
- get '/api/storage_snapshots/snap3.xml', @params, rack_headers
33
- doc = Nokogiri::XML.parse(last_response.body)
34
- storage_volume = doc.xpath('/storage-snapshot').first
35
- assert_not_nil storage_volume.xpath(option.to_s).first
36
- end
37
- end
38
-
39
- def test_storage_snapshots_filtering_by_id
40
- get '/api/storage_snapshots.xml', { :id => 'snap3'}, rack_headers
41
- doc = Nokogiri::XML.parse(last_response.body)
42
- assert_equal 1, doc.xpath('/storage-snapshots/storage-snapshot').size
43
- assert_equal 'snap3', doc.xpath('/storage-snapshots/storage-snapshot/id').first.text
44
- end
45
-
46
- include DeltacloudTest
47
-
48
- end
@@ -1,48 +0,0 @@
1
- require 'tests/deltacloud_test'
2
-
3
- class StorageVolumesTest < Test::Unit::TestCase
4
-
5
- def initialize(*args)
6
- @collection = 'storage_volumes'
7
- @operations = [:index, :show]
8
- @options = [:id, :architecture, :memory, :storage]
9
- @params = {}
10
- super(*args)
11
- end
12
-
13
- def test_if_storage_volumes_are_not_empty
14
- get '/api/storage_volumes.xml', @params, rack_headers
15
- doc = Nokogiri::XML.parse(last_response.body)
16
- assert_not_equal 0, doc.xpath('/storage-volumes/storage-volume').size
17
- end
18
-
19
- [:id, :created, :capacity, :device, :state].each do |option|
20
- method_name = :"test_if_storage_volumes_index_contain_#{option}"
21
- send :define_method, method_name do
22
- get '/api/storage_volumes.xml', @params, rack_headers
23
- doc = Nokogiri::XML.parse(last_response.body)
24
- storage_volume = doc.xpath('/storage-volumes/storage-volume[1]').first
25
- assert_not_nil storage_volume.xpath(option.to_s).first
26
- end
27
- end
28
-
29
- [:id, :created, :capacity, :device, :state].each do |option|
30
- method_name = :"test_if_storage_volume_show_contain_#{option}"
31
- send :define_method, method_name do
32
- get '/api/storage_volumes/vol2.xml', @params, rack_headers
33
- doc = Nokogiri::XML.parse(last_response.body)
34
- storage_volume = doc.xpath('/storage-volume').first
35
- assert_not_nil storage_volume.xpath(option.to_s).first
36
- end
37
- end
38
-
39
- def test_storage_volumes_filtering_by_id
40
- get '/api/storage_volumes.xml', { :id => 'vol2'}, rack_headers
41
- doc = Nokogiri::XML.parse(last_response.body)
42
- assert_equal 1, doc.xpath('/storage-volumes/storage-volume').size
43
- assert_equal 'vol2', doc.xpath('/storage-volumes/storage-volume/id').first.text
44
- end
45
-
46
- include DeltacloudTest
47
-
48
- end