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.
49
50
51
52
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 49
def initialize(entry:, **args)
super(**args)
@entry = entry
end
|
Instance Attribute Details
#entry ⇒ Object
Returns the value of attribute entry.
48
49
50
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 48
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.
89
90
91
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 89
def changed?(_current)
state.resources[digest_key] != digest
end
|
#create! ⇒ Object
93
94
95
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 93
def create!
register!
end
|
#current ⇒ Object
81
82
83
84
85
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 81
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
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 62
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
73
74
75
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 73
def digest
Digest::SHA256.hexdigest(JSON.generate(desired_params))
end
|
#digest_key ⇒ Object
77
78
79
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 77
def digest_key
:"taskdef_#{suffix}_digest"
end
|
#name ⇒ Object
58
59
60
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 58
def name
config.task_definition_family(suffix)
end
|
#outputs(current) ⇒ Object
111
112
113
114
115
116
117
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 111
def outputs(current)
{
:"taskdef_#{suffix}" => name,
:"taskdef_#{suffix}_arn" => current.task_definition_arn,
digest_key => digest,
}
end
|
#register! ⇒ Object
101
102
103
104
105
106
107
108
109
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 101
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
54
55
56
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 54
def suffix
entry[:suffix]
end
|
#update!(_current) ⇒ Object
97
98
99
|
# File 'lib/putpaws/provision/resources/task_definition.rb', line 97
def update!(_current)
register!
end
|