Class: KuberKit::Core::ImageStore
- Defined in:
- lib/kuber_kit/core/image_store.rb
Constant Summary collapse
- NotFoundError =
Class.new(KuberKit::Error)
- AlreadyAddedError =
Class.new(KuberKit::Error)
Instance Method Summary collapse
- #add_definition(image_definition) ⇒ Object
- #define(image_name, image_dir = nil) ⇒ Object
- #get_definition(image_name) ⇒ Object
- #get_image(image_name) ⇒ Object
- #load_definition(file_path) ⇒ Object
- #load_definitions(dir_path) ⇒ Object
- #reset! ⇒ Object
Instance Method Details
#add_definition(image_definition) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/kuber_kit/core/image_store.rb', line 18 def add_definition(image_definition) @@image_definitions ||= {} unless @@image_definitions[image_definition.image_name].nil? raise AlreadyAddedError, "image #{image_definition.image_name} was already added" end @@image_definitions[image_definition.image_name] = image_definition end |
#define(image_name, image_dir = nil) ⇒ Object
12 13 14 15 16 |
# File 'lib/kuber_kit/core/image_store.rb', line 12 def define(image_name, image_dir = nil) definition = image_definition_factory.create(image_name, image_dir) add_definition(definition) definition end |
#get_definition(image_name) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/kuber_kit/core/image_store.rb', line 28 def get_definition(image_name) @@image_definitions ||= {} if @@image_definitions[image_name].nil? raise NotFoundError, "image #{image_name} not found" end @@image_definitions[image_name] end |
#get_image(image_name) ⇒ Object
38 39 40 41 42 |
# File 'lib/kuber_kit/core/image_store.rb', line 38 def get_image(image_name) definition = get_definition(image_name) image_factory.create(definition) end |
#load_definition(file_path) ⇒ Object
53 54 55 |
# File 'lib/kuber_kit/core/image_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/image_store.rb', line 44 def load_definitions(dir_path) files = local_shell.recursive_list_files(dir_path, name: "image.rb").each do |path| load_definition(path) end rescue KuberKit::Shell::AbstractShell::DirNotFoundError logger.warn("Directory with images not found: #{dir_path}") [] end |
#reset! ⇒ Object
57 58 59 |
# File 'lib/kuber_kit/core/image_store.rb', line 57 def reset! @@image_definitions = {} end |