deltacloud-core 1.0.5 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +10 -2
- data/bin/deltacloudd +10 -10
- data/config.ru +2 -1
- data/config/drivers/digitalocean.yaml +3 -0
- data/deltacloud-core.gemspec +13 -6
- data/lib/cimi/collections.rb +1 -1
- data/lib/cimi/collections/address_templates.rb +27 -3
- data/lib/cimi/collections/addresses.rb +1 -1
- data/lib/cimi/collections/base.rb +1 -0
- data/lib/cimi/collections/cloud_entry_point.rb +4 -0
- data/lib/cimi/collections/credentials.rb +2 -2
- data/lib/cimi/collections/machine_images.rb +20 -0
- data/lib/cimi/collections/machine_templates.rb +72 -0
- data/lib/cimi/collections/machines.rb +50 -41
- data/lib/cimi/collections/network_ports.rb +3 -3
- data/lib/cimi/collections/networks.rb +4 -4
- data/lib/cimi/collections/resource_metadata.rb +1 -1
- data/lib/cimi/collections/volume_configurations.rb +25 -0
- data/lib/cimi/collections/volume_images.rb +21 -1
- data/lib/cimi/collections/volume_templates.rb +69 -0
- data/lib/cimi/collections/volumes.rb +5 -10
- data/lib/cimi/dependencies.rb +0 -1
- data/lib/cimi/helpers.rb +4 -1
- data/lib/cimi/helpers/cimi_helper.rb +62 -0
- data/lib/cimi/helpers/database_helper.rb +95 -0
- data/lib/cimi/models.rb +15 -1
- data/lib/cimi/models/address.rb +10 -5
- data/lib/cimi/models/address_template.rb +67 -3
- data/lib/cimi/models/base.rb +8 -5
- data/lib/cimi/models/cloud_entry_point.rb +6 -1
- data/lib/cimi/models/collection.rb +9 -4
- data/lib/cimi/models/disk.rb +6 -1
- data/lib/cimi/models/errors.rb +8 -0
- data/lib/cimi/models/machine.rb +68 -42
- data/lib/cimi/models/machine_configuration.rb +2 -2
- data/lib/cimi/models/machine_image.rb +41 -6
- data/lib/cimi/models/machine_template.rb +58 -0
- data/lib/cimi/models/machine_volume.rb +51 -3
- data/lib/cimi/models/resource_metadata.rb +88 -25
- data/lib/cimi/models/schema.rb +19 -5
- data/lib/cimi/models/volume.rb +66 -30
- data/lib/cimi/models/volume_configuration.rb +53 -21
- data/lib/cimi/models/volume_image.rb +24 -9
- data/lib/cimi/models/volume_template.rb +61 -0
- data/lib/cimi/server.rb +0 -6
- data/lib/db.rb +82 -0
- data/lib/db/address_template.rb +15 -0
- data/lib/db/entity.rb +22 -0
- data/lib/db/machine_template.rb +10 -0
- data/lib/db/provider.rb +13 -0
- data/lib/db/volume_configuration.rb +10 -0
- data/lib/db/volume_template.rb +10 -0
- data/lib/deltacloud/collections/addresses.rb +1 -1
- data/lib/deltacloud/collections/base.rb +12 -1
- data/lib/deltacloud/collections/buckets.rb +41 -8
- data/lib/deltacloud/collections/drivers.rb +1 -1
- data/lib/deltacloud/collections/firewalls.rb +2 -2
- data/lib/deltacloud/collections/images.rb +1 -1
- data/lib/deltacloud/collections/instances.rb +7 -1
- data/lib/deltacloud/collections/keys.rb +1 -1
- data/lib/deltacloud/collections/load_balancers.rb +4 -4
- data/lib/deltacloud/collections/storage_snapshots.rb +5 -1
- data/lib/deltacloud/collections/storage_volumes.rb +7 -3
- data/lib/deltacloud/drivers/base_driver.rb +10 -9
- data/lib/deltacloud/drivers/cimi_features.rb +42 -0
- data/lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb +307 -0
- data/lib/deltacloud/drivers/ec2/ec2_driver.rb +40 -14
- data/lib/deltacloud/drivers/exceptions.rb +8 -0
- data/lib/deltacloud/drivers/features.rb +19 -2
- data/lib/deltacloud/drivers/fgcp/fgcp_client.rb +11 -0
- data/lib/deltacloud/drivers/fgcp/fgcp_driver.rb +83 -11
- data/lib/deltacloud/drivers/gogrid/gogrid_client.rb +1 -1
- data/lib/deltacloud/drivers/mock/mock_client.rb +2 -4
- data/lib/deltacloud/drivers/mock/mock_driver.rb +29 -0
- data/lib/deltacloud/drivers/openstack/openstack_driver.rb +153 -36
- data/lib/deltacloud/drivers/rackspace/anti_cache_monkey_patch.rb +20 -0
- data/lib/deltacloud/drivers/rackspace/rackspace_driver.rb +1 -0
- data/lib/deltacloud/drivers/rhevm/rhevm_driver.rb +30 -12
- data/lib/deltacloud/drivers/sbc/sbc_client.rb +0 -1
- data/lib/deltacloud/drivers/sbc/sbc_driver.rb +5 -1
- data/lib/deltacloud/drivers/vsphere/vsphere_client.rb +1 -1
- data/lib/deltacloud/drivers/vsphere/vsphere_driver.rb +19 -9
- data/lib/deltacloud/helpers/blob_stream_helper.rb +42 -3
- data/lib/deltacloud/helpers/deltacloud_helper.rb +31 -14
- data/lib/deltacloud/models/address.rb +9 -0
- data/lib/deltacloud/models/base_model.rb +4 -0
- data/lib/deltacloud/models/blob.rb +12 -0
- data/lib/deltacloud/models/bucket.rb +9 -0
- data/lib/deltacloud/models/firewall.rb +13 -1
- data/lib/deltacloud/models/firewall_rule.rb +14 -0
- data/lib/deltacloud/models/hardware_profile.rb +14 -0
- data/lib/deltacloud/models/image.rb +15 -0
- data/lib/deltacloud/models/instance.rb +40 -1
- data/lib/deltacloud/models/instance_address.rb +9 -0
- data/lib/deltacloud/models/key.rb +15 -0
- data/lib/deltacloud/models/load_balancer.rb +20 -0
- data/lib/deltacloud/models/metric.rb +15 -0
- data/lib/deltacloud/models/provider.rb +8 -0
- data/lib/deltacloud/models/realm.rb +9 -0
- data/lib/deltacloud/models/state_machine.rb +8 -0
- data/lib/deltacloud/models/storage_snapshot.rb +11 -0
- data/lib/deltacloud/models/storage_volume.rb +24 -0
- data/lib/deltacloud/server.rb +1 -3
- data/lib/deltacloud/version.rb +2 -1
- data/lib/deltacloud_rack.rb +1 -1
- data/tests/cimi/db/database_helper_test.rb +190 -0
- data/tests/cimi/db/db_helper.rb +30 -0
- data/tests/cimi/db/schema_test.rb +94 -0
- data/tests/cimi/model/collection_spec.rb +0 -1
- data/tests/cimi/model/machine_spec.rb +17 -0
- data/tests/cimi/spec_helper.rb +3 -2
- data/tests/deltacloud/collections/buckets_collection_test.rb +3 -0
- data/tests/deltacloud/collections/drivers_collection_test.rb +10 -0
- data/tests/deltacloud/collections/hardware_profiles_collection_test.rb +4 -0
- data/tests/deltacloud/collections/images_collection_test.rb +4 -0
- data/tests/deltacloud/collections/instances_collection_test.rb +14 -1
- data/tests/deltacloud/collections/keys_collection_test.rb +4 -0
- data/tests/deltacloud/collections/realms_collection_test.rb +47 -0
- data/tests/deltacloud/collections/storage_snapshots_collection_test.rb +47 -0
- data/tests/deltacloud/collections/storage_volumes_collection_test.rb +47 -0
- data/tests/deltacloud/common.rb +15 -0
- data/tests/deltacloud/deltacloud_helper_test.rb +0 -4
- data/tests/deltacloud/launcher_test.rb +108 -0
- data/tests/drivers/ec2/buckets_test.rb +2 -1
- data/tests/drivers/mock/buckets_test.rb +27 -0
- data/tests/drivers/mock/instances_test.rb +6 -0
- data/tests/drivers/openstack/common.rb +1 -1
- data/tests/drivers/openstack/hardware_profiles_test.rb +2 -1
- data/tests/drivers/openstack/instances_test.rb +18 -17
- data/tests/drivers/rhevm/common.rb +1 -0
- data/tests/drivers/rhevm/images_test.rb +1 -1
- data/tests/drivers/rhevm/instance_test.rb +7 -7
- data/tests/helpers/rack/rack_matrix_params_test.rb +0 -2
- data/tests/test_helper.rb +2 -1
- data/views/errors/403.xml.haml +6 -0
- data/views/errors/409.html.haml +47 -0
- data/views/errors/409.xml.haml +11 -0
- data/views/errors/502.html.haml +6 -5
- data/views/images/show.xml.haml +3 -2
- data/views/instances/new.html.haml +1 -1
- metadata +77 -30
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'require_relative' if RUBY_VERSION < '1.9'
|
4
|
+
require_relative 'common.rb'
|
5
|
+
|
6
|
+
describe 'MockDriver Buckets' do
|
7
|
+
|
8
|
+
before do
|
9
|
+
@driver = Deltacloud::new(:mock, :user => 'mockuser', :password => 'mockpassword')
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'must throw error when wrong credentials for buckets' do
|
13
|
+
Proc.new do
|
14
|
+
@driver.backend.buckets(OpenStruct.new(:user => 'unknown', :password => 'wrong'))
|
15
|
+
end.must_raise Deltacloud::Exceptions::AuthenticationFailure, 'Authentication Failure'
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'can create a new bucket' do
|
19
|
+
bucket_name = "mini_test_mock_bucket_name"
|
20
|
+
bucket = @driver.create_bucket(bucket_name)
|
21
|
+
bucket.id.wont_be_nil
|
22
|
+
bucket.name.must_equal bucket_name
|
23
|
+
bucket.size.must_equal "0"
|
24
|
+
bucket.blob_list.must_be_empty
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -54,6 +54,12 @@ describe 'MockDriver Instances' do
|
|
54
54
|
@driver.instance(:id => instance.id).must_be_nil
|
55
55
|
end
|
56
56
|
|
57
|
+
it 'must respond with proper error when using unknown hardware profile' do
|
58
|
+
Proc.new {
|
59
|
+
@driver.create_instance('img1', :name => 'inst2-test', :realm_id => 'us', :hwp_id => 'unknown')
|
60
|
+
}.must_raise Deltacloud::Exceptions::ValidationFailure
|
61
|
+
end
|
62
|
+
|
57
63
|
it 'must allow to destroy created instance' do
|
58
64
|
instance = @driver.create_instance('img1', :name => 'inst1-test-destroy')
|
59
65
|
instance.must_be_kind_of Instance
|
@@ -22,5 +22,5 @@ VCR.configure do |c|
|
|
22
22
|
c.cassette_library_dir = File.join(File.dirname(__FILE__), 'fixtures')
|
23
23
|
c.hook_into :webmock
|
24
24
|
# Set this to :new_episodes when you want to 're-record'
|
25
|
-
c.default_cassette_options = { :record => :
|
25
|
+
c.default_cassette_options = { :record => :none }
|
26
26
|
end
|
@@ -1,10 +1,17 @@
|
|
1
1
|
require 'minitest/autorun'
|
2
|
-
|
3
2
|
require_relative File.join('..', '..', '..', 'lib', 'deltacloud', 'api.rb')
|
4
3
|
require_relative 'common.rb'
|
5
4
|
|
6
5
|
describe 'OpenStackDriver Instances' do
|
7
6
|
|
7
|
+
def credentials
|
8
|
+
{
|
9
|
+
:user => "foo@fakedomain.eu+foo@fakedomain.eu-default-tenant",
|
10
|
+
:password => "1234fake56789",
|
11
|
+
:provider => "https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/"
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
8
15
|
before do
|
9
16
|
@driver = Deltacloud::new(:openstack, credentials)
|
10
17
|
VCR.insert_cassette __name__
|
@@ -14,9 +21,9 @@ describe 'OpenStackDriver Instances' do
|
|
14
21
|
VCR.eject_cassette
|
15
22
|
end
|
16
23
|
|
17
|
-
it 'must throw error when wrong credentials' do
|
24
|
+
it 'must throw error when GET instances with wrong credentials' do
|
18
25
|
Proc.new do
|
19
|
-
@driver.backend.
|
26
|
+
@driver.backend.instances(OpenStruct.new(:user => 'unknown+wrong', :password => 'wrong'))
|
20
27
|
end.must_raise Deltacloud::Exceptions::AuthenticationFailure, 'Authentication Failure'
|
21
28
|
end
|
22
29
|
|
@@ -25,28 +32,23 @@ describe 'OpenStackDriver Instances' do
|
|
25
32
|
@driver.instances.first.must_be_kind_of Instance
|
26
33
|
end
|
27
34
|
|
28
|
-
# FIXME: The tests above will fail because of incompatibility
|
29
|
-
# in a way how OpenStack handle uuid/id.
|
30
|
-
# Please uncomment these tests if that will be fixed.
|
31
|
-
|
32
|
-
=begin
|
33
35
|
it 'must allow to filter instances' do
|
34
|
-
instances = @driver.instances :id => '
|
36
|
+
instances = @driver.instances :id => '806837'
|
35
37
|
instances.wont_be_empty
|
36
38
|
instances.must_be_kind_of Array
|
37
39
|
instances.size.must_equal 1
|
38
40
|
puts instances.inspect
|
39
|
-
instances.first.id.must_equal '
|
41
|
+
instances.first.id.must_equal '806837'
|
40
42
|
@driver.instances(:id => 'unknown').must_be_empty
|
41
43
|
end
|
42
44
|
|
43
45
|
it 'must allow to retrieve single instance' do
|
44
|
-
instance = @driver.instance :id => '
|
46
|
+
instance = @driver.instance :id => '806837'
|
45
47
|
instance.wont_be_nil
|
46
|
-
instance.id.must_equal '
|
47
|
-
instance.name.must_equal '
|
48
|
+
instance.id.must_equal '806837'
|
49
|
+
instance.name.must_equal 'Server-1355225740-az-2-region-a-geo-1'
|
48
50
|
instance.state.wont_be_empty
|
49
|
-
instance.owner_id.must_equal '
|
51
|
+
instance.owner_id.must_equal 'foo@fakedomain.eu'
|
50
52
|
instance.realm_id.wont_be_empty
|
51
53
|
instance.image_id.wont_be_empty
|
52
54
|
instance.instance_profile.wont_be_nil
|
@@ -54,13 +56,12 @@ describe 'OpenStackDriver Instances' do
|
|
54
56
|
end
|
55
57
|
|
56
58
|
it 'must allow to create and destroy an instance' do
|
57
|
-
instance = @driver.create_instance '
|
59
|
+
instance = @driver.create_instance '47940', :hwp_id => '100'
|
58
60
|
instance.wont_be_nil
|
59
|
-
instance.image_id.must_equal '
|
61
|
+
instance.image_id.must_equal '47940'
|
60
62
|
instance.name.wont_be_empty
|
61
63
|
instance.wait_for!(@driver, record_retries('inst_launch')) { |i| i.is_running? }
|
62
64
|
puts @driver.destroy_instance(instance.id).inspect
|
63
65
|
end
|
64
|
-
=end
|
65
66
|
|
66
67
|
end
|
@@ -19,5 +19,6 @@ VCR.configure do |c|
|
|
19
19
|
c.cassette_library_dir = File.join(File.dirname(__FILE__), 'fixtures')
|
20
20
|
c.hook_into :webmock
|
21
21
|
# Set this to :new_episodes when you want to 're-record'
|
22
|
+
#c.default_cassette_options = { :record => :new_episodes }
|
22
23
|
c.default_cassette_options = { :record => :none }
|
23
24
|
end
|
@@ -57,7 +57,7 @@ describe 'RhevmDriver Images' do
|
|
57
57
|
image.state.must_equal 'OK'
|
58
58
|
Proc.new {
|
59
59
|
@driver.destroy_image(image.id)
|
60
|
-
}.must_raise Deltacloud::Exceptions::
|
60
|
+
}.must_raise Deltacloud::Exceptions::Conflict, 'Cannot delete Template. Template is being used by the following VMs: test1.'
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
@@ -26,10 +26,10 @@ describe 'RhevmDriver Instances' do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'must allow to filter instances' do
|
29
|
-
@driver.instances(:id =>
|
30
|
-
@driver.instances(:id =>
|
31
|
-
@driver.instances(:id =>
|
32
|
-
@driver.instances(:id => '
|
29
|
+
@driver.instances(:id =>'a949192d-55eb-465c-9ef1-d59581a562a3').wont_be_empty
|
30
|
+
@driver.instances(:id =>'a949192d-55eb-465c-9ef1-d59581a562a3').must_be_kind_of Array
|
31
|
+
@driver.instances(:id =>'a949192d-55eb-465c-9ef1-d59581a562a3').size.must_equal 1
|
32
|
+
@driver.instances(:id => 'a949192d-55eb-465c-9ef1-d59581a562a3').first.id.must_equal 'a949192d-55eb-465c-9ef1-d59581a562a3'
|
33
33
|
@driver.instances(:owner_id => 'admin@internal').wont_be_empty
|
34
34
|
@driver.instances(:owner_id => 'admin@internal').each do |inst|
|
35
35
|
inst.owner_id.must_equal 'admin@internal'
|
@@ -39,9 +39,9 @@ describe 'RhevmDriver Instances' do
|
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'must allow to retrieve single instance' do
|
42
|
-
@driver.instance(:id => '
|
43
|
-
@driver.instance(:id => '
|
44
|
-
@driver.instance(:id => '
|
42
|
+
@driver.instance(:id => 'a949192d-55eb-465c-9ef1-d59581a562a3').wont_be_nil
|
43
|
+
@driver.instance(:id => 'a949192d-55eb-465c-9ef1-d59581a562a3').must_be_kind_of Instance
|
44
|
+
@driver.instance(:id => 'a949192d-55eb-465c-9ef1-d59581a562a3').id.must_equal 'a949192d-55eb-465c-9ef1-d59581a562a3'
|
45
45
|
@driver.instance(:id => 'i-00000000').must_be_nil
|
46
46
|
@driver.instance(:id => 'unknown').must_be_nil
|
47
47
|
end
|
data/tests/test_helper.rb
CHANGED
data/views/errors/403.xml.haml
CHANGED
@@ -1,2 +1,8 @@
|
|
1
1
|
%error{:url => "#{request.env['REQUEST_URI']}", :status => "#{response.status}"}
|
2
|
+
%backend{ :driver => driver_symbol, :provider => "#{Thread::current[:provider] || ENV['API_PROVIDER'] || 'default'}" }
|
3
|
+
%backtrace=cdata(@error.backtrace.join("\n"))
|
4
|
+
- if params
|
5
|
+
%request
|
6
|
+
- params.each do |k, v|
|
7
|
+
%param{ :name => k}=v
|
2
8
|
%message Method not allowed for this resource
|
@@ -0,0 +1,47 @@
|
|
1
|
+
%div{ :'data-role' => :content, :'data-theme' => 'b'}
|
2
|
+
%ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'e'}
|
3
|
+
%li{ :'data-role' => 'list-divider'} Server message
|
4
|
+
%li
|
5
|
+
%h3= h [@error.class.name, @error.message].join(' - ')
|
6
|
+
%li{ :'data-role' => 'list-divider'} Original request URI
|
7
|
+
%li
|
8
|
+
%a{ :href => request.env['REQUEST_URI'], :'data-ajax' => 'false'}
|
9
|
+
%span=request.env['REQUEST_URI']
|
10
|
+
%span{ :class => 'ui-li-count'} Retry
|
11
|
+
%li{ :'data-role' => 'list-divider'} Error details
|
12
|
+
%li
|
13
|
+
- if @error.class.method_defined? :details
|
14
|
+
%p= h @error.details
|
15
|
+
- else
|
16
|
+
%em No details
|
17
|
+
%li{ :'data-role' => 'list-divider'} Backtrace
|
18
|
+
%li
|
19
|
+
%em No details
|
20
|
+
|
21
|
+
- if @error.backtrace
|
22
|
+
%div{ 'data-role' => :collapsible, 'data-collapsed' => "true"}
|
23
|
+
%h3 Backtrace
|
24
|
+
%ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'e'}
|
25
|
+
%li
|
26
|
+
%pre= h @error.backtrace.join("\n")
|
27
|
+
|
28
|
+
%div{ 'data-role' => :collapsible, 'data-collapsed' => "true"}
|
29
|
+
%h3 Parameters
|
30
|
+
%ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'e'}
|
31
|
+
- if params.keys.empty?
|
32
|
+
%li{ :'data-role' => 'list-divider'} No parameters
|
33
|
+
- params.each do |key, value|
|
34
|
+
- next if value.inspect.to_s == '#'
|
35
|
+
%li{ :'data-role' => 'list-divider'}=key
|
36
|
+
%li
|
37
|
+
%span{:style => 'font-weight:normal;'}=value.inspect
|
38
|
+
|
39
|
+
|
40
|
+
%div{ 'data-role' => :collapsible, 'data-collapsed' => "true"}
|
41
|
+
%h3 Request details
|
42
|
+
%ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'e'}
|
43
|
+
- request.env.each do |key, value|
|
44
|
+
- next if value.inspect.to_s == '#'
|
45
|
+
%li{ :'data-role' => 'list-divider'}=key
|
46
|
+
%li
|
47
|
+
%span{:style => 'font-weight:normal;'}= h value.inspect
|
@@ -0,0 +1,11 @@
|
|
1
|
+
- unless defined?(partial)
|
2
|
+
!!! XML
|
3
|
+
%error{:url => "#{request.env['REQUEST_URI']}", :status => "#{response.status}"}
|
4
|
+
%kind backend_error
|
5
|
+
%backend{ :driver => driver_symbol, :provider => "#{Thread::current[:provider] || ENV['API_PROVIDER'] || 'default'}" }
|
6
|
+
%code=response.status
|
7
|
+
%message< #{cdata @error.message}
|
8
|
+
- if params
|
9
|
+
%request
|
10
|
+
- params.each do |k, v|
|
11
|
+
%param{ :name => k}=v
|
data/views/errors/502.html.haml
CHANGED
@@ -15,11 +15,12 @@
|
|
15
15
|
- else
|
16
16
|
%em No details
|
17
17
|
|
18
|
-
|
19
|
-
%
|
20
|
-
|
21
|
-
%
|
22
|
-
%
|
18
|
+
- if @error.backtrace
|
19
|
+
%div{ 'data-role' => :collapsible, 'data-collapsed' => "true"}
|
20
|
+
%h3 Backtrace
|
21
|
+
%ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'e'}
|
22
|
+
%li
|
23
|
+
%pre=@error.backtrace.join("\n")
|
23
24
|
|
24
25
|
%div{ 'data-role' => :collapsible, 'data-collapsed' => "true"}
|
25
26
|
%h3 Parameters
|
data/views/images/show.xml.haml
CHANGED
@@ -12,7 +12,8 @@
|
|
12
12
|
- if @image.hardware_profiles
|
13
13
|
%hardware_profiles
|
14
14
|
- @image.hardware_profiles.each do |profile|
|
15
|
-
%hardware_profile{ :href => hardware_profile_url(profile.
|
15
|
+
%hardware_profile{ :href => hardware_profile_url(profile.id), :id => profile.id, :rel => :hardware_profile }
|
16
16
|
%actions
|
17
17
|
%link{ :rel => 'create_instance', :method => :post, :href => "#{instances_url};image_id=#{@image.id}"}
|
18
|
-
|
18
|
+
- if driver.respond_to? :destroy_image
|
19
|
+
%link{ :rel => 'destroy_image', :method => :delete, :href => "#{destroy_image_url(@image.id)}" }
|
@@ -90,7 +90,7 @@
|
|
90
90
|
%fieldset{ :'data-role' => :fieldcontain}
|
91
91
|
- @hardware_profiles.each do |profile|
|
92
92
|
%input{ :type => :radio, :name => 'hwp_id', :value => profile.id, :id => profile.name, :'data-theme' => 'b'}/
|
93
|
-
%label{ :for => profile.name, :onclick => "expandHWP('#{profile.name}');"}=profile.name
|
93
|
+
%label{ :for => profile.name, :onclick => "expandHWP('#{profile.name}');"}="#{profile.name} - #{profile.memory} MB"
|
94
94
|
%div{ :'data-role' => :fieldcontain, :id => "property_container_#{profile.name}", :class => 'hwp_properties'}
|
95
95
|
|
96
96
|
- if !@realms.empty?
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deltacloud-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -76,13 +76,13 @@ dependencies:
|
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: 1.0.11
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
79
|
+
name: rack
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
83
83
|
- - ! '>='
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
85
|
+
version: 1.0.0
|
86
86
|
type: :runtime
|
87
87
|
prerelease: false
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -90,15 +90,15 @@ dependencies:
|
|
90
90
|
requirements:
|
91
91
|
- - ! '>='
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
93
|
+
version: 1.0.0
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
-
name: rack
|
95
|
+
name: rack-accept
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|
99
99
|
- - ! '>='
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
101
|
+
version: '0'
|
102
102
|
type: :runtime
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -106,15 +106,15 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
109
|
+
version: '0'
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
111
|
+
name: json
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
113
113
|
none: false
|
114
114
|
requirements:
|
115
115
|
- - ! '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 1.1.9
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -122,15 +122,15 @@ dependencies:
|
|
122
122
|
requirements:
|
123
123
|
- - ! '>='
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
125
|
+
version: 1.1.9
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
127
|
+
name: net-ssh
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
none: false
|
130
130
|
requirements:
|
131
131
|
- - ! '>='
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
133
|
+
version: 2.0.0
|
134
134
|
type: :runtime
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -138,15 +138,15 @@ dependencies:
|
|
138
138
|
requirements:
|
139
139
|
- - ! '>='
|
140
140
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
141
|
+
version: 2.0.0
|
142
142
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
143
|
+
name: nokogiri
|
144
144
|
requirement: !ruby/object:Gem::Requirement
|
145
145
|
none: false
|
146
146
|
requirements:
|
147
147
|
- - ! '>='
|
148
148
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
149
|
+
version: 1.4.3
|
150
150
|
type: :runtime
|
151
151
|
prerelease: false
|
152
152
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -154,15 +154,31 @@ dependencies:
|
|
154
154
|
requirements:
|
155
155
|
- - ! '>='
|
156
156
|
- !ruby/object:Gem::Version
|
157
|
-
version:
|
157
|
+
version: 1.4.3
|
158
158
|
- !ruby/object:Gem::Dependency
|
159
|
-
name:
|
159
|
+
name: sequel
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - <=
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: 3.42.0
|
166
|
+
type: :runtime
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - <=
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 3.42.0
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
name: sqlite3
|
160
176
|
requirement: !ruby/object:Gem::Requirement
|
161
177
|
none: false
|
162
178
|
requirements:
|
163
179
|
- - ! '>='
|
164
180
|
- !ruby/object:Gem::Version
|
165
|
-
version:
|
181
|
+
version: '0'
|
166
182
|
type: :runtime
|
167
183
|
prerelease: false
|
168
184
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -170,15 +186,15 @@ dependencies:
|
|
170
186
|
requirements:
|
171
187
|
- - ! '>='
|
172
188
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
189
|
+
version: '0'
|
174
190
|
- !ruby/object:Gem::Dependency
|
175
|
-
name:
|
191
|
+
name: thin
|
176
192
|
requirement: !ruby/object:Gem::Requirement
|
177
193
|
none: false
|
178
194
|
requirements:
|
179
195
|
- - ! '>='
|
180
196
|
- !ruby/object:Gem::Version
|
181
|
-
version: 1.
|
197
|
+
version: 1.2.5
|
182
198
|
type: :runtime
|
183
199
|
prerelease: false
|
184
200
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -186,7 +202,7 @@ dependencies:
|
|
186
202
|
requirements:
|
187
203
|
- - ! '>='
|
188
204
|
- !ruby/object:Gem::Version
|
189
|
-
version: 1.
|
205
|
+
version: 1.2.5
|
190
206
|
- !ruby/object:Gem::Dependency
|
191
207
|
name: rbovirt
|
192
208
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,7 +210,7 @@ dependencies:
|
|
194
210
|
requirements:
|
195
211
|
- - ! '>='
|
196
212
|
- !ruby/object:Gem::Version
|
197
|
-
version: 0.0.
|
213
|
+
version: 0.0.16
|
198
214
|
type: :runtime
|
199
215
|
prerelease: false
|
200
216
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -202,7 +218,7 @@ dependencies:
|
|
202
218
|
requirements:
|
203
219
|
- - ! '>='
|
204
220
|
- !ruby/object:Gem::Version
|
205
|
-
version: 0.0.
|
221
|
+
version: 0.0.16
|
206
222
|
- !ruby/object:Gem::Dependency
|
207
223
|
name: aws
|
208
224
|
requirement: !ruby/object:Gem::Requirement
|
@@ -210,7 +226,7 @@ dependencies:
|
|
210
226
|
requirements:
|
211
227
|
- - ! '>='
|
212
228
|
- !ruby/object:Gem::Version
|
213
|
-
version: 2.
|
229
|
+
version: 2.6.0
|
214
230
|
type: :runtime
|
215
231
|
prerelease: false
|
216
232
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -218,7 +234,7 @@ dependencies:
|
|
218
234
|
requirements:
|
219
235
|
- - ! '>='
|
220
236
|
- !ruby/object:Gem::Version
|
221
|
-
version: 2.
|
237
|
+
version: 2.6.0
|
222
238
|
- !ruby/object:Gem::Dependency
|
223
239
|
name: waz-storage
|
224
240
|
requirement: !ruby/object:Gem::Requirement
|
@@ -338,7 +354,7 @@ dependencies:
|
|
338
354
|
requirements:
|
339
355
|
- - ! '>='
|
340
356
|
- !ruby/object:Gem::Version
|
341
|
-
version: 1.0.
|
357
|
+
version: 1.0.7
|
342
358
|
type: :runtime
|
343
359
|
prerelease: false
|
344
360
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -346,7 +362,7 @@ dependencies:
|
|
346
362
|
requirements:
|
347
363
|
- - ! '>='
|
348
364
|
- !ruby/object:Gem::Version
|
349
|
-
version: 1.0.
|
365
|
+
version: 1.0.7
|
350
366
|
- !ruby/object:Gem::Dependency
|
351
367
|
name: savon
|
352
368
|
requirement: !ruby/object:Gem::Requirement
|
@@ -402,6 +418,7 @@ files:
|
|
402
418
|
- config/drivers/openstack.yaml
|
403
419
|
- config/drivers/fgcp.yaml
|
404
420
|
- config/drivers/eucalyptus.yaml
|
421
|
+
- config/drivers/digitalocean.yaml
|
405
422
|
- config/drivers/sbc.yaml
|
406
423
|
- config/drivers/mock.yaml
|
407
424
|
- config/drivers/condor.yaml
|
@@ -426,6 +443,7 @@ files:
|
|
426
443
|
- support/condor/config/condor-cloud
|
427
444
|
- support/condor/config/50condor_cloud.config
|
428
445
|
- support/condor/config/50condor_cloud_node.config
|
446
|
+
- lib/db.rb
|
429
447
|
- lib/deltacloud_rack.rb
|
430
448
|
- lib/ec2/helpers.rb
|
431
449
|
- lib/ec2/server.rb
|
@@ -437,6 +455,7 @@ files:
|
|
437
455
|
- lib/cimi/dependencies.rb
|
438
456
|
- lib/cimi/models.rb
|
439
457
|
- lib/cimi/helpers/cimi_helper.rb
|
458
|
+
- lib/cimi/helpers/database_helper.rb
|
440
459
|
- lib/cimi/models/volume_image.rb
|
441
460
|
- lib/cimi/models/network_port_configuration.rb
|
442
461
|
- lib/cimi/models/network.rb
|
@@ -466,6 +485,7 @@ files:
|
|
466
485
|
- lib/cimi/models/machine_volume.rb
|
467
486
|
- lib/cimi/models/resource_metadata.rb
|
468
487
|
- lib/cimi/collections.rb
|
488
|
+
- lib/cimi/collections/machine_templates.rb
|
469
489
|
- lib/cimi/collections/credentials.rb
|
470
490
|
- lib/cimi/collections/base.rb
|
471
491
|
- lib/cimi/collections/machine_images.rb
|
@@ -473,6 +493,7 @@ files:
|
|
473
493
|
- lib/cimi/collections/address_templates.rb
|
474
494
|
- lib/cimi/collections/forwarding_group_templates.rb
|
475
495
|
- lib/cimi/collections/forwarding_groups.rb
|
496
|
+
- lib/cimi/collections/volume_templates.rb
|
476
497
|
- lib/cimi/collections/network_templates.rb
|
477
498
|
- lib/cimi/collections/volume_images.rb
|
478
499
|
- lib/cimi/collections/cloud_entry_point.rb
|
@@ -557,6 +578,7 @@ files:
|
|
557
578
|
- lib/deltacloud/drivers/condor/ip_agents/default.rb
|
558
579
|
- lib/deltacloud/drivers/openstack/openstack_driver.rb
|
559
580
|
- lib/deltacloud/drivers/google/google_driver.rb
|
581
|
+
- lib/deltacloud/drivers/digitalocean/digitalocean_driver.rb
|
560
582
|
- lib/deltacloud/drivers/azure/azure_driver.rb
|
561
583
|
- lib/deltacloud/drivers/base_driver.rb
|
562
584
|
- lib/deltacloud/drivers/eucalyptus/eucalyptus_driver.rb
|
@@ -570,6 +592,7 @@ files:
|
|
570
592
|
- lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb
|
571
593
|
- lib/deltacloud/drivers/ec2/ec2_driver.rb
|
572
594
|
- lib/deltacloud/drivers/rackspace/rackspace_driver.rb
|
595
|
+
- lib/deltacloud/drivers/rackspace/anti_cache_monkey_patch.rb
|
573
596
|
- lib/deltacloud/drivers/gogrid/gogrid_driver.rb
|
574
597
|
- lib/deltacloud/drivers/gogrid/gogrid_client.rb
|
575
598
|
- lib/deltacloud/drivers/sbc/sbc_driver.rb
|
@@ -579,10 +602,17 @@ files:
|
|
579
602
|
- lib/deltacloud/drivers/opennebula/occi_client.rb
|
580
603
|
- lib/deltacloud/drivers/opennebula/cloud_client.rb
|
581
604
|
- lib/deltacloud/drivers/opennebula/opennebula_driver.rb
|
605
|
+
- lib/deltacloud/drivers/cimi_features.rb
|
582
606
|
- lib/deltacloud/drivers/exceptions.rb
|
583
607
|
- lib/deltacloud/drivers/terremark/terremark_driver.rb
|
584
608
|
- lib/deltacloud/drivers/aruba/aruba_driver.rb
|
585
609
|
- lib/sinatra.rb
|
610
|
+
- lib/db/volume_template.rb
|
611
|
+
- lib/db/machine_template.rb
|
612
|
+
- lib/db/volume_configuration.rb
|
613
|
+
- lib/db/entity.rb
|
614
|
+
- lib/db/provider.rb
|
615
|
+
- lib/db/address_template.rb
|
586
616
|
- lib/deltacloud/drivers/mock/data/instances/inst0.yml
|
587
617
|
- lib/deltacloud/drivers/mock/data/instances/inst2.yml
|
588
618
|
- lib/deltacloud/drivers/mock/data/instances/inst1.yml
|
@@ -641,6 +671,9 @@ files:
|
|
641
671
|
- tests/cimi/collections/machines_test.rb
|
642
672
|
- tests/cimi/collections/machine_images_test.rb
|
643
673
|
- tests/cimi/collections/url_helper_test.rb
|
674
|
+
- tests/cimi/db/schema_test.rb
|
675
|
+
- tests/cimi/db/database_helper_test.rb
|
676
|
+
- tests/cimi/db/db_helper.rb
|
644
677
|
- tests/helpers/rack/rack_etag_test.rb
|
645
678
|
- tests/helpers/rack/rack_accept_test.rb
|
646
679
|
- tests/helpers/rack/rack_matrix_params_test.rb
|
@@ -654,12 +687,16 @@ files:
|
|
654
687
|
- tests/deltacloud/server_test.rb
|
655
688
|
- tests/deltacloud/rack_test.rb
|
656
689
|
- tests/deltacloud/deltacloud_helper_test.rb
|
690
|
+
- tests/deltacloud/launcher_test.rb
|
657
691
|
- tests/deltacloud/common.rb
|
658
692
|
- tests/deltacloud/collections_test.rb
|
659
693
|
- tests/deltacloud/collections/images_collection_test.rb
|
660
694
|
- tests/deltacloud/collections/buckets_collection_test.rb
|
695
|
+
- tests/deltacloud/collections/realms_collection_test.rb
|
696
|
+
- tests/deltacloud/collections/storage_volumes_collection_test.rb
|
661
697
|
- tests/deltacloud/collections/instance_states_collection_test.rb
|
662
698
|
- tests/deltacloud/collections/drivers_collection_test.rb
|
699
|
+
- tests/deltacloud/collections/storage_snapshots_collection_test.rb
|
663
700
|
- tests/deltacloud/collections/instances_collection_test.rb
|
664
701
|
- tests/deltacloud/collections/keys_collection_test.rb
|
665
702
|
- tests/deltacloud/collections/hardware_profiles_collection_test.rb
|
@@ -690,6 +727,7 @@ files:
|
|
690
727
|
- tests/drivers/mock/storage_snapshots_test.rb
|
691
728
|
- tests/drivers/mock/common.rb
|
692
729
|
- tests/drivers/mock/keys_test.rb
|
730
|
+
- tests/drivers/mock/buckets_test.rb
|
693
731
|
- tests/drivers/ec2/realms_test.rb
|
694
732
|
- tests/drivers/ec2/images_test.rb
|
695
733
|
- tests/drivers/ec2/instance_test.rb
|
@@ -741,6 +779,7 @@ files:
|
|
741
779
|
- views/realms/index.xml.haml
|
742
780
|
- views/realms/show.html.haml
|
743
781
|
- views/errors/504.html.haml
|
782
|
+
- views/errors/409.xml.haml
|
744
783
|
- views/errors/501.xml.haml
|
745
784
|
- views/errors/404.html.haml
|
746
785
|
- views/errors/502.html.haml
|
@@ -758,6 +797,7 @@ files:
|
|
758
797
|
- views/errors/401.html.haml
|
759
798
|
- views/errors/500.xml.haml
|
760
799
|
- views/errors/403.xml.haml
|
800
|
+
- views/errors/409.html.haml
|
761
801
|
- views/errors/500.html.haml
|
762
802
|
- views/errors/504.xml.haml
|
763
803
|
- views/load_balancers/show.xml.haml
|
@@ -905,7 +945,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
905
945
|
version: '0'
|
906
946
|
segments:
|
907
947
|
- 0
|
908
|
-
hash: -
|
948
|
+
hash: -2467979139256162930
|
909
949
|
requirements: []
|
910
950
|
rubyforge_project:
|
911
951
|
rubygems_version: 1.8.23
|
@@ -919,6 +959,8 @@ test_files:
|
|
919
959
|
- tests/cimi/collections/machines_test.rb
|
920
960
|
- tests/cimi/collections/machine_images_test.rb
|
921
961
|
- tests/cimi/collections/url_helper_test.rb
|
962
|
+
- tests/cimi/db/schema_test.rb
|
963
|
+
- tests/cimi/db/database_helper_test.rb
|
922
964
|
- tests/helpers/rack/rack_etag_test.rb
|
923
965
|
- tests/helpers/rack/rack_accept_test.rb
|
924
966
|
- tests/helpers/rack/rack_matrix_params_test.rb
|
@@ -931,11 +973,15 @@ test_files:
|
|
931
973
|
- tests/deltacloud/server_test.rb
|
932
974
|
- tests/deltacloud/rack_test.rb
|
933
975
|
- tests/deltacloud/deltacloud_helper_test.rb
|
976
|
+
- tests/deltacloud/launcher_test.rb
|
934
977
|
- tests/deltacloud/collections_test.rb
|
935
978
|
- tests/deltacloud/collections/images_collection_test.rb
|
936
979
|
- tests/deltacloud/collections/buckets_collection_test.rb
|
980
|
+
- tests/deltacloud/collections/realms_collection_test.rb
|
981
|
+
- tests/deltacloud/collections/storage_volumes_collection_test.rb
|
937
982
|
- tests/deltacloud/collections/instance_states_collection_test.rb
|
938
983
|
- tests/deltacloud/collections/drivers_collection_test.rb
|
984
|
+
- tests/deltacloud/collections/storage_snapshots_collection_test.rb
|
939
985
|
- tests/deltacloud/collections/instances_collection_test.rb
|
940
986
|
- tests/deltacloud/collections/keys_collection_test.rb
|
941
987
|
- tests/deltacloud/collections/hardware_profiles_collection_test.rb
|
@@ -960,6 +1006,7 @@ test_files:
|
|
960
1006
|
- tests/drivers/mock/instances_test.rb
|
961
1007
|
- tests/drivers/mock/storage_snapshots_test.rb
|
962
1008
|
- tests/drivers/mock/keys_test.rb
|
1009
|
+
- tests/drivers/mock/buckets_test.rb
|
963
1010
|
- tests/drivers/ec2/realms_test.rb
|
964
1011
|
- tests/drivers/ec2/images_test.rb
|
965
1012
|
- tests/drivers/ec2/instance_test.rb
|