[PATCH] fix for delayed_job launches to pass ids instead of objects

Tzu-Mainn Chen tzumainn at redhat.com
Tue Jul 17 23:34:44 UTC 2012


---
 src/app/models/deployment.rb |   33 +++++++++++++++++++++------------
 1 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/src/app/models/deployment.rb b/src/app/models/deployment.rb
index be60802..21e199b 100644
--- a/src/app/models/deployment.rb
+++ b/src/app/models/deployment.rb
@@ -254,23 +254,32 @@ class Deployment < ActiveRecord::Base
     all_inst_match.map!{|m| m.attributes}
 
     if deployable_xml.requires_config_server?
-      # the instance configurations need to be generated from the entire set of
-      # instances (and not each individual instance) in order to do parameter
-      # dependency resolution across the set
-      config_server = account.config_server
-      instance_configs = ConfigServerUtil.instance_configs(self,
-                                                           instances,
-                                                           config_server)
+      config_server_id = account.config_server_id
     else
-      config_server = nil
-      instance_configs = {}
+      config_server_id = nil
     end
 
-    delay.send_launch_requests(all_inst_match, config_server,
-                               instance_configs, user)
+    delay.send_launch_requests(all_inst_match,
+                               instances.map{|i| i.id},
+                               config_server_id, user.id)
   end
 
-  def send_launch_requests(all_inst_match, config_server, instance_configs, user)
+  def send_launch_requests(all_inst_match, instance_ids, config_server_id, user_id)
+    user = User.find(user_id)
+    instances = instance_ids.map{|instance_id| Instance.find(instance_id)}
+
+    if config_server_id.nil?
+      config_server = nil
+      instance_configs = {}
+    else
+      config_server = ConfigServer.find(config_server_id)
+
+      # the instance configurations need to be generated from the entire set of
+      # instances (and not each individual instance) in order to do parameter
+      # dependency resolution across the set
+      instance_configs = ConfigServerUtil.instance_configs(self,instances,config_server)
+    end
+
     instances.each do |instance|
       instance.reset_attrs unless instance.state == Instance::STATE_NEW
       instance.instance_matches << InstanceMatch.new(
-- 
1.7.6.5




More information about the aeolus-devel mailing list