Sha256: ce9bc00df6da3c05224d2cf44f3fbc88663b5c14477d741051203b6587475ee4

Contents?: true

Size: 1.25 KB

Versions: 16

Compression:

Stored size: 1.25 KB

Contents

require 'mccloud/mccloudfile'
require 'mccloud/keypair'

module Mccloud

  # This takes care of initializing a new Mccloud project
  class Generator

    attr_accessor :env

    def initialize(env)
      @env=env
      @generators=[:aws,:kvm,:host]
    end

    def generate(options={})
      defaults={ :provider => :aws, :force => false}
      options=defaults.merge(options)
      provider=options[:provider].to_sym
      raise ::Mccloud::Error, "Unsupported provider #{provider}" unless @generators.include?(provider)
      generate_mccloudfile(options)
      generate_mccloud_sshkey(options)
    end

    def generate_mccloudfile(options)
      begin
        f=Mccloud::Mccloudfile.new(File.join(env.root_path,"Mccloudfile"))
        if f.exists?
          env.ui.error "Mccloudfile already exists"
        else
          env.ui.info "Creating a new Mccloudfile"
          f.generate(options)
        end
      rescue Error => ex
        raise ::Mccloud::Error, "Error creating Mccloudfile.\n#{ex}"
      end
    end

    def generate_mccloud_sshkey(options)
      k=Mccloud::Keypair.new("mccloud",env)
      if k.exists?
          env.ui.info "Re-using existing mccloud RSA key in #{k.public_key_path}"
      else
        k.generate(options)
      end
    end

  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

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