Class: DockerBuilder::ServerSettings

Inherits:
Object
  • Object
show all
Defined in:
lib/docker_builder/server_settings.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#attributesObject

Returns the value of attribute attributes.



4
5
6
# File 'lib/docker_builder/server_settings.rb', line 4

def attributes
  @attributes
end

Instance Method Details

#[](key) ⇒ Object



214
215
216
# File 'lib/docker_builder/server_settings.rb', line 214

def [](key)
  attributes[key]
end

#add(name, v) ⇒ Object



49
50
51
52
53
# File 'lib/docker_builder/server_settings.rb', line 49

def add(name, v)
  attributes[name] = {} if attributes[name].nil?

  attributes[name].merge!(v)
end

#all_attributesObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/docker_builder/server_settings.rb', line 16

def all_attributes
  res = attributes

  res['base'] = {
      'image_name'=> image_name,
      'container_name'=> container_name,

  }

  # docker
  res['docker']['ports'] = docker_ports
  res['docker']['volumes'] = docker_volumes
  res['docker']['links'] = docker_links

  res
end

#chef_node_nameObject



95
96
97
# File 'lib/docker_builder/server_settings.rb', line 95

def chef_node_name
  "#{attributes['common']['prefix']}#{name}"
end

#container_name(name = nil) ⇒ Object



88
89
90
91
92
93
# File 'lib/docker_builder/server_settings.rb', line 88

def container_name(name=nil)
  name ||= attributes['name']
  s = name

  "#{attributes['common']['prefix']}#{s}"
end

#dir_cookbooksObject



230
231
232
# File 'lib/docker_builder/server_settings.rb', line 230

def dir_cookbooks
  File.expand_path("servers/#{name}/cookbooks", Config.root_path)
end

#dir_dataObject



118
119
120
# File 'lib/docker_builder/server_settings.rb', line 118

def dir_data
  "#{attributes['common']['dir_data']}#{self.name}/"
end

#dir_server_rootObject



234
235
236
# File 'lib/docker_builder/server_settings.rb', line 234

def dir_server_root
  File.expand_path("servers/#{name}", Config.root_path)
end


181
182
183
184
185
186
187
188
189
190
# File 'lib/docker_builder/server_settings.rb', line 181

def docker_links
  a = attributes['docker']['links'] || []

  # fix
  res = a.map do |r|
    ["#{attributes['common']['prefix']}#{r[0]}", r[1]]
  end

  res
end


196
197
198
# File 'lib/docker_builder/server_settings.rb', line 196

def docker_links_array
  docker_links.map{|d| "#{d[0]}:#{d[1]}"}
end


192
193
194
# File 'lib/docker_builder/server_settings.rb', line 192

def docker_links_string
  docker_links.map{|r| "--link #{r[0]}:#{r[1]}"}.join(' ')
end

#docker_portsObject



167
168
169
170
# File 'lib/docker_builder/server_settings.rb', line 167

def docker_ports
  a = attributes['docker']['ports'] || []
  a
end

#docker_ports_arrayObject



176
177
178
# File 'lib/docker_builder/server_settings.rb', line 176

def docker_ports_array
  docker_ports.map{|d| "#{d[0]}:#{d[1]}"}
end

#docker_ports_stringObject



172
173
174
# File 'lib/docker_builder/server_settings.rb', line 172

def docker_ports_string
  docker_ports.map{|r| "-p #{r[0]}:#{r[1]}"}.join(' ')
end

#docker_volumesObject



124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/docker_builder/server_settings.rb', line 124

def docker_volumes
  a = attributes['docker']['volumes'] || []

  # fix paths
  res = a.map do |r|
    path_local = volume_path_local(r[0])

    [path_local, r[1]]
  end

  res
end

#docker_volumes_arrayObject



141
142
143
# File 'lib/docker_builder/server_settings.rb', line 141

def docker_volumes_array
  docker_volumes.map{|d| "#{d[0]}:#{d[1]}"}
end

#docker_volumes_fromObject



147
148
149
150
151
152
153
154
155
156
# File 'lib/docker_builder/server_settings.rb', line 147

def docker_volumes_from
  a = attributes['docker']['volumes_from'] || []

  # fix paths
  res = a.map do |r|
    "#{prefix}#{r}"
  end

  res
end

#docker_volumes_from_arrayObject



162
163
164
# File 'lib/docker_builder/server_settings.rb', line 162

def docker_volumes_from_array
  docker_volumes_from.map{|d| "#{d}"}
end

#docker_volumes_from_stringObject



158
159
160
# File 'lib/docker_builder/server_settings.rb', line 158

def docker_volumes_from_string
  docker_volumes_from.map{|d| "--volumes-from #{d}"}.join(' ')
end

#docker_volumes_stringObject



137
138
139
# File 'lib/docker_builder/server_settings.rb', line 137

def docker_volumes_string
  docker_volumes.map{|r| "-v #{r[0]}:#{r[1]}"}.join(' ')
end

#filename_chef_client_jsonObject



241
242
243
# File 'lib/docker_builder/server_settings.rb', line 241

def filename_chef_client_json
  File.expand_path("clients/#{image_name}.json", dir_server_root)
end

#filename_chef_configObject



220
221
222
223
224
# File 'lib/docker_builder/server_settings.rb', line 220

def filename_chef_config
  #File.join(File.dirname(__FILE__), '..', 'config' ,"config-#{name}.json")

  File.join(Config.root_path, 'temp', "#{name}.json")
end

#filename_chef_node_jsonObject



238
239
240
# File 'lib/docker_builder/server_settings.rb', line 238

def filename_chef_node_json
  File.expand_path("nodes/#{image_name}.json", dir_server_root)
end

#filename_config_jsonObject



226
227
228
# File 'lib/docker_builder/server_settings.rb', line 226

def filename_config_json
  File.join(Config.root_path, 'temp', "#{name}.json")
end

#get_bindingObject



6
7
8
# File 'lib/docker_builder/server_settings.rb', line 6

def get_binding
  return binding()
end

#image_nameObject



69
70
71
72
73
74
75
76
77
78
# File 'lib/docker_builder/server_settings.rb', line 69

def image_name
  s = attributes['name']

  if !need_build?
    bi = attributes['build']['base_image']
    return "#{bi['name']}:#{bi['tag']}"
  end

  "#{attributes['common']['image_prefix']}#{s}"
end

#nameObject



63
64
65
# File 'lib/docker_builder/server_settings.rb', line 63

def name
  attributes['name']
end

#need_build?Boolean

Returns:

  • (Boolean)


80
81
82
83
84
85
86
# File 'lib/docker_builder/server_settings.rb', line 80

def need_build?
  build_type = attributes['build']['build_type']
  return false if build_type=='' || build_type=='none'


  true
end

#nodeObject



35
36
37
38
39
40
41
42
# File 'lib/docker_builder/server_settings.rb', line 35

def node
  res = attributes['attributes'] || {}

  res['name'] = name
  res['container_name'] = container_name

  res
end

#prefixObject



56
57
58
# File 'lib/docker_builder/server_settings.rb', line 56

def prefix
  attributes['common']['prefix']
end

#run_env_variablesObject



202
203
204
205
206
# File 'lib/docker_builder/server_settings.rb', line 202

def run_env_variables
  a = attributes['docker']['run_env'] || []

  a
end

#run_env_variables_stringObject



208
209
210
# File 'lib/docker_builder/server_settings.rb', line 208

def run_env_variables_string
  run_env_variables.map{|r| "-e #{r[0]}=#{r[1]}"}.join(' ')
end

#set(name, v) ⇒ Object



45
46
47
# File 'lib/docker_builder/server_settings.rb', line 45

def set(name, v)
  attributes[name] = v
end

#volume_path_local(v) ⇒ Object



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/docker_builder/server_settings.rb', line 99

def volume_path_local(v)
  res = v.to_s

  if v =~ /^\./
    s = v.gsub /^\.\//, ''

    res = "$PWD/#{self.name}/#{s}"

  elsif v =~ /^\/\//
    res = self.attributes['common']['dir_data']+(v.gsub /^\/\//, '')
  elsif v =~ /^\//
    res = v
  else
    res = self.dir_data+v
  end

  res
end