Sha256: 93cb0cb2c2a34d7fe87f23c7ab07db1a06e413d3e731f348b5735b87b0997e1c

Contents?: true

Size: 1.48 KB

Versions: 16

Compression:

Stored size: 1.48 KB

Contents

require 'mccloud/util/sshkey'

module Mccloud
  class Keypair
    attr_accessor :public_key_path
    attr_accessor :private_key_path
    attr_accessor :name
    attr_accessor :env

    def initialize(name,env)
      @name=name
      @env=env
      @private_key_path=File.join(env.ssh_key_path,"#{name}_rsa")
      @public_key_path=File.join(env.ssh_key_path,"#{name}_rsa.pub")
      return self
    end

    def exists?
      return false unless File.exists?(@public_key_path)
      return false unless File.exists?(@private_key_path)
      return true
    end

    def generate(options={:force => false})
      force=options[:force]
      if exists? && force==false
        env.ui.error "Keypair: #{@name} already exists"
        env.ui.error "- #{@public_key_path}"
        env.ui.error "- #{@private_key_path}"
        raise ::Mccloud::Error, "Keypair #{@name} already exists"
      else
        env.ui.info "Generating Keypair: #{@name}"
        env.ui.info "- #{@public_key_path}"
        env.ui.info "- #{@private_key_path}"
        env.ui.info ""
        env.ui.warn "Make sure you make a backup!!"
        rsa_key=::Mccloud::Util::SSHKey.generate({ :comment => "Key generated by mccloud #{@name}"})
        begin
          File.open(@public_key_path,'w'){|f| f.write(rsa_key.ssh_public_key)}
          File.open(@private_key_path,'w'){|f| f.write(rsa_key.rsa_private_key)}
        rescue Exception => ex
          env.ui.error "Error generating keypair : #{ex}"
        end
      end
    end

  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
mccloud-0.1.1 lib/mccloud/keypair.rb
mccloud-0.0.28 lib/mccloud/keypair.rb
mccloud-0.0.27 lib/mccloud/keypair.rb
mccloud-0.0.26 lib/mccloud/keypair.rb
mccloud-0.0.25 lib/mccloud/keypair.rb
mccloud-0.0.24 lib/mccloud/keypair.rb
mccloud-0.0.23 lib/mccloud/keypair.rb
mccloud-0.0.22 lib/mccloud/keypair.rb
mccloud-0.0.21 lib/mccloud/keypair.rb
mccloud-0.0.20 lib/mccloud/keypair.rb
mccloud-0.0.19 lib/mccloud/keypair.rb
mccloud-0.0.18 lib/mccloud/keypair.rb
mccloud-0.0.17 lib/mccloud/keypair.rb
mccloud-0.0.16 lib/mccloud/keypair.rb
mccloud-0.0.15 lib/mccloud/keypair.rb
mccloud-0.0.14 lib/mccloud/keypair.rb