class Indocker::Configurations::Configuration

Attributes

artifact_servers[R]
build_servers[R]
confirm_deployment[R]
containers[R]
env_files[R]
global_build_args[R]
images[R]
name[R]
networks[R]
registries[R]
repositories[R]
volumes[R]

Public Class Methods

new(name) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 15
def initialize(name)
  @name = name
  @repositories = {}
  @registries = {}
  @env_files = {}
  @build_servers = []
  @images = []
  @volumes = []
  @networks = []
  @containers = []
  @artifact_servers = {}
  @confirm_deployment = false
end

Public Instance Methods

add_build_server(build_server) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 81
def add_build_server(build_server)
  if !@build_servers.include?(build_server)
    @build_servers.push(build_server)
  end
end
add_container(container) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 95
def add_container(container)
  @containers.push(container)
end
add_image(image) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 91
def add_image(image)
  @images.push(image)
end
build_dir() click to toggle source
# File lib/indocker/configurations/configuration.rb, line 111
def build_dir
  "/tmp/#{@name}"
end
container(name) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 41
def container(name)
  @containers.detect {|c| c.name == name}
end
container_enabled?(container) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 53
def container_enabled?(container)
  @enabled_containers.include?(container.name)
end
enabled_containers() click to toggle source
# File lib/indocker/configurations/configuration.rb, line 49
def enabled_containers
  @enabled_containers || (raise ArgumentError.new("enabled container list was not specified in configuration"))
end
get_binding() click to toggle source
# File lib/indocker/configurations/configuration.rb, line 119
def get_binding
  binding
end
hostname(container, number) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 115
def hostname(container, number)
  Indocker::ContainerHelper.hostname(@name, container, number)
end
next_build_server() click to toggle source
# File lib/indocker/configurations/configuration.rb, line 99
def next_build_server
  @current_position ||= 0
  build_server = @build_servers[@current_position]
  @current_position += 1

  if @current_position >= @build_servers.size - 1
    @current_position = 0
  end

  build_server
end
servers() click to toggle source
# File lib/indocker/configurations/configuration.rb, line 29
def servers
  @containers.map(&:servers).flatten.uniq
end
set_artifact_servers(artifact, servers) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 33
def set_artifact_servers(artifact, servers)
  @artifact_servers[artifact] = servers
end
set_confirm_deployment(flag) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 37
def set_confirm_deployment(flag)
  @confirm_deployment = !!flag
end
set_enabled_containers(list) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 45
def set_enabled_containers(list)
  @enabled_containers = list
end
set_env_file(alias_name, env_file) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 73
def set_env_file(alias_name, env_file)
  if @env_files.has_key?(alias_name)
    raise ArgumentError.new("alias name :#{alias_name} is already used by env file: #{@env_files[alias_name].inspect}")
  end

  @env_files[alias_name] = env_file
end
set_global_build_args(hash) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 87
def set_global_build_args(hash)
  @global_build_args = hash
end
set_registry(alias_name, registry) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 65
def set_registry(alias_name, registry)
  if @registries.has_key?(alias_name)
    raise ArgumentError.new("alias name :#{alias_name} is already used by registry: #{@registries[alias_name].inspect}")
  end

  @registries[alias_name] = registry
end
set_repository(alias_name, repository) click to toggle source
# File lib/indocker/configurations/configuration.rb, line 57
def set_repository(alias_name, repository)
  if @repositories.has_key?(alias_name)
    raise ArgumentError.new("alias name :#{alias_name} is already used by repository: #{@repositories[alias_name].inspect}")
  end

  @repositories[alias_name] = repository
end