# File lib/cloudmasterd.rb, line 158
    def create
      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