11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'app/lib/actions/katello/flatpak/scan_remote.rb', line 11
def run
remote = ::Katello::FlatpakRemote.find(input[:remote_id])
results = fetch_results(input[:url])
remote.update!(registry_url: results['Registry']) unless remote.registry_url
repositories = results['Results']
repositories.each do |repository|
remote_repository = remote.remote_repositories.find_or_initialize_by(name: repository['Name'])
remote_repository.save!
repository['Images'].each do |image|
remote_repository_manifest = remote_repository.manifests.find_or_initialize_by(digest: image['Digest'])
remote_repository_manifest.flatpak_remote_repository_id = remote_repository.id
remote_repository_manifest.name = image['Labels']['name']
remote_repository_manifest.tags = image['Tags']
remote_repository_manifest.application = image['Labels']['org.flatpak.ref'].start_with?('app/')
remote_repository_manifest.flatpak_ref = image['Labels']['org.flatpak.ref']
remote_repository_manifest.runtime = (image['Labels']['org.flatpak.metadata'])
remote_repository_manifest.save!
end
end
end
|