Class: KuberKit::Core::ConfigurationStore

Inherits:
Object
  • Object
show all
Defined in:
lib/kuber_kit/core/configuration_store.rb

Constant Summary collapse

NotFoundError =
Class.new(KuberKit::NotFoundError)
AlreadyAddedError =
Class.new(KuberKit::Error)

Instance Method Summary collapse

Instance Method Details

#add_definition(configuration_definition) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/kuber_kit/core/configuration_store.rb', line 18

def add_definition(configuration_definition)
  @@configuration_definitions ||= {}

  unless @@configuration_definitions[configuration_definition.configuration_name].nil?
    raise AlreadyAddedError, "image #{configuration_definition.configuration_name} was already added"
  end

  @@configuration_definitions[configuration_definition.configuration_name] = configuration_definition
end

#all_definitionsObject



63
64
65
# File 'lib/kuber_kit/core/configuration_store.rb', line 63

def all_definitions
  @@configuration_definitions ||= {}
end

#countObject



67
68
69
# File 'lib/kuber_kit/core/configuration_store.rb', line 67

def count
  all_definitions.count
end

#define(configuration_name) ⇒ Object



12
13
14
15
16
# File 'lib/kuber_kit/core/configuration_store.rb', line 12

def define(configuration_name)
  definition = configuration_definition_factory.create(configuration_name)
  add_definition(definition)
  definition
end

#exists?(configuration_name) ⇒ Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/kuber_kit/core/configuration_store.rb', line 71

def exists?(configuration_name)
  !all_definitions[configuration_name].nil?
end

#get_configuration(configuration_name) ⇒ Object



40
41
42
43
44
# File 'lib/kuber_kit/core/configuration_store.rb', line 40

def get_configuration(configuration_name)
  definition = get_definition(configuration_name)

  configuration_factory.create(definition)
end

#get_definition(configuration_name) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'lib/kuber_kit/core/configuration_store.rb', line 29

def get_definition(configuration_name)
  @@configuration_definitions ||= {}

  if @@configuration_definitions[configuration_name].nil?
    raise NotFoundError, "configuration #{configuration_name} not found"
  end

  @@configuration_definitions[configuration_name]
end

#load_definition(file_path) ⇒ Object



55
56
57
# File 'lib/kuber_kit/core/configuration_store.rb', line 55

def load_definition(file_path)
  require(file_path)
end

#load_definitions(dir_path) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/kuber_kit/core/configuration_store.rb', line 46

def load_definitions(dir_path)
  files = local_shell.recursive_list_files(dir_path).each do |path|
    load_definition(path)
  end
rescue KuberKit::Shell::AbstractShell::DirNotFoundError
  logger.warn("Directory with configurations not found: #{dir_path}")
  []
end

#reset!Object



59
60
61
# File 'lib/kuber_kit/core/configuration_store.rb', line 59

def reset!
  @@configuration_definitions = {}
end