class Superhosting::Controller::Mux
Attributes
index[W]
Public Class Methods
new(**kwargs)
click to toggle source
Calls superclass method
Superhosting::Base::new
# File lib/superhosting/controller/mux.rb, line 6 def initialize(**kwargs) super @container_controller = self.get_controller(Container) end
Public Instance Methods
add(name:)
click to toggle source
# File lib/superhosting/controller/mux.rb, line 11 def add(name:) if (resp = self.adding_validation(name: name)) mux_name = name[/(?<=mux-).*/] mapper = MapperInheritance::Mux.new(@config.muxs.f(mux_name)).set_inheritors # docker mapper.erb_options = { mux: mapper } if (resp = @container_controller._collect_docker_options(mapper: mapper, model_or_mux: mux_name)).net_status_ok? docker_options = resp[:data] @container_controller._safe_run_docker(*docker_options, name: name ).net_status_ok! end else resp end end
adding_validation(name:)
click to toggle source
# File lib/superhosting/controller/mux.rb, line 36 def adding_validation(name:) if (resp = @container_controller.base_validation(name: name)).net_status_ok? resp = self.not_running_validation(name: name) end resp end
existing_validation(name:)
click to toggle source
# File lib/superhosting/controller/mux.rb, line 43 def existing_validation(name:) self.index.include?(name) ? {} : { error: :logical_error, code: :mux_does_not_exists, data: { name: name } } end
index()
click to toggle source
# File lib/superhosting/controller/mux.rb, line 55 def index @@index ||= self.reindex end
index_pop(mux_name, container_name)
click to toggle source
# File lib/superhosting/controller/mux.rb, line 75 def index_pop(mux_name, container_name) if self.index.key? mux_name self.index[mux_name].delete(container_name) self.index.delete(mux_name) if self.index[mux_name].empty? end end
index_push(mux_name, container_name)
click to toggle source
# File lib/superhosting/controller/mux.rb, line 82 def index_push(mux_name, container_name) self.index[mux_name] ||= [] self.index[mux_name] << container_name unless self.index[mux_name].include? container_name end
not_running_validation(name:)
click to toggle source
# File lib/superhosting/controller/mux.rb, line 47 def not_running_validation(name:) @container_controller.not_running_validation(name: name).net_status_ok? ? {} : { error: :logical_error, code: :mux_is_running, data: { name: name } } end
reconfigure(name:)
click to toggle source
# File lib/superhosting/controller/mux.rb, line 27 def reconfigure(name:) if (resp = self.existing_validation(name: name)).net_status_ok? self.index[name].each do |container_name| break unless (resp = @container_controller.reconfigure(name: container_name)).net_status_ok? end end resp end
reindex()
click to toggle source
# File lib/superhosting/controller/mux.rb, line 59 def reindex @@index ||= {} @container_controller._list.map do |container_name, data| container_mapper = @container_controller.index[container_name][:mapper] if (mux_mapper = container_mapper.mux).file? mux_name = "mux-#{mux_mapper.value}" if @container_controller.running_validation(name: container_name).net_status_ok? self.index_push(mux_name, container_name) else self.index_pop(mux_name, container_name) end end end @@index end
running_validation(name:)
click to toggle source
# File lib/superhosting/controller/mux.rb, line 51 def running_validation(name:) @container_controller.running_validation(name: name).net_status_ok? ? {} : { error: :logical_error, code: :mux_is_not_running, data: { name: name } } end