class Mist::Config

Attributes

default_distro[R]

Server config attributes

default_release[R]

Server config attributes

instance_name[R]
machine_type[R]
network[R]
servers[R]

Client config attributes

ssh_private_key[R]
ssh_public_key[R]
startup_script_path[R]
subnet[R]
use_public_ip[R]
username[R]
zone[R]

Public Class Methods

new(path) click to toggle source
# File lib/mist/config.rb, line 27
def initialize(path)
  config = YAML.load(File.read(path))

  server_config = config['server'] || nil
  client_config = config['client'] || nil

  if server_config
    @default_distro = server_config['default_distro'] || 'ubuntu'
    @default_release = server_config['default_release'] || 'trusty'
    @username = server_config['username'] || 'mist'
    @ssh_public_key = server_config['ssh_public_key'] || File.join(%w(/ etc mist id_rsa.pub))
    @ssh_private_key = server_config['ssh_private_key'] || File.join(%w(/ etc mist id_rsa))
    @network = server_config['network'] || 'default'
    @subnet = server_config['subnet'] || nil
    @zone = server_config['zone'] || 'us-central1-a'
    @machine_type = server_config['machine_type'] || 'f1-micro'
    @instance_name = server_config['instance_name'] || 'mist'
    @startup_script_path = server_config['startup_scripts'] ||
                           File.join(%w(/ etc mist startup-scripts))
    @use_public_ip = server_config['use_public_ip'] || true
  end

  if client_config
    @servers = client_config['servers']
    @ssh_private_key = client_config['ssh_private_key'] || File.join(%w(/ etc mist id_rsa))
  end
rescue StandardError => ex
  Mist.logger.error "Failed to load configuration file #{path}: #{ex}"
  abort 'could not load configuration file'
end