class DockerApp::ServerSettings
Attributes
common_config[RW]
properties[RW]
Public Instance Methods
[](key)
click to toggle source
# File lib/docker_app/server_settings.rb, line 322 def [](key) properties[key] end
add(name, v)
click to toggle source
# File lib/docker_app/server_settings.rb, line 67 def add(name, v) properties[name] = {} if properties[name].nil? properties[name].merge!(v) end
add_config(a)
click to toggle source
# File lib/docker_app/server_settings.rb, line 74 def add_config(a) # merge build(a['build']) if a['build'] provision(a['provision']) if a['provision'] docker(a['docker']) if a['docker'] attributes(a['attributes']) if a['attributes'] end
all_attributes()
click to toggle source
# File lib/docker_app/server_settings.rb, line 17 def all_attributes res = properties.clone 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
attributes(a)
click to toggle source
# File lib/docker_app/server_settings.rb, line 101 def attributes(a) # merge properties['attributes'] ||= {} a.each do |k,v| properties['attributes'][k] = v end end
attributes=(opts={})
click to toggle source
# File lib/docker_app/server_settings.rb, line 58 def attributes=(opts={}) attributes(opts) end
build(v)
click to toggle source
# File lib/docker_app/server_settings.rb, line 84 def build(v) properties['build'] = v end
build=(opts={})
click to toggle source
DSL
# File lib/docker_app/server_settings.rb, line 48 def build=(opts={}) build(opts) end
chef_node_name()
click to toggle source
# File lib/docker_app/server_settings.rb, line 173 def chef_node_name "#{prefix}#{name}" end
container_name(name=nil)
click to toggle source
# File lib/docker_app/server_settings.rb, line 166 def container_name(name=nil) name ||= properties['name'] s = name "#{container_prefix}#{s}" end
container_prefix()
click to toggle source
# File lib/docker_app/server_settings.rb, line 121 def container_prefix "#{prefix}#{properties_common('container_prefix')}" end
dir_cookbooks()
click to toggle source
# File lib/docker_app/server_settings.rb, line 338 def dir_cookbooks File.expand_path("servers/#{name}/cookbooks", Config.root_path) end
dir_data()
click to toggle source
# File lib/docker_app/server_settings.rb, line 202 def dir_data "#{properties_common('dir_data')}#{self.name}/" end
dir_data_base()
click to toggle source
# File lib/docker_app/server_settings.rb, line 198 def dir_data_base "#{properties_common('dir_data')}" end
dir_server_root()
click to toggle source
# File lib/docker_app/server_settings.rb, line 342 def dir_server_root File.expand_path("servers/#{name}", Config.root_path) end
docker(a)
click to toggle source
# File lib/docker_app/server_settings.rb, line 92 def docker(a) # merge properties['docker'] ||= {} a.each do |k,v| properties['docker'][k] = v end end
docker=(opts={})
click to toggle source
# File lib/docker_app/server_settings.rb, line 51 def docker=(opts={}) docker(opts) end
docker_link_build(r)
click to toggle source
# File lib/docker_app/server_settings.rb, line 288 def docker_link_build(r) # fix "#{container_prefix}#{r[0]}:#{r[1]}" end
docker_links()
click to toggle source
# File lib/docker_app/server_settings.rb, line 274 def docker_links a = properties['docker']['links'] || [] a end
docker_links_array()
click to toggle source
# File lib/docker_app/server_settings.rb, line 284 def docker_links_array docker_links.map{|d| docker_link_build(d)} end
docker_links_string()
click to toggle source
# File lib/docker_app/server_settings.rb, line 280 def docker_links_string docker_links_array.map{|s| "--link #{s}"}.join(' ') end
docker_ports()
click to toggle source
# File lib/docker_app/server_settings.rb, line 260 def docker_ports a = properties['docker']['ports'] || [] a end
docker_ports_array()
click to toggle source
# File lib/docker_app/server_settings.rb, line 269 def docker_ports_array docker_ports.map{|d| "#{d[0]}:#{d[1]}"} end
docker_ports_string()
click to toggle source
# File lib/docker_app/server_settings.rb, line 265 def docker_ports_string docker_ports.map{|r| "-p #{r[0]}:#{r[1]}"}.join(' ') end
docker_volumes()
click to toggle source
# File lib/docker_app/server_settings.rb, line 217 def docker_volumes a = properties['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_array()
click to toggle source
# File lib/docker_app/server_settings.rb, line 234 def docker_volumes_array docker_volumes.map{|d| "#{d[0]}:#{d[1]}"} end
docker_volumes_from()
click to toggle source
# File lib/docker_app/server_settings.rb, line 240 def docker_volumes_from a = properties['docker']['volumes_from'] || [] # fix paths res = a.map do |r| "#{prefix}#{r}" end res end
docker_volumes_from_array()
click to toggle source
# File lib/docker_app/server_settings.rb, line 255 def docker_volumes_from_array docker_volumes_from.map{|d| "#{d}"} end
docker_volumes_from_string()
click to toggle source
# File lib/docker_app/server_settings.rb, line 251 def docker_volumes_from_string docker_volumes_from.map{|d| "--volumes-from #{d}"}.join(' ') end
docker_volumes_string()
click to toggle source
# File lib/docker_app/server_settings.rb, line 230 def docker_volumes_string docker_volumes.map{|r| "-v #{r[0]}:#{r[1]}"}.join(' ') end
filename_chef_client_json()
click to toggle source
# File lib/docker_app/server_settings.rb, line 349 def filename_chef_client_json File.expand_path("clients/#{image_name}.json", dir_server_root) end
filename_chef_config()
click to toggle source
# File lib/docker_app/server_settings.rb, line 328 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_json()
click to toggle source
# File lib/docker_app/server_settings.rb, line 346 def filename_chef_node_json File.expand_path("nodes/#{image_name}.json", dir_server_root) end
filename_config_json()
click to toggle source
# File lib/docker_app/server_settings.rb, line 334 def filename_config_json File.join(Config.root_path, 'temp', "#{name}.json") end
get_binding()
click to toggle source
# File lib/docker_app/server_settings.rb, line 7 def get_binding return binding() end
image_name()
click to toggle source
# File lib/docker_app/server_settings.rb, line 142 def image_name if !need_build? bi = properties['build']['base_image'] return "#{bi['name']}:#{bi['tag']}" end # s = properties['name'] if properties['build']['image_name'] s = "#{properties['build']['image_name']}" end "#{image_prefix}#{s}" end
image_prefix()
click to toggle source
# File lib/docker_app/server_settings.rb, line 125 def image_prefix "#{prefix}#{properties_common('image_prefix')}" end
is_swarm_mode?()
click to toggle source
# File lib/docker_app/server_settings.rb, line 315 def is_swarm_mode? v = properties["docker"]["swarm_mode"] return false if v.nil? return v end
make_path_full(path)
click to toggle source
# File lib/docker_app/server_settings.rb, line 355 def make_path_full(path) File.expand_path("#{path}", dir_server_root) end
name()
click to toggle source
# File lib/docker_app/server_settings.rb, line 136 def name properties['name'] end
need_build?()
click to toggle source
# File lib/docker_app/server_settings.rb, line 158 def need_build? build_type = properties['build']['build_type'] return false if build_type=='' || build_type=='none' true end
node()
click to toggle source
# File lib/docker_app/server_settings.rb, line 36 def node res = properties['attributes'] || {} res['name'] = name res['container_name'] = container_name res end
prefix()
click to toggle source
# File lib/docker_app/server_settings.rb, line 116 def prefix #properties['common']['prefix'] properties_common('prefix') end
properties_common(opt_name)
click to toggle source
# File lib/docker_app/server_settings.rb, line 112 def properties_common(opt_name) common_config.options[opt_name] || common_config.send(opt_name) end
provision(v)
click to toggle source
# File lib/docker_app/server_settings.rb, line 88 def provision(v) properties['provision'] = v end
provision=(opts={})
click to toggle source
# File lib/docker_app/server_settings.rb, line 54 def provision=(opts={}) provision(opts) end
run_env_variables()
click to toggle source
# File lib/docker_app/server_settings.rb, line 295 def run_env_variables a = properties['docker']['run_env'] || [] a end
run_env_variables_string()
click to toggle source
# File lib/docker_app/server_settings.rb, line 301 def run_env_variables_string run_env_variables.map{|r| "-e #{r[0]}=#{r[1]}"}.join(' ') end
run_extra_options_string()
click to toggle source
# File lib/docker_app/server_settings.rb, line 308 def run_extra_options_string s = properties['docker']['run_extra_options'] || '' s end
service_name(name=nil)
click to toggle source
docker swarm services
# File lib/docker_app/server_settings.rb, line 209 def service_name(name=nil) name ||= properties['name'] s = name "#{service_prefix}#{s}" end
service_prefix()
click to toggle source
# File lib/docker_app/server_settings.rb, line 129 def service_prefix "#{prefix}#{properties_common('service_prefix')}" end
set(name, v)
click to toggle source
# File lib/docker_app/server_settings.rb, line 63 def set(name, v) properties[name] = v end
volume_path_local(v)
click to toggle source
# File lib/docker_app/server_settings.rb, line 177 def volume_path_local(v) res = v.to_s if v =~ /^\./ s = v.gsub /^\.\//, '' #res = "$PWD/servers/#{self.name}/#{s}" res = File.expand_path(s, dir_server_root) #res = File.expand_path(s, properties_common('root_path')) elsif v =~ /^\/\// res = dir_data_base+(v.gsub /^\/\//, '') elsif v =~ /^\// res = v else res = self.dir_data+v end res end