Class: DockerBuilder::ServerSettings
- Inherits:
-
Object
- Object
- DockerBuilder::ServerSettings
- Defined in:
- lib/docker_builder/server_settings.rb
Instance Attribute Summary collapse
-
#attributes ⇒ Object
Returns the value of attribute attributes.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #add(name, v) ⇒ Object
- #all_attributes ⇒ Object
- #chef_node_name ⇒ Object
- #container_name(name = nil) ⇒ Object
- #dir_cookbooks ⇒ Object
- #dir_data ⇒ Object
- #dir_server_root ⇒ Object
- #docker_links ⇒ Object
- #docker_links_array ⇒ Object
- #docker_links_string ⇒ Object
- #docker_ports ⇒ Object
- #docker_ports_array ⇒ Object
- #docker_ports_string ⇒ Object
- #docker_volumes ⇒ Object
- #docker_volumes_array ⇒ Object
- #docker_volumes_from ⇒ Object
- #docker_volumes_from_array ⇒ Object
- #docker_volumes_from_string ⇒ Object
- #docker_volumes_string ⇒ Object
- #filename_chef_client_json ⇒ Object
- #filename_chef_config ⇒ Object
- #filename_chef_node_json ⇒ Object
- #filename_config_json ⇒ Object
- #get_binding ⇒ Object
- #image_name ⇒ Object
- #name ⇒ Object
- #need_build? ⇒ Boolean
- #node ⇒ Object
- #prefix ⇒ Object
- #run_env_variables ⇒ Object
- #run_env_variables_string ⇒ Object
- #set(name, v) ⇒ Object
- #volume_path_local(v) ⇒ Object
Instance Attribute Details
#attributes ⇒ Object
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_attributes ⇒ Object
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_name ⇒ Object
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_cookbooks ⇒ Object
230 231 232 |
# File 'lib/docker_builder/server_settings.rb', line 230 def dir_cookbooks File.("servers/#{name}/cookbooks", Config.root_path) end |
#dir_data ⇒ Object
118 119 120 |
# File 'lib/docker_builder/server_settings.rb', line 118 def dir_data "#{attributes['common']['dir_data']}#{self.name}/" end |
#dir_server_root ⇒ Object
234 235 236 |
# File 'lib/docker_builder/server_settings.rb', line 234 def dir_server_root File.("servers/#{name}", Config.root_path) end |
#docker_links ⇒ Object
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 |
#docker_links_array ⇒ Object
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 |
#docker_links_string ⇒ Object
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_ports ⇒ Object
167 168 169 170 |
# File 'lib/docker_builder/server_settings.rb', line 167 def docker_ports a = attributes['docker']['ports'] || [] a end |
#docker_ports_array ⇒ Object
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_string ⇒ Object
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_volumes ⇒ Object
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_array ⇒ Object
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_from ⇒ Object
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_array ⇒ Object
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_string ⇒ Object
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_string ⇒ Object
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_json ⇒ Object
241 242 243 |
# File 'lib/docker_builder/server_settings.rb', line 241 def filename_chef_client_json File.("clients/#{image_name}.json", dir_server_root) end |
#filename_chef_config ⇒ Object
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_json ⇒ Object
238 239 240 |
# File 'lib/docker_builder/server_settings.rb', line 238 def filename_chef_node_json File.("nodes/#{image_name}.json", dir_server_root) end |
#filename_config_json ⇒ Object
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_binding ⇒ Object
6 7 8 |
# File 'lib/docker_builder/server_settings.rb', line 6 def get_binding return binding() end |
#image_name ⇒ Object
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 |
#name ⇒ Object
63 64 65 |
# File 'lib/docker_builder/server_settings.rb', line 63 def name attributes['name'] end |
#need_build? ⇒ 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 |
#node ⇒ Object
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 |
#prefix ⇒ Object
56 57 58 |
# File 'lib/docker_builder/server_settings.rb', line 56 def prefix attributes['common']['prefix'] end |
#run_env_variables ⇒ Object
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_string ⇒ Object
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 |