CID-509: add possibility to set remote user in stacks_templates

This commit is contained in:
Anton Chuchkalov 2016-04-19 18:09:41 +03:00
parent 05fa1d323f
commit 8b8439f9b3
4 changed files with 21 additions and 10 deletions

View File

@ -42,6 +42,7 @@ module Devops
fetcher.new_servers_by_priorities.each do |priority, provider_infos|
servers = provider_infos.map {|info| persister.persist(info) }
servers.each { |server| out.puts JSON.pretty_generate(server.to_hash) }
@just_persisted_by_priority[priority] = servers
end
puts_and_flush "New servers have been persisted"

View File

@ -22,7 +22,7 @@ class Devops::Executor::StackExecutor
attr_reader :mask, :incrementers_values
# @param attrs [Hash] should contain
# :provider_server_info
# :provider_info
# :project_id
# :env_id
# :already_used_incrementers_values (hash like {'master' => [1,2,4]})

View File

@ -21,17 +21,17 @@ class Devops::Executor::StackExecutor
def persist(provider_info)
server_attrs = {
'_id' => provider_info['id'],
'created_by' => stack.owner,
'deploy_env' => @deploy_env.identifier,
'key' => provider_info['key_name'] || stack.provider_instance.ssh_key,
'project' => @project.id,
'provider' => @stack.provider,
'provider_account' => @stack.provider_account,
'remote_user' => 'ec2-user',
'private_ip' => provider_info['private_ip'],
'public_ip' => provider_info['public_ip'],
'run_list' => stack.run_list || [],
'stack' => stack.name
'created_by' => @stack.owner,
'provider' => @stack.provider,
'provider_account' => @stack.provider_account,
'run_list' => @stack.run_list || [],
'stack' => @stack.name,
'project' => @project.id,
'deploy_env' => @deploy_env.identifier,
'remote_user' => remote_user(provider_info)
}
apply_name_builder(server_attrs, provider_info)
@ -44,6 +44,11 @@ class Devops::Executor::StackExecutor
private
def remote_user(provider_info)
user = provider_info['tags']['cid:remote-user'] if provider_info['tags']
user || 'ec2-user'
end
def apply_name_builder(server_attrs, provider_info)
name_builder = get_name_builder(provider_info)
server_attrs['chef_node_name'] = name_builder.build_node_name

View File

@ -57,10 +57,15 @@ class Devops::Executor::StackExecutor
)
end
it 'sets remote_user to ec2-user' do
it 'sets remote_user to ec2-user by default' do
expect(persist.remote_user).to eq 'ec2-user'
end
it "sets remote_user to user specified in info['tags']['cid:remote-user']" do
provider_info['tags']['cid:remote-user'] = 'specified_remote_user'
expect(persist.remote_user).to eq 'specified_remote_user'
end
it "takes deploy_env from project's deploy_env identifier" do
expect(persist.deploy_env).to eq 'foo'
end