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



61
62
63
# File 'lib/kuber_kit/core/configuration_store.rb', line 61

def all_definitions
  @@configuration_definitions ||= {}
end

#countObject



65
66
67
# File 'lib/kuber_kit/core/configuration_store.rb', line 65

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)


69
70
71
# File 'lib/kuber_kit/core/configuration_store.rb', line 69

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

#get_configuration(configuration_name) ⇒ Object



38
39
40
41
42
# File 'lib/kuber_kit/core/configuration_store.rb', line 38

def get_configuration(configuration_name)
  definition = get_definition(configuration_name)

  configuration_factory.create(definition)
end

#get_definition(configuration_name) ⇒ Object



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

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



53
54
55
# File 'lib/kuber_kit/core/configuration_store.rb', line 53

def load_definition(file_path)
  require(file_path)
end

#load_definitions(dir_path) ⇒ Object



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

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



57
58
59
# File 'lib/kuber_kit/core/configuration_store.rb', line 57

def reset!
  @@configuration_definitions = {}
end