Class: Katello::FlatpakRemoteRepository

Inherits:
Model
  • Object
show all
Includes:
ForemanTasks::Concerns::ActionSubject, Ext::LabelFromName
Defined in:
app/models/katello/flatpak_remote_repository.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Ext::LabelFromName

included, #label_not_changed, #setup_label_from_name

Methods inherited from Model

#destroy!

Class Method Details

.readableObject



20
21
22
# File 'app/models/katello/flatpak_remote_repository.rb', line 20

def self.readable
  where(flatpak_remote_id: FlatpakRemote.readable)
end

Instance Method Details

#application_nameObject



46
47
48
49
50
51
52
# File 'app/models/katello/flatpak_remote_repository.rb', line 46

def application_name
  ref = self.manifests.first&.flatpak_ref
  return nil if ref.blank?

  match = ref.match(%r{\b(?:app|runtime)/([a-zA-Z0-9_.]+)})
  match ? match[1] : nil
end

#last_mirrored_statusObject



40
41
42
43
44
# File 'app/models/katello/flatpak_remote_repository.rb', line 40

def last_mirrored_status
  task = last_mirrored_task
  presenter = Katello::FlatpakRemoteMirrorStatusPresenter.new(self, task)
  presenter.mirror_progress.slice(:mirror_id, :result, :started_at, :last_mirror_words)
end

#last_mirrored_taskObject



32
33
34
35
36
37
38
# File 'app/models/katello/flatpak_remote_repository.rb', line 32

def last_mirrored_task
  label = ::Actions::Katello::Flatpak::MirrorRemoteRepository.name
  type = ::Katello::FlatpakRemoteRepository.name
  ForemanTasks::Task.search_for("label = #{label} and resource_type = #{type} and resource_id = #{self.id}")
    .order("started_at desc")
    .first
end

#manifest_dependenciesObject



24
25
26
# File 'app/models/katello/flatpak_remote_repository.rb', line 24

def manifest_dependencies
  FlatpakRemoteRepositoryManifest.where(flatpak_ref: self.manifests&.select(:runtime))
end

#repository_dependenciesObject



28
29
30
# File 'app/models/katello/flatpak_remote_repository.rb', line 28

def repository_dependencies
  manifest_dependencies&.map(&:remote_repository)
end