diff --git a/devops-service/workers/stack_bootstrap/stack_servers_persister.rb b/devops-service/workers/stack_bootstrap/stack_servers_persister.rb index 30ada1f..d07bd7d 100644 --- a/devops-service/workers/stack_bootstrap/stack_servers_persister.rb +++ b/devops-service/workers/stack_bootstrap/stack_servers_persister.rb @@ -14,16 +14,17 @@ class StackServersPersister # returns: { priority_as_integer => [Servers] } def persist - puts_and_flush 'Start syncing stack servers with CID' - + puts_and_flush 'Start saving stack servers into CID database.' stack_servers_with_priority = {} - stack_servers_info.each do |priority, info_array| - stack_servers_with_priority[priority] = info_array.map do |info_hash| - out.puts "Instance '#{info_hash["id"]}' has been launched with stack." - persist_stack_server(info_hash) - end + + @provider.stack_servers(stack).each do |provider_info| + server = persist_stack_server(provider_info) + priority = provider_info['tags']['cid:priority'].to_i + stack_servers_with_priority[priority] ||= [] + stack_servers_with_priority[priority] << server end - puts_and_flush "Stack servers have been synced with CID" + + puts_and_flush "Stack servers have been saved." stack_servers_with_priority.each do |priority, servers| out.puts "Servers with priority '#{priority}': #{servers.map(&:id).join(", ")}" end @@ -33,15 +34,6 @@ class StackServersPersister private - # returns: {priority_as_integer => array_of_sersvers_info} - def stack_servers_info - stack_servers = @provider.stack_servers(stack) - stack_servers.each do |info| - info['tags']['cid:priority'] = info['tags']['cid:priority'].to_i - end - stack_servers.group_by{|info| info['tags']['cid:priority']} - end - # takes a hash, returns Server model def persist_stack_server(server_info) server_attrs = {