pulpcore.plugin.models¶
All models documented here should be imported directly from the pulpcore.plugin.models
namespace.
-
class
pulpcore.plugin.models.
Artifact
(*args, **kwargs)¶ A file associated with a piece of content.
When calling save() on an Artifact, if the file is not stored in Django’s storage backend, it is moved into place then.
Artifact is compatible with Django’s bulk_create() method.
- Fields
file (models.FileField) – The stored file. This field should be set using an absolute path to a temporary file. It also accepts class:django.core.files.File.
size (models.IntegerField) – The size of the file in bytes.
md5 (models.CharField) – The MD5 checksum of the file.
sha1 (models.CharField) – The SHA-1 checksum of the file.
sha224 (models.CharField) – The SHA-224 checksum of the file.
sha256 (models.CharField) – The SHA-256 checksum of the file.
sha384 (models.CharField) – The SHA-384 checksum of the file.
sha512 (models.CharField) – The SHA-512 checksum of the file.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
delete
(*args, **kwargs)¶ Deletes Artifact model and the file associated with the Artifact
- Parameters
args (list) – list of positional arguments for Model.delete()
kwargs (dict) – dictionary of keyword arguments to pass to Model.delete()
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
static
init_and_validate
(file, expected_digests=None, expected_size=None)¶ Initialize an in-memory Artifact from a file, and validate digest and size info.
This accepts both a path to a file on-disk or a
PulpTemporaryUploadedFile
.- Parameters
file (
PulpTemporaryUploadedFile
or str) – The PulpTemporaryUploadedFile to create the Artifact from or a string with the full path to the file on disk.expected_digests (dict) – Keyed on the algorithm name provided by hashlib and stores the value of the expected digest. e.g. {‘md5’: ‘912ec803b2ce49e4a541068d495ab570’}
expected_size (int) – The number of bytes the download is expected to have.
- Raises
DigestValidationError – When any of the
expected_digest
values don’t match the digest of the dataSizeValidationError – When the
expected_size
value doesn’t match the size of the data
- Returns
An in-memory, unsaved
Artifact
-
is_equal
(other)¶ Is equal by matching digest.
- Parameters
other (pulpcore.app.models.Artifact) – A artifact to match.
- Returns
True when equal.
- Return type
bool
-
q
()¶
-
save
(*args, **kwargs)¶ Saves Artifact model and closes the file associated with the Artifact
- Parameters
args (list) – list of positional arguments for Model.save()
kwargs (dict) – dictionary of keyword arguments to pass to Model.save()
-
storage_path
(name)¶ Callable used by FileField to determine where the uploaded file should be stored.
- Parameters
name (str) – Original name of uploaded file. It is ignored by this method because the sha256 checksum is used to determine a file path instead.
-
DIGEST_FIELDS
= ('sha512', 'sha384', 'sha256', 'sha224', 'sha1', 'md5')¶
-
RELIABLE_DIGEST_FIELDS
= ('sha512', 'sha384', 'sha256')¶
-
content_set
¶ Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.
In the example:
class Pizza(Model): toppings = ManyToManyField(Topping, related_name='pizzas')
Pizza.toppings
andTopping.pizzas
areManyToManyDescriptor
instances.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
contentartifact_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
file
¶ The descriptor for the file attribute on the model instance. Return a FieldFile when accessed so you can write code like:
>>> from myapp.models import MyModel >>> instance = MyModel.objects.get(pk=1) >>> instance.file.size
Assign a file object on assignment so you can do:
>>> with open('/path/to/hello.world') as f: ... instance.file = File(f)
-
md5
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <pulpcore.app.models.content.BulkCreateManager object>¶
-
sha1
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
sha224
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
sha256
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
sha384
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
sha512
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
size
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
class
pulpcore.plugin.models.
AsciiArmoredDetachedSigningService
(*args, **kwargs)¶ A model used for creating detached ascii armored signatures.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
save
(*args, **kwargs)¶ Validate and save a signing service for an ASCII armored signature.
Before saving the signing service to the database, it is required to check if the service’s output corresponds to a proposed output format and creates valid signatures.
In this case, Pulp creates a file with random content, signs the file, and checks if the signature can be verified by a provided public key. If the signature was verified without errors, the signing service object is saved to the database.
-
sign
(filename)¶ Create an ASCII armored signature for the passed filename.
- Parameters
filename (str) – A relative path to a file which is intended to be signed.
- Raises
RuntimeError – If a return code of the script is not equal to 0, indicating a failure.
- Returns
A dictionary in the following format:
{"file": "signed_file.xml", "signature": "signed_file.asc", "key": "public.key"}
-
signingservice_ptr
¶ Accessor to the related object on the forward side of a one-to-one relation.
In the example:
class Restaurant(Model): place = OneToOneField(Place, related_name='restaurant')
Restaurant.place
is aForwardOneToOneDescriptor
instance.
-
signingservice_ptr_id
¶
-
exception
-
class
pulpcore.plugin.models.
BaseDistribution
(*args, **kwargs)¶ A distribution defines how a publication is distributed by the Content App.
This abstract model can be used by plugin writers to create concrete distributions that are stored in separate tables from the Distributions provided by pulpcore.
The name must be unique.
The
base_path
must have no overlapping components. So if a Distribution withbase_path
ofa/path/foo
existed, you could not make a second Distribution with abase_path
ofa/path
ora
because both are subpaths ofa/path/foo
.- Fields
name (models.TextField) – The name of the distribution. Examples: “rawhide” and “stable”.
base_path (models.TextField) – The base (relative) path component of the published url.
- Relations
content_guard (models.ForeignKey) – An optional content-guard.
remote (models.ForeignKey) – A remote that the content app can use to find content not yet stored in Pulp.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
base_path
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
content_guard
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
content_guard_id
¶
-
name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django.db.models.manager.Manager object>¶
-
remote
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
remote_id
¶
-
class
pulpcore.plugin.models.
BaseModel
(*args, **kwargs)¶ Base model class for all Pulp models.
- Fields
pulp_created (models.DateTimeField) – Created timestamp UTC.
pulp_last_updated (models.DateTimeField) – Last updated timestamp UTC.
References
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
pulp_created
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
pulp_id
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
pulp_last_updated
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
class
pulpcore.plugin.models.
Content
(*args, **kwargs)¶ A piece of managed content.
- Relations
_artifacts (models.ManyToManyField) – Artifacts related to Content through ContentArtifact
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
static
init_from_artifact_and_relative_path
(artifact, relative_path)¶ Return an instance of the specific content by inspecting an artifact.
Plugin writers are expected to override this method with an implementation for a specific content type.
For example:
if path.isabs(relative_path): raise ValueError(_("Relative path can't start with '/'.")) return FileContent(relative_path=relative_path, digest=artifact.sha256)
-
natural_key
()¶ Get the model’s natural key based on natural_key_fields.
- Returns
The natural key.
- Return type
tuple
-
natural_key_dict
()¶ Get the model’s natural key as a dictionary of keys and values.
-
classmethod
natural_key_fields
()¶ Returns a tuple of the natural key fields which usually equates to unique_together fields
-
TYPE
= 'content'¶
-
contentartifact_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
objects
= <pulpcore.app.models.content.BulkCreateManager object>¶
-
published_metadata
¶ Accessor to the related object on the reverse side of a one-to-one relation.
In the example:
class Restaurant(Model): place = OneToOneField(Place, related_name='restaurant')
Place.restaurant
is aReverseOneToOneDescriptor
instance.
-
repo_key_fields
= ()¶
-
repositories
¶ Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.
In the example:
class Pizza(Model): toppings = ManyToManyField(Topping, related_name='pizzas')
Pizza.toppings
andTopping.pizzas
areManyToManyDescriptor
instances.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
version_memberships
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
class
pulpcore.plugin.models.
ContentArtifact
(*args, **kwargs)¶ A relationship between a Content and an Artifact.
Serves as a through model for the ‘_artifacts’ ManyToManyField in Content. Artifact is protected from deletion if it’s present in a ContentArtifact relationship.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
artifact
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
artifact_id
¶
-
content
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
content_id
¶
-
objects
= <pulpcore.app.models.content.BulkCreateManager object>¶
-
published_artifact
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
relative_path
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
remoteartifact_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
exception
-
class
pulpcore.plugin.models.
ContentGuard
(*args, **kwargs)¶ Defines a named content guard.
This is meant to be subclassed by plugin authors as an opportunity to provide plugin-specific persistent attributes and additional validation for those attributes. The permit() method must be overridden to provide the web request authorization logic.
This object is a Django model that inherits from :class: pulpcore.app.models.ContentGuard which provides the platform persistent attributes for a content-guard. Plugin authors can add additional persistent attributes by subclassing this class and adding Django fields. We defer to the Django docs on extending this model definition with additional fields.
- Fields
name (models.TextField) – Unique guard name.
description (models.TextField) – An optional description.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
permit
(request)¶ Authorize the specified web request.
- Parameters
request (django.http.HttpRequest) – A request for a published file.
- Raises
PermissionError – When not authorized.
-
basedistribution_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
description
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django.db.models.manager.Manager object>¶
-
class
pulpcore.plugin.models.
CreatedResource
(*args, **kwargs)¶ Resources created by the task.
- Relations
task (models.ForeignKey) – The task that created the resource.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
content_object
¶ Provide a generic many-to-one relation through the
content_type
andobject_id
fields.This class also doubles as an accessor to the related object (similar to ForwardManyToOneDescriptor) by adding itself as a model attribute.
-
content_type
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
objects
= <django.db.models.manager.Manager object>¶
-
task
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
task_id
¶
-
class
pulpcore.plugin.models.
FileSystemPublicationExporter
(*args, **kwargs)¶ A publication file system exporter.
-
export
(publication)¶ Export a publication to the file system
- Parameters
publication (pulpcore.app.models.Publication) – a publication to export
-
filesystemexporter_ptr
¶ Accessor to the related object on the forward side of a one-to-one relation.
In the example:
class Restaurant(Model): place = OneToOneField(Place, related_name='restaurant')
Restaurant.place
is aForwardOneToOneDescriptor
instance.
-
filesystemexporter_ptr_id
¶
-
-
class
pulpcore.plugin.models.
FileSystemRepositoryVersionExporter
(*args, **kwargs)¶ A repo version file system exporter.
-
export
(repository_version)¶ Export a repository version to the file system
- Parameters
repository_version (pulpcore.app.models.RepositoryVersion) – a repo version to export
-
filesystemexporter_ptr
¶ Accessor to the related object on the forward side of a one-to-one relation.
In the example:
class Restaurant(Model): place = OneToOneField(Place, related_name='restaurant')
Restaurant.place
is aForwardOneToOneDescriptor
instance.
-
filesystemexporter_ptr_id
¶
-
-
class
pulpcore.plugin.models.
MasterModel
(*args, **kwargs)¶ Base model for the “Master” model in a “Master-Detail” relationship.
Provides methods for casting down to detail types, back up to the master type, as well as a model field for tracking the type.
- Variables
TYPE (str) – Default constant value saved into the
pulp_type
field of Model instances- Fields
pulp_type – The user-facing string identifying the detail type of this model
Warning
Subclasses of this class rely on there being no other parent/child Model relationships than the Master/Detail relationship. All subclasses must use only abstract Model base classes for MasterModel to behave properly. Specifically, OneToOneField relationships must not be used in any MasterModel subclass.
-
cast
()¶ Return a “Detail” model instance of this master-detail pair.
If this model is already an instance of its detail type, it will return itself.
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
classmethod
get_pulp_type
()¶ Get the “pulp_type” string associated with this MasterModel type.
-
save
(*args, **kwargs)¶ Save the current instance. Override this in a subclass if you want to control the saving process.
The ‘force_insert’ and ‘force_update’ parameters can be used to insist that the “save” must be an SQL insert or update (or equivalent for non-SQL backends), respectively. Normally, they should not be set.
-
TYPE
= None¶
-
property
master
¶ The “Master” model instance of this master-detail pair
If this is already the master model instance, it will return itself.
-
pulp_type
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
class
pulpcore.plugin.models.
ProgressReport
(*args, **kwargs)¶ A model for all progress reporting.
All progress reports have a message, state, and are related to a Task.
Plugin writers should create these objects to show progress reporting of a single step or aspect of work which has a name and state. For example:
>>> ProgressReport( >>> message='Publishing files', code='publish', total=23 >>> ) # default: state='waiting' and done=0
>>> ProgressReport( >>> message='Publishing files', code='publish', total=23, state='running' >>> ) # specify the state >>> ProgressReport( >>> message='Publishing files', code='publish', total=23, done=16 >>> ) # already completed 16
Update the state to COMPLETED and save it:
>>> progress_bar = ProgressReport( >>> message='Publishing files', code='publish', total=23, state='running' >>> ) >>> progress_bar.state = 'completed' >>> progress_bar.save()
The ProgressReport() is a context manager that provides automatic state transitions and saving for the RUNNING CANCELED COMPLETED and FAILED states. The increment() method can be called in the loop as work is completed. When ProgressReport() is used as a context manager progress reporting is rate limited to every 500 milliseconds. Use it as follows:
>>> progress_bar = ProgressReport( >>> message='Publishing files', code='publish', total=len(files_iterator) >>> ) >>> progress_bar.save() >>> with progress_bar: >>> # progress_bar saved as 'running' >>> for file in files_iterator: >>> handle(file) >>> progress_bar.increment() # increments and saves >>> # progress_bar is saved as 'completed' if no exception or 'failed' otherwise
A convenience method called iter() allows you to avoid calling increment() directly:
>>> progress_bar = ProgressReport( >>> message='Publishing files', code='publish', total=len(files_iterator) >>> ) >>> progress_bar.save() >>> with progress_bar: >>> for file in progress_bar.iter(files_iterator): >>> handle(file)
You can also use this short form which handles all necessary save() calls:
>>> data = dict(message='Publishing files', code='publish', total=len(files_iterator)) >>> with ProgressReport(**data) as pb: >>> for file in pb.iter(files_iterator): >>> handle(file)
ProgressReport objects are associated with a Task and auto-discover and populate the task id when saved.
When using threads to update a ProgressReport in parallel, it is recommended that all threads share the same in-memory instance. Django does not synchronize in-memory model instances, so multiple instances of a specific ProgressReport will diverge as they are written to from separate threads.
- Fields
message (models.TextField) – short message for the progress update, typically shown to the user. (required)
code (models.TextField) – identifies the type of progress report
state (models.TextField) – The state of the progress update. Defaults to WAITING. This field uses a limited set of choices of field states. See STATES for possible states.
total – (models.IntegerField) The total count of items to be handled
done (models.IntegerField) – The count of items already processed. Defaults to 0.
suffix (models.TextField) – Customizable suffix rendered with the progress report See the docs. for more info.
- Relations
task – The task associated with this progress report. If left unset when save() is called it will be set to the current task_id.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
get_state_display
(*, field=<django.db.models.fields.TextField: state>)¶
-
increase_by
(count)¶ Increase the done count and save the progress report.
This will increment and save the self.done attribute which is useful to put into a loop processing items.
-
increment
()¶ Increment done count and save the progress report.
This will increment and save the self.done attribute which is useful to put into a loop processing items.
-
iter
(iter)¶ Iterate and automatically call increment().
>>> progress_bar = ProgressReport(message='Publishing files', code='publish', total=23) >>> progress_bar.save() >>> for file in progress_bar.iter(files_iterator): >>> handle(file)
- Parameters
iter (iterator) – The iterator to loop through while incrementing
- Returns
generator of
iter
argument items
-
save
(*args, **kwargs)¶ Auto-set the task_id if running inside a task
If the task_id is already set it will not be updated. If it is unset and this is running inside of a task it will be auto-set prior to saving.
args (list): positional arguments to be passed on to the real save kwargs (dict): keyword arguments to be passed on to the real save
-
code
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
done
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
message
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django.db.models.manager.Manager object>¶
-
state
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
suffix
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
task
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
task_id
¶
-
total
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
class
pulpcore.plugin.models.
Publication
(*args, **kwargs)¶ A publication contains metadata and artifacts associated with content contained within a RepositoryVersion.
Using as a context manager is highly encouraged. On context exit, the complete attribute is set True provided that an exception has not been raised. In the event and exception has been raised, the publication is deleted.
- Fields
complete (models.BooleanField) – State tracking; for internal use. Indexed.
pass_through (models.BooleanField) – Indicates that the publication is a pass-through to the repository version. Enabling pass-through has the same effect as creating a PublishedArtifact for all of the content (artifacts) in the repository.
- Relations
repository_version (models.ForeignKey) – The RepositoryVersion used to create this Publication.
Examples
>>> repository_version = ... >>> >>> with Publication.create(repository_version) as publication: >>> for content in repository_version.content(): >>> for content_artifact in content.contentartifact_set.all(): >>> artifact = PublishedArtifact(...) >>> artifact.save() >>> metadata = PublishedMetadata.create_from_file(...) >>> ... >>>
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
classmethod
create
(repository_version, pass_through=False)¶ Create a publication.
This should be used to create a publication. Using Publication() directly is highly discouraged.
- Parameters
repository_version (pulpcore.app.models.RepositoryVersion) – The repository version to be published.
pass_through (bool) – Indicates that the publication is a pass-through to the repository version. Enabling pass-through has the same effect as creating a PublishedArtifact for all of the content (artifacts) in the repository.
- Returns
A created Publication in an incomplete state.
- Return type
Notes
Adds a Task.created_resource for the publication.
-
delete
(**kwargs)¶ Delete the publication.
- Parameters
**kwargs (dict) – Delete options.
Notes
Deletes the Task.created_resource when complete is False.
-
finalize_new_publication
()¶ Finalize the incomplete Publication with plugin-provided code.
This method should be overridden by plugin writers for an opportunity for plugin input. This method is intended to be used to validate or modify the content.
This method does not adjust the value of complete, or save the Publication itself. Its intent is to allow the plugin writer an opportunity for plugin input before pulpcore marks the Publication as complete.
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
TYPE
= 'publication'¶
-
complete
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django.db.models.manager.Manager object>¶
-
pass_through
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
published_artifact
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
published_metadata
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
property
repository
¶ Return the associated repository
- Returns
The repository associated to this publication
- Return type
-
repository_version
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
repository_version_id
¶
-
class
pulpcore.plugin.models.
PublicationDistribution
(*args, **kwargs)¶ Define how Pulp’s content app will serve a Publication.
- Relations
publication (models.ForeignKey) – Publication to be served.
-
basedistribution_ptr
¶ Accessor to the related object on the forward side of a one-to-one relation.
In the example:
class Restaurant(Model): place = OneToOneField(Place, related_name='restaurant')
Restaurant.place
is aForwardOneToOneDescriptor
instance.
-
basedistribution_ptr_id
¶
-
publication
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
publication_id
¶
-
class
pulpcore.plugin.models.
PublishedArtifact
(*args, **kwargs)¶ An artifact that is part of a publication.
- Fields
relative_path (models.TextField) – The (relative) path component of the published url.
- Relations
content_artifact (models.ForeignKey) – The referenced content artifact.
publication (models.ForeignKey) – The publication in which the artifact is included.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
content_artifact
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
content_artifact_id
¶
-
objects
= <django.db.models.manager.Manager object>¶
-
publication
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
publication_id
¶
-
relative_path
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
class
pulpcore.plugin.models.
PublishedMetadata
(*args, **kwargs)¶ Metadata file that is part of a publication.
- Fields
relative_path (models.TextField) – The (relative) path component of the published url.
- Relations
publication (models.ForeignKey) – The publication in which the artifact is included.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
classmethod
create_from_file
(file, publication, relative_path=None)¶ Creates PublishedMetadata along with Artifact, ContentArtifact, and PublishedArtifact.
- Parameters
file (django.core.files.File) – an open File that contains metadata
publication (pulpcore.app.models.Publication) – The publication in which the PublishedMetadata is included.
relative_path (str) – relative path at which the Metadata is published at. If None, the name of the ‘file’ is used.
- Returns
A saved instance of PublishedMetadata.
- Return type
-
TYPE
= 'publishedmetadata'¶
-
content_ptr
¶ Accessor to the related object on the forward side of a one-to-one relation.
In the example:
class Restaurant(Model): place = OneToOneField(Place, related_name='restaurant')
Restaurant.place
is aForwardOneToOneDescriptor
instance.
-
content_ptr_id
¶
-
publication
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
publication_id
¶
-
relative_path
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
class
pulpcore.plugin.models.
Remote
(*args, **kwargs)¶ A remote source for content.
This is meant to be subclassed by plugin authors as an opportunity to provide plugin-specific persistent data attributes for a plugin remote subclass.
This object is a Django model that inherits from :class: pulpcore.app.models.Remote which provides the platform persistent attributes for a remote object. Plugin authors can add additional persistent remote data by subclassing this object and adding Django fields. We defer to the Django docs on extending this model definition with additional fields.
Validation of the remote is done at the API level by a plugin defined subclass of :class: pulpcore.plugin.serializers.repository.RemoteSerializer.
- Fields
name (models.TextField) – The remote name.
url (models.TextField) – The URL of an external content source.
ca_cert (models.FileField) – A PEM encoded CA certificate used to validate the server certificate presented by the external source.
client_cert (models.FileField) – A PEM encoded client certificate used for authentication.
client_key (models.FileField) – A PEM encoded private key used for authentication.
tls_validation (models.BooleanField) – If True, TLS peer validation must be performed.
proxy_url (models.TextField) – The optional proxy URL. Format: scheme://user:password@host:port
username (models.TextField) – The username to be used for authentication when syncing.
password (models.TextField) – The password to be used for authentication when syncing.
download_concurrency (models.PositiveIntegerField) – Total number of simultaneous connections.
policy (models.TextField) – The policy to use when downloading content.
- Relations
repository (models.ForeignKey) – The repository that owns this Remote
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
get_downloader
(remote_artifact=None, url=None, **kwargs)¶ Get a downloader from either a RemoteArtifact or URL that is configured with this Remote.
This method accepts either remote_artifact or url but not both. At least one is required. If neither or both are passed a ValueError is raised.
Plugin writers are expected to override when additional configuration is needed or when another class of download is required.
- Parameters
remote_artifact (
RemoteArtifact
) – The RemoteArtifact to download.url (str) – The URL to download.
kwargs (dict) – This accepts the parameters of
BaseDownloader
.
- Raises
ValueError – If neither remote_artifact and url are passed, or if both are passed.
- Returns
A downloader that is configured with the remote settings.
- Return type
subclass of
BaseDownloader
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_policy_display
(*, field=<django.db.models.fields.TextField: policy>)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
get_remote_artifact_content_type
(relative_path=None)¶ Get the type of content that should be available at the relative path.
Plugin writers are expected to implement this method.
- Parameters
relative_path (str) – The relative path of a RemoteArtifact
- Returns
The Class of the content type that should be available at the relative path.
- Return type
Class
-
get_remote_artifact_url
(relative_path=None)¶ Get the full URL for a RemoteArtifact from a relative path.
This method returns the URL for a RemoteArtifact by concatinating the Remote’s url and the relative path.located in the Remote. Plugin writers are expected to override this method when a more complex algorithm is needed to determine the full URL.
- Parameters
relative_path (str) – The relative path of a RemoteArtifact
- Raises
ValueError – If relative_path starts with a ‘/’.
- Returns
A URL for a RemoteArtifact available at the Remote.
- Return type
str
-
IMMEDIATE
= 'immediate'¶
-
ON_DEMAND
= 'on_demand'¶
-
POLICY_CHOICES
= (('immediate', 'When syncing, download all metadata and content now.'), ('on_demand', 'When syncing, download metadata, but do not download content now. Instead, download content as clients request it, and save it in Pulp to be served for future client requests.'), ('streamed', 'When syncing, download metadata, but do not download content now. Instead,download content as clients request it, but never save it in Pulp. This causes future requests for that same content to have to be downloaded again.'))¶
-
STREAMED
= 'streamed'¶
-
TYPE
= 'remote'¶
-
basedistribution_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
ca_cert
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
client_cert
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
client_key
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
download_concurrency
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
property
download_factory
¶ Return the DownloaderFactory which can be used to generate asyncio capable downloaders.
Upon first access, the DownloaderFactory is instantiated and saved internally.
Plugin writers are expected to override when additional configuration of the DownloaderFactory is needed.
- Returns
- The instantiated DownloaderFactory to be used by
get_downloader().
- Return type
DownloadFactory
-
name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django.db.models.manager.Manager object>¶
-
password
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
policy
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
proxy_url
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
remoteartifact_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
tls_validation
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
url
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
username
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
class
pulpcore.plugin.models.
RemoteArtifact
(*args, **kwargs)¶ Represents a content artifact that is provided by a remote (external) repository.
Remotes that want to support deferred download policies should use this model to store information required for downloading an Artifact at some point in the future. At a minimum this includes the URL, the ContentArtifact, and the Remote that created it. It can also store expected size and any expected checksums.
- Fields
url (models.TextField) – The URL where the artifact can be retrieved.
size (models.IntegerField) – The expected size of the file in bytes.
md5 (models.CharField) – The expected MD5 checksum of the file.
sha1 (models.CharField) – The expected SHA-1 checksum of the file.
sha224 (models.CharField) – The expected SHA-224 checksum of the file.
sha256 (models.CharField) – The expected SHA-256 checksum of the file.
sha384 (models.CharField) – The expected SHA-384 checksum of the file.
sha512 (models.CharField) – The expected SHA-512 checksum of the file.
- Relations
content_artifact (
pulpcore.app.models.ForeignKey
) – ContentArtifact associated with this RemoteArtifact.remote (
django.db.models.ForeignKey
) – Remote that created the RemoteArtifact.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
content_artifact
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
content_artifact_id
¶
-
md5
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <pulpcore.app.models.content.BulkCreateManager object>¶
-
remote
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
remote_id
¶
-
sha1
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
sha224
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
sha256
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
sha384
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
sha512
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
size
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
url
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
class
pulpcore.plugin.models.
Repository
(*args, **kwargs)¶ Collection of content.
- Fields
name (models.TextField) – The repository name.
description (models.TextField) – An optional description.
next_version (models.PositiveIntegerField) – A record of the next version number to be created.
- Relations
content (models.ManyToManyField) – Associated content.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
create_initial_version
()¶ Create an initial repository version (version 0).
This method can be overriden by plugins if they require custom logic.
-
finalize_new_version
(new_version)¶ Finalize the incomplete RepositoryVersion with plugin-provided code.
This method should be overridden by plugin writers for an opportunity for plugin input. This method is intended to be called with the incomplete
pulpcore.app.models.RepositoryVersion
to validate or modify the content.This method does not adjust the value of complete, or save the RepositoryVersion itself. Its intent is to allow the plugin writer an opportunity for plugin input before pulpcore marks the RepositoryVersion as complete.
- Parameters
new_version (pulpcore.app.models.RepositoryVersion) – The incomplete RepositoryVersion to finalize.
Returns:
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
latest_version
()¶ Get the latest RepositoryVersion on a repository
- Parameters
repository (pulpcore.app.models.Repository) – to get the latest version of
- Returns
The latest RepositoryVersion
- Return type
-
natural_key
()¶ Get the model’s natural key.
- Returns
The model’s natural key.
- Return type
tuple
-
new_version
(base_version=None)¶ Create a new RepositoryVersion for this Repository
Creation of a RepositoryVersion should be done in a RQ Job.
- Parameters
repository (pulpcore.app.models.Repository) – to create a new version of
base_version (pulpcore.app.models.RepositoryVersion) – an optional repository version whose content will be used as the set of content for the new version
- Returns
The Created RepositoryVersion
- Return type
-
save
(*args, **kwargs)¶ Saves Repository model and creates an initial repository version.
- Parameters
args (list) – list of positional arguments for Model.save()
kwargs (dict) – dictionary of keyword arguments to pass to Model.save()
-
CONTENT_TYPES
= []¶
-
TYPE
= 'repository'¶
-
content
¶ Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.
In the example:
class Pizza(Model): toppings = ManyToManyField(Topping, related_name='pizzas')
Pizza.toppings
andTopping.pizzas
areManyToManyDescriptor
instances.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
description
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
next_version
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django.db.models.manager.Manager object>¶
-
repositorycontent_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
versions
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
class
pulpcore.plugin.models.
RepositoryContent
(*args, **kwargs)¶ Association between a repository and its contained content.
- Fields
created (models.DatetimeField) – When the association was created.
- Relations
content (models.ForeignKey) – The associated content.
repository (models.ForeignKey) – The associated repository.
version_added (models.ForeignKey) – The RepositoryVersion which added the referenced Content.
version_removed (models.ForeignKey) – The RepositoryVersion which removed the referenced Content.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
content
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
content_id
¶
-
objects
= <django.db.models.manager.Manager object>¶
-
repository
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
repository_id
¶
-
version_added
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
version_added_id
¶
-
version_removed
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
version_removed_id
¶
-
class
pulpcore.plugin.models.
RepositoryVersion
(*args, **kwargs)¶ A version of a repository’s content set.
Plugin Writers are strongly encouraged to use RepositoryVersion as a context manager to provide transactional safety, working directory set up, plugin finalization, and cleaning up the database on failures.
Examples:
with repository.new_version(repository) as new_version: new_version.add_content(content_q) new_version.remove_content(content_q)
- Fields
number (models.PositiveIntegerField) – A positive integer that uniquely identifies a version of a specific repository. Each new version for a repo should have this field set to 1 + the most recent version.
action (models.TextField) – The action that produced the version.
complete (models.BooleanField) – If true, the RepositoryVersion is visible. This field is set to true when the task that creates the RepositoryVersion is complete.
- Relations
repository (models.ForeignKey) – The associated repository.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
add_content
(content)¶ Add a content unit to this version.
- Parameters
content (django.db.models.QuerySet) – Set of Content to add
- Raise:
- pulpcore.exception.ResourceImmutableError: if add_content is called on a
complete RepositoryVersion
-
added
(base_version=None)¶ - Parameters
base_version (pulpcore.app.models.RepositoryVersion) – an optional repository version
- Returns
The Content objects that were added by this version.
- Return type
QuerySet
-
contains
(content)¶ Check whether a content exists in this repository version’s set of content
- Returns
True if the repository version contains the content, False otherwise
- Return type
bool
-
content_batch_qs
(content_qs=None, order_by_params=('pk', ), batch_size=1000)¶ Generate content batches to efficiently iterate over all content.
Generates query sets that span the content_qs content of the repository version. Each yielded query set evaluates to at most batch_size content records. This is useful to limit the memory footprint when iterating over all content of a repository version.
Note
This generator is not safe against changes (i.e. add/remove content) during the iteration!
As the method uses slices internally, the queryset must be ordered to yield stable results. By default, it is ordered by primary key.
- Parameters
content_qs (
django.db.models.QuerySet
) – The queryset for Content that will be restricted further to the content present in this repository version. If not given,Content.objects.all()
is used (to iterate over all content present in the repository version). A plugin may want to use a specific subclass ofContent
or use e.g.filter()
to select a subset of the repository version’s content.order_by_params (tuple of str) – The parameters for the
order_by
clause for the content. The Default is("pk",)
. This needs to specify a stable order. For example, if you want to iterate by decreasing creation time stamps use("-pulp_created", "pk")
to ensure that content records are still sorted by primary key even if their creation timestamp happens to be equal.batch_size (int) – The maximum batch size.
- Yields
django.db.models.QuerySet
– A QuerySet representing a slice of the content.
Example
The following code could be used to loop over all
FileContent
inrepository_version
. It prefetches the relatedContentArtifact
instances for every batch:repository_version = ... batch_generator = repository_version.content_batch_qs( content_class=FileContent.objects.all() ) for content_batch_qs in batch_generator: content_batch_qs.prefetch_related("contentartifact_set") for content in content_batch_qs: ...
-
delete
(**kwargs)¶ Deletes a RepositoryVersion
If RepositoryVersion is complete and has a successor, squash RepositoryContent changes into the successor. If version is incomplete, delete and and clean up RepositoryContent, CreatedResource, and Repository objects.
Deletion of a complete RepositoryVersion should be done in a RQ Job.
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
next
()¶ - Returns
- The next complete RepositoryVersion for the same
repository.
- Return type
- Raises
RepositoryVersion.DoesNotExist – if there is not a RepositoryVersion for the same repository and with a higher “number”.
-
previous
()¶ - Returns
- The previous complete RepositoryVersion for the
same repository.
- Return type
- Raises
RepositoryVersion.DoesNotExist – if there is not a RepositoryVersion for the same repository and with a lower “number”.
-
remove_content
(content)¶ Remove content from the repository.
- Parameters
content (django.db.models.QuerySet) – Set of Content to remove
- Raise:
- pulpcore.exception.ResourceImmutableError: if remove_content is called on a
complete RepositoryVersion
-
removed
(base_version=None)¶ - Parameters
base_version (pulpcore.app.models.RepositoryVersion) – an optional repository version
- Returns
The Content objects that were removed by this version.
- Return type
QuerySet
-
added_memberships
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
property
artifacts
¶ Returns a set of artifacts for a repository version.
- Returns
The artifacts that are contained within this version.
- Return type
django.db.models.QuerySet
-
base_version
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
base_version_id
¶
-
complete
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
property
content
¶ Returns a set of content for a repository version
- Returns
The content that is contained within this version.
- Return type
django.db.models.QuerySet
Examples
>>> repository_version = ... >>> >>> for content in repository_version.content: >>> content = content.cast() # optional downcast. >>> ... >>> >>> for content in FileContent.objects.filter(pk__in=repository_version.content): >>> ... >>>
-
counts
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
number
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django.db.models.manager.Manager object>¶
-
publication_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
removed_memberships
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
repository
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
repository_id
¶
-
versions
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
class
pulpcore.plugin.models.
RepositoryVersionDistribution
(*args, **kwargs)¶ Define how Pulp’s content app will serve a RepositoryVersion or Repository.
The
repository
andrepository_version
fields cannot be used together.- Relations
repository (models.ForeignKey) – The latest RepositoryVersion for this Repository will be served.
repository_version (models.ForeignKey) – RepositoryVersion to be served.
-
basedistribution_ptr
¶ Accessor to the related object on the forward side of a one-to-one relation.
In the example:
class Restaurant(Model): place = OneToOneField(Place, related_name='restaurant')
Restaurant.place
is aForwardOneToOneDescriptor
instance.
-
basedistribution_ptr_id
¶
-
repository
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
repository_id
¶
-
repository_version
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
repository_version_id
¶
-
class
pulpcore.plugin.models.
Task
(*args, **kwargs)¶ Represents a task
- Fields
state (models.TextField) – The state of the task
name (models.TextField) – The name of the task
started_at (models.DateTimeField) – The time the task started executing
finished_at (models.DateTimeField) – The time the task finished executing
error (pulpcore.app.fields.JSONField) – Fatal errors generated by the task
- Relations
parent (models.ForeignKey) – Task that spawned this task (if any)
worker (models.ForeignKey) – The worker that this task is in
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
static
current
()¶ - Returns
The current task.
- Return type
-
get_next_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=True, **kwargs)¶
-
get_previous_by_pulp_created
(*, field=<django.db.models.fields.DateTimeField: pulp_created>, is_next=False, **kwargs)¶
-
get_state_display
(*, field=<django.db.models.fields.TextField: state>)¶
-
release_resources
()¶ Release the reserved resources that are reserved by this task. If a reserved resource no longer has any tasks reserving it, delete it.
-
set_completed
()¶ Set this Task to the completed state, save it, and log output in warning cases.
This updates the
finished_at
and sets thestate
toCOMPLETED
.
-
set_failed
(exc, tb)¶ Set this Task to the failed state and save it.
This updates the
finished_at
attribute, sets thestate
toFAILED
, and sets theerror
attribute.- Parameters
exc (Exception) – The exception raised by the task.
tb (traceback) – Traceback instance for the current exception.
-
set_running
()¶ Set this Task to the running state, save it, and log output in warning cases.
This updates the
started_at
and sets thestate
toRUNNING
.
-
created_resources
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
error
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
finished_at
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
objects
= <django.db.models.manager.Manager object>¶
-
progress_reports
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
reserved_resources
¶ Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.
In the example:
class Pizza(Model): toppings = ManyToManyField(Topping, related_name='pizzas')
Pizza.toppings
andTopping.pizzas
areManyToManyDescriptor
instances.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
reserved_resources_record
¶ Accessor to the related objects manager on the forward and reverse sides of a many-to-many relation.
In the example:
class Pizza(Model): toppings = ManyToManyField(Topping, related_name='pizzas')
Pizza.toppings
andTopping.pizzas
areManyToManyDescriptor
instances.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
started_at
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
state
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
taskreservedresource_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
taskreservedresourcerecord_set
¶ Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.children
is aReverseManyToOneDescriptor
instance.Most of the implementation is delegated to a dynamically defined manager class built by
create_forward_many_to_many_manager()
defined below.
-
worker
¶ Accessor to the related object on the forward side of a many-to-one or one-to-one (via ForwardOneToOneDescriptor subclass) relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Child.parent
is aForwardManyToOneDescriptor
instance.
-
worker_id
¶