Class: Wrapbox::Configuration

Inherits:
Struct
  • Object
show all
Defined in:
lib/wrapbox/configuration.rb

Constant Summary collapse

AVAILABLE_RUNNERS =
%i(docker ecs)

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Configuration

Returns a new instance of Configuration.



79
80
81
# File 'lib/wrapbox/configuration.rb', line 79

def initialize(*args)
  super
end

Instance Attribute Details

#additional_container_definitionsObject

Returns the value of attribute additional_container_definitions

Returns:

  • (Object)

    the current value of additional_container_definitions



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def additional_container_definitions
  @additional_container_definitions
end

#capacity_provider_strategyObject

Returns the value of attribute capacity_provider_strategy

Returns:

  • (Object)

    the current value of capacity_provider_strategy



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def capacity_provider_strategy
  @capacity_provider_strategy
end

#clusterObject

Returns the value of attribute cluster

Returns:

  • (Object)

    the current value of cluster



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def cluster
  @cluster
end

#container_definitionObject

Returns the value of attribute container_definition

Returns:

  • (Object)

    the current value of container_definition



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def container_definition
  @container_definition
end

#container_definitionsObject

Returns the value of attribute container_definitions

Returns:

  • (Object)

    the current value of container_definitions



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def container_definitions
  @container_definitions
end

#cpuObject

Returns the value of attribute cpu

Returns:

  • (Object)

    the current value of cpu



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def cpu
  @cpu
end

#enable_ecs_managed_tagsObject

Returns the value of attribute enable_ecs_managed_tags

Returns:

  • (Object)

    the current value of enable_ecs_managed_tags



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def enable_ecs_managed_tags
  @enable_ecs_managed_tags
end

#enable_execute_commandObject

Returns the value of attribute enable_execute_command

Returns:

  • (Object)

    the current value of enable_execute_command



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def enable_execute_command
  @enable_execute_command
end

#execution_role_arnObject

Returns the value of attribute execution_role_arn

Returns:

  • (Object)

    the current value of execution_role_arn



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def execution_role_arn
  @execution_role_arn
end

#keep_containerObject

Returns the value of attribute keep_container

Returns:

  • (Object)

    the current value of keep_container



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def keep_container
  @keep_container
end

#launch_instancesObject

Returns the value of attribute launch_instances

Returns:

  • (Object)

    the current value of launch_instances



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def launch_instances
  @launch_instances
end

#launch_typeObject

Returns the value of attribute launch_type

Returns:

  • (Object)

    the current value of launch_type



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def launch_type
  @launch_type
end

#log_fetcherObject

Returns the value of attribute log_fetcher

Returns:

  • (Object)

    the current value of log_fetcher



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def log_fetcher
  @log_fetcher
end

#memoryObject

Returns the value of attribute memory

Returns:

  • (Object)

    the current value of memory



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def memory
  @memory
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def name
  @name
end

#network_configurationObject

Returns the value of attribute network_configuration

Returns:

  • (Object)

    the current value of network_configuration



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def network_configuration
  @network_configuration
end

#network_modeObject

Returns the value of attribute network_mode

Returns:

  • (Object)

    the current value of network_mode



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def network_mode
  @network_mode
end

#placement_constraintsObject

Returns the value of attribute placement_constraints

Returns:

  • (Object)

    the current value of placement_constraints



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def placement_constraints
  @placement_constraints
end

#placement_strategyObject

Returns the value of attribute placement_strategy

Returns:

  • (Object)

    the current value of placement_strategy



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def placement_strategy
  @placement_strategy
end

#propagate_tagsObject

Returns the value of attribute propagate_tags

Returns:

  • (Object)

    the current value of propagate_tags



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def propagate_tags
  @propagate_tags
end

#regionObject

Returns the value of attribute region

Returns:

  • (Object)

    the current value of region



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def region
  @region
end

#requires_compatibilitiesObject

Returns the value of attribute requires_compatibilities

Returns:

  • (Object)

    the current value of requires_compatibilities



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def requires_compatibilities
  @requires_compatibilities
end

#retryObject

Returns the value of attribute retry

Returns:

  • (Object)

    the current value of retry



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def retry
  @retry
end

#retry_intervalObject

Returns the value of attribute retry_interval

Returns:

  • (Object)

    the current value of retry_interval



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def retry_interval
  @retry_interval
end

#retry_interval_multiplierObject

Returns the value of attribute retry_interval_multiplier

Returns:

  • (Object)

    the current value of retry_interval_multiplier



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def retry_interval_multiplier
  @retry_interval_multiplier
end

#revisionObject

Returns the value of attribute revision

Returns:

  • (Object)

    the current value of revision



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def revision
  @revision
end

#runnerObject

Returns the value of attribute runner

Returns:

  • (Object)

    the current value of runner



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def runner
  @runner
end

#tagsObject

Returns the value of attribute tags

Returns:

  • (Object)

    the current value of tags



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def tags
  @tags
end

#task_definitionObject

Returns the value of attribute task_definition

Returns:

  • (Object)

    the current value of task_definition



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def task_definition
  @task_definition
end

#task_definition_nameObject

Returns the value of attribute task_definition_name

Returns:

  • (Object)

    the current value of task_definition_name



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def task_definition_name
  @task_definition_name
end

#task_role_arnObject

Returns the value of attribute task_role_arn

Returns:

  • (Object)

    the current value of task_role_arn



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def task_role_arn
  @task_role_arn
end

#volumesObject

Returns the value of attribute volumes

Returns:

  • (Object)

    the current value of volumes



6
7
8
# File 'lib/wrapbox/configuration.rb', line 6

def volumes
  @volumes
end

Class Method Details

.load_config(config) ⇒ Object



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
# File 'lib/wrapbox/configuration.rb', line 40

def self.load_config(config)
  new(
    config["name"],
    config["task_definition_name"],
    config["revision"],
    config["runner"] ? config["runner"].to_sym : :docker,
    config["cluster"],
    config["region"],
    config["retry"] || 0,
    config["retry_interval"] || 1,
    config["retry_interval_multiplier"] || 2,
    config["container_definition"]&.deep_symbolize_keys,
    config["container_definitions"]&.map(&:deep_symbolize_keys) || [],
    config["volumes"]&.map(&:deep_symbolize_keys) || [],
    config["placement_constraints"]&.map(&:deep_symbolize_keys) || [],
    config["placement_strategy"]&.map(&:deep_symbolize_keys) || [],
    config["capacity_provider_strategy"]&.map(&:deep_symbolize_keys) || [],
    config["launch_type"],
    config["requires_compatibilities"] || ["EC2"],
    config["task_definition"]&.deep_symbolize_keys,
    config["additional_container_definitions"]&.map(&:deep_symbolize_keys) || [],
    config["network_mode"],
    config["network_configuration"]&.deep_symbolize_keys,
    config["cpu"]&.to_s,
    config["memory"]&.to_s,
    config["task_role_arn"],
    config["execution_role_arn"],
    config["keep_container"],
    config["log_fetcher"]&.deep_symbolize_keys,
    config["tags"],
    config["enable_ecs_managed_tags"],
    config["propagate_tags"],
    config["launch_instances"]&.deep_symbolize_keys,
    config["enable_execute_command"]
  )
end

Instance Method Details

#run(class_name, method_name, args, runner: nil, **options) ⇒ Object



90
91
92
93
94
# File 'lib/wrapbox/configuration.rb', line 90

def run(class_name, method_name, args, runner: nil, **options)
  klass = runner_class(runner)
  overridable_options, parameters = klass.split_overridable_options_and_parameters(options)
  klass.new(to_h.merge(overridable_options)).run(class_name, method_name, args, **parameters)
end

#run_cmd(*cmd, runner: nil, **options) ⇒ Object



96
97
98
99
100
# File 'lib/wrapbox/configuration.rb', line 96

def run_cmd(*cmd, runner: nil, **options)
  klass = runner_class(runner)
  overridable_options, parameters = klass.split_overridable_options_and_parameters(options)
  klass.new(to_h.merge(overridable_options)).run_cmd(*cmd, **parameters)
end

#runner_class(overrided_runner = nil) ⇒ Object



83
84
85
86
87
88
# File 'lib/wrapbox/configuration.rb', line 83

def runner_class(overrided_runner = nil)
  r = overrided_runner || runner
  raise "#{r} is unsupported runner" unless AVAILABLE_RUNNERS.include?(r.to_sym)
  require "wrapbox/runner/#{r}"
  Wrapbox::Runner.const_get(r.to_s.camelcase)
end