Class: Actions::Pulp3::Repository::SaveVersion
- Defined in:
- app/lib/actions/pulp3/repository/save_version.rb
Instance Method Summary collapse
- #check_publication_version_match(repo) ⇒ Object
- #determine_version_href(repo) ⇒ Object
- #fetch_current_published_version_href(repo) ⇒ Object
- #fetch_version_href(repo) ⇒ Object
- #plan(repository, options = {}) ⇒ Object
- #run ⇒ Object
- #save_publication_if_present(repo) ⇒ Object
- #save_version_if_changed(repo, version_href) ⇒ Object
- #update_version_if_changed(repo, version_href) ⇒ Object
Methods inherited from Abstract
Instance Method Details
#check_publication_version_match(repo) ⇒ Object
56 57 58 59 60 61 62 63 |
# File 'app/lib/actions/pulp3/repository/save_version.rb', line 56 def check_publication_version_match(repo) # get publication and check if repo-version and publication match. Otherwise, contents_changed: false if !repo.repository_type.pulp3_skip_publication && fetch_current_published_version_href(repo) != repo.version_href output[:contents_changed] = true else output[:contents_changed] = false end end |
#determine_version_href(repo) ⇒ Object
18 19 20 21 22 23 |
# File 'app/lib/actions/pulp3/repository/save_version.rb', line 18 def determine_version_href(repo) return fetch_version_href(repo) if input[:force_fetch_version] return input[:repository_details][:latest_version_href] if input[:repository_details].present? return ::Katello::Pulp3::Task.version_href(input[:tasks]) if input[:tasks].present? fetch_version_href(repo) end |
#fetch_current_published_version_href(repo) ⇒ Object
72 73 74 75 76 77 |
# File 'app/lib/actions/pulp3/repository/save_version.rb', line 72 def fetch_current_published_version_href(repo) # Fetch latest Pulp 3 repo version return nil if repo.publication_href.nil? repo_backend_service = repo.backend_service(SmartProxy.pulp_primary) repo_backend_service.api.publications_api.read(repo.publication_href).repository_version end |
#fetch_version_href(repo) ⇒ Object
65 66 67 68 69 70 |
# File 'app/lib/actions/pulp3/repository/save_version.rb', line 65 def fetch_version_href(repo) # Fetch latest Pulp 3 repo version repo_backend_service = repo.backend_service(SmartProxy.pulp_primary) repo_href = repo_backend_service.repository_reference.repository_href repo_backend_service.api.repositories_api.read(repo_href).latest_version_href end |
#plan(repository, options = {}) ⇒ Object
5 6 7 8 |
# File 'app/lib/actions/pulp3/repository/save_version.rb', line 5 def plan(repository, = {}) fail "Cannot accept tasks and repository_details into Save Version." if [:tasks].present? && [:repository_details].present? plan_self(:repository_id => repository.id, :tasks => [:tasks], :repository_details => [:repository_details], :force_fetch_version => .fetch(:force_fetch_version, false)) end |
#run ⇒ Object
10 11 12 13 14 15 16 |
# File 'app/lib/actions/pulp3/repository/save_version.rb', line 10 def run repo = ::Katello::Repository.find(input[:repository_id]) version_href = determine_version_href(repo) save_publication_if_present(repo) save_version_if_changed(repo, version_href) end |
#save_publication_if_present(repo) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'app/lib/actions/pulp3/repository/save_version.rb', line 25 def save_publication_if_present(repo) output[:publication_provided] = false return if input[:tasks].blank? publication_href = ::Katello::Pulp3::Task.publication_href(input[:tasks]) return unless publication_href repo_backend_service = repo.backend_service(SmartProxy.pulp_primary) publication = repo_backend_service.api.publications_api.read(publication_href, {fields: 'prn'}) repo.update(:publication_href => publication_href, :publication_prn => publication.prn) output[:publication_provided] = true end |
#save_version_if_changed(repo, version_href) ⇒ Object
38 39 40 41 42 43 44 |
# File 'app/lib/actions/pulp3/repository/save_version.rb', line 38 def save_version_if_changed(repo, version_href) if version_href update_version_if_changed(repo, version_href) else check_publication_version_match(repo) end end |
#update_version_if_changed(repo, version_href) ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'app/lib/actions/pulp3/repository/save_version.rb', line 46 def update_version_if_changed(repo, version_href) return unless repo.version_href != version_href || input[:force_fetch_version] output[:contents_changed] = true repo.update(:last_contents_changed => DateTime.now) repo_backend_service = repo.backend_service(SmartProxy.pulp_primary) version = repo_backend_service.api.repository_versions_api.read(version_href, {fields: 'prn'}) repo.update(:version_href => version_href, :version_prn => version.prn) end |