Sha256: 97312420717d7a2ce10ec409d5bf632d1e5f09d22a3e59814c04cbc4c3297ee6

Contents?: true

Size: 1.28 KB

Versions: 20

Compression:

Stored size: 1.28 KB

Contents

module Katello
  module Pulp
    class YumMetadataFile < PulpContentUnit
      CONTENT_TYPE = "yum_repo_metadata_file".freeze

      def update_model(model)
        shared_attributes = backend_data.keys & model.class.column_names
        shared_json = backend_data.select { |key, _v| shared_attributes.include?(key) }
        repo = ::Katello::Repository.find_by(:pulp_id => backend_data['repo_id']).try(:id)
        filename = find_name_from_json(backend_data)
        model.update!(shared_json.merge(repository_id: repo, name: filename))
        if repo
          Katello::YumMetadataFile.where("id != ? AND repository_id = ? AND name = ? AND checksum = ?",
                                         model.id, repo, filename, model.checksum).delete_all
        end
      end

      def find_name_from_json(json)
        # get the name of the metadata file.
        # Notice that pulp does not have a way to get name of the metadata file
        # so we infer it from the _storage_path
        # for example from the following storage path
        #  "/var/lib/pulp/content/units/yum_repo_metadata_file/..../050-productid.gz"
        # we find the right most '/' and return everything after that
        # i.e ->  "050-productid.gz"
        File.basename(json["_storage_path"])
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
katello-4.3.1 app/services/katello/pulp/yum_metadata_file.rb
katello-4.2.2 app/services/katello/pulp/yum_metadata_file.rb
katello-4.3.0 app/services/katello/pulp/yum_metadata_file.rb
katello-4.3.0.rc4 app/services/katello/pulp/yum_metadata_file.rb
katello-4.3.0.rc3 app/services/katello/pulp/yum_metadata_file.rb
katello-4.3.0.rc2.1 app/services/katello/pulp/yum_metadata_file.rb
katello-4.3.0.rc2 app/services/katello/pulp/yum_metadata_file.rb
katello-4.3.0.rc1 app/services/katello/pulp/yum_metadata_file.rb
katello-4.2.1 app/services/katello/pulp/yum_metadata_file.rb
katello-4.2.0.1 app/services/katello/pulp/yum_metadata_file.rb
katello-4.1.4 app/services/katello/pulp/yum_metadata_file.rb
katello-4.2.0.1.rc3 app/services/katello/pulp/yum_metadata_file.rb
katello-4.2.0.1.rc2 app/services/katello/pulp/yum_metadata_file.rb
katello-4.2.0.rc2 app/services/katello/pulp/yum_metadata_file.rb
katello-4.1.3 app/services/katello/pulp/yum_metadata_file.rb
katello-4.2.0.rc1 app/services/katello/pulp/yum_metadata_file.rb
katello-4.1.2.1 app/services/katello/pulp/yum_metadata_file.rb
katello-4.1.2 app/services/katello/pulp/yum_metadata_file.rb
katello-4.1.1 app/services/katello/pulp/yum_metadata_file.rb
katello-4.1.0 app/services/katello/pulp/yum_metadata_file.rb