Class: ForemanAnsibleDirector::LifecycleEnvironment
Instance Method Summary
collapse
#flatten_errors, table_name
Instance Method Details
#ancestors ⇒ Object
105
106
107
108
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 105
def ancestors
return [] unless parent
[parent] + parent.ancestors
end
|
#assign_content_unit_version!(content_unit_version) ⇒ Object
TODO: This does not work. Add the content_unit_id to the join table for checking
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 61
def assign_content_unit_version!(content_unit_version)
existing_version = lifecycle_environment_content_unit_versions
.find_by(content_unit_version_id: content_unit_version.id)
replace = Setting[:ad_content_import_override]
if existing_version
if replace
existing_version.destroy!
else
raise ArgumentError, "LifecycleEnvironment already has ContentUnit #{content_unit_version.versionable_id} " \
"(existing version: #{existing_version.id}, attempted: #{content_unit_version.id})"
end
end
lifecycle_environment_content_unit_versions.create!(content_unit_version: content_unit_version)
end
|
#assign_execution_environment!(execution_environment_id) ⇒ Object
49
50
51
52
53
54
55
56
57
58
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 49
def assign_execution_environment!(execution_environment_id)
execution_env = ::ForemanAnsibleDirector::ExecutionEnvironment.find_by(id: execution_environment_id)
unless execution_env
errors.add(:execution_environment_id, 'not found')
return false
end
update(execution_environment_id: execution_env.id)
end
|
#content_hash ⇒ Object
84
85
86
87
88
89
90
91
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 84
def content_hash
if using_snapshot_content?
content_snapshot.content_hash
else
content_string = content_unit_versions.pluck(:versionable_id, :version)
Digest::SHA2.new(256).hexdigest("#{content_string}:#{execution_environment&.id || 'default'}")[0, 8]
end
end
|
#content_unit_versions ⇒ Object
scope :by_path, ->(path_id) { where(lifecycle_environment_path_id: path_id) } scope :ordered, -> { order(:position) } scope :roots, -> { where(parent_id: nil) }
41
42
43
44
45
46
47
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 41
def content_unit_versions
if using_snapshot_content?
snapshot_content_unit_versions
else
direct_content_unit_versions
end
end
|
#leaf? ⇒ Boolean
101
102
103
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 101
def leaf?
child.nil?
end
|
#protected? ⇒ Boolean
93
94
95
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 93
def protected?
protected
end
|
#root? ⇒ Boolean
97
98
99
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 97
def root?
parent_id.nil?
end
|
#using_snapshot_content? ⇒ Boolean
80
81
82
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 80
def using_snapshot_content?
!content_snapshot.nil?
end
|