Module: Legion::Transport::TenantTopology
- Extended by:
- Logging::Helper
- Defined in:
- lib/legion/transport/tenant_topology.rb
Constant Summary collapse
- DEFAULT_SHARED_EXCHANGES =
%w[legion.control legion.health legion.audit].freeze
- DEFAULT_PREFIX_FORMAT =
't.%<tenant_id>s.%<name>s'
Class Method Summary collapse
- .current_tenant_id ⇒ Object
- .enabled? ⇒ Boolean
- .exchange_name(base_name, tenant_id: nil) ⇒ Object
- .queue_name(base_name, tenant_id: nil) ⇒ Object
- .shared?(name) ⇒ Boolean
Class Method Details
.current_tenant_id ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/legion/transport/tenant_topology.rb', line 42 def self.current_tenant_id return nil unless defined?(Legion::TenantContext) Legion::TenantContext.current_tenant_id rescue StandardError => e handle_exception(e, level: :warn, handled: true, operation: :tenant_topology_current_tenant_id) nil end |
.enabled? ⇒ Boolean
37 38 39 40 |
# File 'lib/legion/transport/tenant_topology.rb', line 37 def self.enabled? settings = transport_settings settings.is_a?(Hash) && settings.dig(:tenant_topology, :enabled) == true end |
.exchange_name(base_name, tenant_id: nil) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/legion/transport/tenant_topology.rb', line 13 def self.exchange_name(base_name, tenant_id: nil) return base_name unless enabled? tid = tenant_id || current_tenant_id return base_name if tid.nil? || tid == 'default' || shared?(base_name) format(prefix_format, tenant_id: tid, name: base_name) end |
.queue_name(base_name, tenant_id: nil) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/legion/transport/tenant_topology.rb', line 22 def self.queue_name(base_name, tenant_id: nil) return base_name unless enabled? tid = tenant_id || current_tenant_id return base_name if tid.nil? || tid == 'default' format(prefix_format, tenant_id: tid, name: base_name) end |
.shared?(name) ⇒ Boolean
31 32 33 34 35 |
# File 'lib/legion/transport/tenant_topology.rb', line 31 def self.shared?(name) configured_shared_exchanges.any? do |entry| name == entry || name.start_with?("#{entry}.") end end |