From 4d296eb050c6fa9482e7a745577a7a5ad66c5662 Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Fri, 11 Mar 2016 13:04:55 +0300 Subject: [PATCH] CID-428: change default node name mask --- .../spec/workers/chef_node_name_builder_spec.rb | 4 ++-- .../spec/workers/stack_servers_persister_spec.rb | 8 ++++---- .../workers/stack_bootstrap/chef_node_name_builder.rb | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/devops-service/spec/workers/chef_node_name_builder_spec.rb b/devops-service/spec/workers/chef_node_name_builder_spec.rb index b78cec3..2187de8 100644 --- a/devops-service/spec/workers/chef_node_name_builder_spec.rb +++ b/devops-service/spec/workers/chef_node_name_builder_spec.rb @@ -35,8 +35,8 @@ RSpec.describe ChefNodeNameBuilder do end describe '#build_node_name' do - it 'uses default mask (":project-:instancename-:env")' do - expect(build_node_name).to eq 'proj-master01-dev' + it 'uses default mask (":project-:env-:instanceid")' do + expect(build_node_name).to eq 'proj-dev-i-fac32c7e' end it 'substitutes :project, :env, :instanceid and :instancename' do diff --git a/devops-service/spec/workers/stack_servers_persister_spec.rb b/devops-service/spec/workers/stack_servers_persister_spec.rb index 93a7cb0..8482280 100644 --- a/devops-service/spec/workers/stack_servers_persister_spec.rb +++ b/devops-service/spec/workers/stack_servers_persister_spec.rb @@ -9,7 +9,7 @@ RSpec.describe StackServersPersister, stubbed_connector: true do let(:provider) { instance_double(Provider::Ec2, name: 'ec2') } let(:server_info_hash) do { - 'id' => 'server1', + 'id' => 'i-abcdef', 'name' => 'server_name', 'key_name' => 'key', 'private_ip' => '127.0.0.1', @@ -50,7 +50,7 @@ RSpec.describe StackServersPersister, stubbed_connector: true do it 'takes id, key_name, private_ip and public_ip attrs from info hash' do expect(stubbed_connector).to receive(:server_insert) do |server| - expect(server.id).to eq 'server1' + expect(server.id).to eq 'i-abcdef' expect(server.key).to eq 'key' expect(server.private_ip).to eq '127.0.0.1' expect(server.public_ip).to eq '127.0.0.2' @@ -98,9 +98,9 @@ RSpec.describe StackServersPersister, stubbed_connector: true do persister.persist end - it 'build chef_node_name with default mask ":project-:instancename-:env"' do + it 'build chef_node_name with default mask ":project-:env-:instanceid"' do expect(stubbed_connector).to receive(:server_insert) do |server| - expect(server.chef_node_name).to eq 'name-server1-foo' + expect(server.chef_node_name).to eq 'name-foo-i-abcdef' end persister.persist end diff --git a/devops-service/workers/stack_bootstrap/chef_node_name_builder.rb b/devops-service/workers/stack_bootstrap/chef_node_name_builder.rb index 4b59781..a57e590 100644 --- a/devops-service/workers/stack_bootstrap/chef_node_name_builder.rb +++ b/devops-service/workers/stack_bootstrap/chef_node_name_builder.rb @@ -12,7 +12,10 @@ # but it's convenient to set mask tag directly to a stack (not in template): you set tag once and it propagates to all instances. class ChefNodeNameBuilder - DEFAULT_MASK = ':project-:instancename-:env' + # We need to ensure that node name is uniq by default. We can't use :time to provide uniqueness because + # several servers are persisting at once on stack creating at it's likely that Time.now.to_i will give similar values + # to different servers. So (by default) we should use :instanceid. + DEFAULT_MASK = ':project-:env-:instanceid' # @param attrs [Hash] should contain # +:provider_server_info+