diff --git a/Changelog.md b/Changelog.md index e897993..81c072f 100644 --- a/Changelog.md +++ b/Changelog.md @@ -9,6 +9,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ### Removed - Removed the `dry_run` option (https://github.com/zendesk/global_uid/pull/64) - Removed `GlobalUid::ServerVariables` module (https://github.com/zendesk/global_uid/pull/66) +- Removed `options` parameter from `generate_uid` & `generate_many_uids` (https://github.com/zendesk/global_uid/pull/68) ## [3.7.1] - 2020-02-06 ### Added diff --git a/lib/global_uid/active_record_extension.rb b/lib/global_uid/active_record_extension.rb index d5857ae..859d2fa 100644 --- a/lib/global_uid/active_record_extension.rb +++ b/lib/global_uid/active_record_extension.rb @@ -27,12 +27,12 @@ def global_uid_disabled @global_uid_disabled end - def generate_uid(options = {}) - GlobalUid::Base.get_uid_for_class(self, options) + def generate_uid + GlobalUid::Base.get_uid_for_class(self) end - def generate_many_uids(count, options = {}) - GlobalUid::Base.get_many_uids_for_class(self, count, options) + def generate_many_uids(count) + GlobalUid::Base.get_many_uids_for_class(self, count) end def disable_global_uid diff --git a/lib/global_uid/base.rb b/lib/global_uid/base.rb index 64177cc..1498094 100644 --- a/lib/global_uid/base.rb +++ b/lib/global_uid/base.rb @@ -44,7 +44,7 @@ def self.create_uid_tables(id_table_name, options={}) end end - def self.drop_uid_tables(id_table_name, options={}) + def self.drop_uid_tables(id_table_name) with_connections do |connection| connection.execute("DROP TABLE IF EXISTS `#{id_table_name}`") end @@ -70,11 +70,12 @@ def self.new_connection(name, connection_timeout) end end - def self.init_server_info(options) + def self.init_server_info id_servers = self.global_uid_servers + increment_by = self.global_uid_options[:increment_by] raise "You haven't configured any id servers" if id_servers.nil? or id_servers.empty? - raise "More servers configured than increment_by: #{id_servers.size} > #{options[:increment_by]} -- this will create duplicate IDs." if id_servers.size > options[:increment_by] + raise "More servers configured than increment_by: #{id_servers.size} > #{increment_by} -- this will create duplicate IDs." if id_servers.size > increment_by id_servers.map do |name, i| info = {} @@ -91,12 +92,11 @@ def self.disconnect! self.servers = nil end - def self.setup_connections!(options) - connection_timeout = options[:connection_timeout] - increment_by = options[:increment_by] + def self.setup_connections! + connection_timeout = self.global_uid_options[:connection_timeout] if self.servers.nil? - self.servers = init_server_info(options) + self.servers = init_server_info # sorting here sets up each process to have affinity to a particular server. self.servers = self.servers.sort_by { |s| s[:rand] } end @@ -109,18 +109,17 @@ def self.setup_connections!(options) connection = new_connection(info[:name], connection_timeout) info[:cx] = connection - info[:retry_at] = Time.now + options[:connection_retry] if connection.nil? + info[:retry_at] = Time.now + self.global_uid_options[:connection_retry] if connection.nil? end end self.servers end - def self.with_connections(options = {}) - options = self.global_uid_options.merge(options) - servers = setup_connections!(options) + def self.with_connections + servers = setup_connections! - if !options[:per_process_affinity] + if !self.global_uid_options[:per_process_affinity] servers = servers.sort_by { rand } #yes, I know it's not true random. end @@ -155,11 +154,11 @@ def self.notify(exception, message) end end - def self.get_connections(options = {}) + def self.get_connections with_connections {} end - def self.get_uid_for_class(klass, options = {}) + def self.get_uid_for_class(klass) with_connections do |connection| Timeout.timeout(self.global_uid_options[:query_timeout], TimeoutException) do id = connection.insert("REPLACE INTO #{klass.global_uid_table} (stub) VALUES ('a')") @@ -169,7 +168,7 @@ def self.get_uid_for_class(klass, options = {}) raise NoServersAvailableException, "All global UID servers are gone!" end - def self.get_many_uids_for_class(klass, count, options = {}) + def self.get_many_uids_for_class(klass, count) return [] unless count > 0 with_connections do |connection| Timeout.timeout(self.global_uid_options[:query_timeout], TimeoutException) do diff --git a/lib/global_uid/migration_extension.rb b/lib/global_uid/migration_extension.rb index ced0f62..09bb0dd 100644 --- a/lib/global_uid/migration_extension.rb +++ b/lib/global_uid/migration_extension.rb @@ -25,7 +25,7 @@ def create_table(name, options = {}, &blk) def drop_table(name, options = {}) if !GlobalUid::Base.global_uid_options[:disabled] && options[:use_global_uid] == true id_table_name = options[:global_uid_table] || GlobalUid::Base.id_table_from_name(name) - GlobalUid::Base.drop_uid_tables(id_table_name,options) + GlobalUid::Base.drop_uid_tables(id_table_name) end super(name, options) end