[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