Module: Rivet::Utils

Defined in:
lib/rivet/utils.rb

Constant Summary collapse

AUTOSCALE_DIR =
"autoscale"

Class Method Summary collapse

Class Method Details

.consume_defaults(autoscale_dir = AUTOSCALE_DIR) ⇒ Object

Gobbles up the defaults file from YML, returns the hash or false if empty



32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/rivet/utils.rb', line 32

def self.consume_defaults(autoscale_dir = AUTOSCALE_DIR)
  defaults_file = File.join(autoscale_dir,"defaults.yml")
  if File.exists?(defaults_file)
    parsed = begin
      Rivet::Log.debug("Consuming defaults from #{defaults_file}")
      YAML.load(File.open(defaults_file))
    rescue ArgumentError => e
      Rivet::Log.fatal("Could not parse YAML from #{defaults_file}: #{e.message}")
    end
    parsed
  else
    false
  end
end

.die(level = 'fatal', message) ⇒ Object



5
6
7
8
# File 'lib/rivet/utils.rb', line 5

def self.die(level = 'fatal',message)
  Rivet::Log.write(level,message)
  exit
end

.ensure_minimum_setupObject



10
11
12
13
14
15
16
17
# File 'lib/rivet/utils.rb', line 10

def self.ensure_minimum_setup
  if Dir.exists?(AUTOSCALE_DIR)
    true
  else
    Rivet::Log.info("Creating #{AUTOSCALE_DIR}")
    Dir.mkdir(AUTOSCALE_DIR)
  end
end

.get_definition(group) ⇒ Object

This returns the merged definition given a group



21
22
23
24
25
26
27
28
# File 'lib/rivet/utils.rb', line 21

def self.get_definition(group)
  defaults = consume_defaults
  group_def = load_definition(group)
  if defaults && group_def
    group_def = defaults.deep_merge(group_def)
  end
group_def ? group_def : false
end

.load_definition(name) ⇒ Object

This loads the given definition from it’s YML file, returns the hash or false if empty



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/rivet/utils.rb', line 50

def self.load_definition(name)
  definition_dir = File.join(AUTOSCALE_DIR,name)
  conf_file      = File.join(definition_dir,"conf.yml")
  if Dir.exists?(definition_dir) && File.exists?(conf_file)
    Rivet::Log.debug("Loading definition for #{name} from #{conf_file}")
    parsed = begin
      YAML.load(File.open(conf_file))
    rescue
      Rivet::Log.fatal("Could not parse YAML from #{conf_file}: #{e.message}")
    end
    parsed ? parsed : { }
  else
    false
  end
end