Class: SwarmClusterCliOpe::SyncConfigs::EnvConfigs

Inherits:
Object
  • Object
show all
Defined in:
lib/swarm_cluster_cli_ope/sync_configs/env_configs.rb

Overview

Classe per la gestione dell’ambiente differente fra local e remote sono presenti le variabili di classe per definire una minima DSL per poter definire le variabili disponibili e i default da utilizzare

Direct Known Subclasses

BaseDatabase::EnvConfigs

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sync_configs, configs, container) ⇒ EnvConfigs



11
12
13
14
15
# File 'lib/swarm_cluster_cli_ope/sync_configs/env_configs.rb', line 11

def initialize(sync_configs, configs, container)
  @configs = configs
  @sync_configs = sync_configs
  @lambda_container = container
end

Class Method Details

.define_cfgs(name, default_env: nil, configuration_name:, default_value: nil, from_proc: nil) ⇒ Object

Costruisce i metodi che restituiscono i valori delle configurazioni



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/swarm_cluster_cli_ope/sync_configs/env_configs.rb', line 40

def self.define_cfgs(name, default_env: nil, configuration_name:, default_value: nil, from_proc: nil)
  configuration_name ||= name

  define_method(name) do
    return self.instance_variable_get("@#{name}") if self.instance_variable_defined?("@#{name}")

    #valore restituito direttamente dalla configurazione
    if @configs.key?(configuration_name)
      value = @configs["#{configuration_name}".to_sym]
    end
    # se non abbiamo nulla dalle configurazioni utilizziamo le variabili d'ambiente
    if value.nil? and default_env

      #cerchiamo nella lista delle variabili ambiente possibili, la prima che ha un valore la tengo per buona
      env_vars = []
      env_vars << @configs["#{configuration_name}_env".to_sym]
      env_vars << default_env
      env_vars.flatten!
      env_vars.compact!

      env_vars.each do |env_var|
        value = find_env_file_variable(env_var)
        break unless value.nil?
      end

    end
    # se non abbiamo ancora nulla e abbiamo una proc proseguiamo
    if value.nil? and from_proc
      value = from_proc.call(container)
    end

    value = value || default_value

    self.instance_variable_set("@#{name}", value)
  end

end

Instance Method Details

#containerSwarmClusterCliOpe::Commands::Container, SwarmClusterCliOpe::Kubernetes::Pod

Metodo che richiama la lambda della generazione del container al momento che ne è proprio necessario



21
22
23
# File 'lib/swarm_cluster_cli_ope/sync_configs/env_configs.rb', line 21

def container
  @container ||= @lambda_container.call
end

#service_nameString



26
27
28
# File 'lib/swarm_cluster_cli_ope/sync_configs/env_configs.rb', line 26

def service_name
  @configs[:service] || @sync_configs.service
end