[PATCH conductor 3/3] Don't destroy openstack instances on provider side
jprovazn at redhat.com
jprovazn at redhat.com
Thu Sep 27 15:10:40 UTC 2012
From: Jan Provaznik <jprovazn at redhat.com>
Destroy is done automatically when stop request is sent.
---
src/app/models/instance.rb | 6 +-----
src/app/models/provider_type.rb | 5 +++++
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/app/models/instance.rb b/src/app/models/instance.rb
index 95f62c7..8e02002 100644
--- a/src/app/models/instance.rb
+++ b/src/app/models/instance.rb
@@ -565,7 +565,7 @@ class Instance < ActiveRecord::Base
]
def destroy_on_provider
- if provider_account and destroy_supported?(provider_account) and ![STATE_CREATE_FAILED, STATE_VANISHED].include?(state)
+ if provider_account and provider_account.provider.provider_type.destroy_supported? and ![STATE_CREATE_FAILED, STATE_VANISHED].include?(state)
task = self.queue_action(self.owner, 'destroy')
raise I18n.t("instance.errors.cannot_destroy") unless task
Taskomatic.destroy_instance(task)
@@ -615,10 +615,6 @@ class Instance < ActiveRecord::Base
end
end
- def destroy_supported?(account)
- !['ec2', 'mock'].include?(account.provider.provider_type.deltacloud_driver)
- end
-
def key_name
"#{self.name}_#{Time.now.to_i}_key_#{self.object_id}".gsub(/[^a-zA-Z0-9\.\-]/, '_')
end
diff --git a/src/app/models/provider_type.rb b/src/app/models/provider_type.rb
index 1e44038..7052253 100644
--- a/src/app/models/provider_type.rb
+++ b/src/app/models/provider_type.rb
@@ -56,4 +56,9 @@ class ProviderType < ActiveRecord::Base
def stopped_instances_disappear?
%w(openstack ec2).include?(deltacloud_driver)
end
+
+ def destroy_supported?
+ # dc-core destroys openstack instances on stop request
+ !['ec2', 'mock', 'openstack'].include?(deltacloud_driver)
+ end
end
--
1.7.11.4
More information about the aeolus-devel
mailing list