Sha256: f3ce58be4ce2912f5e14d2d0c0c7699acddb48632346c06905a9f005d7a04ad3

Contents?: true

Size: 1.35 KB

Versions: 3

Compression:

Stored size: 1.35 KB

Contents

module Katello
  module Pulp3
    class DockerManifest < PulpContentUnit
      include LazyAccessor
      CONTENT_TYPE = "docker_manifest".freeze
      PULPCORE_CONTENT_TYPE = "container.manifest".freeze

      def self.content_api
        PulpContainerClient::ContentManifestsApi.new(Katello::Pulp3::Api::Docker.new(SmartProxy.pulp_primary!).api_client)
      end

      def self.ids_for_repository(repo_id)
        repo = Katello::Pulp3::Repository::Docker.new(Katello::Repository.find(repo_id), SmartProxy.pulp_primary)
        repo_content_list = repo.content_list
        repo_content_list.map { |content| content.try(:pulp_href) }
      end

      def self.content_unit_list(page_opts)
        page_opts[:media_type] = ['application/vnd.docker.distribution.manifest.v1+json',
                                  'application/vnd.docker.distribution.manifest.v2+json',
                                  'application/vnd.oci.image.manifest.v1+json']
        self.content_api.list(page_opts)
      end

      def self.generate_model_row(unit)
        {
          schema_version: unit['schema_version'],
          digest: unit['digest'],
          pulp_id: unit[unit_identifier],
          annotations: unit['annotations'],
          labels: unit['labels'],
          is_bootable: unit['is_bootable'],
          is_flatpak: unit['is_flatpak'],
        }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
katello-4.15.0 app/services/katello/pulp3/docker_manifest.rb
katello-4.15.0.rc2 app/services/katello/pulp3/docker_manifest.rb
katello-4.15.0.rc1 app/services/katello/pulp3/docker_manifest.rb