Since condor now exports the data we need about an instance,
we can take that information in dbomatic and put it in the
database.  While we are at it, we also rename "IP addresses"
to "Public Addresses"; that way it can accomodate either
IPs or hostnames.

Signed-off-by: Chris Lalancette <[email protected]>
---
 src/app/views/instance/index.haml               |    6 +++---
 src/app/views/instance/show.haml                |    7 +++++--
 src/db/migrate/20101018174458_rename_address.rb |   10 ++++++++++
 src/dbomatic/dbomatic                           |   15 +++++++++++++--
 4 files changed, 31 insertions(+), 7 deletions(-)
 create mode 100644 src/db/migrate/20101018174458_rename_address.rb

diff --git a/src/app/views/instance/index.haml 
b/src/app/views/instance/index.haml
index 1d6db4a..8bca1ee 100644
--- a/src/app/views/instance/index.haml
+++ b/src/app/views/instance/index.haml
@@ -4,7 +4,7 @@
   {:name => 'VM NAME', :sort_attr => 'name'},                     |
   {:name => 'TYPE', :sort_attr => 'hardware_profiles.name'},      |
   {:name => 'TEMPLATE', :sort_attr => 'templates.name'},          |
-  {:name => 'IP ADDRESS', :sort_attr => 'public_ip_addresses'},   |
+  {:name => 'PUBLIC ADDRESS', :sort_attr => 'public_addresses'},  |
   {:name => 'PROVIDER', :sortable => false},                      |
   {:name => 'STARTED BY', :sort_attr => 'users.last_name'},       |
 ]                                                                 |
@@ -103,10 +103,10 @@
             - instances.each do |inst|
               %tr
                 %td= check_box_tag 'id[]', inst.id
-                %td=inst.state
+                %td= inst.state
                 %td= inst.name
                 %td= inst.hardware_profile.name
                 %td= inst.template.name
-                %td= inst.public_ip_addresses
+                %td= inst.public_addresses
                 %td= inst.cloud_account ? inst.cloud_account.provider.name : ''
                 %td= "#{inst.owner.first_name} #{inst.owner.last_name}" # 
TODO, there is "started by" in comps pdf, but we don't save this info
diff --git a/src/app/views/instance/show.haml b/src/app/views/instance/show.haml
index 42236c8..9de3929 100644
--- a/src/app/views/instance/show.haml
+++ b/src/app/views/instance/show.haml
@@ -8,8 +8,11 @@
       = label_tag :status, 'Status'
       %span= @instance.state
     %li
-      = label_tag :ip_address, 'IP Address'
-      %span= @instance.public_ip_addresses
+      = label_tag :public_addresses, 'Public Addresses'
+      %span= @instance.public_addresses
+    %li
+      = label_tag :private_addresses, 'Private Addresses'
+      %span= @instance.private_addresses
     %li
       = label_tag :operating_system, 'Operating system'
       %span= @instance.template.xml.platform
diff --git a/src/db/migrate/20101018174458_rename_address.rb 
b/src/db/migrate/20101018174458_rename_address.rb
new file mode 100644
index 0000000..446b61f
--- /dev/null
+++ b/src/db/migrate/20101018174458_rename_address.rb
@@ -0,0 +1,10 @@
+class RenameAddress < ActiveRecord::Migration
+  def self.up
+    rename_column :instances, :public_address, :public_addresses
+    rename_column :instances, :private_address, :private_addresses
+    remove_column :instances, :public_ip_addresses
+  end
+
+  def self.down
+  end
+end
diff --git a/src/dbomatic/dbomatic b/src/dbomatic/dbomatic
index 20a28f2..562da34 100755
--- a/src/dbomatic/dbomatic
+++ b/src/dbomatic/dbomatic
@@ -90,7 +90,7 @@ end
 
 # Handle the event log's xml
 class CondorEventLog < Nokogiri::XML::SAX::Document
-  attr_accessor :tag, :event_type, :event_cmd, :event_time, :trigger_type, 
:grid_resource, :execute_host, :hold_reason
+  attr_accessor :tag, :event_type, :event_cmd, :event_time, :trigger_type, 
:grid_resource, :execute_host, :hold_reason, :private_addresses, 
:public_addresses
 
   def initialize(logger)
     @logger = logger
@@ -118,6 +118,10 @@ class CondorEventLog < Nokogiri::XML::SAX::Document
         @execute_host = string
       elsif @tag == "HoldReason"
         @hold_reason = string
+      elsif @tag == "DeltacloudPublicNetworkAddresses"
+        @public_addresses = string
+      elsif @tag == "DeltacloudPrivateNetworkAddresses"
+        @private_addresses = string
       end
     end
   end
@@ -209,6 +213,12 @@ class CondorEventLog < Nokogiri::XML::SAX::Document
     inst.save!
   end
 
+  def update_instance_addresses(inst)
+    inst.public_addresses = @public_addresses
+    inst.private_addresses = @private_addresses
+    inst.save!
+  end
+
   # Create a new entry for events which we have all the neccessary data for
   def end_element(element)
     begin
@@ -220,8 +230,9 @@ class CondorEventLog < Nokogiri::XML::SAX::Document
         else
           update_instance_state_event(inst)
           update_instance_cloud_id(inst)
+          update_instance_addresses(inst)
         end
-        @tag = @event_type = @event_cmd = @event_time = @trigger_type = 
@grid_resource = @execute_host = nil
+        @tag = @event_type = @event_cmd = @event_time = @trigger_type = 
@grid_resource = @execute_host = @hold_reason = @public_addresses = 
@private_addresses = nil
       end
     rescue => e
       @logger.error "#{e.backtrace.shift}: #{e.message}"
-- 
1.7.3.1

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to