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
