Class: ForemanAnsibleDirector::LifecycleEnvironment
Instance Method Summary
collapse
#flatten_errors, table_name
#log_creation, #log_destroy, #log_update, #loggable?
#ctx
Instance Method Details
#ancestors ⇒ Object
113
114
115
116
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 113
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
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 75
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)
if existing_version
raise ArgumentError, "LifecycleEnvironment already has ContentUnit #{content_unit_version.versionable_id} " \
"(existing version: #{existing_version.id}, attempted: #{content_unit_version.id})"
end
lifecycle_environment_content_unit_versions.create!(content_unit_version: content_unit_version)
end
|
#assign_execution_environment!(execution_environment_id) ⇒ Object
63
64
65
66
67
68
69
70
71
72
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 63
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
92
93
94
95
96
97
98
99
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 92
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) }
43
44
45
46
47
48
49
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 43
def content_unit_versions
if using_snapshot_content?
snapshot_content_unit_versions
else
direct_content_unit_versions
end
end
|
#cs_content_unit_versions ⇒ Object
51
52
53
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 51
def cs_content_unit_versions
content_unit_versions
end
|
#cs_execution_environment ⇒ Object
59
60
61
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 59
def cs_execution_environment
execution_environment
end
|
#cs_name ⇒ Object
55
56
57
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 55
def cs_name
"#{lifecycle_environment_path.name} > #{name}"
end
|
#leaf? ⇒ Boolean
109
110
111
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 109
def leaf?
child.nil?
end
|
#protected? ⇒ Boolean
101
102
103
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 101
def protected?
protected
end
|
#root? ⇒ Boolean
105
106
107
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 105
def root?
parent_id.nil?
end
|
#using_snapshot_content? ⇒ Boolean
88
89
90
|
# File 'app/models/foreman_ansible_director/lifecycle_environment.rb', line 88
def using_snapshot_content?
!content_snapshot.nil?
end
|