From bd8689c185d9ed9d25fbc52ec18b167eb66a869a Mon Sep 17 00:00:00 2001 From: Pavel Shpak Date: Sun, 22 Dec 2024 03:28:12 +0200 Subject: [PATCH] Fix bug in role validate_servers. There were typo-bug during `validate_servers!` invocation for role. It wasn't discovered, because it never met condition. Because role_config wasn't correctly extracted for validation. Also remove not used anymore `accessories_on`. Leftover from previous changes. --- lib/kamal/commander.rb | 6 ------ lib/kamal/configuration/role.rb | 12 ++++++------ lib/kamal/configuration/validator/role.rb | 2 +- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/lib/kamal/commander.rb b/lib/kamal/commander.rb index 1557df57..6a461276 100644 --- a/lib/kamal/commander.rb +++ b/lib/kamal/commander.rb @@ -76,11 +76,6 @@ class Kamal::Commander config.accessories&.collect(&:name) || [] end - def accessories_on(host) - config.accessories.select { |accessory| accessory.hosts.include?(host.to_s) }.map(&:name) - end - - def app(role: nil, host: nil) Kamal::Commands::App.new(config, role: role, host: host) end @@ -129,7 +124,6 @@ class Kamal::Commander config.aliases[name] end - def with_verbosity(level) old_level = self.verbosity diff --git a/lib/kamal/configuration/role.rb b/lib/kamal/configuration/role.rb index 708e77fc..c6bd8783 100644 --- a/lib/kamal/configuration/role.rb +++ b/lib/kamal/configuration/role.rb @@ -10,7 +10,7 @@ class Kamal::Configuration::Role def initialize(name, config:) @name, @config = name.inquiry, config validate! \ - specializations, + role_config, example: validation_yml["servers"]["workers"], context: "servers/#{name}", with: Kamal::Configuration::Validator::Role @@ -204,11 +204,11 @@ class Kamal::Configuration::Role end def specializations - if config.raw_config.servers.is_a?(Array) || config.raw_config.servers[name].is_a?(Array) - {} - else - config.raw_config.servers[name] - end + @specializations ||= role_config.is_a?(Array) ? {} : role_config + end + + def role_config + @role_config ||= config.raw_config.servers.is_a?(Array) ? {} : config.raw_config.servers[name] end def custom_labels diff --git a/lib/kamal/configuration/validator/role.rb b/lib/kamal/configuration/validator/role.rb index ce28c039..de7a1969 100644 --- a/lib/kamal/configuration/validator/role.rb +++ b/lib/kamal/configuration/validator/role.rb @@ -3,7 +3,7 @@ class Kamal::Configuration::Validator::Role < Kamal::Configuration::Validator validate_type! config, Array, Hash if config.is_a?(Array) - validate_servers! "servers", config + validate_servers!(config) else super end