app/lib/actions/katello/host/upload_profiles.rb in katello-4.2.0.rc1 vs app/lib/actions/katello/host/upload_profiles.rb in katello-4.2.0.rc2

- old
+ new

@@ -30,63 +30,17 @@ def rescue_strategy Dynflow::Action::Rescue::Skip end - def import_module_streams(payload, host) - enabled_payload = payload.map do |profile| - profile.slice("name", "stream", "version", "context", "arch").with_indifferent_access if profile["status"] == "enabled" - end - enabled_payload.compact! - - host.import_module_streams(payload) - end - - def import_deb_package_profile(host, profile) - installed_deb_ids = profile.map do |item| - ::Katello::InstalledDeb.find_or_create_by(name: item['name'], architecture: item['architecture'], version: item['version']).id - end - host.installed_deb_ids = installed_deb_ids - host.save! - rescue ActiveRecord::InvalidForeignKey # this happens if the host gets deleted in between the "find_by" and "import_package_profile" - Rails.logger.warn("Host installed package list with ID %s was not able to be written to the DB (host likely is deleted), continuing" % host.id) - end - def run - profiles = JSON.parse(input[:profile_string]) - #free the huge string from the memory - input[:profile_string] = 'TRIMMED'.freeze host = ::Host.find_by(:id => input[:host_id]) - if host.nil? - Rails.logger.warn("Host with ID %s not found, continuing" % input[:host_id]) - elsif host.content_facet.nil? || host.content_facet.uuid.nil? - Rails.logger.warn("Host with ID %s has no content facet, continuing" % input[:host_id]) - elsif profiles.try(:has_key?, "deb_package_profile") - # remove this when deb_package_profile API is removed - payload = profiles.dig("deb_package_profile", "deb_packages") || [] - import_deb_package_profile(host, payload) - else - module_streams = [] - profiles.each do |profile| - payload = profile["profile"] - case profile["content_type"] - when "rpm" - UploadPackageProfile.upload(input[:host_id], payload) - when "deb" - import_deb_package_profile(host, payload) - when "enabled_repos" - host.import_enabled_repositories(payload) - else - module_streams << payload - end - end - - module_streams.each do |module_stream_payload| - import_module_streams(module_stream_payload, host) - end - - ::Katello::Host::ContentFacet.trigger_applicability_generation(host.id) - end + uploader = ::Katello::Host::ProfilesUploader.new( + host: host, + profile_string: input[:profile_string] + ) + uploader.upload + uploader.trigger_applicability_generation end end end end end