Sha256: b4d1864ea8e64cb4c7ab2d7d993082aa76900c98207dfb13f80ee718709a75b6

Contents?: true

Size: 1.13 KB

Versions: 10

Compression:

Stored size: 1.13 KB

Contents

class ServersController < MVCLI::Controller
  requires :compute
  requires :command

  def index
    compute.servers.all
  end

  def show
    #What if you have two or more servers with the same name?
    server
  end

  def create
    template = Servers::CreateForm
    argv = MVCLI::Argv.new command.argv
    form = template.new argv.options
    form.validate!
    #Add personalization
    options = {
      name: form.name,
      flavor_id: form.flavor_id,
      image_id: form.image_id,
      private_key_path: "~/.ssh/id_rsa",
      public_key_path: "~/.ssh/id_rsa.pub"
    }
    command.output.puts "--> bootstrapping server #{options[:name]}"
    #Progress bar
    server = compute.servers.create options
    command.output.puts "    done."
    return server
  end

  def destroy
    server.tap do |s|
      s.destroy
    end
  end

  private

  def server
    index.find {|s| s.name == params[:id]} or fail Fog::Errors::NotFound
  end

  def generate_name
    'divine-reef'
  end

  def ssh
    test = server
    ip_address = test.ipv4_address
    exec "ssh root@#{ip_address} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -q"
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rumm-0.0.13 app/controllers/servers_controller.rb
rumm-0.0.12 app/controllers/servers_controller.rb
rumm-0.0.11 app/controllers/servers_controller.rb
rumm-0.0.10 app/controllers/servers_controller.rb
rumm-0.0.9 app/controllers/servers_controller.rb
rumm-0.0.8 app/controllers/servers_controller.rb
rumm-0.0.7 app/controllers/servers_controller.rb
rumm-0.0.6 app/controllers/servers_controller.rb
rumm-0.0.5 app/controllers/servers_controller.rb
rumm-0.0.4 app/controllers/servers_controller.rb