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_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