Class: Putpaws::Provision::Resources::TaskDefinition
- Inherits:
-
Base
- Object
- Base
- Putpaws::Provision::Resources::TaskDefinition
show all
- Defined in:
- lib/putpaws/provision/resources/task_definition.rb
Defined Under Namespace
Classes: TemplateContext
Instance Attribute Summary collapse
Attributes inherited from Base
#clients, #config, #state
Instance Method Summary
collapse
Methods inherited from Base
#ensure!, #kind, #plan
Constructor Details
#initialize(entry:, **args) ⇒ TaskDefinition
Returns a new instance of TaskDefinition.
47
48
49
50
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 47
def initialize(entry:, **args)
super(**args)
@entry = entry
end
|
Instance Attribute Details
#entry ⇒ Object
Returns the value of attribute entry.
46
47
48
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 46
def entry
@entry
end
|
Instance Method Details
#changed?(_current) ⇒ Boolean
AWS-side normalization makes a field-by-field diff noisy, so
compare against the digest of the params we registered last time.
87
88
89
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 87
def changed?(_current)
state.resources[digest_key] != digest
end
|
#create! ⇒ Object
91
92
93
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 91
def create!
register!
end
|
#current ⇒ Object
79
80
81
82
83
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 79
def current
clients.ecs.describe_task_definition(task_definition: name).task_definition
rescue Aws::ECS::Errors::ClientException, Aws::ECS::Errors::ClientError
nil
end
|
#desired_params ⇒ Object
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 60
def desired_params
@desired_params ||= begin
template = File.read(config.preset.template_path(entry[:template]))
rendered = ERB.new(template, trim_mode: '-').result(TemplateContext.new(config).get_binding)
params = Util.deep_underscore_keys(JSON.parse(rendered))
params[:family] = name
params[:tags] = [MANAGED_TAG]
params
end
end
|
#digest ⇒ Object
71
72
73
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 71
def digest
Digest::SHA256.hexdigest(JSON.generate(desired_params))
end
|
#digest_key ⇒ Object
75
76
77
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 75
def digest_key
:"taskdef_#{suffix}_digest"
end
|
#name ⇒ Object
56
57
58
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 56
def name
config.task_definition_family(suffix)
end
|
#outputs(current) ⇒ Object
109
110
111
112
113
114
115
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 109
def outputs(current)
{
:"taskdef_#{suffix}" => name,
:"taskdef_#{suffix}_arn" => current.task_definition_arn,
digest_key => digest,
}
end
|
#register! ⇒ Object
99
100
101
102
103
104
105
106
107
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 99
def register!
res = clients.ecs.register_task_definition(**desired_params)
td = res.task_definition
{
:"taskdef_#{suffix}" => name,
:"taskdef_#{suffix}_arn" => td.task_definition_arn,
digest_key => digest,
}
end
|
#suffix ⇒ Object
52
53
54
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 52
def suffix
entry[:suffix]
end
|
#update!(_current) ⇒ Object
95
96
97
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 95
def update!(_current)
register!
end
|