module Lakitu::Generator

Constants

CLAUSE_TEMPLATE

Public Class Methods

generate() click to toggle source
# File lib/lakitu/generator.rb, line 11
def self.generate
  ([ Lakitu::MANAGED_SSH_CONFIG_TOKEN, Lakitu::FileOperator::local_ssh_config ] + instances.map do |instance|
    instance[:host] = format_for(instance[:provider], instance[:profile]) % instance
    instance[:host].gsub!(/[ \W-]+/, '-')
    key_path = Lakitu::FileOperator.key_path instance[:key]
    instance[:keyfile] = key_path if key_path
    ERB.new(CLAUSE_TEMPLATE).result(OpenStruct.new(instance).instance_eval { binding })
  end).join("\n")
end
instances() click to toggle source
# File lib/lakitu/generator.rb, line 21
def self.instances
  result = Lakitu::Provider.providers.map do |provider_class|
    Lakitu.logger.debug "Getting instances for #{provider_class.name}"
    get_instances(provider_class.new)
  end.flatten
  Lakitu.logger.info "Found #{result.length} instances"
  result
end

Private Class Methods

format_for(provider, profile) click to toggle source
# File lib/lakitu/generator.rb, line 44
def self.format_for provider, profile
  (options[:providers][provider.to_sym][profile.to_sym][:format] rescue nil) || Lakitu::DEFAULT_FORMAT
end
get_instances(provider) click to toggle source
# File lib/lakitu/generator.rb, line 32
def self.get_instances provider
  provider.profiles.map do |profile|
    Lakitu.logger.debug "Profile: #{profile}"
    provider.regions.map do |region|
      Lakitu.logger.debug "  Region: #{region}"
      result = provider.instances(profile, region)
      Lakitu.logger.debug "    Found #{(result.length rescue 0)} instances"
      result
    end
  end.flatten
end
options() click to toggle source
# File lib/lakitu/generator.rb, line 48
def self.options
  Lakitu::Options::options
end