Class: Kuroko2::JobDefinition
Defined Under Namespace
Modules: PreventMultiStatus
Constant Summary
collapse
- PREVENT_TOKEN_STATUSES =
{
PreventMultiStatus::NONE => [],
PreventMultiStatus::WORKING_OR_ERROR => [
Kuroko2::Token::WORKING,
Kuroko2::Token::FAILURE,
Kuroko2::Token::CRITICAL
],
PreventMultiStatus::WORKING => [Kuroko2::Token::WORKING],
PreventMultiStatus::ERROR => [Kuroko2::Token::FAILURE, Kuroko2::Token::CRITICAL],
}
Instance Method Summary
collapse
Instance Method Details
#create_instance(script: nil, launched_by:, token: nil) ⇒ Object
91
92
93
94
95
96
97
98
99
|
# File 'app/models/kuroko2/job_definition.rb', line 91
def create_instance(script: nil, launched_by:, token: nil )
message = "Launched by #{launched_by}"
if token.present?
message = "(token #{token.uuid}) #{message}"
end
job_instances.create!(script: script, log_message: message)
end
|
#proceed_multi_instance? ⇒ Boolean
76
77
78
79
|
# File 'app/models/kuroko2/job_definition.rb', line 76
def proceed_multi_instance?
tokens = Kuroko2::Token.where(job_definition_id: self.id)
(tokens.map(&:status) & PREVENT_TOKEN_STATUSES[self.prevent_multi]).empty?
end
|
#text_tags ⇒ Object
81
82
83
|
# File 'app/models/kuroko2/job_definition.rb', line 81
def text_tags
tags.pluck(:name).join(',')
end
|
#text_tags=(text_tags) ⇒ Object
85
86
87
88
89
|
# File 'app/models/kuroko2/job_definition.rb', line 85
def text_tags=(text_tags)
self.tags = text_tags.gsub(/[[:blank:]]+/, '').split(/[,、]/).uniq.map do |name|
Kuroko2::Tag.find_or_create_by(name: name)
end
end
|