fluke/devops-service/workers/stack_bootstrap/chef_node_name_builder.rb

34 lines
1013 B
Ruby
Raw Normal View History

class ChefNodeNameBuilder
2016-02-20 17:39:02 +03:00
DEFAULT_MASK = '$project-$cfname-$env'
def initialize(server_info, project, env)
@server_info, @project, @env = server_info, project, env
2016-02-26 14:27:14 +03:00
@mask = server_info['tags']['cid:node-name-mask'] || DEFAULT_MASK
end
def build_node_name
2016-02-26 14:27:14 +03:00
result = @mask.dup
replace_dollar_variables!(result)
replace_colon_variables!(result)
result.gsub!('_', '-')
result
end
private
def replace_dollar_variables!(result)
result.gsub!('$project', @project.id)
result.gsub!('$env', @env.identifier)
result.gsub!('$instanceid', @server_info['id'])
result.gsub!('$cfname', @server_info['tags']['Name'] || '')
result.gsub!('$time', Time.now.to_i.to_s)
end
def replace_colon_variables!(result)
result.gsub!(':project', @project.id)
result.gsub!(':env', @env.identifier)
result.gsub!(':instanceid', @server_info['id'])
result.gsub!(':cfname', @server_info['tags']['Name'] || '')
result.gsub!(':time', Time.now.to_i.to_s)
end
end