Class: Indocker::Configurations::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/indocker/configurations/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Configuration

Returns a new instance of Configuration.



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/indocker/configurations/configuration.rb', line 17

def initialize(name)
  @name = name
  @repositories = {}
  @registries = {}
  @env_files = {}
  @build_servers = []
  @images = []
  @volumes = []
  @networks = []
  @containers = []
  @artifact_servers = {}
  @confirm_deployment = false
end

Instance Attribute Details

#artifact_serversObject (readonly)

Returns the value of attribute artifact_servers.



14
15
16
# File 'lib/indocker/configurations/configuration.rb', line 14

def artifact_servers
  @artifact_servers
end

#build_serversObject (readonly)

Returns the value of attribute build_servers.



5
6
7
# File 'lib/indocker/configurations/configuration.rb', line 5

def build_servers
  @build_servers
end

#compile_argsObject (readonly)

Returns the value of attribute compile_args.



8
9
10
# File 'lib/indocker/configurations/configuration.rb', line 8

def compile_args
  @compile_args
end

#confirm_deploymentObject (readonly)

Returns the value of attribute confirm_deployment.



15
16
17
# File 'lib/indocker/configurations/configuration.rb', line 15

def confirm_deployment
  @confirm_deployment
end

#containersObject (readonly)

Returns the value of attribute containers.



10
11
12
# File 'lib/indocker/configurations/configuration.rb', line 10

def containers
  @containers
end

#deploy_argsObject (readonly)

Returns the value of attribute deploy_args.



7
8
9
# File 'lib/indocker/configurations/configuration.rb', line 7

def deploy_args
  @deploy_args
end

#env_filesObject (readonly)

Returns the value of attribute env_files.



13
14
15
# File 'lib/indocker/configurations/configuration.rb', line 13

def env_files
  @env_files
end

#global_build_argsObject (readonly)

Returns the value of attribute global_build_args.



6
7
8
# File 'lib/indocker/configurations/configuration.rb', line 6

def global_build_args
  @global_build_args
end

#imagesObject (readonly)

Returns the value of attribute images.



9
10
11
# File 'lib/indocker/configurations/configuration.rb', line 9

def images
  @images
end

#nameObject (readonly)

Returns the value of attribute name.



2
3
4
# File 'lib/indocker/configurations/configuration.rb', line 2

def name
  @name
end

#networksObject (readonly)

Returns the value of attribute networks.



12
13
14
# File 'lib/indocker/configurations/configuration.rb', line 12

def networks
  @networks
end

#registriesObject (readonly)

Returns the value of attribute registries.



4
5
6
# File 'lib/indocker/configurations/configuration.rb', line 4

def registries
  @registries
end

#repositoriesObject (readonly)

Returns the value of attribute repositories.



3
4
5
# File 'lib/indocker/configurations/configuration.rb', line 3

def repositories
  @repositories
end

#volumesObject (readonly)

Returns the value of attribute volumes.



11
12
13
# File 'lib/indocker/configurations/configuration.rb', line 11

def volumes
  @volumes
end

Instance Method Details

#add_build_server(build_server) ⇒ Object



83
84
85
86
87
# File 'lib/indocker/configurations/configuration.rb', line 83

def add_build_server(build_server)
  if !@build_servers.include?(build_server)
    @build_servers.push(build_server)
  end
end

#add_container(container) ⇒ Object



105
106
107
# File 'lib/indocker/configurations/configuration.rb', line 105

def add_container(container)
  @containers.push(container)
end

#add_image(image) ⇒ Object



101
102
103
# File 'lib/indocker/configurations/configuration.rb', line 101

def add_image(image)
  @images.push(image)
end

#build_dirObject



121
122
123
# File 'lib/indocker/configurations/configuration.rb', line 121

def build_dir
  "/tmp/#{@name}"
end

#container(name) ⇒ Object



43
44
45
# File 'lib/indocker/configurations/configuration.rb', line 43

def container(name)
  @containers.detect {|c| c.name == name}
end

#container_enabled?(container) ⇒ Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/indocker/configurations/configuration.rb', line 55

def container_enabled?(container)
  @enabled_containers.include?(container.name)
end

#enabled_containersObject



51
52
53
# File 'lib/indocker/configurations/configuration.rb', line 51

def enabled_containers
  @enabled_containers || (raise ArgumentError.new("enabled container list was not specified in configuration"))
end

#get_bindingObject



129
130
131
# File 'lib/indocker/configurations/configuration.rb', line 129

def get_binding
  binding
end

#hostname(container, number) ⇒ Object



125
126
127
# File 'lib/indocker/configurations/configuration.rb', line 125

def hostname(container, number)
  Indocker::ContainerHelper.hostname(@name, container, number)
end

#next_build_serverObject



109
110
111
112
113
114
115
116
117
118
119
# File 'lib/indocker/configurations/configuration.rb', line 109

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

#serversObject



31
32
33
# File 'lib/indocker/configurations/configuration.rb', line 31

def servers
  @containers.map(&:servers).flatten.uniq
end

#set_artifact_servers(artifact, servers) ⇒ Object



35
36
37
# File 'lib/indocker/configurations/configuration.rb', line 35

def set_artifact_servers(artifact, servers)
  @artifact_servers[artifact] = servers
end

#set_compile_args(hash) ⇒ Object



97
98
99
# File 'lib/indocker/configurations/configuration.rb', line 97

def set_compile_args(hash)
  @compile_args = hash
end

#set_confirm_deployment(flag) ⇒ Object



39
40
41
# File 'lib/indocker/configurations/configuration.rb', line 39

def set_confirm_deployment(flag)
  @confirm_deployment = !!flag
end

#set_deploy_args(hash) ⇒ Object



93
94
95
# File 'lib/indocker/configurations/configuration.rb', line 93

def set_deploy_args(hash)
  @deploy_args = hash
end

#set_enabled_containers(list) ⇒ Object



47
48
49
# File 'lib/indocker/configurations/configuration.rb', line 47

def set_enabled_containers(list)
  @enabled_containers = list
end

#set_env_file(alias_name, env_file) ⇒ Object



75
76
77
78
79
80
81
# File 'lib/indocker/configurations/configuration.rb', line 75

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) ⇒ Object



89
90
91
# File 'lib/indocker/configurations/configuration.rb', line 89

def set_global_build_args(hash)
  @global_build_args = hash
end

#set_registry(alias_name, registry) ⇒ Object



67
68
69
70
71
72
73
# File 'lib/indocker/configurations/configuration.rb', line 67

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) ⇒ Object



59
60
61
62
63
64
65
# File 'lib/indocker/configurations/configuration.rb', line 59

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