From: David Lutterkort <[email protected]>

---
 server/lib/deltacloud/drivers/ec2/ec2_driver.rb |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb 
b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
index 31fcfa5..b275f98 100644
--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -263,8 +263,15 @@ module Deltacloud
           if opts[:metrics] and !opts[:metrics].empty?
             instance_options[:monitoring_enabled] = true
           end
+          if opts[:realm_id]
+            az, sn = opts[:realm_id].split(":")
+            if sn
+              instance_options[:subnet_id] = sn
+            else
+              instance_options[:availability_zone] = az
+            end
+          end
           instance_options[:key_name] = opts[:keyname] if opts[:keyname]
-          instance_options[:availability_zone] = opts[:realm_id] if 
opts[:realm_id]
           instance_options[:instance_type] = opts[:hwp_id] if opts[:hwp_id] && 
opts[:hwp_id].length > 0
           firewalls = opts.inject([]){|res, (k,v)| res << v if k =~ 
/firewalls\d+$/; res}
           instance_options[:group_ids] = firewalls unless firewalls.empty?
@@ -919,6 +926,10 @@ module Deltacloud
           if instance[:aws_instance_type] == "t1.micro"
             inst_profile_opts[:hwp_architecture]=instance[:architecture]
           end
+          realm_id = instance[:aws_availability_zone]
+          unless instance[:subnet_id].empty?
+            realm_id = "#{realm_id}:#{instance[:subnet_id]}"
+          end
          Instance.new(
             :id => instance[:aws_instance_id],
             :name => instance[:aws_image_id],
@@ -929,7 +940,7 @@ module Deltacloud
             :keyname => instance[:ssh_key_name],
             :launch_time => instance[:aws_launch_time],
             :instance_profile => 
InstanceProfile.new(instance[:aws_instance_type], inst_profile_opts),
-            :realm_id => instance[:aws_availability_zone],
+            :realm_id => realm_id,
             :public_addresses => [InstanceAddress.new(instance[:dns_name], 
:type => :hostname)],
             :private_addresses => 
[InstanceAddress.new(instance[:private_dns_name], :type => :hostname)],
             :firewalls => instance[:aws_groups],
-- 
1.7.7.6

Reply via email to