class Genesis::Cli
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/genesis/cli.rb, line 65 def initialize(*args) super @aws_access_key = ENV['AWS_ACCESS_KEY'] @aws_secret_key = ENV['AWS_SECRET_KEY'] @aws_key_pair = ENV['AWS_KEY_PAIR'] @prompt = options[:prompt] @terraform_dir = options[:terraform_dir] @vars = options[:vars] validate_environment_variables validate_path validate_terraform_directory end
Public Instance Methods
apply()
click to toggle source
# File lib/genesis/cli.rb, line 19 def apply confirmed = if @prompt message = 'Are you sure you want to apply changes? (y/n)' yes?(message, :red) else true end system apply_command if confirmed end
destroy()
click to toggle source
# File lib/genesis/cli.rb, line 36 def destroy plan_created = system destroy_plan_command exit(1) unless plan_created confirmed = if @prompt yes?('Are you sure you want to destroy infrastructure? (y/n)', :red) else true end system apply_plan_command if confirmed File.delete(plan_file) if File.exist?(plan_file) end
plan()
click to toggle source
# File lib/genesis/cli.rb, line 14 def plan system plan_command end
refresh()
click to toggle source
# File lib/genesis/cli.rb, line 9 def refresh system refresh_command end
show()
click to toggle source
# File lib/genesis/cli.rb, line 31 def show system show_command end
Private Instance Methods
plan_file()
click to toggle source
# File lib/genesis/cli.rb, line 125 def plan_file File.join(@terraform_dir, 'terraform.tfplan') end
state_file()
click to toggle source
# File lib/genesis/cli.rb, line 121 def state_file File.join(@terraform_dir, 'terraform.tfstate') end
validate_environment_variables()
click to toggle source
# File lib/genesis/cli.rb, line 82 def validate_environment_variables # Check for required environment variables required_variables = %w[ AWS_ACCESS_KEY AWS_SECRET_KEY AWS_KEY_PAIR ] required_variables.each do |variable| unless ENV.member? variable $stderr.puts "Missing required environment variable: '#{variable}'" exit(1) end end end
validate_path()
click to toggle source
# File lib/genesis/cli.rb, line 98 def validate_path # Check for required executables on the system path required_executables = %w[terraform] required_executables.each do |name| next unless /#{name}/.match(ENV['PATH']).nil? message = "Missing required executable on system path: '#{name}'" $stderr.puts message exit(1) end end
validate_terraform_directory()
click to toggle source
# File lib/genesis/cli.rb, line 111 def validate_terraform_directory # Check that terraform directory is present path = File.join(@terraform_dir) return if Dir.exist? path $stderr.puts "Unable to find terraform directory: #{path}" exit(1) end