Class: ForemanThemeSatellite::Lifecycle
- Inherits:
-
Object
- Object
- ForemanThemeSatellite::Lifecycle
- Defined in:
- app/services/foreman_theme_satellite/lifecycle.rb
Class Method Summary collapse
-
.lifecycle_data(version) ⇒ Object
rubocop:disable Metrics/AbcSize.
Class Method Details
.lifecycle_data(version) ⇒ Object
rubocop:disable Metrics/AbcSize
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/services/foreman_theme_satellite/lifecycle.rb', line 5 def lifecycle_data(version) = ::ForemanThemeSatellite::LIFECYCLE_METADATA_PATH parsed = Foreman::Version.new(version) lifecycle_data = { current_version: version, short_version: "#{parsed.major}.#{parsed.minor}" } return lifecycle_data unless File.exist?() yaml = YAML.load_file() raise "Unexpected lifecycle metadata file version '#{yaml['version']}'" unless yaml['version'] == '1' eol = yaml['releases'].fetch(lifecycle_data[:short_version], {})['end_of_life'] lifecycle_data[:end_of_life] = Time.find_zone('UTC').parse(eol) if eol lifecycle_data[:status] = if lifecycle_data[:end_of_life].nil? nil elsif lifecycle_data[:end_of_life] < Time.zone.now 'danger' elsif lifecycle_data[:end_of_life] < 6.months.after 'warning' end lifecycle_data end |