CID-509: add possibility to set remote user in stacks_templates
This commit is contained in:
parent
05fa1d323f
commit
8b8439f9b3
@ -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"
|
||||
|
||||
@ -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]})
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user