diff options
author | Matt Hicks <mhicks@localhost.localdomain> | 2008-07-16 21:43:57 -0400 |
---|---|---|
committer | Matt Hicks <mhicks@localhost.localdomain> | 2008-07-16 21:43:57 -0400 |
commit | 1255f218b548b7f7b30ad30a5aa7151d04268abc (patch) | |
tree | f3b04e9f6334198ea6f75eb663e931ecc4b09cf7 /cloudmasterd/lib/cloudmasterd.rb | |
parent | 93c27104cd19d165c981bbedc7980b09b55109b2 (diff) | |
download | tools-1255f218b548b7f7b30ad30a5aa7151d04268abc.tar.gz tools-1255f218b548b7f7b30ad30a5aa7151d04268abc.tar.xz tools-1255f218b548b7f7b30ad30a5aa7151d04268abc.zip |
More updates to the cloudmaster and genome-bootstrap to record ip address
Diffstat (limited to 'cloudmasterd/lib/cloudmasterd.rb')
-rw-r--r-- | cloudmasterd/lib/cloudmasterd.rb | 63 |
1 files changed, 34 insertions, 29 deletions
diff --git a/cloudmasterd/lib/cloudmasterd.rb b/cloudmasterd/lib/cloudmasterd.rb index 91c4450..8d614af 100644 --- a/cloudmasterd/lib/cloudmasterd.rb +++ b/cloudmasterd/lib/cloudmasterd.rb @@ -108,9 +108,9 @@ module Cloudmasterd::Models t.column :email, :string, :null => false, :limit => 255 t.column :cloud, :string, :null => false, :limit => 255 t.column :state, :string, :null => false, :limit => 255 - t.column :repo, :string, :null => false, :limit => 255 - t.column :hostname, :string, :null => false, :limit => 255 - t.column :created_date, :datetime, :null => true + t.column :repo, :string, :limit => 255 + t.column :hostname, :string, :limit => 255 + t.column :created_date, :datetime end end def self.down @@ -155,36 +155,34 @@ module Cloudmasterd::Controllers # POST /koan def create - system_name = input.system_name - repo = input.repo - email = input.email - - cobbler_profile = _get_cobbler_profile(system_name, repo) - cobbler_distro = _get_cobbler_distro(cobbler_profile["distro"], repo) - - # Synchronize access before making the func calls - Syncer::lock do - @host = _get_best_host(cobbler_profile["virt_ram"], cobbler_distro["arch"]) - - begin - _koan(@host, system_name, repo) - - @machine = Machine.create :name => system_name, :repo => repo, :email => email, :cloud => @host, :state => "Installing", :created_date => DateTime.now() - render :_koan - rescue Exception => e - @exception = e - render :_error + if input.machine_id + Machine.find(input.machine_id).update_attribute(:hostname, input.hostname) + else + system_name = input.system_name + repo = input.repo + email = input.email + + cobbler_profile = _get_cobbler_profile(system_name, repo) + cobbler_distro = _get_cobbler_distro(cobbler_profile["distro"], repo) + + # Synchronize access before making the func calls + Syncer::lock do + @host = _get_best_host(cobbler_profile["virt_ram"], cobbler_distro["arch"]) + + begin + _koan(@host, system_name, repo) + + @machine = Machine.create :name => system_name, :repo => repo, :email => email, :cloud => @host, :state => "Installing", :created_date => DateTime.now() + render :_koan + rescue Exception => e + @exception = e + render :_error + end end end end - def update - Machine.find(input.id).update_attribute(:hostname, input.hostname) - end - def destroy(name) - puts "Destroying image #{name}" - Syncer::lock do Machine.find(:all, :conditions => "name = '#{name}'").each do |machine| # If the machine is missing, don't bother remotely trying to cleanup @@ -289,8 +287,15 @@ module Cloudmasterd::Views th '' end @machines[email].each do |machine| + name = machine.hostname ? "#{machine.name} (#{machine.hostname})" : machine.name tr do - td machine.name + td do + if machine.repo + a name, :href=>"http://#{machine.repo}/genome/nodes/#{machine.name}.html" + else + a name + end + end td machine.cloud td machine.state unless machine.created_date == nil then |